一、坐标概述
百度地图坐标是地理坐标系,采用WGS-84坐标系,即GPS设备获取到的坐标。
百度地图坐标采用经度、纬度来表示位置,经度表示位于东经还是西经,纬度表示位于北纬还是南纬。经度、纬度坐标分别用度、分、秒来表示,如“120°10′12″E,30°20′36″N ”表示东经为120度10分12秒,北纬为30度20分36秒的位置。
在百度地图上,坐标系统采用的是墨卡托投影坐标系,即常见于国内2D矢量地图的坐标系统。墨卡托投影具有保角性、匀称性、局部等积性,因此在海量数据处理和显示上具有广泛的应用。
二、坐标类型
1. GPS坐标
GPS坐标即全球定位系统坐标,百度地图所采用的坐标系即是GPS坐标系。GPS坐标是WGS-84坐标系下的坐标。
var point = new BMap.Point(120.362995, 30.319772);
2. 百度坐标
百度坐标是一种特殊的坐标,经过了百度自己的加密和偏移处理。使用百度地图API进行开发时,需要将GPS坐标转换成百度坐标。代码如下:
var convertor = new BMap.Convertor(); var pointArr = []; pointArr.push(point); convertor.translate(pointArr, 1, 5, function(data){ if(data.status === 0) { var bpoint = data.points[0]; console.log(bpoint.lng + "," + bpoint.lat); } });
三、地图定位
1. 根据坐标进行定位
在百度地图中,可以根据经纬度坐标值直接定位到地图上的某一个点,代码如下:
var map = new BMap.Map("container"); var point = new BMap.Point(116.404, 39.915); map.centerAndZoom(point, 15);
2. 根据地址进行定位
除了可以根据坐标进行定位,还可以根据地址进行定位,代码如下:
var map = new BMap.Map("container"); var address = "北京市海淀区上地信息路9号中关村发展大厦"; var geocoder = new BMap.Geocoder(); geocoder.getPoint(address, function(point){ if(point){ map.centerAndZoom(point, 15); } }, "北京市");
四、计算两点之间的距离
在开发地图应用时,需要经常计算两个点之间的距离,代码如下:
var map = new BMap.Map("container"); var point1 = new BMap.Point(116.404, 39.915); var point2 = new BMap.Point(117.205, 39.134); var distance = map.getDistance(point1, point2); console.log(distance);
五、自定义地图样式
在百度地图开发中,可以通过自定义地图样式来实现个性化的地图展示效果。代码如下:
var map = new BMap.Map("container"); var styleJson = [ { "featureType": "water", "elementType": "all", "stylers": { "color": "#044161" } }, { "featureType": "land", "elementType": "all", "stylers": { "color": "#091934" } }, { "featureType": "boundary", "elementType": "geometry", "stylers": { "color": "#064f85" } }, { "featureType": "railway", "elementType": "all", "stylers": { "visibility": "off" } }, { "featureType": "highway", "elementType": "geometry", "stylers": { "color": "#004981" } }, { "featureType": "highway", "elementType": "all", "stylers": { "color": "#004981" } }] map.setMapStyle({styleJson:styleJson});
六、添加标注
在地图上添加标注可以帮助用户更准确地找到需要的位置。代码如下:
var map = new BMap.Map("container"); var point = new BMap.Point(116.404, 39.915); var marker = new BMap.Marker(point); map.addOverlay(marker);
七、实现地图上的搜索
在地图上实现搜索功能可以帮助用户更方便地找到目标位置。代码如下:
var map = new BMap.Map("container"); var local = new BMap.LocalSearch(map, { renderOptions:{map: map} }); local.search("北京市海淀区上地信息路9号中关村发展大厦");
结语
以上便是关于百度地图坐标的详细阐述,相信读完本文后,你已经掌握了基本使用方法。不过,除了上面提到的这些使用方法以外,百度地图还有许多其他的特性和功能,希望读者能够不断探索和创新,打造出自己的地图应用。