Карты Google отображаются локально, но не в реальной среде - PullRequest
0 голосов
/ 18 мая 2010

У меня есть страница, на которой отображается простая карта Google для указанного местоположения. Эта карта отображается без каких-либо проблем, когда я запускаю ее локально на локальном хосте, однако, когда я развертываю этот код на наших живых веб-серверах (используя наш ключ API Google LIVE для соответствующего домена), она не отображается, и после размещения серии оповещений внутри javascript на странице, похоже, что метод 'Initialize' (который должен вызываться внутри тела onLoad) не вызывается.

Когда я просматриваю исходный HTML-код, отображаемый на работающем сервере, он отображается точно в соответствии с локальной версией сайта (включая вызов initialize () в событии body onLoad), хотя и с другим ключом API карт.

Я вывел хост (alert (window.location.host);), чтобы убедиться, что ключ, сгенерированный на сайте API Google Maps, точно соответствует действующему серверу.

У кого-нибудь есть идеи, почему он будет работать локально, а не при развертывании на живых серверах? Живой сайт размещен на 2 веб-серверах с балансировкой нагрузки.

Это javascript, который отображается:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAA-BU8POZj19wRlTaKIXVM9xTz76xxk4yAELG9u79oXrhnLTB5NRRvAZ-bkKn1x8J68nfRTVOIWNPJEA" type="text/javascript"></script>
<script type="text/javascript">
    var map;
    var geocoder;

    alert(window.location.host);

    function initialize() {
        if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("businessMap"));
            map.setUIToDefault();
            geocoder = new GClientGeocoder();
            showAddress('St Margarets Street SW1P 3 London');
        }
    }

    function showAddress(address) {
        geocoder.getLatLng(
            address,
            function(point) {
                if (!point) {
                    // Address could not be located.
                    jQuery('#googleMap').hide();
                } else {
                    map.setCenter(point, 13);
                    var marker = new GMarker(point);
                    map.addOverlay(marker);
                    var html = 'Address info for the marker';
                    marker.openInfoWindow(html);

                    GEvent.addListener(marker, "click", function() {
                        marker.openInfoWindowHtml(html);
                    }); 
                }
            }
        );
    }
</script>

Любая помощь будет высоко ценится.

Спасибо.

1 Ответ

1 голос
/ 18 мая 2010

Я обнаружил проблему. Это был какой-то противоречивый JavaScript, связанный с Facebook Connect, который вызывал страницу, связанную с FB Connect, в window.onload, поэтому не вызывал функцию инициализации в событии onload тела.

Я должен был заметить этот конфликтующий JavaScript раньше!

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