Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将MapKit地点与Facebook地点匹配_Ios_Objective C_Swift_Facebook Graph Api_Mapkit - Fatal编程技术网

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获得的“原始”字符串,很难找到名称不完全相同的城市

也许有一种更容易实现的方法,但我的第一次尝试将涵盖以下选项:

  • 上传照片时保存地理点,然后查找库、API等。。这将返回基于Facebook城市名称的纬度长度数据,然后使用该数据查询数据库中最近的结果(基于照片位置)
  • 二,。 假设用户输入了一个城市名称,您有一个字符串值(称之为
    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
    
    这些解决方案可以改善结果,但我很想听到更好的解决方案