Ios 将MapKit地点与Facebook地点匹配
我正在将带有城市名称的照片保存到应用程序中的服务器。首先,我使用Ios 将MapKit地点与Facebook地点匹配,ios,objective-c,swift,facebook-graph-api,mapkit,Ios,Objective C,Swift,Facebook Graph Api,Mapkit,我正在将带有城市名称的照片保存到应用程序中的服务器。首先,我使用MapKit获取城市名称,方法是使用纬度和经度,然后将照片和城市名称保存到数据库中。稍后,当用户想要搜索照片时,他/她会写下城市名称,我会使用Facebook Places的自动完成功能(Graph API) 问题是Facebook Places和MapKit可能有不同的名称(拼写)。甚至他们都是用英语写的。我想知道如何从我自己的服务器上查询,其中有MapKit城市,还有Facebook Places cities。我认为这比第一次
MapKit
获取城市名称,方法是使用纬度和经度,然后将照片和城市名称保存到数据库中。稍后,当用户想要搜索照片时,他/她会写下城市名称,我会使用Facebook Places的自动完成功能(Graph API)
问题是Facebook Places和
MapKit
可能有不同的名称(拼写)。甚至他们都是用英语写的。我想知道如何从我自己的服务器上查询,其中有MapKit
城市,还有Facebook Places cities。我认为这比第一次看起来要复杂一点。在Facebook之前,苹果不会使用相同的城市名称数据源。如果你使用从FB places获得的“原始”字符串,很难找到名称不完全相同的城市
也许有一种更容易实现的方法,但我的第一次尝试将涵盖以下选项:
rawCity
)和所需的城市名称。现在,rawCity
应该包含在表示城市地图工具包名称的字符串中,或者等于该字符串
让我们将rawCity
分配给一个名为searchStringCity
的新字符串,并从中删除空格,使整个字符串小写(非ascii字符也会带来一些麻烦)
现在有两个字符串应该添加到字典:/Pseudo代码中/
rawCity = Sample City Name
searchStringCity = yoursamplecity
fbCityDictionary = {rawName:rawCity, searchString:searchStringCity}
在你拥有了fbccitydictionary
之后,你就可以开始Facebook部分了
作为第二步,您需要一些与数据库相关的工作,因此下一步我将在数据库中创建一个searchString
列,并用Mapkit类型城市名称的“标准化”(删除空格、大写字母、字符编码)名称填充它
现在,您可以编写一个查询,其中db项的searchString
值等于fbCityDictionary[searchString]
。然而,这并不能完全解决您的问题,当出现空格或大写字母或小写字母问题时,它会起作用,但有许多城市名称没有英文版本,并且在不同的地图数据库中可能会有很大的不同
因此,您将很好地处理以下示例:
Facebook version:
Sample City Name ---> samplecityname
Mapkit version:
Samplecity Name ---> samplecityname
这些解决方案可以改善结果,但我很想听到更好的解决方案