知道经纬度能知道详细经纬度地址吗?

怎样知道自己所在地的经纬度
怎样知道自己所在地的经纬度
09-10-13 &匿名提问
最简单的方法是买一个卫星导航设备,上面显示的就是所在位置的经纬度.而且比较准确.一般大一点的船上都有的.如果你的手机支持GPRS上网的话,可以下载安装一个导航地图,在使用地图进行导航的过程中会会显示当前所在的位置.
请登录后再发表评论!Google Maps API Web Services,是一个为您的地图应用程序提供地理数据的 Google 服务的 HTTP 接口集合。具体包括:Google Geocoding API、Google Directions API、Google Elevation API、Google Places API。本文将探讨如何通过Google Geocoding API服务来获取地址信息。
1. 什么是网络服务?
Google Maps API 提供这些网络服务作为从外部服务中请求 Google Maps API 数据以及在您的地图应用程序中使用它们的接口。这些网络服务使用特定网址的 HTTP 请求并将网址参数作为参数提供给服务。一般来讲,这些服务会在 HTTP 请求中以 JSON 或 XML 的形式传回数据,供您的应用程序进行解析和/或处理。
一个典型的网络服务请求通常采用以下形式:
http:///maps/api/service/output?parameters
其中 service 表示所请求的特定服务,output 表示响应格式(通常为 json 或 xml)。
2.地址解析与反地址解析
地址解析是将地址(如&1600 Amphitheatre Parkway, Mountain View, CA&)转换为地理坐标(如纬度 37.423021 和经度 -122.083739)的过程,您可以根据转换得到的坐标放置标记或定位地图。Google Geocoding API 可让您通过 HTTP 请求直接访问地址解析器。此外,该服务还可让您执行反向操作(将坐标转换为地址),此过程称为&反向地址解析&(地址查询)。
3. 地址查询(反向地址解析)请求
Google Geocoding API 请求必须采用以下形式:
http:///maps/api/geocode/output?parameters
其中,output 可以是以下值之一:
json(建议)表示以 JavaScript 对象表示法 (JSON) 的形式输出
xml 表示以 XML 的形式输出
有些参数是必需的,有些是可选的。根据网址的标准,所有参数均使用字符 & (&) 分隔。下面枚举了这些参数及其可能的值。
Google Geocoding API 使用以下网址参数定义地址查询请求:
latlng(必需)- 您希望获取的、距离最近的、可人工读取地址的纬度/经度文本值。
bounds(可选)- 要在其中更显著地偏移地址解析结果的可视区域的边框。
region(可选)- 区域代码,指定为 ccTLD(&顶级域&)双字符值。
language(可选)- 传回结果时所使用的语言。请注意,我们会经常更新支持的语言,因此该列表可能并不详尽。如果未提供 language,地址解析器将尝试尽可能使用发送请求的区域的本地语言。
sensor(必需)- 指示地址解析请求是否来自装有位置传感器的设备。该值必须为 true 或 false。
注意:bounds 和 region 参数只会影响地址解析器返回的结果,但不能对其进行完全限制。
实例一:创建查询坐标(39..403945)的地址信息的请求,要求以xml格式输出响应,语言为简体中文(zh-CN)。
http:///maps/api/geocode/xml?latlng=39..403945&language=zh-CN&sensor=false
注意:经纬度书写的顺序为(纬度,经度)。
实例二:利用C#在客户端程序中创建上述请求。
1 WebClient client = new WebClient();2 string url = "/maps/api/geocode/xml?latlng=39..403945&language=zh-CN&sensor=false";3 client.Encoding = Encoding.UTF8;4 string responseTest = client.DownloadString(url);
4. 地址查询(反向地址解析)响应
地址解析响应将以网址请求路径中的 output 标记所指示的格式传回。XML 响应包含一个 &GeocodeResponse&和两个顶级元素:
&status& 包含请求中状态代码。(非常重要)
零或多个 &result& 元素,每个元素都包含单独的一组地址解析地址信息和几何图形信息。
地址解析响应对象中的 "status" 字段包含请求的状态,并且可能包含调试信息,以帮助您追溯地址解析未正常工作的原因。
"status" 字段可能包含以下值:
"OK" 表示未发生错误;地址成功进行了解析并且至少传回了一个地址解析结果。(判断请求是否成功响应)
"ZERO_RESULTS" 表示地址解析成功,但未返回结果。如果地址解析过程中传递的偏远位置 address 或 latlng 并不存在,则会出现这种情况。
"OVER_QUERY_LIMIT" 表示您超出了配额。
"REQUEST_DENIED" 表示您的请求被拒绝,通常是由于缺少 sensor 参数。
"INVALID_REQUEST" 通常表示缺少查询参数(address 或 latlng)。
实例一:在IE浏览中输入上述实例一中的请求,查看响应结果。
浏览器中显示如下信息(该截图只是响应结果的部分信息):
实例二:通过控制台输出上述实例二的响应。
1 using S 2 using System.Collections.G 3 using System.L 4 using System.T 5 using System.N 6
7 namespace GeoCodeTest 8 { 9
class Program10
static void Main(string[] args)12
WebClient client = new WebClient();14
string url = "/maps/api/geocode/xml?latlng=39..403945&language=zh-CN&sensor=false";15
client.Encoding = Encoding.UTF8;16
string responseTest = client.DownloadString(url);17 18
Console.Write("{0}",responseTest);19 20
Console.Read();21 22
输出结果(该截图只是响应结果的部分信息):
5. 处理响应结果
通过上述内容,我们已经能够得到xml响应信息。但是,响应结果包含很多信息,因此我们需要解析出需要的地址信息。具体实现过程为:
第一步:判断status的状态信息。
第二步:获取formatted_address 地址信息。
注意:formatted_address是一个字符串,包含此位置的人类可读地址。通常该地址相当于&邮政地址&,有时会因不同国家/地区而存在差异。
实现代码如下:
1 using S 2 using System.Collections.G 3 using System.L 4 using System.T 5 using System.N 6 using System.X 7
8 namespace GeoCodeTest 9 {10
class Program11
static void Main(string[] args)13
WebClient client = new WebClient();//webclient客户端对象15
string url = "/maps/api/geocode/xml?latlng=39..403945&language=zh-CN&sensor=false";//请求地址16
client.Encoding = Encoding.UTF8;//编码格式17
string responseTest = client.DownloadString(url);//下载xml响应数据18 19
XmlDocument doc = new XmlDocument();//创建XML文档对象20 21
if(!string.IsNullOrEmpty(responseTest))22
doc.LoadXml(responseTest);//加载xml字符串24 25 //获取状态信息26
string xpath = @"GeocodeResponse/status";27
XmlNode node = doc.SelectSingleNode(xpath);28
string status = node.InnerText.ToString();29
if(status == "OK")31
//获取地址信息33
xpath = @"GeocodeResponse/result/formatted_address";34
node = doc.SelectSingleNode(xpath);35
string address = node.InnerText.ToString();36 37
Console.WriteLine("地址:{0}",address);//输出地址信息38
Console.Read();44 45
输出结果:
阅读(...) 评论()8122人阅读
用百度地图根据经纬度来获取地址
一. 用百度地图根据经纬度来获取地址
第一步,创建地理编码检索实例;
mSearch = GeoCoder.newInstance();
第二步,创建地理编码检索监听者;
OnGetGeoCoderResultListener listener = new OnGetGeoCoderResultListener() {
public void onGetGeoCodeResult(GeoCodeResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
第三步,设置地理编码检索监听者;
mSearch.setOnGetGeoCodeResultListener(listener)
第四步,发起地理编码检索;
.reverseGeoCode(new ReverseGeoCodeOption()
.location(new LatLng(120.123, 108.456)));
第五步,释放地理编码检索实例;
mSearch.destroy()
二. 用百度地图根据地址来获取经纬度
第一步,创建地理编码检索实例;
mSearch = GeoCoder.newInstance();
第二步,创建地理编码检索监听者;
OnGetGeoCoderResultListener listener = new OnGetGeoCoderResultListener() {
public void onGetGeoCodeResult(GeoCodeResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
第三步,设置地理编码检索监听者;
mSearch.setOnGetGeoCodeResultListener(listener)
第四步,发起地理编码检索;
mSearch.geocode(new GeoCodeOption()
.city(“北京”)
.address(“海淀区上地十街10号”)
第五步,释放地理编码检索实例;
mSearch.destroy()
三. 坐标转换API
直接访问一url即可根据经纬度获取相应地址
android应用访问的url实例:
其中location为经纬度,ak为你在百度api控制台中创建的android应用的秘钥,mcode为你在百度api控制台中创建的android应用的安全码
2. 服务端应用访问的url实例(当然手机端一样可以使用):
其中location为经纬度,ak为你在百度api控制台中创建的服务端应用的秘钥
通过url方式,根据经纬度来获取详细地址会有次数限制,如果手机端开发还是建议使用上面的方式。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11123次
排名:千里之外
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'

我要回帖

更多关于 知道经纬度查地址 的文章

 

随机推荐