4

これは私の最初の質問なので、ポイントに移りましょう

Android アプリで Google Maps Api と統合したいコーナーの地理座標を含む高解像度の png 形式のマップがあります。

私がこれまでに行ったこと:

  • マップを 256x256 ピクセルのタイルに切り取り、URITileProvider を作成しました。マップにオフセットがあり、傾いていて、サイズを変更する必要があることがわかりました

  • MapTilerを見つけて試してみました。コーナー座標を設定し、タイルを生成することができます。現在の無料版では透かしが生成されるため、以前のベータ版も確認しましたが、「y」タイル座標が反対側の半球に配置されています。もちろん、それらをマッピングしようとすることもできますが、傾斜の問題は解決しません

  • また、Android アプリCustomMapsも見つけました。すばらしい!タイルを生成しないことを除いて、私が望むことはほぼ正確に行われます。画像ファイルを取得し、画像からポイントを選択して Google マップにリンクすることで、マップに配置するオプションがあります。また、優れた概要も提供します。

だからここに私の質問があります:

画像をマップに合わせて有効なタイルに分割するために使用できる MapTiler と CustomMaps の両方の機能を組み合わせた無料のツールはありますか?

元画像を編集したり試行錯誤したりもしましたが、絶対にここまではいきません。現在、独自のツールを作成することを考えていますが、論理的に考えると、すでに解決策が存在する必要があります。

4

1 に答える 1

5

私はこの問題を解決することができたので、あなたと共有したいと思いました。独自のタイル ジェネレーターを作成しました。ソリューションは確かに理想的ではなく、さらに多くの作業が必要になる可能性があります。どんな貢献も歓迎します。

これを機能させる手順は次のとおりです。

  1. Google マップを使用して、目的の領域を拡大し、グラフィック編集プログラムに背景レイヤーとして貼り付けます。
  2. オーバーレイ マップを別のレイヤーのグラフィック プログラムに貼り付け、背景のマップと一致するように変換します。
  3. Googleマップを使用して、最大/最小緯度と経度を可能な限り正確に読み取ります
  4. MapTileGeneratorを使用してタイルを生成します。
  5. Android ではURITileProviderを使用します

    @Override
    public URL getTileUrl(int x, int y, int zoom) {
    
        String url = MAP_FILES_URL + x + "-" + y + "-" + zoom + ".png";
        try {
            return new URL(url);
        } catch (MalformedURLException e) {
            // ignore
        }
        return null;
    }
    

プロセスの短いビデオを記録しました。YouTube で入手できます: Map Tile Generator Instructions。残念ながら、それは洗練されていますが、上記のポイントを読んだ後、メッセージはかなり明確になるはずです.

私が書いたスクリプトにはメモリ管理に問題があり、マルチスレッドを導入する必要があることをよく知っています。すぐに元に戻れることを願っています。

于 2013-12-12T16:43:59.917 に答える