百度地图坐标详解(地图坐标系统)

一、坐标概述

百度地图坐标是地理坐标系,采用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号中关村发展大厦");

结语

以上便是关于百度地图坐标的详细阐述,相信读完本文后,你已经掌握了基本使用方法。不过,除了上面提到的这些使用方法以外,百度地图还有许多其他的特性和功能,希望读者能够不断探索和创新,打造出自己的地图应用。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平