Добавление нескольких точек на Google Map с помощью API Javascript v3 - PullRequest
15 голосов
/ 09 июля 2011

Я застрял на этом несколько дней.У меня проблемы с добавлением нескольких точек на карту с использованием v3 API Javascript.

Я прочитал эту ветку и эту ветку , а также эту ветку на SO, и я поймал несколько ошибок и внес некоторые изменения,но я все еще не могу отобразить ничего, кроме HTML-текста в map_canvas.

Любая помощь очень ценится.Спасибо.

Текущая итерация кода:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script> 
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { initialize(); });

    function initialize() {
        var map_options = {
            center: new google.maps.LatLng(33.84659,-84.35686),
            zoom: 14,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        var google_map = new google.maps.Map(document.getElementById("map_canvas"), map_options);

        var info_window = new google.maps.InfoWindow({
            content: 'loading'
        });

        var t = [];
        var x = [];
        var y = [];
        var h = [];

        t.push('Location Name 1');
        x.push(33.84659);
        y.push(-84.35686);
        h.push('<p><strong>Location Name 1</strong><br/>Address 1</p>');

        t.push('Location Name 2');
        x.push(33.846253);
        y.push(-84.362125);
        h.push('<p><strong>Location Name 2</strong><br/>Address 2</p>');

        var i = 0;
        for ( item in t ) {
            var m = new google.maps.Marker({
                map:       google_map,
                animation: google.maps.Animation.DROP,
                title:     t[i],
                position:  new google.maps.LatLng(x[i],y[i]),
                html:      h[i]
            });

            google.maps.event.addListener(m, 'click', function() {
                info_window.setContent(this.html);
                info_window.open(map, this);
            });
            i++;
        }
    }
</script> 
<div id="map_canvas" style="width:400px;height:400px;">Google Map</div> 

1 Ответ

16 голосов
/ 09 июля 2011

Проблема здесь:

info_window.open(map, this);

Должно быть:

info_window.open(google_map, this);

потому что здесь нет переменной с именем map. Рабочая версия здесь: http://jsfiddle.net/nrabinowitz/2DBXY/

Если вы этого еще не сделали, попробуйте использовать такой инструмент, как Firebug или консоль Chrome - без него отладка Javascript практически невозможна.

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