3

Android で MapBox タイルを表示するにはどうすればよいですか? OSMDroid と Nutiteq で使用してみましたが、成功しませんでした。MapBox の Android ライブラリはありますか?

たとえば、このコードを使用して OSMDroid に MapBox を実装しました: http://blog.spatialnetworks.com/post/2012/07/using-mbtiles-on-android-with-osmdroid

XYTileSource MBTILESRENDER = new XYTileSource("mbtiles", ResourceProxy.string.offline_mode, 1, 20, 256, ".png", "http://example.org/");
DefaultResourceProxyImpl mResourceProxy = new DefaultResourceProxyImpl(this.getApplicationContext());
SimpleRegisterReceiver simpleReceiver = new SimpleRegisterReceiver(this.getActivity());

File f = new File(Environment.getExternalStorageDirectory(), "mymbtilesfile.mbtiles");

IArchiveFile[] files = { MBTilesFileArchive.getDatabaseFileArchive(f) };

MapTileModuleProviderBase moduleProvider = new MapTileFileArchiveProvider(simpleReceiver, MBTILESRENDER, files);

MapTileProviderArray mProvider = new MapTileProviderArray(MBTILESRENDER, null, new     MapTileModuleProviderBase[] { moduleProvider });

this.mMapView = new MapView(this, 256, mResourceProxy, mProvider);

しかし、うまくいきませんでした。Web から直接 MbTiles をロードしたいのです。

4

5 に答える 5

16

編集

公式 Mapbox Android SDK がリリースされました。

また、Mapboxの回答もご覧ください。

反対票を投じる人には、SDKが存在する前に質問に答えました。

=============================================

Nutiteqはかなり有望だと思います。彼らの API には多くの機能があります。また、彼らのデモ プロジェクトはインライン コメントされています。このプロジェクトをチェックアウトできます。特に、MBTilesMapActivityは探しているものかもしれません。このクラスは、mbtile を操作する方法を示しています。

// 1. Get the MapView from the Layout xml
mapView = (MapView) findViewById(R.id.mapView);
// 2. create and set MapView components
Components components = new Components();
mapView.setComponents(components);
// 3. Define map layer for basemap
MBTilesMapLayer dbLayer = new MBTilesMapLayer(new EPSG3857(), 0, 19, file.hashCode(), file, this);
mapView.getLayers().setBaseLayer(dbLayer);
...
// 4. Start the map - mandatory
mapView.startMapping();        
// 5. zoom buttons using Android widgets - optional
// get the zoomcontrols that was defined in main.xml
ZoomControls zoomControls = (ZoomControls) findViewById(R.id.zoomcontrols);

また、デモから変更された私のおもちゃプロジェクトもご覧ください。基本的に、私のアプリでは、ユーザーは mbtiles ファイルの URL を入力できます。次に、ファイルをダウンロードして MapView にロードします。

本当にOSMDroidに固執する必要がある場合は、これが役立つかもしれません. とはいえ、試す機会はありませんでした。

お役に立てれば。

于 2013-06-20T03:01:59.607 に答える
7

MapBox の Android ライブラリはありますか?

Android で Mapbox を使用する最良の方法は、Mapbox Android SDKです! これは公式のコードベースであり、ベクター タイル、マップ アニメーションなどをサポートするオープン ソース プロジェクトであり、システムのデフォルト マップから簡単に移行できるように設計されています。

Re:

しかし、うまくいきませんでした。Web から直接 MbTiles をロードしたいのです。

MBTiles ファイルは、通常非常に大きなタイルのバンドルであり、個別に要求することはできないため、通常、マップを表示するためだけにファイルを直接ロードすることはありません。この例に示すように、SDK が採用するアプローチは動的キャッシュです。この例では Mapbox を使用していますが、キャッシュ メカニズムは一般的なもので、どのタイル サーバーでも機能します。

開示: 私は Mapbox で働いており、Android SDK を含むネイティブ コードのコアに時折取り組んでいます。

于 2016-05-17T20:32:27.520 に答える
4

Google Maps API v2を使用すると、独自のタイル プロバイダを使用できることをご存知ですか?

TileProviderおよびUrlTileProviderを参照してください。

于 2013-06-24T16:40:16.747 に答える
4

Mapbox チームは Android で Mapbox マップのプレ アルファ リリースを開始したので、試してみることをお勧めします。彼らが Android 開発者の祈りを聞いたことを知ってよかったと思います。

Github の Android 用 Mapbox

于 2014-02-11T21:22:16.327 に答える