マップビューにカスタムベースレイヤーを追加する必要があります。私の理解では、マップタイルはグーグルタイルとまったく同じです。これらは、次の形式で提供される静的ファイルです:http:///tilecache///.png
たとえば、http:/// tilecache / 6/16 / 26.pngは、フロリダアラバマとミシシッピの間の湾岸です。
タイルでオーバーレイを作成するにはどうすればよいですか?
マップビューにカスタムベースレイヤーを追加する必要があります。私の理解では、マップタイルはグーグルタイルとまったく同じです。これらは、次の形式で提供される静的ファイルです:http:///tilecache///.png
たとえば、http:/// tilecache / 6/16 / 26.pngは、フロリダアラバマとミシシッピの間の湾岸です。
タイルでオーバーレイを作成するにはどうすればよいですか?
osmdroid(上記で推奨)はクールですが、かなり巨大です。少し前に、代わりにhttp://sourceforge.net/projects/libwlocate/を使用することにしました。osmdroidのようなマップを表示/スクロール/ズームする機能が含まれていますが、OSM、Googleマップ、またはGoogle衛星ビューのいずれかを使用できます。
osmdroidの使用をお勧めします。OnlineTileSourecBaseを拡張できます。
public class YourTileSource extends OnlineTileSourceBase implements IStyledTileSource<Integer> {
public YourTileSource (String aName, string aResourceId,
int aZoomMinLevel, int aZoomMaxLevel, int aTileSizePixels,
String aImageFilenameEnding, String aBaseUrl) {
super(aName, aResourceId, aZoomMinLevel, aZoomMaxLevel, aTileSizePixels,
aImageFilenameEnding, aBaseUrl);
}
public void setStyle(Integer style) {
// TODO Auto-generated method stub
}
public void setStyle(String style) {
// TODO Auto-generated method stub
}
public Integer getStyle() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getTileURLString(MapTile aTile) {
return getBaseUrl() + "/" + aTile.getX() + "/" + aTile.getY() + "/" + aTile.getZoomLevel() + ".png";
}
}
次に、タイルソースをマップビューに追加します。
TileSourceFactory.addTileSource(new YourTileSource ("YourTileSource", null, 1, 20, 256, ".png", "http:///tilecache/"));
mapView.setTileSource(TileSourceFactory.getTileSource("YourTileSource"));
これを機能させるには、mapViewがorg.osmdroid.views.MapViewである必要があります。OSMdroidクラスは、すべてのgooglemapsクラスを置き換える必要があります。
まず、 osmdroid-android-3.0.8.jarファイルをダウンロードし、プロジェクトのlibsフォルダーに追加してから、右クリック>[プロパティ]>[Javaビルドパス]>[ライブラリ]>[Jarの追加]を選択してプロジェクトに追加します。 libsフォルダーにあります。質問があればもっと投稿してください。私はosmdroidの経験が豊富です。
OSMDroidの新しいバージョンでは、コンストラクターへのaResourceIdパラメーターが削除され、最後のパラメーターaBaseUrlはString[]になります。
public YourTileSource (String aName,
int aZoomMinLevel,
int aZoomMaxLevel,
int aTileSizePixels,
String aImageFilenameEnding,
String[] aBaseUrl) {
super(aName,
aZoomMinLevel,
aZoomMaxLevel,
aTileSizePixels,
aImageFilenameEnding,
aBaseUrl);
}