如何将地址转换为纬度/经度?

我怎样才能将地址​​或城市转换为经纬度? 有商业服装可以“租”这项服务吗? 这将用于Windows PC上的商业桌面应用程序与全时互联网访问。

Google有一个地理编码API,对于大部分拥有Google地图数据的地点来说,似乎都能很好地工作。

http://googlemapsapi.blogspot.com/2006/06/geocoding-at-last.html

他们提供在线地理编码(通过JavaScript):

http://code.google.com/apis/maps/documentation/services.html#Geocoding

或后端地理编码(通过HTTP请求):

http://code.google.com/apis/maps/documentation/services.html#Geocoding_Direct

数据通常与Google地图本身使用的数据相同。 (请注意,这里有一些例外情况,例如英国或以色列,数据来自不同的来源,质量略有下降)

没有太多新的东西要添加,但是我从以前的工作中获得了很多GIS和地理编码方面的实际经验。 这是我记得的:

如果在应用程序中每隔一段时间需要一次,我肯定会推荐Google或Yahoo Geocoding API,但要小心阅读其许可条款。

我知道,即使是商业网页,Google Maps API通常也很容易获得许可,但不能用于付费访问的情况。 换句话说,您可以使用它来宣传或提供促进广告收入的服务,但是您不能向人们收取访问您的网站或甚至将其放在密码系统之后。

尽pipe有这些限制,但它们都是很好的select,因为它们经常更新街道数据库。 大多数免费的后端工具和库使用的人口普查和TIGER道路数据不经常更新,因此您不太可能在快速增长的地区或新的细分中成功地理地址代码。

大多数服务还会限制您每天可以进行的地理编码查询的数量,因此,可以查找添加到数据库中的新客户的地址,但是如果您运行的批量作业从数千个地址你的数据库到地理编码器,你会closures。

我不认为这个提到,但ESRI有ArcWebnetworking服务 ,包括地理编码,虽然他们不是很便宜。 上次我使用它们的时候,每次查找花费大约1.5次,但是你必须预付一定数量才能开始。 主要优点是他们使用的道路数据能够及时得到及时更新,并且您可以在Google不允许的商业情况下使用这些数据。 ArcWeb服务还将提供高分辨率的卫星和航拍照片,Google Maps也会根据请求定价。

如果您想自己推出或获得更准确的数据,您可以从TeleAtlas等公司购买GIS数据订阅,但这并不便宜。 如果您的需求非常地方化,您只能购买州或县的数据。 有几层数据 – 只有GISfunction,地理信息系统加上详细的街道,所有这些,加上地理编码数据,所有这些加上路线的交通stream量/方向/速度限制。 当然,价格会随着上涨而上涨。

最后,关于地理编码的维基百科文章有关于algorithm和技术的一些很好的信息。 即使您没有在自己的代码中执行此操作,了解您可以从各种数据源中得到何种错误和准确性也是非常有用的。

雅虎 地图networking服务 -与Google的API不同, 地理编码API能准确地对英国邮政编码进行地理编码 。

不幸的是,雅虎已经弃用这项服务,你可以访问http://developer.yahoo.com/geo/placefinder/为雅虎的服务;

试试这个: http : //maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway++Mountain+View,+CA&sensor=false

有关详情,请访问http://code.google.com/apis/maps/documentation/geocoding/

当你把一个地址或对象转换成经纬度时,它被称为地理编码。

有很多地理编码解决scheme。 适合您的项目的解决scheme将取决于每个地理编码解决scheme的许可条款的可接受性。 微软虚拟地球和谷歌地图提供的解决scheme可以在非常严格的许可下自由使用。

http://code.google.com/apis/maps/documentation/services.html

http://www.microsoft.com/virtualearth/product/faq.aspx

之前,我已经推出了自己的解决scheme,我可以全心全意地推荐Geo :: Coder :: US Perl模块。 只需下载所有人口普查数据,并使用包含的import商为您的国家创build伯克利数据库,并将Perl脚本指向它。 使用模块内置的地址parsingfunction,您可以拥有它:一个离线地理编码系统!

试试这个代码,我用这样的地址工作:

它是用GET方法发送请求并获取lat和lng的链接。 http://maps.google.com/maps/api/geocode/json?address=YOUR ADDRES&sensor = false

例如: http : //maps.google.com/maps/api/geocode/json?address=W Main St,Bergenfield,NJ 07621&sensor = false

1.创build你的GET方法。

public static String GET(String url) throws Exception {//GET Method String result = null; InputStream inputStream = null; try { HttpClient httpclient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); Log.v("ExecuteGET: ", httpGet.getRequestLine().toString()); HttpResponse httpResponse = httpclient.execute(httpGet); inputStream = httpResponse.getEntity().getContent(); if (inputStream != null) { result = convertInputStreamToString(inputStream); Log.v("Result: ", "result\n" + result); } } catch (Exception e) { e.printStackTrace(); } return result; } 

2.创build发送请求的方法

 @SuppressWarnings("deprecation") public static String getLatLng(String accessToken) throws Exception{ String query=StaticString.gLobalGoogleUrl+"json?address="+URLEncoder.encode(accessToken)+"&sensor=false"; Log.v("GETGoogleGeocoder", query+""); return GET(query); } 

gLobalGoogleUrl =“http://maps.google.com/maps/api/geocode/”;

3.调用方法getLatLng

 String result=getLatLng("W Main St, Bergenfield, NJ 07621"); 

4.parsingJSONObject

现在结果JSONObject与关于地址和lan,lng的信息。 使用gson()parsingJSONObject(result 。 之后用lat,lng。

如果您有关于代码的问题,请询问。

你想要一个地理编码应用程序。 这些可以在线或作为应用程序后端。

  • 在线申请:

    • Google有一个地理编码API
  • 后端应用程序:

    • GeoStan

Maptsraction( http://www.mapstraction.com )可让您在任意数量的地理编码服务中进行select。 如果您需要大量处理,这可能会有所帮助,因为我知道Google每天可以处理的数量有限。

虚拟地球做到了。 geocoder.us还有一个web服务

您也可以尝试OpenStreetMap NameFinder (或当前的Nominatim ),其中包含开放源代码,可能是整个世界的类似wiki的街道数据。

您可以使用bing地图肥皂服务,在这里您可以引用反向地理编码服务来查找纬度/经度从这里是链接http://msdn.microsoft.com/en-us/library/cc980922.aspx

雅虎 地图Web服务 – 地理编码API

USC WebGIS Geocoder是免费的,并提供了几个API,或者您可以上传数据库进行在线批处理。

您可以使用Microsoft的MapPoint Web服务。

我创build了一个关于如何将地址转换为GeoCode(lat / long)的博客条目 。

以为我会再增加一个名单。 得克萨斯州的A&M有一个相当体面的价格服务在这里: http : //geoservices.tamu.edu/Services/Geocode/

如果您有大量的地址进行地址parsing,并且不想将10k轻拍到Google或Microsoft,那么这是一个不错的select。 我们仍然使用Google Map中的返回数据。

你在问Geocoder。 Google为此提供了一个API。 另一个供应商也是如此。

您可以在My Current Location .net中看到实施演示