在同一输入字段中搜索项目和位置

时间:2012-09-28 11:49:12

标签: javascript google-maps-api-3

我遇到了问题。我在互联网上搜索解决方案,但没有找到任何解决方案。

这是我的问题: 我有一些项目存储在DB表中,其中包含一个位置(lat和long)。例如巴黎的飞机,纽约的自行车,巴黎的另一辆自行车,东京的洗碗机等...... 我想在一个地方附近找到所有类型的物品。

为此,我做了2个输入字段:一个名为“What”,另一个名为“Where”(这个有自动完成谷歌地图)。如果您在第一个字段中输入“Bike”而在第二个字段中输入“Paris”,则它可以完美运行! (我使用地理编码来获取“Where”字段的坐标“然后使用SQL查询来过滤对象类型)

但我的目标是在一个输入字段中实现这一目标!用户可以进入“Bike Paris”或“Paris Bike”的全球领域,并获得DB中位于巴黎附近的所有自行车的结果。就像谷歌地图一样:如果你输入“手机芝加哥”:它将解释“芝加哥附近的手机”并获得你的结果。困难在于解释我在哪个地方,哪个不是。

你知道如何实现这个目标吗?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

这需要一些工作。一种方法是使用某些机器学习分类算法的某些方法。他们基本上做的是使用包含观察的某种数据集对他们进行训练,以将对象分类到某些类中。因此,当他们获得一个新对象时,他们可以相应地对其进行分类。

您可以详细了解他们herehere

如果你无法管理那种复杂性,你可以做的一件简单的事情就是搜索用户在最小的数据集中输入的单词(即,事物或地点),如果其中一个非常大,那么等等。

答案 1 :(得分:1)

SQL 声明

SELECT *  FROM `mixedsearch` WHERE `place` IN ('London','Bike') AND `type` IN ('London','Bike')

选择

London | Bike

从此表

place | type
Paris | Bike
Paris | Plane
Paris | Car
London | Bike
London | Car
London | Plane
Tokyo | Dishwasher
Tokyo | Bike

SQLFiddle

如何将输入字段转换为SELECT语句取决于您的应用程序