問題タブ [mktileoverlay]
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 - MKMapView でタイルのサイズを大きくする
現在、カスタム タイル オーバーレイを使用して MKMapView を実装しています。残念ながら、私が持っているタイルは Retina ディスプレイではかなり小さく表示され、テキストが読みにくくなっています。地図上の位置をいじらずに拡大する方法はありますか?
次のようなカスタム MKTileOverlayRenderer サブクラスを使用して、この質問の解決策を試しました。
残念ながら、これは私のタイルをかなりひどく台無しにしているようです。CGContexts を操作した経験があったとしても、多くの成功を収めずにいくつかのパラメーターで遊んだだけであるとは言えません。
ios - MKTileOverlay: 特定のタイルまたは領域を再読み込みする方法
私は地図ベースのアプリに取り組んでいます。MKTileOverlay
動的コンテンツを表示するために を使用しました。新しい情報が到着すると、特定のタイルをリロードする必要がある場合があります。
メインスレッドで呼び出そうとしましoverlayRenderer.setNeedsDisplayInMapRect(mapRect)
たが、どうやら私の場合、マップの再描画をトリガーしません。これまでのところ、機能する唯一のアプローチはoverlayRenderer.reloadData()
. ただし、これにより (特定の領域のみではなく) コンテンツ全体が再読み込みされ、ビューがちらつくため、これは私にとっては選択肢ではありません。
誰でもこれについてアドバイスできますか?ありがとう&乾杯。
ios - iOS のオフライン マップ
主にタイ向けに作成されているため、インターネット接続が難しいことが多いため、アプリのオフライン マップを作成する必要があります。私は現在 OpenStreetMap を使用してMKTileOverlay
いますが、オフラインで使用するために実装する際に問題があります。MKTileOverlay をサブクラス化するというチュートリアルを見つけました。したがって、マップがあるViewControllerには次のものがあります。
MKTileOverlay のサブクラスには、次のものがあります。
問題は、サブクラスのコードをコメントアウトしない限り、何もロードされないことです。私はどこを台無しにしていますか?
ios - MKTileOverlay のサブクラス化の難しさ
MKTileOverlay をサブクラス化しようとしていますが、オブジェクトのプロパティ canReplaceMap が見つからないという問題があります。私は何を間違っていますか?New に移動し、新しいクラス、MKTileOverlay のサブクラスを作成し、チュートリアルで追加するように言われているメソッドを追加しますが、これらの単純なプロパティが見つかりません!
ios - 地図のオフラインキャッシュ
主にタイ向けに作成されているため、インターネット接続が難しいことが多いため、アプリのオフライン マップを作成する必要があります。OpenStreetMap
現在、自分用に使用してMKTileOverlay
いますが、オフラインで使用するために実装する際に問題があります。サブクラス化するというチュートリアルを見つけましたMKTileOverlay
。だから、私ViewController
が持っている地図がある場所には:
のサブクラスにはMKTileOverlay
、次のものがあります。
問題は、サブクラスのコードをコメントアウトしない限り、何もロードされないことです。私はどこを台無しにしていますか?
swift - オフライン Retina マップ タイルが大きすぎる
この質問には、8月以来答えがありません。同じ質問は見つかりませんでした。十分に明確であることを願っています。マップに関する質問はほとんどないようですが、誰かが答えを知っている必要があります。
512x512 タイルを使用してオフライン マップを表示しようとしています。マップが正しく表示される 256x256 タイルを使用する場合、22524@x2.png のような名前のタイルがありますが、512 タイルは各タイルの 4 分の 1 しか表示しません。これが私のコードです
タイルを正しく表示するには何を追加する必要がありますか? Apple は Retina 画面で 256x256 タイルを使用したマップを受け入れますか?
ios - カスタム MKTileOverlayRenderer が複数の場所で同じタイルを描画するのはなぜですか?
だから私はマップ上にオーバーレイを描画する MapKit ベースのアプリを書いています。ただし、オーバーレイ描画の多くは動的であり、描画されるタイルが頻繁に変化するため、カスタム MKTileOverlay とカスタム MKTileOverlayRenderer を実装しました。最初のものはタイル画像が保存されている場所の url-scheme を処理し、2 つ目はカスタム drawMapRect 実装を処理します。
私が直面している問題は、複数の場所で同じタイル イメージを描画しているように見えることです。これは、私が何を意味するかを視覚化するのに役立つスクリーンショットです: (タイルが上下逆になっていることはわかっているので、修正できます) iOS シミュレーターのスクリーンショット
特定のタイル画像を別の色に変更し、タイル パスを含めました。タイル イメージの多くがさまざまな領域で繰り返されていることがわかります。
なぜそれが起こっているのかを理解しようとしてきたので、私のコード パスに従って、オーバーレイの開始点はかなり標準的です。ViewController は、デリゲートの mapView(rendererForOverlay:) を呼び出す addOverlay() 呼び出しを設定します。私のカスタム MKTileOverlayRenderer クラスは、次に私の drawMapRect(mapRect:, zoomScale:, context) を呼び出そうとします。次に、指定された map_rect を受け取り、map_rect が属するタイルを計算し、カスタム MKTileOverlay クラスの loadTileAtPath() を呼び出して、結果のタイル イメージ データを描画します。そして、それはまさに私のコードも同様に実行しているように見えるため、どこが間違っているのかよくわかりません。とはいえ、カスタム描画を実装してデフォルトの MKTileOverlayRenderer を使用しようとしているのでなければ、問題なく動作します。残念ながら、その」
参考までに、カスタム クラスの関連コードを次に示します。
私のカスタム MKTileOverlay クラス
私のカスタム MKTileOverlayRenderer クラス:
そして、zoomScale、zoomLevel、タイル パス、およびタイル座標間の変換を処理するヘルパー関数:
これはかなりあいまいなエラーだと思うので、同様の問題に直面している他の人を見つけるのはあまりうまくいきませんでした. 何でも役に立ちます!
ios - NSMutableArray の特定の URL に従って動的に MKTileOverlay を作成するにはどうすればよいですか?
NSMutableArray内にNSDictionnaryがあります( dateArrayURL )
次のようになります。
日付ごとに URL 画像が異なることに注意してください。
ここで、次のメソッドを使用して、MutableArray にある各日付/URL の MKTileOverlay を構築したいと思います。
配列内の要素ごとにループし、適切な URL で MKTikeOverlay を作成する必要がありますか? これを行うにはどうすればよいですか。辞書/配列の要素にアクセスするのに行き詰まっています。
ios - iOS - 回避策 MKOverlayRenderer と Alpha プロパティ
MKOverlayRenderer がマップに渡された後、そのアルファ プロパティにアクセスして変更するにはどうすればよいですか?
実際、rendererForOverlay
メソッドで alpha 属性を変更できます:
しかし、このメソッドは、オーバーレイを mapView に追加したときにのみ呼び出されますよね?
だから私の質問は:オーバーレイがマップ上に既にレンダリングされた後でも、このアルファ属性の値を変更および設定する可能性がある方法はありますか?
レンダラーを NSMutableArray に追加しようとしました:
そして、作成したこのメソッドを呼び出すことで透明度を変更できます。
これを行うためのより良い方法はありますか? アルファ値を設定するだけで、ちょっと遅いプロセスのようです。
実際には、OverlayRenderer のアルファ値を 0 から 1 に動的に切り替えて、1 つのオーバーレイを表示したり、非表示にしたり、別のオーバーレイを表示したり、非表示にしたりしたいと考えています。