2
**Here the car image where I want to only rotate car icon.**
私は10秒ごと にサーバーから場所を受信していますので、私は からアニメーションと私のカスタム注釈をアニメーション化します1つのポイントから別のポイントへ
iOS Swift 3のMapKitで注釈を移動したいのですが、 移動アニメーションをある場所から別の場所に与える方法。 は、私は慎重に読んで、私は、カスタム注釈
var point : MyCustomAnnotation?
point = MyCustomAnnotation(coordinate: CLLocationCoordinate2D(latitude: self.latitude , longitude: self.longitude))
point?.speed = speed
point?.dateTime = time
self.mapView.addAnnotation(point!)
より後
を追加しています こここの
感謝から抜け出すために私を助けてください、私のViewControllerクラスコード を送ります
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation
{
return nil
}
UIView.animate(withDuration: 3) {
if(self.annotationView != nil)
{
self.annotationView?.removeFromSuperview()
}else{
}
self.annotationView = self.mapView.dequeueReusableAnnotationView(withIdentifier: "Pin")
if self.annotationView == nil{
self.annotationView = AnnotationView(annotation: annotation, reuseIdentifier: "Pin")
self.annotationView?.image = self.imagePin!
self.annotationView?.canShowCallout = false
}else{
self.annotationView?.annotation = annotation
}
let roatet = CLLocation(latitude: self.latitude, longitude: self.longitude)
.bearingToLocationDegrees(destinationLocation: CLLocation(latitude: self.rotLat, longitude: self.rotLng))
self.rotLat = self.latitude
self.rotLng = self.longitude
self.annotationView?.image = self.imagePin?.imageRotatedByDegrees(oldImage: self.imagePin!, deg: CGFloat(roatet))
return annotationView
}
そして、もう一つの機能は、私の知る限りは、その車の注釈車の注釈のユーザータップのような同じパス上で実行されますしたら、私は、私は2つの場所の間のライブポリーが描かれている中で、このソリューションを提案していますあなたの質問を理解して
func mapView(_ mapView: MKMapView,
didSelect view: MKAnnotationView)
{
// 1
if view.annotation is MKUserLocation
{
// Don't proceed with custom callout
return
}
// 2
let starbucksAnnotation = view.annotation as! StarbucksAnnotation
let views = Bundle.main.loadNibNamed("CustomCalloutView", owner: nil, options: nil)
let calloutView = views?[0] as! CustomCalloutView
calloutView.lbAc.text = starbucksAnnotation.acV
calloutView.lbFuel.text = starbucksAnnotation.fuelV + "%"
calloutView.lbPower.text = starbucksAnnotation.powerV
calloutView.lbIgnation.text = starbucksAnnotation.ignitionV
calloutView.lbBattery.text = starbucksAnnotation.battry
calloutView.lbDate.text = starbucksAnnotation.dateTime
calloutView.center = CGPoint(x: view.bounds.size.width/2, y: -calloutView.bounds.size.height*0.52)
view.addSubview(calloutView)
// UIView.animate(withDuration: 5) {
mapView.setCenter((view.annotation?.coordinate)!, animated: true)
// }
}
func mapView(_ mapView: MKMapView, didDeselect view: MKAnnotationView) {
if view.isKind(of: AnnotationView.self)
{
for subview in view.subviews
{
subview.removeFromSuperview()
}
}
}
これをチェック - > https://github.com/100grams/Moving-MKAnnotationView&http://burnignorance.com/iphone-development-tips/how-to- –
これは役に立つかもしれません:https://github.com/antonyraphel/ARCarMovement – user1374
これらのリンクは有用ではありません、私はもはやありませんObjective Cについて –