您的位置:

百度地图坐标转换详解

一、百度地图坐标转换经纬度

1、百度地图使用的是百度坐标系,而非常规的WGS84坐标系。因此,需要进行坐标转换才能够获取经纬度。

2、百度地图提供了一个JavaScript API,可以通过以下代码将百度坐标系转换为标准的WGS84坐标系。下面的代码示例显示了如何使用JavaScript API将百度坐标转换为经度和纬度:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
<script type="text/javascript">
    var point = new BMap.Point(116.404, 39.915);
    var convertor = new BMap.Convertor();
    var pointArr = [];
    pointArr.push(point);
    convertor.translate(pointArr, 1, 5, function(data){
        if(data.status === 0) {
            var lng = data.points[0].lng;
            var lat = data.points[0].lat;
            console.log('经度:' + lng + ', 纬度:' + lat);
        }
    });
</script>

其中,Point对象是百度地图的对象,表示一个坐标点,第一个参数为经度,第二个参数为纬度。Convertor对象是把坐标点转换成其它坐标系的工具对象。

二、百度地图坐标转换为WGS84坐标

1、如果需要将百度地图的坐标转换为WGS84坐标,则需要使用逆向坐标转换。在JavaScript API中,BMap.Convertor类可以实现该功能。下面的例子演示了如何将百度地图的坐标点转换为WGS84坐标:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
<script type="text/javascript">
    var point = new BMap.Point(116.404, 39.915);
    var convertor = new BMap.Convertor();
    var pointArr = [];
    pointArr.push(point);
    convertor.translate(pointArr, 5, 1, function(data){
        if(data.status === 0) {
            var lng = data.points[0].lng;
            var lat = data.points[0].lat;
            console.log('经度:' + lng + ', 纬度:' + lat);
        }
    });
</script>

在上面的代码中,translate方法的第一个参数是一个坐标点数组,第二个参数是目标坐标系统,第三个参数是源坐标系统。在此例中,源坐标系统是百度坐标系,目标坐标系是WGS84坐标系。

三、百度地图坐标定位查询

1、在百度地图上,可以通过坐标进行定位查询。下面的代码演示了如何使用JavaScript API在百度地图上进行坐标定位查询:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
<script type="text/javascript">
    var map = new BMap.Map("container");
    var point = new BMap.Point(116.404, 39.915);
    map.enableScrollWheelZoom(true);
    map.centerAndZoom(point, 15);
    var marker = new BMap.Marker(point);
    map.addOverlay(marker);
    var geoc = new BMap.Geocoder();
    geoc.getLocation(point, function(rs){
        var addComp = rs.addressComponents;
        console.log(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);
    });
</script>

上面的代码中,getLocation方法是Geocoder类的方法,用于获取指定坐标点的详细地址信息。rs参数是一个GeocoderResult对象,里面包含了详细地址信息。

四、百度地图定位坐标

1、可以通过IP地址或者WIFI定位来获得当前设备所在的位置坐标。下面的代码演示了如何使用JavaScript API获取当前设备所在的坐标点:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
<script type="text/javascript">
    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(function(r){
        if(this.getStatus() == BMAP_STATUS_SUCCESS){
            var mk = new BMap.Marker(r.point);
            map.addOverlay(mk);
            map.panTo(r.point);
            console.log('您当前的位置:' + r.point.lng + ',' + r.point.lat);
        }
        else {
            alert('failed'+this.getStatus());
        }        
    },{enableHighAccuracy: true})
</script>

上面的代码中,geolocation是Geolocation类的一个实例,getCurrentPosition是该类中获取当前位置的方法。获取的位置信息在回调函数r中返回。在此例中,我们将获取到的坐标点显示在地图中,并将地图的中心移动到该坐标点位置。

五、百度地图坐标系转2000坐标系

1、在国内,常用的坐标系有四种:WGS84坐标系、北京54坐标系、2000国家大地坐标系、西安80坐标系。其中,百度地图采用的是2000国家大地坐标系,因此我们需要将其他坐标系的坐标进行转换才可以在百度地图上使用。下面的代码演示了如何将WGS84坐标系的坐标转换为2000坐标系的坐标:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
<script type="text/javascript">
    var point = new BMap.Point(116.404, 39.915);
    var convertor = new BMap.Convertor();
    var pointArr = [];
    pointArr.push(point);
    convertor.translate(pointArr, 1, 3, function(data){
        if(data.status === 0) {
            var x = data.points[0].lng;
            var y = data.points[0].lat;
            console.log('x:' + x + ', y:' + y);
        }
    });
</script>

上面的代码中,translate()方法的第二个参数是指源坐标系(WGS84),第三个参数是指目标坐标系(2000)。

六、2000坐标转换成经纬度在线

1、如果需要将2000坐标系的坐标点转换为经度和纬度,可以使用在线的坐标转换工具。常用的工具有天地图坐标拾取器和易学GIS坐标拾取器。

2、以天地图坐标拾取器为例,使用方法如下:

首先在浏览器中打开http://api.tianditu.gov.cn/cgsys/cgfw/service/correction.html,在坐标拾取器中输入2000坐标系的坐标点,点击“纠偏”按钮,然后就可以看到该坐标点在WGS84坐标系下的经纬度了。

七、大地坐标与经纬度转换器

1、大地坐标常用于高精度的测量和定位中,而且其精度比经纬度更高。可以使用在线的大地坐标与经纬度转换器将大地坐标转换成经度和纬度。常用的在线转换器有百度坐标转换和GPS坐标转换。

2、以百度坐标转换为例,使用方法如下:

首先在浏览器中打开http://www.gpsspg.com/maps.htm,在左边的下拉框中选择“百度坐标”,然后在输入框中输入百度坐标系的坐标点,点击“查询”按钮,就可以看到该坐标点在WGS84坐标系下的经纬度了。

八、百度地图位置换算成坐标

1、可以使用JavaScript API中的Geocoder类,将地址转换为对应的坐标点。下面的代码演示了如何使用JavaScript API将地址转换为坐标点:

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
<script type="text/javascript">
    var gc = new BMap.Geocoder();
    gc.getPoint("北京市海淀区中关村", function(point){
        console.log("x:" + point.lng + ", y:" + point.lat);
    });
</script>

上面的代码中,gc.getPoint()方法的第一个参数是地址字符串,第二个参数是回调函数,该函数中的参数point就是转换后的坐标点。

九、百度地图怎么输坐标

1、在百度地图上搜索时,可以通过输入坐标点的经纬度来进行搜索。具体的操作方法是:在搜索栏中输入“经度,纬度”,例如“116.404,39.915”。

2、如果需要在百度地图上标注某个坐标点,可以在百度地图上右键单击该点,然后选择“添加标注”菜单,弹出的对话框中会显示该点的经度和纬度坐标。