MapKit 前向地理编码不只基于地址?

问题描述

所以我用 MapKit 做了一个超级简单的正向地理编码函数

func getCoordinates(from address: String) {
    CLGeocoder().geocodeAddressstring(address) { placemark,error in
        guard error == nil && placemark != nil else {
            return
        }
        for index in 0..<placemark!.count {
            let number = index + 1
            print("Location \(number): \(placemark?[index].location?.coordinate)")
        }
    }
}

现在有两件事:第一件事是(只是为了澄清),mapkit 地理编码函数只返回输入字符串的最高命中,它不返回结果数组——有没有办法改变它?我注意到的第二件事是此功能不适用于“兴趣点”位置——例如,如果您输入“McDonalds”作为字符串,则不会返回任何结果,因为它在技术上不是地址。有人有什么建议吗?

解决方法

尝试改用 MKLocalSearch

let request = MKLocalSearch.Request()
request.region = region
request.naturalLanguageQuery =  "McDonalds"
let search = MKLocalSearch(request: request)
search.start { (response,error) in

}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...