wiseblog

高德获取经纬度与对应地区(思路:先获取经纬度 ---再通过经纬度获取地址)

<!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 type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.3&key=f1a56185c42312bf72bedd22e2f901c1"></script>
    <script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>
    <script src="~/Scripts/jquery-1.8.2.js"></script>
    <body>
        <div id=\'container\'></div>
        <div id="tip"></div>
        <script type="text/javascript">
            /***************************************
            由于Chrome、IOS10等已不再支持非安全域的浏览器定位请求,为保证定位成功率和精度,请尽快升级您的站点到HTTPS。
            ***************************************/
            var map, geolocation;
            //加载地图,调用浏览器定位服务
            map = new AMap.Map(\'container\', {
                resizeEnable: true
            });
            map.plugin(\'AMap.Geolocation\', function () {
                geolocation = new AMap.Geolocation({
                    enableHighAccuracy: true,//是否使用高精度定位,默认:true
                    timeout: 10000,          //超过10秒后停止定位,默认:无穷大
                    buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
                    zoomToAccuracy: true,      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
                    buttonPosition: \'RB\'
                });
                map.addControl(geolocation);
                geolocation.getCurrentPosition();
                AMap.event.addListener(geolocation, \'complete\', onComplete);//返回定位信息
                AMap.event.addListener(geolocation, \'error\', onError);      //返回定位出错信息
            });
            //解析定位结果
            function onComplete(data) {
                var str = [\'定位成功\'];
                str.push(\'经度:\' + data.position.getLng());
                str.push(\'纬度:\' + data.position.getLat());
                if (data.accuracy) {
                    str.push(\'精度:\' + data.accuracy + \' 米\');
                }//如为IP精确定位结果则没有精度信息
                str.push(\'是否经过偏移:\' + (data.isConverted ? \'是\' : \'否\'));
                document.getElementById(\'tip\').innerHTML = str.join(\'<br>\');
               
                $.ajax({
                    type: "post",
                    url: "http://restapi.amap.com/v3/geocode/regeo?output=json&location=" + data.position.getLng() + "," + data.position.getLat() + "&key=f1a56185c42312bf72bedd22e2f901c1&radius=1000&extensions=all",
                    data:  null,
                    dataType: "json",
                    success: function (obj) {
                      
                        alert(JSON.stringify(obj));
                    },
                    error: function (xhr, status, error) {
                        alert(error);
                    }
                });


            }
            //解析定位错误信息
            function onError(data) {
                document.getElementById(\'tip\').innerHTML = \'定位失败\';
            }
        </script>
    </body>
</html>

  

分类:

技术点:

相关文章: