用json加载标记

时间:2011-11-21 06:26:44

标签: android map cordova

我在我的应用程序中关注了this link。反过来,我在设备中获得了空白区域,并且未显示.Map

代码:

<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" } ,..... } ]}}

2 个答案:

答案 0 :(得分:0)

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

在iOS中,根据此页面上的常见问题解答,将主机添加到PhoneGap.plist中的ExternalHosts键:http://wiki.phonegap.com/w/page/41631150/PhoneGap%20for%20iOS%20FAQ

在Android中将主机添加到项目中/ res / xml中的phonegap.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地图和许多)。当您尝试使其工作时,您可以随时添加*以允许所有外部主机。

答案 1 :(得分:0)

由于您的json没有lat或lng属性,您应该将addMarker方法中的代码更改为

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