微信如何根据经纬度坐标查询具体地理位置

2019-03-02 00:05|来源: 网路

好多人会问为什么微信高级接口获取的坐标信息位置不准,主要原因不是微信获取的不准,而是微信获取的是gps坐标,如果你直接用百度或google的api去解析的话肯定会出现误差的。

首先你需要吧gps位置转换成google或者百度的坐标,然后在通过转换后的坐标去获取准确的地理位置。

方法一:gps转换成google或者百度坐标,转换gps的接口 http://map.yanue.net/gps.html

方法二:gps转换成百度坐标

function getgps($lats,$lngs, $gps=false, $google=false)//gpg 转百度坐标
{
    $lat=$lats;
    $lng=$lngs;
    if($gps)
        $c=file_get_contents("http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=$lng&y=$lat");
    else if($google)
        $c=file_get_contents("http://api.map.baidu.com/ag/coord/convert?from=2&to=4&x=$lng&y=$lat");
    else 
    return array($lat,$lng);
    $arr=(array)json_decode($c);
    if(!$arr['error'])
    {
        $lat=base64_decode($arr['y']);
        $lng=base64_decode($arr['x']);
    }
    return array($lat,$lng);
}

下面是通过百度坐标获取地理位置信息

返回josn格式的:

http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=json&pois=1

返回xml格式的:

http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1




转自:http://my.oschina.net/xinson/blog/284044

相关问答

更多
  • 正常的做法是用nvarchar保存,应为google map,设置地点用String就可以了。 google.map({'center':'35.3232432434,139.32434234'})
  • 我直接下载带经纬度坐标的地图,只要说出省市区县镇的正确地名就有定位显示。两地距离用百度地图测量工具。经纬度格式转换的工具我也下载,方便换算。
  • 您可以使用Google GeoCoding服务将地址转换为一组坐标。 例如,您可以致电地址: http://maps.googleapis.com/maps/api/geocode/xml?address=Hafeez+center,Lahore,Punjab,Pakistan&sensor=false 我的建议是做类似的事情: var responseDocument = XDocument.Load("http://maps.googleapis.com/maps/api/geocode/xml?add ...
  • 由于小程序只提供了我们一个获取地理位置、速度的api,并没有获取的相关地位位置的信息等等,因此我们还需要借助一些第三方的api来实现 我们可以使用百度地图的api来获取地位位置的信息。 1>申请地址 http://lbsyun.baidu.com/index.php?title=wxjsapi/guide/key 2> 第二步:下载百度地图的api ,链接:http://download.csdn.net/detail/michael_ouyang/9754015 解压后,里面有2个js文件,一个是常规没压 ...
  • 我认为您正在寻找的是全球定位系统,通常也称为GPS。 一些好的品牌设备是Garmin和TomTom。 如果您想通过Android手机或iOS设备使用涉及GSM,Wi-Fi,手机信号塔等的策略来查找您的位置。以下是一些链接: Android位置策略: http : //developer.android.com/guide/topics/location/strategies.html iOS核心位置: http : //www.iosdevnotes.com/2011/10/ios-corelocation ...
  • Apple提供了内置于Core Location的CLGeocoder类中的方法。 这里是文档 。 如果成功完成处理程序将允许您访问CLPlacemark数组,那么您可以抓取其中一个并访问您需要的任何人类可读元素。 这些变量的名称非常通用,覆盖全球各地,因此您需要深入挖掘以准确找到您需要的内容。 查看 CLPlacemark上的文档以CLPlacemark有关可用变量的详细信息。 在你的具体情况下,你需要分别为城市和州的locality和administrativeArea 。 用法是这样的: let ge ...
  • @NAJEEB,请尝试下面的解决方案