我試圖在谷歌地圖中使用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