刚刚找到了一种从 2 个数据源创建我自己的 Neighborhood 数据库的方法。一个是带有纬度/经度质心的美国邮政编码的完整文件。另一个是来自美国地质调查局的免费文件,位于http://geonames.usgs.gov/domestic/download_data.htm
好消息是,USGS 文件有一个名为“Populated Places”的要素类型,在市区包含社区名称。我针对 Urbanmapping 进行了测试,针对旧金山和亚特兰大进行了测试,除了 1 个社区名称(通过 Neighborhood API 演示)之外,它只有一个。
由于邮政编码文件和 USGS 文件都有纬度/经度,唯一要做的就是将邻里名称与邮政编码相关联。为此,您可以使用以下等式并计算所有邮政编码 lat/long 和所有 Populated Place lat/long 之间的距离,然后根据您要包含的距离进行选择。我使用 5 英里半径作为 zip 质心。这是等式:
((ACOS(SIN('.$latitude.' * PI() / 180) * SIN(latitude * PI() / 180) + COS('.$latitude.' * PI() / 180) * COS(latitude * PI() / 180) * COS(('.$longitude.' – 经度) * PI() / 180))* 180 / PI()) * 60 * 1.1515) AS 距离
希望这可以帮助其他人在同样的问题上苦苦挣扎,并且很难证明许可这些数据的成本(这对于初创公司来说是巨大的)。