如何实现位置搜索(和按位置搜索项目)?

时间:2015-04-03 08:25:28

标签: java geolocation location google-places-api

我需要按位置实施位置搜索和搜索(最好的例子是 booking.com ,或 airbnb

简而言之:

  1. 用户可以创建一些与城市相关的项目(例如城市中的酒店),因此他们需要能够按名称搜索城市,将其放入项目中;
  2. 然后用户可以按城市,国家,地区,大陆等搜索创建的项目...例如巴黎的所有项目,或法国的所有项目,或欧洲的所有项目。
  3. 位置搜索应该支持多种语言。
  4. 我认为,这是一个相当标准的问题,但令我遗憾的是,我不知道如何实现这一点(我的应用程序基于Java,Spring,MySQL,Angular)。

    首先,我考虑使用Google Places API执行1.任务:在用户界面上输入城市名称,接收匹配城市列表,获取每个项目的名称,经度和经度,然后保存。但我不知道如何通过聚合位置(例如按国家/地区)解决搜索项目。使用坐标解决了多语言支持。但是国家坐标是否按Places API返回正确(我认为没有)? MySQL空间索引是否足够呢?

    或者我应该为每个城市组成等级名称,例如巴黎 - 法兰西岛 - 法国并按LIKE搜索?但是在这种情况下如何有效地支持多种语言?

    或者可能是我应该构成ids的分层链 paris_id + Ile de france id + france id

    可能不是使用Google API我需要保留自己的位置数据库(例如基于GeoNames)?

    欢迎任何有效解决问题的建议!

1 个答案:

答案 0 :(得分:0)

我采取混合方式。

  • 使用州/地区/城市代码进行过滤
  • 使用邻居(比如 here)基于距离的搜索