问题
新建一个marker对象后,push到已经有标记点的marker数组里面,console.log( )可以打印出push后的数组,可以验证push成功,但并没有在地图的界面中显示出所标记的位置和图标。
尝试过的解决办法
在data里新建一个markerOne对象用于存新加的marker,用setData把新加的对象存入data中的markerOne,再push到marker数组里面,结果,仍然无法在地图中显示出所标记的位置和图标。
正解
先新建一个变量tempMarker存markers数组内容,然后push新的对象到tempMarker,最后用setData把新数组内容赋值给markers.
代码段如下:
var myLocation={
id: 5,
longitude:longitude,
latitude: latitude,
title: "我的位置",
iconPath: '/images/mymarker.png',
width: 25,
height: 25
};
tempMarker.push(myLocation);
that.setData({
markers:tempMarker
})
结果图如下:
红色框的是原来的标记,绿框是新加的标记~
原因
至于为什么整体setdata后就可以显示到界面中,俺也母鸡,继续学习中~