2011-11-21 49 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)