我试图在谷歌地图中使用json调整我的代码。我试着看着其他线程的stackoverflow,但没有帮助我。 如何使用json接收的坐标在地图上显示多个点? Firebug中的这段代码显示没有错误,并且地图全部显示为蓝色。使用Json在谷歌地图V3中添加多个标记
var geocoder;
var map;
function initialize() {
var url = '/project/display/get_coordinates/';
$.getJSON(url, function(data) {
$.each(data, function(index, c) {
//alert(c.fields['lat']+','+c.fields['lng']); result: -23.0522826,-43.32745712
//Map
latlng = new google.maps.LatLng(c.fields['lat']+','+c.fields['lng']);
//options
var myOptions = {
zoom: 5,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: true
};
//get the map
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
//marker
var marker = new google.maps.Marker({
map: map,
position: latlng,
//title: {{i.display.codigo}}
});
//infowindow
var infowindow = new google.maps.InfoWindow({
content: 'oi'
});
//click infowindow
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
});//close each
});//close getjson
}//close initialize
我的JSON响应:
[{"pk": 1, "model": "address.coordinates", "fields": {"lat": "-23.0522826", "lng": "-43.32745712"}}, {"pk": 2, "model": "address.coordinates", "fields": {"lat": "-22.24569326", "lng": "-43.7028948"}}]
谢谢!
如果地图上显示了所有蓝,确保它不会在海上通过缩小中心... 另一个更严重的问题是,您不应该在$ .each(...)中的回调函数内重新声明映射,而是在全局变量中声明它并附加标记 – msonsona 2012-03-20 00:07:50
嗨!我试图将许多标记并在地图上infowindow。 “蓝色”与代码中的一些错误有关,不是海洋。谢谢! – LinuxMan 2012-03-20 00:12:02
只是为了确保;) – msonsona 2012-03-20 00:13:08