iOSでの開発が始まったところです。もし問題が簡単ではないと思われる場合は、ごめんなさい:Mapbox iOS SDK 3.1注釈吹き出しをつける方法
APIからSwiftyJSON経由でいくつかのマーカー/注釈を読み込んでMapbox MapViewに表示します。アノテーションをクリックすると、コールアウトがトリガーされます。 - これは地獄のようにうまく動作します。 問題:
let camera = MGLMapCamera(lookingAtCenterCoordinate: annotation.coordinate, fromDistance: 1000, pitch: 0, heading: 0)
mapView.setCamera(camera, withDuration: 2, animationTimingFunction: CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut))
または
:。私はこのようなものを使用するたびに、私はズームアップ、マーカー/注釈や吹き出しでのMapViewを中央、またはセンターでそれらを表示するためにカメラを移動したいのですがmapView.setCenterCoordinate(annotation.coordinate, zoomLevel: 15, animated: true)
吹き出しは同じ位置にとどまります。私が達成したいのは、アノテーション/マーカーの上にスティッキーで表示されているということです。
これは、この部分のための私の完全なコード(のviewDidLoadで注釈の建物が含まれていません。
func mapView(mapView: MGLMapView, imageForAnnotation annotation: MGLAnnotation) -> MGLAnnotationImage? {
var annotationImage = mapView.dequeueReusableAnnotationImageWithIdentifier("marker_live")
if annotationImage == nil {
// Leaning Tower of Pisa by Stefan Spieler from the Noun Project
var image = UIImage(named: "marker_live")!
image = image.imageWithAlignmentRectInsets(UIEdgeInsetsMake(0, 0, image.size.height/2, 0))
annotationImage = MGLAnnotationImage(image: image, reuseIdentifier: "marker_live")
}
return annotationImage
}
func mapView(mapView: MGLMapView, annotationCanShowCallout annotation: MGLAnnotation) -> Bool {
print("tap on annotation")
mapView.selectAnnotation(annotation, animated: true)
return true
}
func mapView(mapView: MGLMapView, calloutViewForAnnotation annotation: MGLAnnotation) -> UIView? {
return CustomCalloutView(representedObject: annotation)
}
func mapView(mapView: MGLMapView, tapOnCalloutForAnnotation annotation: MGLAnnotation) {
print("Tapped the callout for: \(annotation.title!)")
self.performSegueWithIdentifier("PlaylistFromMap", sender: annotation.title!)
mapView.deselectAnnotation(annotation, animated: true)
}
私も完了ハンドラを使用して考えたが、それがどのように機能するかを理解していなかった ヘルプをずっと。感謝!
これまで理解されていましたが、どうすればアノテーションのタッチを検出できますか?これまでのところ、2つのデリゲートがあります。-mapView:didSelectAnnotation: と-mapView:annotationCanShowCallout:私はタッチを検出するために使用しました。最初のものでは、私はカメラの動きをトリガすることができますし、完了後に注釈を選択します(再度)。 2番目に私はコールアウトを表示することができました。最初にアノテーションを実際に選択せずにカメラと選択をトリガーするにはどうすればよいですか? – lightwaver
少なくとも、Mapbox iOS SDKが提供するメソッドではできません。 – friedbunny
私の問題は、カメラをトリガするために 'selectAnnotation'を使用していることです。カメラを個別にトリガする方法やコールアウトが必要です。私が探しているものは何ですか? – lightwaver