問題タブ [mkmapsnapshotter]
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.
ios - MKMapSnapshotter衛星エラー画像カメラズーム/高度レベルが近い
MKMapsnapshotter を使用すると、エラー イメージが表示されます。手動でズームアウト(カメラの高度を高く設定)してみましたが、問題は解決したようですが、これをプログラムで処理する方法がわかりません。この種のエラーを検出して、カメラの高度をリセットする方法はありますか? これは MapKit のバグですか? これは、衛星またはハイブリッド マップ タイプを使用した場合に発生します。
どんな助けでも大歓迎です。ありがとう!
編集:
さらに調査とテストを重ねた結果、回避策を見つけることができました。
このエラー画像は、主に海上/海上の衛星画像で発生していました。リバース ジオコーダーを使用して、目印の配列を調べて、その場所が都市にあるかどうかを確認できることがわかりました。そうでない場合は、おそらく海の上にあります。
ios - iOS MKMapShapshotter 完了ブロックが常に呼び出されるとは限らない
新しい iOS7 MKMapSnapshotter を使用して静的なマップ イメージを生成しようとしています。アプリでマップが必要になるたびに、次のように呼び出します。
ほとんどの場合、これはうまく機能しています。ただし、マップのリクエストでデバイスが過負荷になり、レンダリングが停止する場合があります。私のログ ファイルには、「Snapshotter が割り当てられました」という最初のログ ステートメントが表示されますが、「Snapshotter 完了ブロック」メッセージは表示されません。
リクエストがディスパッチ キューの外で決して実行されない可能性はありますか? 誰もこの問題を抱えたことがありますか?
ios - MKTileOverlayPath を MKMapRect に変換しますか?
私は方法を使用しています:
- (void)loadTileAtPath:(MKTileOverlayPath)path
result:(void (^)(NSData *data, NSError *error))result
MKTileOverlayPath は、x、y、z を提供します。このパスを使用して、このエリアの Apple Maps バージョンのスナップショットを取得しようとしています。これにより、画像にフィルターを適用できます。
私は MKMapSnapshotter をそのまま使用していますが、この領域のアップルマップ表現を描画するためにどの値を指定すればよいかわかりません。
あるいは、この地域から地図画像を取得する別の方法が知られているかもしれません。
ios - MKTileOverlay の MKMapSnapshotter がずれているように見える
次のコードでloadTileAtPath:result:
メソッドをオーバーライドしています。MKTileOverlay
単純にMKTileOverlayPath
を MKMapRect に変換し、それを使用MKMapSnapshotter
して、見ているマップ エリアのスナップショットを取得します。そこから、マップの画像を使用してさらに作業を行います。しかし今のところ、結果のデータとしてスナップショットを返すだけなので、スナップショットがマップをどれだけうまく表しているかを確認できます。
ここでの計算がすべて正しいとすると、理論上は完全なマップが表示されるはずです。代わりに、次のように表示されます。
そして、これはそれがどのように見えるかです (下の地図はどのように見えるか):
ios - MKMapSnapshotter は、驚異的な量の CPU と RAM を使用します
MKMapSnapshotter は、シミュレーターで最大 2GB の RAM を使用しているようで、メモリ警告をトリガーし、デバイス上で非常に長い時間アプリをハングさせます。設定のどの部分がこれを引き起こしているのかわかりません。
この膨大な使用量は、複数の画像を同時に取得する場合に発生しますが、複数の画像を次々に取得する場合でも、率直に言って大量の RAM (ピーク時で 600MB) を使用し、CPU を最大 190% 使用して完全に占有するようです。要求された後に画像を保存することさえせずに、他のすべてのロジックを削除しようとしましたが、膨大な RAM と CPU の使用率が引き続き発生します。
これは意図したものではありません。この暴走的なリソースの浪費を引き起こすには、私が設定していない何かがあるに違いありません。ここに私のオプションコードがあります:
ここで何が欠けていますか?
ios - MKMapSnapShot から以前の MKPinAnnotation 座標を返す
私は2つのView Controllerを持っていMapViewVC
ますMapDetailViewVC
.
にいくつかのカスタム ピン注釈がありMapView
ます。
タップすると、これらの注釈 (特定のデフォルトの「高度」ビューを持つ) が開始さMapDetailVC
れ、カメラ プロパティが特定の高度 (4000 m) に設定された注釈のスナップショットが表示されます。
その結果、 で「戻る」ボタンを押すとMapDetailVC
、ビューは に表示されたのMapViewVC
と同じ高度の に戻りMapDetailVC
ます。吹き出しボタンがタップされたときに表示されていた領域である元の高度ではありません。
「戻る」ボタンをタップしたときに、元の設定に戻るMapKit
方法があるかどうかを(より経験豊富な人から)知りたいです。mapView
ありがとう
ios - MKSnapshotter のメモリをクリアする
私は現在 を使用してMKSnapshotter
いますが、(MKMapView と同様に) メモリ消費量が多く、アプリの実行中は解放されないことに気付きました。私はメモリを解放しようとしましたが、役に立たない:
どんな助けでも大歓迎です。
アップデート には詳細が含まれます
ios - MKMapSnapshotter で全世界をキャプチャする
MKMapSnapshotter Api for iOS を使用して全世界の画像を取得しようとしています。MKMapSnapshotterOptions の mapRect を MKMapRectWorld に設定するか、地域を Span(180,360) に設定するかは関係ありません。南アメリカの端からアジア、ヨーロッパの中央からアフリカの端までの画像が常に作成されます。
MKMapSnapshotterOptions のサイズも変更しようとしました。
全世界をキャプチャする方法はありますか?
ありがとう、レオ