最近做的一个项目, 一开始以为是做路线规划, 后来说是做导航
记录下代码
// 获取商品集合集合并且传回来的是名称和经纬度
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闭包造成的;