核心类Map
:画地图必须调用的var map = new BMap.Map("allmap");
其中allmap
是想要画地图的dom节点的id
。其中map
能够控制整个地图的缩放、移动、以及是否加入一些自定义的图片,以及添加点击事件等等操做都须要这个对象,map
是整个地图的核心对象。html
定位的方式有浏览器自带的方式Geolocation
,还有根据详细地址或者经纬度来定位Geocoder
。api
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
像Icon
、Point
是一些接口须要用到的参数,用这些构造函数生成的数据符合哪些接口的要求,其实相似接口interface
htm
地图的接口大多都集成在map
这个对象中了,除了定位这些服务类
,其余的类都是辅助map
中的接口的。百度有哪些功能,看map
和服务类
对象
若是想获取地图中某个点的信息,如我想知道地图中那个点的经纬度,能够经过给map
定义一个点击事件,点击事件会返回当前点的信息给回调函数。记录这些经纬度点,你能够画路线图等等接口
在微信公众号中用百度地图:先用的微信的定位获取经纬度,再用百度的逆地址转为百度经纬度,最后用转化后的经纬度去定位以及画地图(居中当前定位点),最后的精准定位交给用户去决定,由于经纬度定位的效果会有偏差,这颇有必要。最好下方出现个周边的列表让用户去选择比较接近的地址,毕竟这些周边是大众都知道的。上方一个地址搜索框,根据输入的地址去定位以及移动地图的中心点,而且生成一个水滴覆盖物,当用户点击这个水滴覆盖物,肯定最终的定位。其实根据地址去定位是最准确的,可是若是经纬度偏差比较小效果是最好的。
效果:经纬度定位效果最好、若是有偏差根据搜索栏地址去定位、最重要的是用户能够操做地图,自主定位。