我会如何将地址或城市转换为纬度/经度?有商业装备可以“租赁”这项服务吗?这将用于具有全时互联网访问的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地图本身也使用了相同的功能。 (请注意,这里有一些例外情况,例如英国或以色列,其中数据来自不同来源且质量略有下降)
嘿,这很酷。感谢您指出。 – 2008-09-19 00:58:36
请注意Google地图常见问题中的以下内容:“...并注意,除了获取将使用Google Maps API显示的位置之外,将地理编码器用于任何目的都违反了服务条款。” – 2011-08-09 15:31:18
您想要一个地理编码应用程序。这些可以在线或作为应用程序后端提供。
网上申请:
- 谷歌有一个geocoding API
后端应用:
Maptsraction(http://www.mapstraction.com)允许您在任意数量的地理编码服务之间进行选择。如果您需要大量制作,这可能会有所帮助,因为我知道Google每天可以做多少次限制。
Virtual Earth做到了。还有一个网络服务geocoder.us
当您将地址或对象转换为经纬度时,称为地理编码。
周围有很多地理编码解决方案。适合您项目的解决方案取决于每个地理编码解决方案的许可条款的可接受性。无论微软虚拟地球和谷歌地图提供的解决方案,是免费的下一个非常严格的许可证才能使用......
http://code.google.com/apis/maps/documentation/services.html
Yahoo! Maps Web Services - Geocoding API精确地理编码英国邮政编码不像谷歌的API 。
不幸的是雅虎已否决这项服务,你可以参观http://developer.yahoo.com/geo/placefinder/对雅虎的服务
我们发现雅虎是最准确的。 – 2008-10-17 19:12:38
@Mike;我们也做了 – chelmertz 2009-12-01 14:36:31
前滚行我自己的解决方案,这一点,我可以全心全意建议Geo::Coder::US Perl模块,为此。只需下载所有人口普查数据,并使用包含的导入程序为您的国家创建伯克利数据库,并将Perl脚本指向它。使用模块的内置地址解析功能,您可以拥有它:一种离线地理编码系统!
没有太多新增功能,但我从以前的工作中获得了很多GIS和地理编码方面的实际经验。下面是我记得的:
如果在应用程序中每隔一段时间需要一次,我肯定会推荐Google或Yahoo Geocoding API,但要小心阅读其许可条款。
我知道Google Maps API即使是商业网页也很容易获得许可,但不能用于付费访问的情况。换句话说,您可以使用它来宣传或提供推动广告收入的服务,但您无法向人们收取访问您的网站或甚至将其置于密码系统之后的费用。
尽管有这些限制,但它们都是很好的选择,因为它们经常更新街道数据库。大多数免费的后端工具和库都使用不经常更新的人口普查和TIGER道路数据,因此您不太可能在快速增长的地区或新的细分中成功地理地址代码。
大多数服务还会限制您每天可以进行的地理编码查询的次数,因此可以查找已添加到数据库的新客户的地址,但如果您运行的批量作业成千上万的地址从你的数据库到地理编码器,你将会关闭。
我不认为这一个已被提及,但ESRI有ArcWeb web services,包括地理编码,虽然他们不是很便宜。上次我使用它们时,每次查找的成本大约为1.5cents,但您必须预付一定数量才能开始。其主要优点是他们使用的道路数据能够及时更新,并且您可以在Google不允许的商业情况下使用这些数据。 ArcWeb服务还将提供高分辨率卫星和航拍照片a la谷歌地图,每个请求再次定价。
如果你想推出自己的或有更准确的数据访问,你可以购买像TeleAtlas这样的公司的GIS数据订阅,但这并不便宜。如果您的需求非常地方化,您只能购买州或县的数据。有几层数据 - 只有GIS功能,地理信息系统和详细的街道,所有这些以及地理编码数据,所有这些数据加上路线的交通流量/方向/速度限制。当然,价格会随着上涨而上涨。
最后,关于Geocoding的维基百科文章有关于算法和技术的一些很好的信息。即使您没有在自己的代码中执行此操作,了解各种数据源可能会出现的错误和准确性也很有用。
您也可以尝试OpenStreetMapNameFinder(或当前的Nominatim),其中包含(可能)整个世界的开放源代码,类似wiki的街道数据。
USC WebGIS Geocoder是免费的,并提供了几个API,或者您可以上传数据库进行在线批处理。
您可以使用Microsoft的MapPoint Web服务。
我创建了一个blog entry关于如何将地址转换为GeoCode(lat/long)。
您可以使用Bing地图SOAP服务,在这里你可以参考的反向地理编码服务查找/纬从地址 这里是链接 http://msdn.microsoft.com/en-us/library/cc980922.aspx
以为我会再添加一个到列表中。德克萨斯A & M有一个在这里的价格相当体面的服务:http://geoservices.tamu.edu/Services/Geocode/
,如果你有一个相当大的组地址进行地理编码,不想拍10K到谷歌或微软一个很好的选择。我们仍然使用Google Map中的返回数据。
尝试用这个代码,我这样的工作与地址:
它是链接与GET方法,你会发送请求并得到纬度和经度。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.创建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.发送请求创建方法
@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.解析的JSONObject
现在结果是JSONObject的有关地址和LAN,LNG信息。 用gson()解析JSONObject(结果)。 之后,使用lat,lng。
如果您有关于代码的问题,请询问。
您在询问Geocoder。 Google为此提供了一个API。 也是这样的另一个提供者。
你可以看到实施的My Current Location .NET演示
如果你需要一个一次性的解决方案,你可以尝试:https://addresstolatlong.com/
我已经使用了很长一段时间,它有为我工作得很好。
- 1. 如何将地址从Firebase转换为纬度和经度
- 2. Rails:Geokit错误地将IPv4地址转换为经度和纬度
- 3. 将地址转换为经度和纬度
- 4. 将地址转换为经度和纬度在php
- 5. 将燃烧的男子地址转换为纬度/经度
- 6. 我们如何将经纬度转换为网站的地址?
- 7. 如何将经纬度转换为邮政地址
- 8. 如何将UTM转换为经纬度?
- 9. 将地址转换为谷歌地图的经纬度iPhone
- 10. 如何将地理单元转换为纬度/经度?
- 11. 将MKMapRect.origin转换为经度和纬度
- 12. 将“GLNX/Y”转换为经度,纬度
- 13. 纬度经度的地址
- 14. 纬度和经度地址
- 15. 如何转换经纬度?
- 16. 在地图上将经度和纬度转换为X Y
- 17. 将纬度/经度转换为svg地图上的点
- 18. 将纬度经度坐标转换为图像地图坐标
- 19. 将IP地址转换为纬度/经度坐标的工具或PHP代码
- 20. 将地区纬度经度/经度转换为近似缩放水平
- 21. 从经度,纬度转换为x,y
- 22. 如何在arcgis android中将点转换为经度和纬度?
- 23. 如何将WellKnownBinary和CoordinateSystemId转换为经度和纬度
- 24. 如何在Java中将纬度和经度转换为x,y?
- 25. 如何将EPSG坐标转换为经度/纬度?
- 26. 如何将谷歌纵横经纬度转换为GoogleMaps中Swift中的地址?
- 27. 如何将旋转的NetCDF转换回正常纬度/经度?
- 28. 将纬度替换为经度
- 29. 店经度和纬度IOS地址簿
- 30. GoogleMaps API - 坐标(经度,纬度)地址
似乎是一个副本http://stackoverflow.com/questions/158474/how-to-obtain-longitude-and-latitude-for-a-street-address-programmatically-and-l – Guillaume 2009-01-15 09:41:45
Christian:The * Latitude *标签拼写正确。见:http://en.wikipedia.org/wiki/Latitude – 2011-07-09 18:30:23