- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 MapView 上显示两个注释。
为什么第二个注释不显示在 MapView 中?我尝试将地标[0]更改为放置标记[1],但没有帮助。
我本来可以使用 for 子句,但为了测试我重复了代码。
class Asiakas {
var nimi = ""
var osoite = ""
init(nimi: String, osoite: String) {
self.nimi = nimi
self.osoite = osoite
}
}
class ViewController: UIViewController {
@IBOutlet weak var mapView: MKMapView!
var asiakkaat:[Asiakas] = [
Asiakas(nimi: "Testi Asiakas", osoite: "Museokatu 10, helsinki"),
Asiakas(nimi: "Hyvä asiakas", osoite: "Pihlajatie 17, helsinki")
]
var asiakas:Asiakas!
override func viewDidLoad() {
super.viewDidLoad()
let geoCoder = CLGeocoder()
geoCoder.geocodeAddressString(asiakkaat[0].osoite, completionHandler: { placemarks, error in
if error != nil {
print(error)
return
}
if let placemarks = placemarks {
let placemark = placemarks[0]
let annotation = MKPointAnnotation()
if let location = placemark.location {
annotation.coordinate = location.coordinate
self.mapView.addAnnotation(annotation)
}
}
})
geoCoder.geocodeAddressString(asiakkaat[1].osoite, completionHandler: { placemarks, error in
if error != nil {
print(error)
return
}
if let placemarks = placemarks {
let placemark = placemarks[0]
let annotation = MKPointAnnotation()
if let location = placemark.location {
annotation.coordinate = location.coordinate
self.mapView.addAnnotation(annotation)
}
}
})
}
最佳答案
您无法同时调用多个地理编码服务。
来自geocodeAddressString(_ addressString: String,completionHandler: CoreLocation.CLGeocodeCompletionHandler)
的文档:
Submits a forward-geocoding request using the specified string. This method submits the specified location data to the geocoding server asynchronously and returns. Your completion handler block will be executed on the main thread. After initiating a forward-geocoding request, do not attempt to initiate another forward- or reverse-geocoding request.
因此,您需要在第一个调用完成后进行第二个调用。
如果您这样做,您将得到正确的结果:
let geoCoder = CLGeocoder()
geoCoder.geocodeAddressString(asiakkaat[0].osoite, completionHandler: { placemarks, error in
if error != nil {
print(error)
return
}
geoCoder.geocodeAddressString(self.asiakkaat[1].osoite, completionHandler: { placemarks, error in
if error != nil {
print(error)
return
}
if let placemarks = placemarks {
let placemark = placemarks[0]
let annotation = MKPointAnnotation()
if let location = placemark.location {
annotation.coordinate = location.coordinate
self.mapView.addAnnotation(annotation)
}
}
})
if let placemarks = placemarks {
let placemark = placemarks[0]
let annotation = MKPointAnnotation()
if let location = placemark.location {
annotation.coordinate = location.coordinate
self.mapView.addAnnotation(annotation)
}
}
})
关于ios - 为什么第二个 MKPointAnnotation 不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789433/
我想用自定义 Logo 替换默认的 MKPointAnnotation Logo 。 所以我在 MapViewController 中编写了这段代码: import UIKit import MapK
我正在尝试向我的 MKPointAnnotations 添加一个按钮,然后对新的 View Controller 执行操作 我仔细研究了这两个问题 How to add button to MKPoi
简单问题:我似乎找不到 MKPointAnnotation 类的标记属性。它返回错误; MKPointAnnotation *annotation = [[HCIAnnotationViewContr
所以我有以下代码块,它应该迭代 JSON 对象数组并将 MKPointAnnotations 放在 map 上: for(id jsonObject in dataArray) { NSLog
我有 map View ,其中几乎没有 MKPointAnnotation。 一切正常,但是, View 的 MKPoiintAnnotation 的“背景”是“不可见的”,因此不是很“可见”。 我想
我是 Objective-C 的大三学生。我有一个任务将手势识别器添加到 MKPointAnnotation。我听说可以通过 MKMapView 委托(delegate)来完成。但我还不明白。 因此,
我创建了很多图钉,当我按下图钉时,标题必须显示,而副标题必须隐藏,因为它是一段很长的文本并且出现在 UItextView 中。问题是我没有找到隐藏字幕的方法,所以在标题下,我有一段很长的文字,结尾是:
是否可以向 MKPointAnnotation 添加额外的属性?目前有 coordinate , title , 和 subtitle . 是否可以添加 url可以在 -(MKAnnotationVi
我需要更改 MKPointAnnotation 对象的颜色,但我编写的方法似乎只生成红色图钉。该方法工作正常,但是当我调用该函数并传递给定常量之一的参数时, map 上出现的所有图钉都是红色的(默认值
为了在 Storyboard iOS 项目中创建 map 注释,我使用了: CLLocationCoordinate2D annotationCoord3; annotatio
在我的 viewWillAppear 中有一个 View MKPointAnnotation *point = [[MKPointAnnotation alloc] init]; [point set
有没有办法阻止启用 MKMapView 实例中的注释。换句话说,当用户点击 map 上的红色图钉时,有没有办法阻止它突出显示图钉。现在,触摸时引脚会变黑... 编辑:我正在使用以下代码返回 MKPin
我想知道如何更新我的 annotation我拖动它时的标题,因为所有 annotation属性是get仅。 我尝试过的代码: func mapView(_ mapView: MKMapView, an
摘要:使用应用程序中的解析链接(而非查询)注释 已完成:我想做的是让新创建的注释成为 PFObject。我尝试执行此操作的方法是获取基于 MKPointAnnotation 的坐标。然后将其转换为带有
我正在尝试在 MapView 上显示两个注释。 为什么第二个注释不显示在 MapView 中?我尝试将地标[0]更改为放置标记[1],但没有帮助。 我本来可以使用 for 子句,但为了测试我重复了代码
我想知道当我点击标题时如何转到另一个 View MKPointAnnotation func addPin(lat:Double, lng:Double) { let testPin
我是 Xcode 新手,我从未使用 swift 创建过 iphone 应用程序,所以我在这方面仍然遇到很多麻烦。 在我的应用程序中,我想打开 map 页面,并希望为我拥有的每个地址显示一个图钉。为此,
我正在尝试在 MKPointAnnotations 上添加不同的图像。这是我的代码,当只有一个注释时它工作正常。我面临在不同注释上添加不同图像的问题。 func showDevices(Devs: A
当前正在使用 map View 并向 map 添加图钉。我知道如何使用 addAnotation() 方法向 map 添加单个点。现在,我尝试以最简单的方式向 MapView 添加多个点。我已经获取了
我有一个 map 应用程序,允许用户将注释保存为可变数组的收藏夹。然后可以在用户选择时显示所有喜欢的注释。 添加到可变数组的注释属于 MKPointAnnotation 类。我可以正确地向可变数组添加
我是一名优秀的程序员,十分优秀!