通过 经纬度 使用百度地图获取当前详细地址
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过 经纬度 使用百度地图获取当前详细地址相关的知识,希望对你有一定的参考价值。
参考技术A //根据经纬度查询当前定位位置getLocation(long,lat)
var x = long; // 经度
var y = lat; // 纬度
var token=""; //自己申请的ak !important
var pass="" //自己申请的ak 信息里面的安全码 !important
if(uni.getSystemInfoSync().platform=='ios') //当前使用了uniapp 判断当前使用手机是安卓还是ios
token="";
pass="";
else if(uni.getSystemInfoSync().platform=='android')
token="";
pass="";
console.log(token,"token",pass,"pass")
// v2 版本 http://api.map.baidu.com/geocoder/v2/?location=34.35555,107.32518&output=json&ak=你的AK&pois=1
var url = "http://api.map.baidu.com/reverse_geocoding/v3/?ak="+token+"&output=json&coordtype=wgs84ll&location="+y+","+x+"&mcode="+pass;
// "http://api.map.baidu.com/geocoder/v2/?location="+y+","+x+
// "&output=json&ak="+token+"&jsoncallback=callbackFunction";
this.$u.get(url).then((res) => // 当前封装了方法 自用的话,直接拿url请求就好
if(data.status == 0)
var address = data.result.formatted_address;
var description = data.result.sematic_description;
alert(address+description);
);
报错参考 : https://blog.csdn.net/qq_26585943/article/details/52946261
百度webAPI配合微信JSDK获取用户当前位子
逻辑:
①通过微信JS-SDK 获取地理位置接口 获取经纬度
②调用百度地图转换经纬度的API,得到百度地图的经纬度
③调用百度地图 正/逆地址编码服务--》国际化逆地理编码 得到JSON数据,然后显示
本篇是在 微信开发----JS-SDK接口 基础上加的一个获取用户地址。如果你会使用JS-SDK接口获取用户信息,可以跳过第一步,如果你还不会请认真看JS-SDK这边文章。
注:GitHub下载代码 已更新
①我们在JS-SDK页面(JSSDK/index)中添加 获取地理位置接口
②进行经纬度转化,得到地址,
两种方式:
①使用百度的JS转化,之前写过这里就不写了 百度地图API
②web Api转,下面就是
新建一个GetLocation类
代码:
public class GetLocation { /// <summary> /// 转成百度经纬度 /// </summary> /// <param name="latitude">纬度,浮点数,范围为90 ~ -90</param> /// <param name="longitude">经度,浮点数,范围为180 ~ -180</param> /// <returns> /// 正确:{"status":0,"result":[{"x":114.35447126655663,"y":30.503753989191293}]} /// </returns> public static dynamic TranCoord(string latitude,string longitude) { string traURL = string.Format("http://api.map.baidu.com/geoconv/v1/?coords={0},{1}&from=1&to=5&ak=IvX0YcM1IRluCkw2Y0rx6hEYi9Smaw8r", longitude, latitude); var client = new HttpClient(); var result = client.GetAsync(traURL).Result; return JsonHelp.ToDynamic(result.Content.ReadAsStringAsync().Result); } /// <summary> /// 获取地址 /// </summary> /// <param name="lat">百度地图的纬度</param> /// <param name="lon">百度地图的经度</param> /// <returns> /// 返回的字符串太长了,而且不是一个正确的json格式,直接转是转不了的 /// 我这里使用一个笨方法就是切割字符串得到json格式。。。。。 /// </returns> public static string Address(string lat,string lon) { string url = string.Format("http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location={0},{1}&output=json&pois=1&ak=IvX0YcM1IRluCkw2Y0rx6hEYi9Smaw8r", lat, lon); var client = new HttpClient(); var result = client.GetAsync(url).Result; string dataJson = result.Content.ReadAsStringAsync().Result; dataJson = dataJson.Substring(dataJson.IndexOf(\'(\') + 1); dataJson = dataJson.TrimEnd(\')\'); //得到Json格式 dynamic newGPS = JsonHelp.ToDynamic(dataJson); string address = newGPS.result.formatted_address; return address; }
错误:
请把你Referer设置为 *
如果没有错误就发布,在测试号里面进行查看,
注:扫码关注公众号进行测试
以上是关于通过 经纬度 使用百度地图获取当前详细地址的主要内容,如果未能解决你的问题,请参考以下文章