我如何将地址或城市转换为纬度/经度?我可以"租用"这项服务的商业服装吗?这将用于具有全时Internet访问权限的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通常很容易获得商业网页的许可,但不能用于付费访问的情况.换句话说,您可以使用它来宣传或提供可以带来广告收入的服务,但您不能向人们收取费用来访问您的网站,甚至不能将其置于密码系统之后.
尽管存在这些限制,但它们都是很好的选择,因为它们经常更新街道数据库.大多数免费后端工具和库使用不经常更新的Census和TIGER道路数据,因此您不太可能在快速增长的区域或新的细分中成功地对地址进行地理编码.
大多数服务还限制了您每天可以进行的地理编码查询的数量,因此可以查找添加到数据库中的新客户的地址,但是如果您运行的批处理作业可以从中提供数千个地址你的数据库进入地理编码器,你将被关闭.
我不认为这个已被提及,但ESRI有ArcWeb网络服务,包括地理编码,虽然它们不是很便宜.上次我使用它们每次查询花费大约1.5美分,但你必须预付一定金额才能开始使用.同样,主要优势在于他们使用的道路数据能够及时更新,您可以在Google不允许的商业环境中使用这些数据.该服务的ArcWeb还将成为了高分辨率卫星和航拍照片一拉谷歌地图,每次请求重新定价.
如果您想自己动手或可以访问更准确的数据,您可以从TeleAtlas等公司购买GIS数据订阅,但这并不便宜.如果您的需求非常本地化,您只能购买州或县的数据.有几层数据 - 仅GIS功能,GIS加上详细的街道,所有这些加上地理编码数据,所有这些都加上了路由的交通流量/方向/速度限制.当然,随着你上层,价格会上涨.
最后,关于地理编码的维基百科文章提供了有关算法和技术的一些很好的信息.即使您没有在自己的代码中执行此操作,了解各种数据源可能出现的错误和准确性也很有用.
雅虎 Maps Web Services - 地理编码API与Google的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/
将地址或对象转换为纬度/经度时,称为地理编码.
有很多地理编码解决方案.适合您项目的解决方案取决于每种地理编码解决方案的许可条款的可接受性.Microsoft Virtual Earth和Google Maps都提供可在非常严格的许可下免费使用的解决方案......
http://code.google.com/apis/maps/documentation/services.html
http://www.microsoft.com/virtualearth/product/faq.aspx
我之前已经为此推出了自己的解决方案,我可以全心全意地为此推荐Geo :: Coder :: US Perl模块.只需下载所有人口普查数据并使用随附的导入程序为您所在的国家/地区创建Berkeley数据库,并将Perl脚本指向它.使用模块的内置地址解析,你就拥有它:一个离线地理编码系统!