問題タブ [mkoverlaypathrenderer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1673 参照

ios - 半径がメートル単位のカスタム MKOverlay

MKOverlay プロトコルに準拠する NSObject サブクラスと MKOverlayPathRenderer のサブクラスを作成して、カスタム オーバーレイを作成しました。私の目標は、MKMapView のユーザーの場所に固定された円形のオーバーレイを作成することでした。それはうまく機能しています。オーバーレイの座標が設定されるたびに、レンダラーはキー値の監視を使用して、描画したパスを無効にしてから再描画します。

私が抱えている問題は、円の半径をメートル単位にしたいということですが、数学を正しく行っているとは思わないか、何かが欠けていると思います。オーバーレイ オブジェクトとレンダラーのソース コードを以下に投稿しました (レンダラーへのインターフェイスには何も含まれていません)。例を挙げると、半径を 200 メートルに設定していますが、マップ ビューでは約 10 メートルしか表示されません。誰でもそれを修正する方法を知っていますか?

0 投票する
1 に答える
2012 参照

ios - MKMapView へのオーバーレイとして MKOverlayPathRenderer を追加すると、例外が発生します

すべてがトピックで述べられているので、ここにコードがあります

最後の行で、例外を除いてドロップします:

MKOverlayを実装していない間違ったクラスを使用していることを意味しますが、MKOverlayPathRendererのリファレンスで述べたように、そうです。だから私はこの問題に少し立ち往生しています。

0 投票する
0 に答える
514 参照

ios - アニメーション マップ オーバーレイ: MKCircle が追加されたときに 0 からフル サイズに拡張するにはどうすればよいですか?

マップに追加されるたびに、MKCircle を 0 から指定された半径サイズに拡張したいと考えています。MKOverlayRenderer は良い結果をもたらしてくれますが、あまりにも自然に円を追加してしまいます。アニメーション化して入り口をより滑らかにしたいのですが、アニメーションレイヤーなしでそれを行う方法がわかりません。

拡大する UIView を CABasicAnimation で追加し、完了時にオーバーレイに置き換えようとしましたが、コードが見苦しく、オーバーレイが追加されるとちらつきが目立ちます。

アニメーション オーバーレイがあると主張する他の 2 つのプロジェクトを見てきましたが、どちらも私が探している特効薬ではありません。

  • http://yickhong-ios.blogspot.com/2012/04/animated-circle-on-mkmapview.html 2012 年に、この男は MKCircleView をサブクラス化しましたが、これは非推奨/強く推奨されていないようです。
  • https://github.com/jhurray/iOS7AnimatedMapOverlayこの男は、UIImageView をサブクラス化し、円の png を追加し、いくつかの CABasicAnimations を追加して展開およびフェードさせます。次に、注釈が選択されるたびに、この画像ビューをマップに追加します。アニメーションは正常に動作しますが、領域が変更されるたびにアニメーションが削除され、領域の変更が完了したときにのみ再び追加されます。リージョンの変更時に再描画される機能的なオーバーレイではありません。彼が持っているのは、オーバーレイが必要な場合は「変更してください」というコメントが付いた nil に設定された MKCircle だけです。UIImageView の展開が完了したときにオーバーレイを追加するように「変更」することもできますが、UIView の回避策と同じちらつきの結果が生じることがわかります。

私がよくわからないと考えている別のアプローチがあります (Core Graphics だけからアニメーション効果を生成しようとしたことがないため) MKOverlayRenderer- (void)drawMapRect:高さ x = 0 で、an を使用しNSTimerて x をインクリメントしsetNeedsDisplayInMapRect、円が最大サイズに達するまで呼び出します。それは私には遠回りのように思えますが、もっと簡単な方法があるかもしれません。

これについて正しい方向に向けてくれる人が必要です。

0 投票する
2 に答える
263 参照

mkmapview - MKMapView を円の下にスクロールします。

アップデート

MKMapView円の半径と中心座標を取得できる に円を描く必要があります。ただし、円を のサブビューにしMKMapViewて、マップ ビューを円の下にスクロールし、マップの移動に合わせて中心座標を更新し、マップのズームインとズームアウトに合わせて半径を更新できるようにしたいと考えています。

どうすればこれを達成できるか知っている人はいますか?


これは質問の元の文言です

MKMapView以下のコードを使用して、上に円を描きました。

これが機能し、マップ ビューに円が生成されます。ただし、マップ ビューをスクロールすると、円が一緒に移動します。円を固定したままにして、マップ ビューを円の下にスクロールさせたいと思います。

regionを作成するには、円の中心座標と半径を取得する必要があることに注意してください。そのため、UIView の半径をメートル単位で取得する方法がないため、MKMapView の上に UIView を単純に描画することはできません。

0 投票する
0 に答える
694 参照

mkmapview - MKMapView のポリラインに方向矢印を描く

矢印方向のポリラインを描きたい。Mapkit にまだ含まれていないことを理解しています。

カスタム MKOverlayPathRenderer を作成して drawMapRect をオーバーライドしようとしましたが、これを行う方法について少し混乱しています。

私の目標を達成する方法はありますか?

これが私がやろうとしていることの例です

ここに画像の説明を入力

0 投票する
1 に答える
670 参照

ios - MapKit で目に見えるオーバーレイを取得する方法は? (つまり、Mapkit Ivew からの MKOverlay/MKOverlayRender)

MapkitView から現在表示されているオーバーレイのリスト (配列) を取得するにはどうすればよいですか?

背景 - たとえば、マップキット ビューで特定のオーバーレイ タイプの中心に方向矢印を表示したいのですが、表示されるものを取得するにはどうすればよいですか? これを行う方法はないようです。私は見ることができますか?では、すべてのオーバーレイ (実際には ~8000) を通過し、画面に何が表示されるかを独自に確認する必要がありますか? 特定の時間にどのオーバーレイを表示する必要があるかを決定する一環として、MapKit がすでにこれを効果的に行っているとしたら、無駄に思えます。