【问题标题】:How implement location search (and item search by location)?如何实现位置搜索(以及按位置搜索项目)?
【发布时间】:2015-06-08 08:10:07
【问题描述】:

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

简而言之:

  1. 用户可以创建一些与城市相关的项目(如城市中的酒店),因此他们需要能够按名称搜索城市,并将其放入项目中;
  2. 然后用户可以按城市、国家、地区、大洲等搜索创建的项目...例如,巴黎的所有项目、法国的所有项目或欧洲的所有项目。
  3. 位置搜索应支持多种语言。

我认为,这是一个非常标准的问题,但遗憾的是我不知道如何实现这个(我的应用程序基于 Java、Spring、MySQL、Angular)。

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

或者我应该为每个城市组成分层名称,如 paris - Ile de france - france 并按 LIKE 搜索?但是在这种情况下如何有效地支持多种语言呢?

或者可能我应该组成 id 的层次链 paris_id + Ile de france id + france id

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

欢迎任何关于如何有效解决我的问题的建议!

【问题讨论】:

    标签: java geolocation location google-places-api


    【解决方案1】:

    我会选择混合方法。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2018-07-06
      • 2011-09-30
      • 1970-01-01
      相关资源
      最近更新 更多