来自 Swift 中 MKMapItem 的纬度和经度?
Latitude and longitude from MKMapItem in Swift?
使用 MKLocalSearchRequest()
我得到一个数组 MKMapItem
.
我只需要项目的纬度和经度。看起来应该很容易。
let search = MKLocalSearch(request: request)
search.startWithCompletionHandler { (response, error) in
for item in response.mapItems {
}
}
我试过了println(item.latitude)
。控制台输出为 nil
.
使用 item.placemark
获得 lat/longitude 似乎也不是一个选项,因为 'placemark' is unavailable: APIs deprecated as of iOS 7 and earlier are unavailable in Swift
为什么 item.latitude
为零?为什么我无法进入 placemark
?
println(item)
的控制台输出是这样的:
<MKMapItem: 0x17086a900> {
isCurrentLocation = 0;
name = "Random University";
phoneNumber = "+1000000000";
placemark = "Random University, 400 Address Ave, City, NJ 01010-0000, United States @ <+34.74264816,-84.24657106> +/- 0.00m, region CLCircularRegion (identifier:'<+34.74279563,-84.24621513> radius 514.96', center:<+34.74279563,-84.24621513>, radius:514.96m)";
url = "http://www.shu.edu";
}
我可以在那里看到纬度和经度!为什么我看不到?
试试这个 link 我希望对你有用 :
http://www.ioscreator.com/tutorials/searching-map-view-ios8-swift
response.mapItems
数组在 API 中声明为类型 [AnyObject]!
。
for 循环没有明确说明 res 是 MKMapItem
类型(或者 response.mapItems
实际上是 [MKMapItem]
)。
因此 res 被视为 AnyObject 的实例,未定义为具有地标 属性。
这就是您收到编译器错误“placemark
”不可用的原因....
要解决此问题,请将 res
转换为 MKMapItem
,然后地标 属性 就会可见。
使用此代码获取 placemark
for res in response.mapItems {
if let mi = res as? MKMapItem {
self.userSearch.append(mi.placemark)
}
}
此外,for
循环后的这一行:
self.userSearch = response.mapItems.placemark
有关更多信息,请参阅 THIS 答案。
使用 MKLocalSearchRequest()
我得到一个数组 MKMapItem
.
我只需要项目的纬度和经度。看起来应该很容易。
let search = MKLocalSearch(request: request)
search.startWithCompletionHandler { (response, error) in
for item in response.mapItems {
}
}
我试过了println(item.latitude)
。控制台输出为 nil
.
使用 item.placemark
获得 lat/longitude 似乎也不是一个选项,因为 'placemark' is unavailable: APIs deprecated as of iOS 7 and earlier are unavailable in Swift
为什么 item.latitude
为零?为什么我无法进入 placemark
?
println(item)
的控制台输出是这样的:
<MKMapItem: 0x17086a900> {
isCurrentLocation = 0;
name = "Random University";
phoneNumber = "+1000000000";
placemark = "Random University, 400 Address Ave, City, NJ 01010-0000, United States @ <+34.74264816,-84.24657106> +/- 0.00m, region CLCircularRegion (identifier:'<+34.74279563,-84.24621513> radius 514.96', center:<+34.74279563,-84.24621513>, radius:514.96m)";
url = "http://www.shu.edu";
}
我可以在那里看到纬度和经度!为什么我看不到?
试试这个 link 我希望对你有用 :
http://www.ioscreator.com/tutorials/searching-map-view-ios8-swift
response.mapItems
数组在 API 中声明为类型 [AnyObject]!
。
for 循环没有明确说明 res 是 MKMapItem
类型(或者 response.mapItems
实际上是 [MKMapItem]
)。
因此 res 被视为 AnyObject 的实例,未定义为具有地标 属性。
这就是您收到编译器错误“placemark
”不可用的原因....
要解决此问题,请将 res
转换为 MKMapItem
,然后地标 属性 就会可见。
使用此代码获取 placemark
for res in response.mapItems {
if let mi = res as? MKMapItem {
self.userSearch.append(mi.placemark)
}
}
此外,for
循环后的这一行:
self.userSearch = response.mapItems.placemark
有关更多信息,请参阅 THIS 答案。