2013-05-13 107 views
1

我刚刚发现了Leaflet,并将使用它来代替Google Maps。我有一个API,我希望从中生成地图标记并进行更新(否则,我将拥有多个标记)。我在这里有一个小提琴http://goo.gl/rI5YH,我一直在努力。问题是我似乎无法修复从API获取JSON的函数,然后更新地图并在其上放置标记。我有一堆代码,所以请看我附带的小提琴:http://goo.gl/rI5YH如何在传单地图上更新和生成标记?

回答

0

Here是答案,由于跨域限制我无法进行Ajax调用,所以我在代码中实例化了你的json,但是这种方法很简单。

下面是修改的JS

init(); //Calls the "grab my locayion" funcyion 
function init() { 
    var map = L.map('map', { 
     center: [51.505, -0.09], 
     zoom: 13 
    }) 

    L.tileLayer('http://{s}.tile.cloudmade.com/1fa9625d371549a298938509a2eac256/997/256/{z}/{x}/{y}.png').addTo(map); 



var drivers = 
    [{ 
      "name": "Jack Billström", 
      "profileId": "3", 
      "facebook_id": "100000650223192", 
      "email": "[email protected]", 
      "phone": "727396760", 
      "kikId": "jackiboi95", 
      "currentLat": "62.457201", 
      "currentLon": "17.350931", 
      "isDriver": "1" 
     }, { 
      "name": "John Doe", 
      "profileId": "2", 
      "facebook_id": "0", 
      "email": "[email protected]", 
      "phone": "700000000", 
      "kikId": "johndoe", 
      "currentLat": "62.442671", 
      "currentLon": "17.338829", 
      "isDriver": "1" 
     }, { 
      "name": "Andreas Ekström", 
      "profileId": "1", 
      "facebook_id": "didair", 
      "email": "[email protected]", 
      "phone": "739620011", 
      "kikId": "didair", 
      "currentLat": "62.457201", 
      "currentLon": "17.350931", 
      "isDriver": "1" 
     } 
    ]; 
for (var i=0;i<drivers.length;i++) 
{ 
    var driver=drivers[i]; 
    var m = L.marker(new L.LatLng(driver.currentLat,driver.currentLon)).addTo(map) 
      .bindPopup("<center><b>"+driver.name +"</b></center>").openPopup(); 
} 

} 
// API-URL: http://blackcab.didair.se/api/drivers 
+0

谢谢@varun!救星! – Jack 2013-05-13 20:02:10

相关问题