2016-09-08 35 views
0

我试图寻找一个解决方案,让我的网站,让用户输入他们的城市,它会给他们的数据基于(如自定义的HTML与我自己的内容,兴趣点等)。例如,如果他们在搜索框中输入“斯德哥尔摩”,则会弹出或类似的输出与该城市相关的数据。HTML根据地址/城市搜索景点

在开源中有没有现成的解决方案?

感谢与此相关的所有建议。

+0

https://developers.google.com/places/web-service/autocomplete – Unex

回答

0

The Easy-ish Way如果您将城市名称与您的兴趣点数据一起存储,那么只需构建一个查询并匹配这些城市名称即可。

更好的方式

  1. Store中经/纬所有点的兴趣(在数据库或搜索引擎 )的。
  2. 使用像Google MapsOpenStreetMap这样的外部地理编码API来启动预先打印控件。
  3. 一旦用户选择了预输入的建议,捕捉无论是 边框(谷歌),或者如果你想从地理编码API整个多边形 (OpenStreetMap的),并用它来在边界内搜索 您的POI 。

尝试PostGIS(postgres数据库附加组件)或Solr(搜索引擎)进行位置过滤。


如果您使用Google地图获取边界框,则在后端不需要特别花哨的GIS工具。只需查询数据库所有点的兴趣,其中:

latitude BETWEEN <SW_lat> AND <NE_lat> AND longitude BETWEEN <NE_long> AND <SW_long>

要知道,边界框是真正的城市边界逼近,而你必须在国际日期变更线和波兰人边界条件...但希望你没有任何POI担心。

0

为了实现这个目标,我认为您可以使用ElasticSearch快速自动完成以获取用户输入并进行验证,然后使用精确的输入使用您拥有的任何地理编码引擎进行地理编码。

如果您正在寻找一些非常快速的东西,只需使用Google免费层地理编码服务端点即可。