苹果地图和 MapKit 使用相同的 API 吗?
Does apple maps and MapKit use the same API?
当我在 Apple 地图和我的应用程序中使用 MapKit 进行搜索时,我得到了 "New York" 的两个不同结果。
他们都使用相同的 api 吗?
如果我在 Apple 地图中搜索 "New York",它会将指针置于纽约市中心。但是,如果我使用 MKLocalSearchRequest
和 naturalLanguageQuery
使用 MapKit 搜索 "New York",它会使指针稍微偏离一点,甚至在曼哈顿也不行。
代码:
override func viewDidLoad() {
super.viewDidLoad()
self.mapView.delegate = self
localSearchRequest = MKLocalSearchRequest()
localSearchRequest.naturalLanguageQuery = "New York"
localSearch = MKLocalSearch(request: localSearchRequest)
localSearch.startWithCompletionHandler { (localSearchResponse, error) -> Void in
if localSearchResponse == nil || self.mapView == nil{
var alert = UIAlertView(title: "Not found", message: "Try again", delegate: self, cancelButtonTitle: "OK")
alert.show()
return
} else {
let location = CLLocationCoordinate2D(latitude: localSearchResponse.boundingRegion.center.latitude, longitude: localSearchResponse.boundingRegion.center.longitude)
let span = MKCoordinateSpanMake(0.05, 0.05)
let region = MKCoordinateRegion(center: location, span: span)
self.mapView.setRegion(region, animated: false)
self.pointAnnotation = MKPointAnnotation()
self.pointAnnotation.coordinate = location
self.mapView.addAnnotation(self.pointAnnotation)
}
}
}
他们不使用相同的 api 进行显示,所以我也假设他们不使用 public API 进行搜索。
特别是考虑到该应用早于 API
但这可能不是重点
您没有设置区域 属性:“提供搜索位置提示的地图区域。” (至少它看起来和苹果地图不一样)
对我来说 returns 只有一个结果 [使用 mapkit]
当我在 Apple 地图和我的应用程序中使用 MapKit 进行搜索时,我得到了 "New York" 的两个不同结果。
他们都使用相同的 api 吗?
如果我在 Apple 地图中搜索 "New York",它会将指针置于纽约市中心。但是,如果我使用 MKLocalSearchRequest
和 naturalLanguageQuery
使用 MapKit 搜索 "New York",它会使指针稍微偏离一点,甚至在曼哈顿也不行。
代码:
override func viewDidLoad() {
super.viewDidLoad()
self.mapView.delegate = self
localSearchRequest = MKLocalSearchRequest()
localSearchRequest.naturalLanguageQuery = "New York"
localSearch = MKLocalSearch(request: localSearchRequest)
localSearch.startWithCompletionHandler { (localSearchResponse, error) -> Void in
if localSearchResponse == nil || self.mapView == nil{
var alert = UIAlertView(title: "Not found", message: "Try again", delegate: self, cancelButtonTitle: "OK")
alert.show()
return
} else {
let location = CLLocationCoordinate2D(latitude: localSearchResponse.boundingRegion.center.latitude, longitude: localSearchResponse.boundingRegion.center.longitude)
let span = MKCoordinateSpanMake(0.05, 0.05)
let region = MKCoordinateRegion(center: location, span: span)
self.mapView.setRegion(region, animated: false)
self.pointAnnotation = MKPointAnnotation()
self.pointAnnotation.coordinate = location
self.mapView.addAnnotation(self.pointAnnotation)
}
}
}
他们不使用相同的 api 进行显示,所以我也假设他们不使用 public API 进行搜索。
特别是考虑到该应用早于 API
但这可能不是重点
您没有设置区域 属性:“提供搜索位置提示的地图区域。” (至少它看起来和苹果地图不一样)
对我来说 returns 只有一个结果 [使用 mapkit]