2011-12-29 94 views
0

我在使用Google Maps API V3显示标记时遇到问题。谷歌地图API:JSON到jQuery

这是我的JavaScript:

function getMap(zoom, center) { 
var myOptions = { 
    zoom: zoom, 
    center: center, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 
var map = new google.maps.Map(document.getElementById("map"), myOptions); 

var marker = new google.maps.Marker({ position: centerBegin }) 
$.getJSON('json/markers.json', function (data) { 
    $.each(data, function (i, marker) { 

     var markerOptions = { map: map, position: new google.maps.LatLng(marker.latitude, marker.longtitude) , title: 'test'}; 
     var marker = new google.maps.Marker(markerOptions); 
     /*var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(marker.latitude, marker.longtitude), 
      content: i.toString(), 
      map: map, 
      title: 'test' 
     });*/ 
    }); 
}); 

}

这里是我的JSON文件:

{"markers": [ 
    {"text":"Ondertekenen koopverkoopcontract", "latitude":-12.917239,  "longtitude":-38.48209}, 
    {"text":"Openen documentair krediet", "latitude":51.218584, "longtitude":4.40413}, 
    {"text":"Transport van producent naar haven Salvador", "latitude":51.22952, "longtitude":4.411617}, 
    {"text":"Vertrek naar haven Antwerpen", "latitude":-12.968114, "longtitude":-38.511543}, 
    {"text":"Aankomst haven Antwerpen + vertrek naar Transibel", "latitude":51.22952, "longtitude":4.411617}, 
    {"text":"Aankomst Transibel", "latitude":51.094863, "longtitude":4.12973}, 
    {"text" : "center point", "latitude":28.767659, "longtitude":-31.640625} 
]} 

我看不到我的地图任何标记。有人可以帮我弄这个吗?

+0

我对谷歌地图API不熟悉,但是''centerBegin'和';'在行尾是什么地方? – 2011-12-29 14:02:05

+0

只是忘了评论一个:)但仍然没有工作。 – Sllix 2011-12-29 14:05:38

回答

1

您发布的示例代码有两个问题。

  1. 遍历data,当你真的要遍历data['markers']。如果你看看你的JSON文件,你会发现它不是array,而是object,它的markers元素拥有标记信息的array

  2. 过度使用变量,就像graphicdivine指出的那样。

+0

谢谢!它现在有效。 – Sllix 2011-12-30 16:13:44

+0

@Sixx,如果这个答案有效,你应该选择这个作为选择的答案,点击这个答案左边的复选标记。 – jlafay 2012-01-03 19:22:14

0

看起来您在each循环内重新声明,如下所示。

$.each(data, function (i, marker) { 
//--------------------------^ 
    // [...] 
    var marker = new google.maps.Marker(markerOptions); 
//--------^ 
+0

这可能是解决方案的一部分,但这并未解决问题。 – Sllix 2011-12-29 12:45:17