经纬度坐标与地图容器像素坐标相互转换

Posted dotNet修行之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经纬度坐标与地图容器像素坐标相互转换相关的知识,希望对你有一定的参考价值。

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
    <title>经纬度坐标与地图容器像素坐标相互转换</title>
    <link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>
    <script src="http://webapi.amap.com/maps?v=1.3&key=您申请的key值"></script>
    <script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>
</head>
<body>
<div id="container"></div>
<div class="button-group" style="background-color: white">
    <div>
        地图经纬度坐标:(<b>鼠标左键在地图上单击获取经纬度坐标</b>)<br>
        lng:<input type="text" id="lngX" name="lngX" />
        lat:<input type="text" id="latY" name="latY" /><br>
        地图容器像素坐标:<br>
        X:&nbsp;<input type="text" id="pixelx" name="pixelx" />
        Y:&nbsp;<input type="text" id="pixely" name="pixely" />
    </div>
    <div style="margin-top:5px">
        <input id="lng2x" type="button" class="button" value="经纬度转容器像素坐标" />
        <input id="x2lng" type="button" class="button" value="容器像素坐标转经纬度" />
    </div>
</div>
<script>
    var map = new AMap.Map(container, {
        resizeEnable: true
    });

    var $= function(elementId){
        return document.getElementById(elementId);
    };
    var lngX = $(lngX),latY = $(latY);
    var pixelX = $(pixelx),pixelY = $(pixely);
    map.on( click,  function (e) {
        lngX.value = e.lnglat.getLng();
        latY.value = e.lnglat.getLat();
    });

    //经纬度坐标转换为容器像素坐标
    AMap.event.addDomListener($(lng2x),click, function () {
        var px = lngX.value,py = latY.value;
        if (px && py) {
            var pixel = map.lnglatTocontainer([px, py]);
            pixelX.value = pixel.getX();
            pixelY.value = pixel.getY();
        }
    });

    //容器像素坐标转换为经纬度坐标
    AMap.event.addDomListener($(x2lng),click, function () {
        var lnglatX = parseInt(pixelX.value), lnglatY = parseInt(pixelY.value);
        if (lnglatX && lnglatY) {
            var ll = map.containTolnglat(new AMap.Pixel(lnglatX, lnglatY));
            lngX.value = ll.getLng();
            latY.value = ll.getLat();
        }
    });
</script>
</body>
</html>

 

以上是关于经纬度坐标与地图容器像素坐标相互转换的主要内容,如果未能解决你的问题,请参考以下文章

Openlayers 高德腾讯、百度、天地图坐标相互转换

火星坐标百度坐标WGS-84坐标相互转换及墨卡托投影坐标转经纬度JavaScript版

iOS 百度坐标、GPS坐标、 高德坐标相互转换

如何将地理坐标转换为像素?

瓦片切图算法以及并发切图实践(上篇)

[转]地球坐标 火星坐标 百度坐标 相互转换