poi(point of interest),即“兴趣点”。在地理信息系统中,一个poi可以是一栋房子、一个景点、一个邮筒或者一个公交站等。
harmonyos地图sdk提供三种类型的poi检索:城市内检索、周边检索和区域检索(即矩形区域检索)。
关键字检索适用于在某个城市内搜索某个名称相关的poi,例如:查找“北京市”的“小吃”。
searchincity(){constsearch:poisearch=newpoisearch();search.searchincity(this.keyword,(results:array<result>)=>{for(let i =0; i < results.length; i){letlocation:latlng=newlatlng(results[i].location.lat, results[i].location.lng);letimage:imageentity=newimageentity('rawfile://poicity.png',50,81);letmarker:marker=newmarker({position:location,icon: image,yoffset:0,isflat:false,isdraggable:true,rotate:0,alpha:0.9,scalex:2,scaley:2,istop:true});this.mapcontroller?.addoverlay(marker);}},{});}
效果图:
周边检索是在一个圆形范围内的poi检索,适用于以某个位置为中心点,自定义搜索半径,搜索某个位置附近的poi。
searchinnearby(){constnbsearch:poisearch=newpoisearch();const center ='40.049557,116.279295';const radius =20000;nbsearch.searchnearby(this.keyword, center, radius,(results:array<result>)=>{for(let i =0; i < results.length; i){letlocation:latlng=newlatlng(results[i].location.lat, results[i].location.lng);letimage:imageentity=newimageentity('rawfile://poinearby.png',50,81);letmarker:marker=newmarker({position:location,icon: image,yoffset:0,isflat:false,isdraggable:true,rotate:0,alpha:0.9,scalex:2,scaley:2,istop:true});this.mapcontroller?.addoverlay(marker);}},{});}
效果图:
poi区域检索,即“在由开发者指定的西南角和东北角组成的矩形区域内的poi检索”。
searchinbounds(){constbdsearch:poisearch=newpoisearch();const bound ='40.049557,116.279295,40.056057,116.308102';bdsearch.searchinbounds(this.keyword, bound,(results:array<result>)=>{console.log('lbs'json.stringify(results))for(let i =0; i < results.length; i){letlocation:latlng=newlatlng(results[i].location.lat, results[i].location.lng);letimage:imageentity=newimageentity('rawfile://poibounds.png',50,81);letmarker:marker=newmarker({position:location,icon: image,yoffset:0,isflat:false,isdraggable:true,rotate:0,alpha:0.9,scalex:2,scaley:2,istop:true});this.mapcontroller?.addoverlay(marker);}},{});}
效果图:
上一篇
下一篇
本篇文章对您是否有帮助?