什么是Geocoding?
Geocoding API是一个供程序员调用的、http形式的地图服务接口。主要服务那些非网页程序的调用。例如C# 、C++、Java等开发语言都能发送http请求且能接收返回数据。
用户只需在请求的url字串中拼接好关键字或者经纬度信息,即可获取到相应的百度经纬度或者结构化地理信息。
Geocoding API有哪些功能?
Geocoding API包括地址解析和逆地址解析功能。
- 地址解析是指,由详细到街道的结构化地址得到百度经纬度信息,且支持名胜古迹、标志性建筑名称直接解析返回百度经纬度。例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”,“百度大厦”地址解析的结果是“lng:116.30815,lat:40.056885”
- 逆地址解析是指,由百度经纬度信息得到结构化地址信息。例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。
注意:
1.因为Geocoding和反Geocoding使用的门址数据以及算法都不是一样的,所以会出现不能一一对应的现象。
2.解析过程中可能会出现一对坐标值对应多个地址门牌信息,本接口将返回距离坐标点最近的一个地址门牌信息。
使用限制
目前无任何使用限制。请申请key,然后使用该接口。
如何使用
第一步,申请key,点击这里获取密钥,申请key需要注册百度账号;
第二步,拼写发送http请求的url,注意需使用第一步申请的key;
第三步,接收http请求返回的数据(支持json和xml格式)。
服务地址
- 地址解析:根据地址获取坐标
http://api.map.baidu.com/geocoder?address=地址&output=输出格式类型&key=用户密钥&city=城市名
- 逆地址解析:根据坐标获取地址
http://api.map.baidu.com/geocoder?location=纬度,经度&output=输出格式类型&key=用户密钥
备注:
1. city属于可选参数,通常情况可以不使用,若解析无结果,请尝试增加此字段。
2. 支持名胜古迹、标志性建筑物名称解析返回百度经纬度坐标,如address=“百度大厦”。
3. 支持使用“*路与*路交叉口”方式解析返回百度经纬度坐标,若地址库中存在该地址描述,返回百度经纬度坐标。
4. 若解析status字段为OK,若结果内容为空,原因分析及可尝试方法:
- 地址库里无此数据,本次结果为空。
- 加入city字段重新解析;
- 将过于详细或简单的地址更改至省市区县街道重新解析;
5. 特别提醒:逆地址解析location参数传入的参数格式是(纬度lat,经度lng)。
接口参数
output | 否 | json | json或xml | 输出格式为json或者xml |
address | 是 | 无 | 北京市海淀区上地十街10号 | 根据指定地址进行坐标的反定向解析 |
location | 是 | 无 | 38.76623,116.43213 lat<纬度>,lng<经度> |
根据指定坐标来进行地址的解析 |
city | 否 | “北京市” | “广州市” | 地址所在的城市名 |
key | 是 | 无 | 8cb976834235d8cbcde2dce4835ae191 | 用户申请注册的key |
上表中address和location两个字段如果同时出现,则优先选择address执行地理编码功能。对于address字段可能会出现中文或其它一些特殊字符(如:空格),所以对于类似的字符都要进行编码处理,编码成 UTF-8 字符的二字符十六进制值,凡是不在下表中的字符都要进行编码。
URL非保留字 | a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 - _ . ~ |
URL保留字 | ! * ' ( ) ; : @ & = + $ , / ? % # [ ] |
附注:
(1) javascript中一般采用encodeURIComponent函数对特殊字符进行编码。
(2) Java中可以使用函数URLEncoder.encode对特殊字符进行编码。
(3) C#中可以使用函数HttpUtility.UrlEncode对特殊字符进行编码。
(4) php中可以使用函数urlencode对特殊字符进行编码。
返回数据说明
返回结果(地址解析的结果)
{status: '字符串状态常量', 取值如下: //OK 成功 INVILID_KEY 非法密钥 INVALID_PARAMETERS 非法参数,参数错误时候给出。 result: { location: { lat: 纬度:数值, lng: 经度:数值 }, precise:’位置的附加信息,是否精确查找’(1为精确查找,0为不精确查找), confidence: 可信度, level:'级别' }, }
返回结果(反地址解析的结果)
{status: '字符串状态常量', 取值如下: //OK 成功 INVILID_KEY 非法密钥 INVALID_PARAMETERS 非法参数,参数错误时候给出。 result: { location: { lat: 纬度:数值, lng: 经度:数值 }, formatted_address: ‘详细地址描述’, business: '周围商圈', addressComponent:{ city:’城市名称’, district: ‘区县名称’, province:’省份名称’, street: ‘街道名称’, streetNumber: '门牌号码' }, cityCode: '城市代码' } }
接口示例
根据详细地址获取坐标
//根据“上地十街10号”返回坐标“lng:116.307175, lat:40.057098”,以json格式输出
//根据“上地十街十号”返回坐标“lng:116.307175, lat:40.057098”,以xml格式输出
在指定城市内检索详细地址的坐标
// 在北京市内根据“上地十街10号”返回坐标“lng:116.307175, lat:40.057098”,以json格式输出
// 在北京市内根据“上地十街10号”返回坐标“lng:116.307175, lat:40.057098”,以json格式输出
根据特定建筑物获取它的坐标
http://api.map.baidu.com/geocoder?address=%E7%99%BE%E5%BA%A6%E5%A4%A7%E5%8E%A6&output=json&key=37492c0ee6f924cb5e934fa08c6b1676 //根据“百度大厦”名称返回坐标“lng:116.307175, lat:40.057098”,以json格式输入
http://api.map.baidu.com/geocoder?address=%E7%99%BE%E5%BA%A6%E5%A4%A7%E5%8E%A6&output=xml&key=37492c0ee6f924cb5e934fa08c6b1676 //根据“百度大厦”名称返回坐标“lng:116.307175, lat:40.057098”,以xml格式输入
根据“*路与*路交叉路口”类型地址描述获得它的坐标
//根据“北一环路和阜阳路的交叉路口”名称返回坐标“lng:117.294364, lat:31.885558”,以json格式输入
//根据“北一环路和阜阳路的交叉路口”名称返回坐标“lng:117.294364, lat:31.885558”,以xml格式输入
根据坐标获取它的地址
//解析“lat:39.983424, lng:116.322987”坐标返回“北京市海淀区中关村大街27号1101-08室”,以json格式输出
//解析“lat:39.983424, lng:116.322987”坐标返回“北京市海淀区中关村大街27号1101-08室”,以xml格式输出
参考地址:http://developer.baidu.com/map/geocoding-api.htm#.E5.A6.82.E4.BD.95.E4.BD.BF.E7.94.A8
相关推荐
首先,`googleMap根据经纬度获取地理位置`这个标题涉及到的核心技术是Google Maps Geocoding服务。Geocoding是将地址或坐标(经纬度)转换为地理坐标的过程,反之亦然。在Google Maps API中,我们可以使用Geocoding ...
在IT行业中,跨平台的地理信息系统(GIS)应用经常需要处理不同地图服务商的数据。本示例主要关注如何在C# WinForm应用中实现百度地图经纬度到腾讯地图经纬度的转换,这对于那些需要在不同地图服务之间进行路径规划...
根据GoogleMapApi给出地名获取经纬度,给出经纬度获取地名(Java版本) RT
高德地图经纬度转地理位置,地理位置转经纬度,json解析
在网络定位中,可以通过经纬度信息查询百度地图API的反地理编码服务,获取到具体的位置信息,如街道、城市等。同时,如果设备支持GPS,还可以获取更精确的卫星定位数据。 在Android项目中,`AndroidManifest.xml`...
一个google map小应用 应用google map api可以获得点的经纬度并且可以根据地理位置名称定位。
总结起来,C#结合百度地图API获取经纬度所在地理位置的核心在于构造正确的API请求,解析返回的JSON数据,并从中提取出所需信息。实际开发中,可能还需要处理网络异常、权限验证等问题,确保程序的健壮性。同时,注意...
总的来说,通过高德地图API,开发者可以方便地获取到地理位置的经纬度,并在地图上进行展示。这在各种应用场景中都十分有用,比如导航、位置分享、附近搜索等。在实际开发过程中,还需要注意高德地图API的使用限制和...
百度地图API提供了逆地理编码接口,允许开发者通过输入地址字符串来获取对应的经纬度坐标。 要使用百度地图API进行地址解析,你需要注册一个百度开发者账号并创建一个应用,获取到API密钥(AK)。这个密钥是你在...
本主题聚焦于如何调用百度地图API来获取地图上的经纬度信息,并实现定位特效。百度地图API是一个强大的工具,提供了丰富的地图服务,包括地图展示、定位、路线规划等。 首先,我们需要了解经纬度系统。在地理坐标...
除了Google Maps API,其他地图服务提供商也有类似的方法来获取点击位置的经纬度,比如高德地图的`AMap.event.addListener(map, 'click', function(e) {...})`和百度地图的`BMap.Map.addEventListener('click', ...
综合上述内容,我们可以了解到,通过Google地图API获取地区经纬度信息是一个涉及网络编程、数据解析和地理知识的复杂过程。开发者在实际应用中需要按照Google地图API的文档进行编程,并根据业务需求灵活地处理和使用...
获取51map的经纬度获取51map的经纬度
在IT行业中,尤其是在开发地理位置相关的应用时,获取地图上的经纬度信息是非常常见的需求。本教程将详细介绍如何在C#环境中利用JavaScript与百度地图API交互,从而实现获取地图上的经纬度功能。 首先,我们需要...
使用google地图的反向地址解析功能,提供一个经纬度得到对应地址,或者给出模糊地址,得到经纬度,放在java后台代码中处理,这个使用的是Google的地理编码服务。一般而言数据量不大的情况使用是不限制的。按照Google...
最近在做一个车辆调度的应用系统,需要根据车辆和站点的位置做相应的规划,因此要调用第三方的地图接口来获取经纬度等信息。这里,我选择的是高德平台,下面是一个从注册到简单使用的例子,可供大家学习参考,更深入...
在IT领域,获取地图上的经纬度是一项常见的任务,尤其在地理信息系统(GIS)和移动应用开发中。这个压缩包文件“点击地图获取经纬度.rar”很可能包含了一个示例或者工具,帮助开发者实现这一功能。下面将详细介绍...
QT5使用百度地图实现经典经纬度查询的知识点涵盖了多个方面,包括QT框架的理解与应用、C++编程基础、网络通信以及地图API的使用。以下是对这些知识点的详细说明: 1. **QT框架**:QT是跨平台的应用程序开发框架,...
实现通过GPS或NetWork获取当前位置的经纬度,并且在Google Map Android v2上显示
在网页开发中,有时我们需要获取特定位置的经纬度信息,比如使用百度地图API。这篇教程将详细介绍如何在网页中实现这一功能,特别是针对百度地图API的使用。 首先,要获取百度地图的经纬度,我们需要引入百度地图的...