一、坐标概述
百度地图坐标是地理坐标系,采用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号中关村发展大厦");
结语
以上便是关于百度地图坐标的详细阐述,相信读完本文后,你已经掌握了基本使用方法。不过,除了上面提到的这些使用方法以外,百度地图还有许多其他的特性和功能,希望读者能够不断探索和创新,打造出自己的地图应用。
