Google Maps v3 добавление маркеров через jQuery $ .ajax и json - PullRequest
6 голосов
/ 14 марта 2011

У меня проблема с добавлением маркеров карты в gmaps с использованием jquery.Вот мой код.

Сейчас я получаю ошибку: Uncaught ReferenceError: GLatLng is not defined

Карта загружается нормально, а данные json выбираются и анализируются правильно ... Из чегоЯ могу сказать ...;)

Добавление булавок / маркеров карты или, если вы называете их ...


EventsModel.prototype.fetchMapPoints = function()
{
    $.ajax({
        dataType: "json",
        url: '../../events/map',
        success: eventsV.writeMapPoints
    });
}

EventsView.prototype.writeMapPoints = function(Locations)
{
    if (Locations.length>0) { 
      for (i=0; i<Locations.length; i++) { 
        var location = Locations[i]; 
        eventsV.addMapPin(location); 
      } 
      //zoomToBounds(); 
    }
}

EventsView.prototype.addMapPin = function(location)
{
    var point = new GLatLng(location.lat, location.lng); 
    var marker = new GMarker(point); 
    map.addOverlay(marker); 
    bounds.extend(marker.getPoint()); 
    $("<li />")
    .html(location.name) 
    .click(function(){ 
      showMessage(marker, location.name); 
    }) 
    .appendTo("#list"); 
    GEvent.addListener(marker,"click", function(){ 
    showMessage(this); 
    }); 

}

Инициализация карты


EventsModel.prototype.fetchGmapScript = function()
{
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=eventsV.initializeMap";
    document.body.appendChild(script);
}

EventsView.prototype.initializeMap = function()
{
    var myLatlng = new google.maps.LatLng(coords.lat, coords.long);
    var myOptions = {
    zoom: 13,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("Map"), myOptions);
}

Вот как выглядят данные json


[{"Event":"c16a5320fa475530d9583c34fd356ef5","lat":"37.8966942","lng":"-122.0599376","Image":"321752348.png","name":"Winning apple store","Description":""},{"Event":"b6d767d2f8ed5d21a44b0e5886680cb9","lat":"37.8995050","lng":"-122.0619770","Image":"","name":"Koreana Kitchen","Description":"Peter isn't invited!"}]

Ответы [ 2 ]

10 голосов
/ 14 марта 2011

Как говорит ошибка, GLatLng is not defined.GLatLng относится ко 2-й версии API Карт Google, но вы используете версию 3, поэтому измените ее на google.maps.LatLng, по крайней мере, это не поможет.

3 голосов
/ 14 марта 2011

Вот код, который заставил его работать


EventsView.prototype.addMapPin = function(location)
{
    var myLatlng = new google.maps.LatLng(location.lat,location.lng);
      var marker = new google.maps.Marker({
          position: myLatlng, 
          map: map, 
          title:"Hello World!"
      });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...