2017-04-14 43 views
0

我有一个在iOS和Android的应用程序,我得到的用户在他们的位置!在iOS中使用CoreLocation和在android中使用Google地图...在位置检索后,我们应用反向地理编码,从中获取地点...一旦我们完成,我们将执行equalTo查询以查找特定位置的照片...解析SDK - 类似的查询类型

的事情是,在若干情况下的iOS的地方,就是Android的细微的差别!例如,iOS中的“Palaiochori”和android中的“Paleochori”!注意到两个字母是不同的!

所以,而位置是在两个设备一样,equalTo查询将明显失败!

我想知道的,就是如果有任何的方式来创建一个类型的查询,我们不检查的平等。相反,我们检查相似性!

注意,我们做使用云代码,所以任何服务器端的解决方案是可接受的,并且优选的!!

+0

我对应用程序开发一无所知,所以只有一条评论,但对我来说,似乎问题不在于比较,而在于反向地理编码。您说“**我们**应用反向地理编码”,您的地理来源有两个不同的Palaiochori地理位置? – Toby

+1

@Toby我们为每个操作系统,苹果和谷歌的操作系统使用了2个不同的位置SDK,所以我想这是合乎逻辑的有一些区别...注意,只使用一个,不是一种选择! –

回答

1

显然,位置名称不能保证唯一性。两种可能的解决方案:

  1. 确保

存储这些位置的GeoPoint数据库的一致性。当你已经在你的数据库Palaiochori和用户发现自己在Paleochori保存新对象前,运行一个whereNear()查询,看看是否有该位置附近的地方。

如果你有一个合理的半径范围内的结果,询问用户:你的意思是<list of near places>?用户可能会识别具有相似名称的地点,然后点击它。这样你可以避免重复。

只要你有 lat/lng
  • 使用一致的位置数据库
  • ,你可以使用谷歌Places API的索要该位置附近的地方。谷歌将返回一个Place对象与一个唯一的placeId,你可以存储在您的数据库。该id保证保持不变,并且可以可靠地用于您的查询。