Как я могу определить поле обзора, используя панораму с видом на улицу?
Я заметил, что степень поля зрения (FOV) для каждого вида улицы различна в разных браузерах
Я полагаю, что задокументированный уровень масштабирования при просмотре улиц до поля зрения
0: 180, 1: 90, 2: 45, 3: 22.5, 4: 11:25
Я использую API Карт v3 с панорамой улиц и получаю уровни масштабирования до FOV в Chrome вокруг
0: 127, 1: 90, 2: 53, 3: 28, 4: 14
Эти увеличения в поле зрения одинаковы в IE7 и IE8
в Firefox и IE6 они являются:
0: 180, 1: 90, 2: 45, 3: 22.5, 4: 11:25
- Это задокументировано?
- Как можно принудительно применять FOV для просмотра улиц в разных браузерах или рассчитать значение FOV для этого уровня масштабирования?
5 ответов
В настоящее время здесь есть таблица, относящаяся к zoom и FOV, которая гласит:
0=>180 1=>90 2=>45 3=>22.5 4=>11.5
Вы можете конвертировать из увеличения в поле зрения в JavaScript следующим образом:
var fov = 180 / Math.pow(2,zoom);
Проблема в том, когда API карты поддерживает использование CANVAS с конкретным браузером
API Карт версии 3.7 от 24 января 2012 г. Включено отображение Canvas Street View в IE 9, Opera и Safari/Windows
используя карты API 3.6, которые не поддерживают холст в картах (кроме браузера Chrome), вы получаете FOV как 0: 180, 1: 90, 2: 45, 3: 22,5, 4: 11:25
любой вид улицы, загруженный на холст, поддерживаемый картами, получает FOV как 0: 127, 1: 90, 2: 53, 3: 28, 4: 14
Я не могу найти решение, кроме как использовать 90-градусный FOV, который соответствует при увеличении 1 для всех браузеров, которые я тестировал
Поскольку это, кажется, первый результат на Google, для всех, кто заинтересован, вы можете использовать формулу
Math.atan(Math.pow(2, 1 - zoom)) * 360 / Math.PI
чтобы получить уровни масштабирования
0: 127, 1: 90, 2: 53, 3: 28, 4: 14
Я не смог найти это нигде в документации, но он отлично вписывается в данные и выглядит как математика для цилиндрической проекции.
Это не прямой ответ на вопрос, но, возможно, это поможет:
Существует недокументированная опция класса google.maps.StreetViewPanorama с именем 'mode'. Вы сможете включить режим рендеринга, и FOV должен быть таким же, например, для. 'html5'