【发布时间】:2015-06-08 08:10:07
【问题描述】:
我需要实现位置搜索和按位置搜索(最好的例子是booking.com,或airbnb)
简而言之:
- 用户可以创建一些与城市相关的项目(如城市中的酒店),因此他们需要能够按名称搜索城市,并将其放入项目中;
- 然后用户可以按城市、国家、地区、大洲等搜索创建的项目...例如,巴黎的所有项目、法国的所有项目或欧洲的所有项目。
- 位置搜索应支持多种语言。
我认为,这是一个非常标准的问题,但遗憾的是我不知道如何实现这个(我的应用程序基于 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