当前位置: 首页 > 工具软件 > api-php > 使用案例 >

百度地图开放平台 Web服务API --Geocoding API (地理编码和逆地理编码)

吴嘉禧
2023-12-01

   百度地图开放平台地理编码服务和逆地理编码服务的api文档地址:http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding

     Geocoding API 是一类接口,用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,用户可以使用C# 、C++、Java等开发语言发送请求且接收JSON、XML的返回数据。

     Geocoding API 已全面支持HTTP/HTTPS两种请求形式。

地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”。同时,地理编码也支持名胜古迹、标志性建筑名称直接解析返回百度经纬度,例如:“百度大厦”地址解析的结果是“lng:116.30815,lat:40.056885” ,通用的POI检索需求,建议使用Place API。

逆地理编码:即逆地址解析,由百度经纬度信息得到结构化地址信息,例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。

  以下是用来测试的PHP代码:

<?php
	header("Content-type:text/html;charset=utf-8");
	// 百度地理编码服务
	$ak="SlKGotyLwOjjBUR2ZGb7uKAlO59FqHVY";
	$output="json";
	$callback="showLocation";
	$address="南宁市兴宁区朝阳广场";
	$city="南宁市";
	$url="http://api.map.baidu.com/geocoder/v2/?output=$output&address=$address&city=$city&ak=$ak";
	$res=getData($url);
	$res=json_decode($res,true);
	echo "<pre>";
	print_r($res);
	if($res['status']==0){
		// 经纬度
		$lng=$res['result']['location']['lng'];
		$lat=$res['result']['location']['lat'];
	}else{
		exit("百度地理编码服务出错,获取不到经纬度!");
	}
	

	// 百度逆地理编码服务
	$ak="SlKGotyLwOjjBUR2ZGb7uKAlO59FqHVY";
	$location=$lat.",".$lng;
	$output="json";
	$url="http://api.map.baidu.com/geocoder/v2/?location=$location&output=$output&ak=$ak";
	$data=getData($url);
	$data=json_decode($data,true);
	print_r($data);

	/*
	 * 用GET方式获取指定URL的数据
	 */
	function getData($url){
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		$result = curl_exec($ch);
		curl_close($ch);
		return $result;
	}
?>
网页输出结果如下:
Array
(
    [status] => 0
    [result] => Array
        (
            [location] => Array
                (
                    [lng] => 108.32766625111
                    [lat] => 22.825109768923
                )

            [precise] => 1
            [confidence] => 80
            [level] => UNKNOWN
        )

)

Array
(
    [status] => 0
    [result] => Array
        (
            [location] => Array
                (
                    [lng] => 108.32766625111
                    [lat] => 22.825109774287
                )

            [formatted_address] => 广西壮族自治区南宁市兴宁区人民东路236号
            [business] => 朝阳,区工商局,龙腾路
            [addressComponent] => Array
                (
                    [country] => 中国
                    [country_code] => 0
                    [province] => 广西壮族自治区
                    [city] => 南宁市
                    [district] => 兴宁区
                    [adcode] => 450102
                    [street] => 人民东路
                    [street_number] => 236号
                    [direction] => 东
                    [distance] => 75
                )

            [pois] => Array
                (
                )

            [poiRegions] => Array
                (
                    [0] => Array
                        (
                            [direction_desc] => 内
                            [name] => 朝阳广场
                            [tag] => 休闲娱乐
                        )

                )

            [sematic_description] => 朝阳广场内
            [cityCode] => 261
        )

)


 





 类似资料: