-
-
Save Visionchen/ce2295949526e6b5fabdcb61a04e5a5d to your computer and use it in GitHub Desktop.
高德地图
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ### 1.高德地图根据IP获取当前位置信息 | |
| ```language | |
| http://restapi.amap.com/v3/ip?key=c8d499635271ab4f9d449d35911e2cf1 | |
| { | |
| "status":"1", | |
| "info":"OK", | |
| "infocode":"10000", | |
| "province":"广东省", | |
| "city":"深圳市", | |
| "adcode":"440300", | |
| "rectangle":"113.9629412,22.4627142;114.2106056,22.61394155" | |
| } | |
| ``` | |
| ### 2.微信定位获取经纬度高德返回详细地址,不准 | |
| ```language | |
| $$.ajax({ | |
| type: "get", | |
| url: "/weixin/auth/js", | |
| dataType: "jsonp", | |
| data: { | |
| //当前网页url | |
| url: location.href | |
| }, | |
| success: function (res) { | |
| console.log(res) | |
| wx.config(JSON.parse(res)); | |
| } | |
| }); | |
| console.log('定位.........'); | |
| wx.ready(function () { | |
| //获取当前地理位置 | |
| var p_tips= jmApp.modal({text: '正在定位...'}); | |
| wx.getLocation({ | |
| success: function (res) { | |
| //成功获取经纬度 | |
| console.log(res) | |
| var lat = res.longitude; | |
| var lng = res.latitude; | |
| AMap.service('AMap.Geocoder',function(){//回调函数 | |
| //实例化Geocoder | |
| geocoder = new AMap.Geocoder({ | |
| city: ""//城市,默认:“全国” | |
| }); | |
| cityCode=[lat,lng];// | |
| /*console.log(cityCode)*/ | |
| geocoder.getAddress(cityCode, function(status, result) { | |
| if (status === 'complete' && result.info === 'OK') { | |
| jmApp.closeModal(p_tips); | |
| //获得了有效的地址信息: | |
| var tips= jmApp.modal({text: '获取位置成功'}); | |
| setTimeout(function(){jmApp.closeModal(tips);},1200); | |
| console.log(result); | |
| var html=""; | |
| html+=('<div class="address-card" id="address-card" data-href='+result.regeocode.formattedAddress+""+' data-location='+lat+","+lng+' data-addressName='+result.regeocode.addressComponent.building+' ><p>'+result.regeocode.addressComponent.building+'</p><p>'+result.regeocode.formattedAddress+'</p></div>') | |
| $$(".main-body").html(html); | |
| }else{ | |
| jmApp.closeModal(p_tips); | |
| //获取地址失败 | |
| var tips= jmApp.modal({text: '获取失败'}); | |
| setTimeout(function(){jmApp.closeModal(tips);},1200); | |
| return false; | |
| } | |
| }); | |
| }) | |
| }, | |
| cancel: function (res) { | |
| console.log(res); | |
| }, | |
| error: function (res) { | |
| console.log(res); | |
| var tips= jmApp.modal({text: '请打开定位权限'}); | |
| setTimeout(function(){jmApp.closeModal(tips);},1200); | |
| return false; | |
| } | |
| }); | |
| }); | |
| ``` | |
| ### 高德浏览器定位,许多不兼容,需升级https | |
| ```language | |
| <body> | |
| <div id="map"></div> | |
| <span id="addr">当前地址为:</span> | |
| <script type="text/javascript"> | |
| var mapObj = new AMap.Map('map'); | |
| mapObj.plugin('AMap.Geolocation', function () { | |
| geolocation = new AMap.Geolocation({ | |
| enableHighAccuracy: true, // 是否使用高精度定位,默认:true | |
| timeout: 10000, // 超过10秒后停止定位,默认:无穷大 | |
| maximumAge: 0, // 定位结果缓存0毫秒,默认:0 | |
| convert: true, // 自动偏移坐标,偏移后的坐标为高德坐标,默认:true | |
| showButton: true, // 显示定位按钮,默认:true | |
| buttonPosition: 'LB', // 定位按钮停靠位置,默认:'LB',左下角 | |
| buttonOffset: new AMap.Pixel(10, 20), // 定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20) | |
| showMarker: true, // 定位成功后在定位到的位置显示点标记,默认:true | |
| showCircle: true, // 定位成功后用圆圈表示定位精度范围,默认:true | |
| panToLocation: true, // 定位成功后将定位到的位置作为地图中心点,默认:true | |
| zoomToAccuracy:true // 定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false | |
| }); | |
| mapObj.addControl(geolocation); //授权弹窗 | |
| geolocation.getCurrentPosition(); | |
| AMap.event.addListener(geolocation, 'complete', onComplete); // 返回定位信息 | |
| AMap.event.addListener(geolocation, 'error', onError); // 返回定位出错信息 | |
| }); | |
| function onComplete(obj){ | |
| var res = '经纬度:' + obj.position + | |
| '\n精度范围:' + obj.accuracy + | |
| '米\n定位结果的来源:' + obj.location_type + | |
| '\n状态信息:' + obj.info + | |
| '\n地址:' + obj.formattedAddress + | |
| '\n地址信息:' + JSON.stringify(obj.addressComponent, null, 4); | |
| alert(res); | |
| $("#addr").text(obj.position); | |
| } | |
| function onError(obj) { | |
| alert(obj.info + ',,,,' + obj.message); | |
| console.log(obj); | |
| } | |
| </script> | |
| </body> | |
| --------------------- | |
| window.navigator.geolocation.getCurrentPosition(function (position) { | |
| console.log(position.coords.latitude) | |
| console.log(position.coords.longitude) | |
| }) | |
| ``` | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment