php 如何根据地址 获取经纬度

本文介绍如何使用腾讯地图API进行地址解析,包括获取经纬度信息的方法及示例代码,并提供两种实现方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 

 

第一种:腾讯地图api,量大需要付费(推荐使用):

public function getLatByTencentMap(){
        $address = "杭州市西湖国际科技大厦";
        $url='http://apis.map.qq.com/ws/geocoder/v1/?address='.$address.'&key=免费的自己申请';
        $result=file_get_contents($url);
        $data = json_decode($result,TRUE);
        print_r($data);
    }

说明:上面URL中的key要自己申请,免费的,本人是去腾讯地图申请的

返回结果:

附:key的申请方法

然后如下:

第二种:(官方的):

    使用流程:直接 复制下面方法到项目文件中,只需要传个地址参数,其他代码不用动 。

 

/**
     * 搜索地址,查询周边的位置  ()
     */
    public function query_address($key_words){
        $header[] = 'Referer: http://lbs.qq.com/webservice_v1/guide-suggestion.html';
        $header[] = 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36';
        $url ="http://apis.map.qq.com/ws/place/v1/suggestion/?&region=&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&keyword=".$key_words; 

        $ch = curl_init();
        //设置选项,包括URL
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);

        //执行并获取HTML文档内容
        $output = curl_exec($ch);
         // print_r($output);die;
        //释放curl句柄
        curl_close($ch);
        // return $output;
        $result = json_decode($output,true);
         // print_r($result);
        // $res = $result['data'][0];
        return $result;
         //echo json_encode(['error_code'=>'SUCCESS','reason'=>'查询成功','result'=>$result);
    }

 

示例:

 

返回值:有很多与参数地址相近的经纬度(一般默认取第一条数据,也就是下标是0的那条经纬度)

if(!empty($result['data'][0])){
                        $address = $result['data'][0];
                        // var_dump($result) ;
                        sleep(0.5);
                       //print_r($address);
                       $lat2 = $address['location']['lat'];
                       $lng2 = $address['location']['lng'];
}

 

### 地址经纬度API接口 对于根据地址获取经纬度的需求,存在多种地图服务提供商可以满足这一需求。百度地图提供了地理编码服务,通过向特定URL发送请求并附带待查询的地址参数,能够返回该地址对应的经纬度信息[^1]。 #### 百度地图API示例 要使用百度地图API来实现地址经纬度转换功能,可以通过GET方法访问如下所示的RESTful API: ```plaintext https://api.map.baidu.com/geocoding/v3/?address={具体地址}&output=json&ak={您的应用密钥} ``` 其中`{具体地址}`替换为目标地理位置描述,而`{您的应用密钥}`则需替换成开发者申请得到的应用程序接口密钥(AK)。此接口支持JSON和XML两种数据格式作为输出选项,在上述例子中选择了更常用的JSON格式。 另外,高德开放平台也提供相似的服务,并且其官方文档详细介绍了如何调用地理位置解析接口完成从结构化地址到坐标点之间的相互转化过程[^2]。 #### 高德地图API示例 以下是采用PHP语言编写的一个简单实例,用于演示怎样借助于高德Web Service API执行逆地理编码操作从而获得指定地点的确切经度纬度值: ```php <?php $address = urlencode("北京市朝阳区阜通东大街6号"); $key = "您自己的key"; $url = "https://restapi.amap.com/v3/geocode/geo?address=$address&key=$key"; $response = file_get_contents($url); $data = json_decode($response, true); if ($data['status'] == '1' && $data['info'] == 'OK') { echo "Location: " . $data['geocodes'][0]['location']; } else { echo "Error occurred."; } ?> ``` 腾讯地图同样具备此类能力,只需在HTML页面内的`<head>`部分加入相应的JavaScript SDK加载语句即可快速上手开发基于浏览器端的地图应用程序[^3]。 以上三种方案均能有效地帮助开发者实现在互联网环境中依据自然语言表述的位置名称检索出精确的空间定位信息的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值