Ric*_*zek 3 api distance geospatial nearest-neighbor
在PHP/Zend中使用SaaS应用程序,并希望为用户提供按邻居搜索以及邮政编码半径的功能.我们一直在努力寻找美国的一个不错的邻居数据库,但到目前为止只找到了非常昂贵的资源.
有没有人通过邮政编码或lat/long找到/建立邻居数据库?
Ric*_*zek 14
刚刚找到了一种从2个数据源创建自己的Neighborhood数据库的方法.一个是带有Lat/Long Centroids的美国邮政编码的完整文件.另一个是来自USGS的免费文件,发现于http://geonames.usgs.gov/domestic/download_data.htm
好消息是USGS文件有一个名为"填充场所"的特征类型,在城市地区包含邻域名称.我对Urbanmapping进行了测试,对于旧金山和亚特兰大,它只有1个邻居名称(通过Neighborhood API演示).
由于邮政编码文件和USGS文件都有纬度/长度,因此唯一要做的就是将邻域名称与邮政编码相关联.为此,您可以使用以下等式计算所有邮政编码纬度/经度和所有填充位置纬度/经度之间的距离,然后根据您想要包含的距离进行选择.我使用5英里半径的拉链质心.这是等式:
((ACOS(SIN('.$ latitude.'*PI()/ 180)*SIN(纬度*PI()/ 180)+ COS('.$纬度.'*PI()/ 180)*COS(纬度)*PI()/ 180)*COS(('.$ longitude.' - 经度)*PI()/ 180))*180/PI())*60*1.1515)AS距离
希望这可以帮助其他人解决同样的问题,并且很难证明许可这些数据的成本(这对于初创公司来说是巨大的).