Google地图标记未显示ajax json数据

时间:2015-02-20 20:05:32

标签: javascript ajax google-maps google-maps-api-3

我得到了latitude&来自数据库表的longitude并尝试在ajax success上显示标记。我得到了latitude&

我的JSON数据:

longitude

使用Ajax代码的Google地图:

[
    {"latitude":"23.046100780353495","longitude":"72.56860542227514"},
    {"latitude":"23.088427701737665","longitude":"72.49273109366186"},
    {"latitude":"23.061264193197644","longitude":"72.68224525381811"},
    {"latitude":"22.977212139977677","longitude":"72.52191352774389"},
    {"latitude":"23.002180435752084","longitude":"72.47590827872045"},
    {"latitude":"23.108638843843046","longitude":"72.49444770743139"}
]

当我尝试传递静态<script type="text/javascript"> // Check DOM Ready $(document).ready(function() { // Execute (function() { // Map options var options = { zoom: 6, center: new google.maps.LatLng(23.039567700000000000, 72.566004499999960000), // Centered mapTypeId: google.maps.MapTypeId.TERRAIN, mapTypeControl: false }; // Init map var map = new google.maps.Map(document.getElementById('map_canvas'), options); $.ajax({ url: 'get-locations.php', success:function(data){ var obj = JSON.parse(data); var totalLocations = obj.length; for (var i = 0; i < totalLocations; i++) { // Init markers var marker = new google.maps.Marker({ position: new google.maps.LatLng(obj[i].latitude + ',' + obj[i].longitude), map: map, title: 'Click Me ' + i }); // Process multiple info windows (function(marker, i) { // add click event google.maps.event.addListener(marker, 'click', function() { infowindow = new google.maps.InfoWindow({ content: 'Hello, World!!' }); infowindow.open(map, marker); }); })(marker, i); } } }); })(); }); </script> &amp;显示循环标记内的latitude

longitude

但不使用动态循环。

知道为什么标记没有显示?

感谢。

1 个答案:

答案 0 :(得分:3)

您将坐标错误地传递给google.maps.LatLng构造函数。应该有两个用逗号分隔的参数,但是你要将它们连接成一个字符串。

代码应如下所示:

position: new google.maps.LatLng(obj[i].latitude, obj[i].longitude)