OpenStreetMapをAndroidアプリで表示する サンプルコード

OpenStreetMapをAndroidアプリで表示する サンプルコード

前段階として、
OpenStreetMapをAndroidアプリに組み込む
でライブラリとしてosmdroidの準備ができていることが前提です。

さて、ここではさくっとOpenStreetMapを表示しましょう。
GoogleMapと利用方法はほぼ同じです。

  • MainActivity
  •  package com.example.osmsample;
     
     import org.osmdroid.api.IMapController;
     import org.osmdroid.tileprovider.tilesource.TileSourceFactory;
     import org.osmdroid.util.GeoPoint;
     import org.osmdroid.views.MapView; 
     
     import android.os.Bundle;
     import android.widget.LinearLayout;
     import android.app.Activity;
     
     public class MainActivity extends Activity {
     
     	@Override
     	public void onCreate(Bundle savedInstanceState) {
     		super.onCreate(savedInstanceState);
     		setContentView(R.layout.activity_main);
     		
     		IMapController m_mapController;
     
     		MapView map = new org.osmdroid.views.MapView(this, 256);
     		map.setBuiltInZoomControls(true);
     		map.setTileSource(TileSourceFactory.MAPNIK);
     		map.setMultiTouchControls(true);
     
     		org.osmdroid.views.MapView.LayoutParams mapParams = new org.osmdroid.views.MapView.LayoutParams(
     				org.osmdroid.views.MapView.LayoutParams.MATCH_PARENT,
     				org.osmdroid.views.MapView.LayoutParams.MATCH_PARENT, null,
     				0, 0, org.osmdroid.views.MapView.LayoutParams.BOTTOM_CENTER);
     
     
     		LinearLayout map_layout = (LinearLayout) findViewById(R.id.mapview);
     		map_layout.addView(map, mapParams);
     
      		m_mapController = map.getController();
     		m_mapController.setZoom(15);
     
     		double tempo_center_lat = 35.45797; //横浜みなとみらいの緯度
     		double tempo_center_lng = 139.632314; //横浜みなとみらいの経度
     		GeoPoint center_gpt = new GeoPoint(tempo_center_lat, tempo_center_lng);
     		m_mapController.setCenter(center_gpt);
     	
     	}
     
     }
    
    • activity_main.xml
     <?xml version="1.0" encoding="utf-8"?>
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <LinearLayout
            android:id="@+id/mapview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">
        </LinearLayout>
     </LinearLayout>
    

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です