2011-11-21 55 views
0

我在我的应用程序中关注了this link。反过来,我得到我的设备中的空白,并且不显示.Map用json加载标记

代码:

<script type="text/javascript"> 
$(function() { 
    $('#map_canvas').gmap().bind('init', function() { 
     $.getJSON('http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx?latitude=&longitude=', function(data) { 
      $.each(data.Status.Shoplist, function(i, m) { 
       $('#map_canvas').gmap('addMarker', { 'position': new google.maps.LatLng(m.lat, m.lng)}); 
      }); 
     }); 
    }); 
}); 
</script> 

JSON:

{"Status" :{ "Shoplist":[ { "id" : "1", "Name" : "ee", "phone" : "", "fax" : "", "latitude" : "xxxxxx", "longitude" : "yyyyyyy" } , { "id" : "3", "Name" : "hhh", "phone" : "", "fax" : "", "latitude" : "xxxx", "longitude" : "yyyyy" } ,..... } ]}} 

回答

0

确保您已在白名单中的PhoneGap添加任何外部主机。

在iOS系统中PhoneGap.plist按常见问题主机添加到ExternalHosts键此页上:http://wiki.phonegap.com/w/page/41631150/PhoneGap%20for%20iOS%20FAQ

中的Android项目中的主机添加到phonegap.xml文件/ RES/XML。格式与iOS不同。以下是示例phonegap.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<phonegap> 
    <access origin="http://127.0.0.1*"/> 
    <access origin="http://*.phonegap.com"/> 
    <log level="DEBUG"/> 
</phonegap> 

通配符是允许的,如上例所示。

确保添加您的脚本可能试图调用的任何外部主机(使用可变化和许多的Google地图)。当你试图让它工作时,你总是可以添加*来允许所有外部主机。

0

由于您的JSON没有纬度或经度属性,你应该在addMarker方法修改代码,

new google.maps.LatLng(m.latitude, m.longitude)