高德地图JS-API,使用PlaceSearch搜索地址,在地图上产生Marker,但是在调用PlaceSearch.clear()之后,Marker并没有被清除。这个问题困扰了我好几天了。高德官方参考手册相当简单:
https://lbs.amap.com/api/javascript-api/reference/search#m_AMap.PlaceSearch
通过文档,确实没有办法找到问题所在。(在高德地图的示例中,clear()是可以生效的 https://lbs.amap.com/api/javascript-api/example/poi-search/keywords-search/)一度怀疑浏览器的兼容性问题。
心有不甘,睡前找度娘,在“尹言覃少”http://www.cnblogs.com/zifayin/p/9229324.html一文中,看到如下代码:
if
(
this
.placeSearch){
this
.placeSearch.clear();
if
(
this
.placeSearch.render){
this
.placeSearch.render.markerList.clear();
}
}
顿悟,起床打开电脑,修改JS代码如下:
placeSearch.render.markerList.clear();(原来是 placeSearch.clear();)
PlaceSearch搜索结果在地图上产生的Marker清除成功。
我想说:高德地图的参考手册哪段话告诉我“placeSearch.render.markerList”这层关系了?哪段话介绍placeSearch.render的行为?所以用起来一脸蒙B。
从上述的经历说明,详尽的文档是多么重要。