var map = new BMap.Map('map'); var geocoder = new BMap.Geocoder(); var point = new BMap.Point(xxx, xxx); //标注所在的目标点 geocoder.getLocation(point, function(result) { console.log('address: ' + result.address); var pois = result.surroundingPois; for(var poi, i = 0, len = pois.length; i < len; i++){ poi = pois[i]; console.log('第' + i + '个POI, title: ' + poi.title + ', address: ' + poi.address) } }, { poiRadius: 500, // 检索范围,单位:米 numPois: 10 // 返回的POI点个数 });
可以实现,之前做过这个。不过需要自行 DIY 一些元素上去,比如那个固定大头针(虽然自带的有,可总归是丑)和附近地点的列表。
有几个类你需要了解:
Geocoder
通过
getLocation
可以对一个目标地点进行解析,回调中可以拿到一个GeocoderResult
对象。GeocoderResult
其中的
surroundingPois
属性是一个数组,也就是附近的POI点信息,其他属性比如address
也可能会用到,你可以输出下看看。LocalResultPoi
上面的数组中的每个元素是一个
LocalResultPoi
对象,可以通过它的属性输出你想要的信息。示例:
至于你想怎么显示,自己发挥吧。