h5高德地圖javascript調起app導航定位多個marker

最近做的一個項目, 一開始以爲是做路線規劃, 後來說是做導航

記錄下代碼

// 獲取商品集合集合並且傳回來的是名稱和經緯度

getShop : function(){
$.ajax({
       url : contextPath + '/service/mobile/pc/shop',
       type : 'POST',
       async : false,
       dataType : 'JSON'
   }).done(function(data, textStatus, jqXHR) {
      var _html = '';
      $.each(data.list, function(index, row){
      lnglats2.push(row);
      });
      pc.getView();
   });
},
getView : function(){
var lnglats = [];
$.each(lnglats2, function(index, row){
var lnglats3 = [];
lnglats3[0] = row[1];
lnglats3[1] = row[2];
lnglats.push(lnglats3);
});

for(var i = 0; i < lnglats.length; i++) {
var name = lnglats2[i][0];
var marker = new AMap.Marker({
position: lnglats[i], // 經緯度[21312312,34535435]
map: map
});
marker.setLabel({
               offset: new AMap.Pixel(20, 20),//修改label相對於maker的位置
               content: name // 店鋪名稱
           });

(function(x){  
marker.on("click", function(){  
this.markOnAMAP({
                    name:''+this.getLabel().content+'',
                    position:this.getPosition() // 經緯度
                })
       });
   })(i);  
}
}
map.addControl(new AMap.ToolBar());
在最後的時候, 地圖上同時出現了多個標記,但是導航後,導航的地址是最後一個marker的位置, 是由於js閉包造成的; 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章