Android高德通过经纬度获取地理位置

Android高德通过经纬度获取地理位置,第1张

首先导入依赖:

首次导入依赖的过程可能有点慢

然后在需要用到逆地理编码的类或d窗或其他地方中实现 GeocodeSearchOnGeocodeSearchListener

监听

例子:

并实现其两个方法:

通过经纬度逆地理编码得到位置核心编码

这样我们就可以实现通过经纬度得到一个位置信息了

福利赠送~~~

1、继承 OnGeocodeSearchListener 监听。

2、构造 GeocodeSearch 对象,并设置监听。

3、通过 GeocodeQuery(javalangString locationName, javalangString city) 设置查询参数,调用 GeocodeSearch 的 getFromLocationNameAsyn(GeocodeQuery geocodeQuery) 方法发起请求。

4、通过回调接口 onGeocodeSearched 解析返回的结果。

说明:

1)可以在回调中解析result,获取坐标信息。

2)返回结果成功或者失败的响应码。1000为成功,其他为失败(详细信息参见网站开发指南-实用工具-错误码对照表)

var map = new BMapMap("container");

mapcenterAndZoom(new BMapPoint(116404, 39915), 11);

// 创建地理编码服务实例

var myGeo = new BMapGeocoder();

// 根据坐标得到地址描述

myGeogetLocation(new BMapPoint(116364, 39993), function(result){

if (result){

alert(resultaddress);

}

});

JS代码12345678910111213141516171819202122232425262728293031323334353637383940//indexjs//获取应用实例varapp=getApp()Page({data:{motto:'示例小程序-获取当前地理位、速度',userInfo:{},hasLocation:false,location:{}},//事件处理函数bindViewTap:function(){wxnavigateTo({url:'/logs/logs'})},onLoad:function(){consolelog('onLoad')varthat=this//调用应用实例的方法获取全局数据appgetUserInfo(function(userInfo){//更新数据thatsetData({userInfo:userInfo})}),wxgetLocation({success:function(res){consolelog(res)thatsetData({hasLocation:true,location:{longitude:reslongitude,latitude:reslatitude}})}})}})indexwxml123456789101112{{userInfonickName}}{{motto}}\n-->经度:{{locationlongitude}}\n纬度:{{locationlatitude}}运行效果

微信小程序开发可根据 getLocation 获取用户的地理位置信息,包含经纬度、移动速度、海拔信息,也可使用 onLocationChange 实时获取位置。测试了一下,坐标和海拔还是比较准确的。

鉴于部分同学提到坐标误差大的问题:其一,可能是在开发者工具中遇到该问题,原因是电脑中没有gps模块,无法准确获取位置,一般通过ip定位到行政区域;其二,坐标格式没有正确使用,微信提供了两种格式 wgs84 和 gcj02 ,前者是全球GPS系统使用的标准格式,后者是中国测绘局公布的国标,两者定位有一定偏差。这就要求开发者以何种方式获取的坐标,就应以何种方式解析;也可对坐标转换后再解析。

对于用户已授权定位的可直接通过以下方式获取:

对于不确定用户是否已开启定位权限的,应该分两种情况处理:

1、用户从未同意或拒绝授权定位权限的,可直接通过 authorize 发起授权,授权成功后即可获取位置信息。

2、由于微信为了更好的用户体验,当用户第一次放弃授权定位权限后,在此后使用的过程中,不会再向用户发起授权。这就需要引导用户开启定位权限。若 authorize 时提示 authorize:fail ,可通过 openSetting 引导用户开启授权,用户授权后即可获取位置信息

实时位置信息同样需要用户授权;

微信提供了 onLocationChange 来监听实时位置信息,需要结合 stopLocationUpdate ( 小程序前台运行时监听 )、 startLocationUpdateBackground ( 小程序前后台运行时监听 ) 使用,如下:

注:实时定位反应稍微慢一点,一般五秒后才能返回新的坐标,原因是多方面的,比如天气、建筑物、数据传输、数据处理等等。

以上就是关于Android高德通过经纬度获取地理位置全部的内容,包括:Android高德通过经纬度获取地理位置、怎么通过坐标 获取地址、微信小程序获取到位置坐标后,怎么获取具体地理位置信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9598106.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存