我还没有机会测试Nominatim和Geocoder美国地理编码器。不过我的理解是,Geocoder和Nominatim不能直接在数据库中运行,这对我来说是一个很大的缺点,因为它使它们很难在触发器中使用,也很难直接在数据库中进行批处理更新。
PostGIS地理编码器是plpgsql函数的纯PostGIS / postgresql集,完全在数据库中运行。我希望美国的Geocoder和PostGIS的Geocoder的结果能够达到同等水平,而根据我使用网络工具进行的测试,结果是可以的。Google更好一点,因为它们利用了地名。
我认为Nominatum因为确实使用OSM数据而确实间接使用了Tiger数据,因为OSM在美国的进口大部分来自TIGER,而且用户做出了更正。我不确定Tiger OSM的年份(年份)。从在线使用Web界面开始,它还利用了地名,并且有一个有趣的变化,它使您可以指定地理编码的缩放级别,从而可以通过设置所需的缩放精度来实现更快的地理编码。
完全公开-我在PostGIS Geocoder上做了很多工作,并为此编写了在线手册。我会告诉您一个我正在处理的错误,因为我认为它所插入的点的位置在街道的错误一侧。我正在努力解决。如果您不太关心街道的哪一侧(或至少有时),那么对您来说可能就不是问题了。
在比较一些地址结果的在线版本进行测试时可能值得:例如,您可以在此处测试nominatim:http : //open.mapquestapi.com/nominatim/v1/search.php
在我的用例中,我发现名词规则的模糊检查不如PostGIS Geocoder的模糊检查。例如,我的虚荣街道地址(邮寄地址)是马萨诸塞州波士顿的德文郡广场1号。PostGIS返回的答案与我记得的很接近,Google返回了答案,但我无法让Nominatim返回答案。公平地讲,即使波士顿的包裹记录也不知道该在哪里,并在包裹记录中列为华盛顿街。PostGIS可以找到它,因为它可以进行各种级别的检查以及交叉路口的交叉路口等。我测试了其他情况,我故意输入了邮政编码错误或某些错误,而PostGIS则返回了一组准确的选项。Google也是。