百度地图2

百度地图(2)

核心类Map:画地图必须调用的var map = new BMap.Map("allmap");其中allmap是想要画地图的dom节点的id。其中map能够控制整个地图的缩放、移动、以及是否加入一些自定义的图片,以及添加点击事件等等操做都须要这个对象,map是整个地图的核心对象。html

定位

定位的方式有浏览器自带的方式Geolocation,还有根据详细地址或者经纬度来定位Geocoderapi

  • Geolocation:是调用了浏览器自带的定位接口,若是浏览器不支持会返回null
  • Geocoder:支持经纬度getLocation(point: Point, callback: Function, options: LocationOptions)以及地址的方式getPoint(address: String, callback: Function, city: String)

经纬度的定位的坐标是百度的坐标,若是是其余的经纬度能够掉调用百度的逆地址解析成百度坐标,可是这样定位就会有误差。浏览器

最好的方式是先根据经纬度定位(画地图),若是不许确,让用户本身输入地址或者用户本身操做地图,来定位。其中地址定位是很准确的。调用Geocoder定位的结果会返回一个GeocoderResult对象,其中的包含了经纬度,省市区,以及周边的一些地方点surroundingPois,周边能够作个列表给用户选择。微信

能够说和定位相关的离不开这个对象Geocoder,能够去官方文档好好研究一番Geocoder文档dom

控件类

控件类就是在现画出的地图上添加一些操做面板(按钮等),操做地图的缩放,移动,以及切换全景模式等操做。若是要经过代码的方式操做,彻底能够在map这个对象中操做。添加的时候也要经过addControl(control: Control),其实操做这些控件本质上是调用map中的方法。函数

覆盖物

覆盖物最多见的是红色水滴状的图标,或者一些公交的路线,这些就是覆盖物,并且这些覆盖物能够定义事件,点击这些覆盖物后能够有后续的操做。并且能够自定义覆盖物(图片覆盖物)code

IconPoint是一些接口须要用到的参数,用这些构造函数生成的数据符合哪些接口的要求,其实相似接口interfacehtm

最后

地图的接口大多都集成在map这个对象中了,除了定位这些服务类,其余的类都是辅助map中的接口的。百度有哪些功能,看map服务类对象

若是想获取地图中某个点的信息,如我想知道地图中那个点的经纬度,能够经过给map定义一个点击事件,点击事件会返回当前点的信息给回调函数。记录这些经纬度点,你能够画路线图等等接口

在微信公众号中用百度地图:先用的微信的定位获取经纬度,再用百度的逆地址转为百度经纬度,最后用转化后的经纬度去定位以及画地图(居中当前定位点),最后的精准定位交给用户去决定,由于经纬度定位的效果会有偏差,这颇有必要。最好下方出现个周边的列表让用户去选择比较接近的地址,毕竟这些周边是大众都知道的。上方一个地址搜索框,根据输入的地址去定位以及移动地图的中心点,而且生成一个水滴覆盖物,当用户点击这个水滴覆盖物,肯定最终的定位。其实根据地址去定位是最准确的,可是若是经纬度偏差比较小效果是最好的。

效果:经纬度定位效果最好、若是有偏差根据搜索栏地址去定位、最重要的是用户能够操做地图,自主定位。

相关文章
相关标签/搜索