zoukankan      html  css  js  c++  java
  • 高德地图获取地理位置经纬度并将经维度转化为详细地址信息

    <!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="https://cache.amap.com/lbs/static/main1119.css"/>
         <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.6&key=8a1b9d2eb62671c0b1b5f06e5effd81b&plugin=AMap.Geocoder"></script>
        <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
    <body>
    <div id='container'></div>
    <div id="tip"></div>
    <div id="tip">
        <b>经纬度 116.396574, 39.992706 的地理编码结果:</b>
        <span id="result"></span>
    </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());
    		lnglatXY = [data.position.getLng(),data.position.getLat()]; //已知点坐标
    		regeocoder(lnglatXY);
            if(data.accuracy){
                 str.push('精度:' + data.accuracy + ' 米');
            }//如为IP精确定位结果则没有精度信息
            str.push('是否经过偏移:' + (data.isConverted ? '是' : '否'));
            document.getElementById('tip').innerHTML = str.join('<br>');
        }
        //解析定位错误信息
        function onError(data) {
            document.getElementById('tip').innerHTML = '定位失败';
        }
    	    
        
        function regeocoder(loc) {  //逆地理编码
            var geocoder = new AMap.Geocoder({
                radius: 1000,
                extensions: "all"
            });        
            geocoder.getAddress(loc, function(status, result) {
                if (status === 'complete' && result.info === 'OK') {
    				console.dir(result);
                    geocoder_CallBack(result);
                }
            });        
            var marker = new AMap.Marker({  //加点
                map: map,
                position: loc
            });
            map.setFitView();
        }
        function geocoder_CallBack(data) {
            var address = data.regeocode.formattedAddress; //返回地址描述
            document.getElementById("result").innerHTML = address;
        }
    
    </script>
    </body>
    </html>
    

      

  • 相关阅读:
    Flowplayer-Subtitle
    Flowplayer-playlist
    Flowplayer-Embedding
    Flowplayer-Skin
    Flowplayer-Setup
    Flowplayer-JavaScript API
    任务监控程序设计与实现总结
    Spark RDD整理
    oracle连接和执行流程总结
    阅读《Oracle内核技术揭秘》的读书笔记
  • 原文地址:https://www.cnblogs.com/g177w/p/9513307.html
Copyright © 2011-2022 走看看