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

8 篇文章 0 订阅

   百度地图开放平台地理编码服务和逆地理编码服务的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
        )

)


 





  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值