通过 经纬度 使用百度地图获取当前详细地址

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;
        }
View Code

 

 坐标转化服务             经纬转坐标

错误:

请把你Referer设置为 *

 

 

如果没有错误就发布,在测试号里面进行查看,  

 

 

 

注:扫码关注公众号进行测试

 

以上是关于通过 经纬度 使用百度地图获取当前详细地址的主要内容,如果未能解决你的问题,请参考以下文章

怎么用程序通过百度地图API批量获取具体地址的经纬度

百度地图 怎么获取地址的经纬度

百度地图--api--获取经纬度

如何用PHP获取百度地图

Vue中使用百度地图——根据输入框输入的内容,获取详细地址

百度地图api根据经纬度获取地址的详细信息