英国邮政编码 - >坐标:可能纯粹在PHP?

时间:2010-06-25 11:26:21

标签: php mysql google-maps

假设有一个带有这些cols的mysql数据库:

| house | postcode | lat | lon |

邮政编码完成但是lat和lon是空的。  我想写/找到一个我可以运行一次的脚本来完成表格。

这可能纯粹是在php(任何提示吗?)或者我需要使用javascript api和$ _POST到php文件吗?

3 个答案:

答案 0 :(得分:2)

无需任何外部API

英国邮政编码数据现在可从Ordnance Survey CodePoint免费获取,作为可下载的一系列CSV文件(2009年2月);但不幸的是,位置点是使用Northing / Eastings而不是纬度和经度存储的。

您需要将Northings / Eastings转换为纬度/经度。网上有很多关于此的文章,例如

 http://www.deepbluesky.com/blog/-/converting-os-coodinates-into-longitude-latitude_7/
 http://mediakey.dk/~cc/convert-northing-and-easting-utm-to-longitude-and-latitude/

但你需要知道OS Northings / Eastings是基于Airy 1830椭球而不是谷歌地图(和大多数GSM系统)使用的WGS84模型。不允许这种差异可以让你在康沃尔和东安格利亚之间的70-120米之间。

使用PHP,这种转换的最佳解决方案是Jonathan Stott的PHPCoord

答案 1 :(得分:0)

PHP可以通过file_get_contentscURL等HTTP请求访问XML / JSON API。

http://code.google.com/apis/maps/documentation/geocoding/

答案 2 :(得分:0)

这可以完全用PHP完成,依赖于一些为你提供lat / lon数据的外部API。

通常,Web API并不关心在其客户端上运行的语言。使用“JavaScript API”,您可能意味着以一种JavaScript友好格式(如JSON)返回数据的服务。但是,JSON不必由JavaScript程序处理; PHP程序可以很好地解析它。