Карты Google v3 не загружаются на iPad - кнопки загружаются, но карта просто синего цвета - PullRequest
4 голосов
/ 07 марта 2012

Я использую Google Maps v3 для геокодирования адресов на сайте, и он отлично работает во всех браузерах, кроме, по-видимому, на мобильных устройствах. Более конкретно, сейчас я просто пытаюсь исправить это для устройств IOS (iPad / iPhone / iPod Touch).

Само приложение карты загружается, потому что я вижу логотип Google, ссылку "Условия использования", кнопки "Карта" и "Спутник" и даже маленький значок просмотра улиц (который, между прочим, выделен серым цветом).

Ниже приведен скриншот того, как карта выглядит на iPad. Может кто-нибудь указать мне правильное направление, что может быть причиной этого или как отладить его на устройствах IOS?

iPad screenshot of GMaps v3

Спасибо!


EDIT

Ниже приведена основная часть кода, используемого для визуализации карты.

function renderMap(elem, lat, lng) {
    lat = (null == lat || undefined == lat) ? -14.397 : lat;
    lng = (null == lng || undefined == lng) ? 120.644 : lng;
    var latlng = new google.maps.LatLng(lat, lng);
    var map    = new google.maps.Map(
        document.getElementById(elem.attr('id')), { 
            zoom: 11, 
            center: latlng, 
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
    );

    try {
        var marker = new google.maps.Marker({ map: map, position: latlng });
    } catch (err) {
        MAP_ERRORS.push(err);
    }
}

function initialize() {
    var msie7 = (navigator.appVersion.indexOf('MSIE 7.') == -1) 
        ? false : true;

    if (true != msie7) {
        $('#my-content-div' + ' > .gmap').each(function(index) {
            // these are hidden divs that contain these values
            var lat = $(this).parent().find('.lat').html();
            var lng = $(this).parent().find('.lng').html();
            renderMap($(this), lat, lng);
        });
    }
}
initialize();

РЕДАКТИРОВАТЬ 2

Кажется, я только что обнаружил проблему real . Похоже, что iPad пытается преобразовать скрытую широту в номер телефона . Я использовал трюк JS для просмотра источника страницы на iPad и, в частности, для определения широты (я думаю, это положительное число), Safari преобразовал его в ссылку! Источник выглядит следующим образом:

<!-- iPad source -->
<span class="hidden lat">
    <a href="tel:36.783760070801">36.783760070801</a>
</span>

И во всех других браузерах, где он работает , источник выглядит так: должен :

<!-- Firefox 10.0.2 source (CORRECT) -->
<span class="hidden lat">36.783760070801</span>

Есть новые идеи?

1 Ответ

6 голосов
/ 12 марта 2012

После того, как я наконец-то получил доступ к источнику страницы на iPad, я смог выяснить проблему до скрытой ссылки на широту, которую iPad Safari конвертировал в телефонный номер. Я искал переполнение стека и нашел это: https://stackoverflow.com/a/227238/486233

<meta name="format-detection" content="telephone=no">

И это исправило.

Спасибо всем за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...