【osmdroid】マップタイルを設定する
Contents
はじめに
マップタイルには、Google Maps のような有料の物だけでなく、OpenStreetMap や国が公開しているデータなど様々なオープンデータも存在します。今回は osmdroid で、それらのマップタイルに設定する方法について説明します。
なおオープンデータのマップタイルについては、こちらにまとめています。
マップタイルを設定する方法
例えば、国土地理院の標準地図に設定する場合、以下のように記載します。
// マップタイルの設定(国土地理院)
final ITileSource tileSource = new XYTileSource("国土地理院", 0, 18, 256, ".png",
new String[] { "https://cyberjapandata.gsi.go.jp/xyz/std/" });
mapView.setTileSource(tileSource);
MainActivity.java の例は以下のようになります。「【osmdroid】Android でマップを表示する」も参考にしてみてください。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Configuration.getInstance().load(getApplicationContext(),
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()));
setContentView(R.layout.activity_main);
MapView mapView = (MapView) findViewById(R.id.mapView);
IMapController mapController = mapView.getController();
// マップタイルの設定(国土地理院)
final ITileSource tileSource = new XYTileSource("国土地理院", 0, 18, 256, ".png",
new String[] { "https://cyberjapandata.gsi.go.jp/xyz/std/" });
mapView.setTileSource(tileSource);
mapController.setZoom( 6.0 );
GeoPoint centerPoint = new GeoPoint( 38.00, 138.00 );
mapController.setCenter(centerPoint);
mapView.setMultiTouchControls(true);
}
}
以下、実行画面の例です。