osmdroid를 사용하여 Android에서 OpenStreetMap을 봅니다.

안녕하세요 @xsota 입니다.

이 게시물은 OpenStreetMap Advent Calendar 2016 20 일째 기사입니다.

osmdroid를 사용하여지도를 표시하고 싶었기 때문에 어쨌든 시도했습니다.
그중 더 돌진한 재료를 써볼까 생각합니다.

OSM


  • osmdroid
    osmdroid는 Open Street Map을 Android에서 사용할 수있게 해주는 엄청난 녀석입니다.
    htps : // 기주 b. 코 m / smd 로이 d / 오 smd 로이 d
  • Open Street Map(OSM)
    모두 지도를 만드는 슈퍼 대단한 녀석
    h tps : // 오펜 st 예 t 마 p. jp/

  • 사용해 보겠습니다.



    우선은 프로젝트를 EmptyActivty라든지 지정해 드디어 만들어 주세요.
    repositories {
            jcenter()
    +       mavenCentral() //これを追加
        }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.4.0'
    
    +   compile 'org.osmdroid:osmdroid-android:5.6.2' // これを追加
    }
    
    

    이제 osmdroid를 사용할 수 있습니다!

    AndroidManifest에 다양한 permission 추가



    이 헨 추가
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    

    레이아웃에 MapView를 추가하겠습니다.



    activity_main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingBottom="@dimen/activity_vertical_margin"
      android:paddingLeft="@dimen/activity_horizontal_margin"
      android:paddingRight="@dimen/activity_horizontal_margin"
      android:paddingTop="@dimen/activity_vertical_margin"
      tools:context="com.xsota.osmdroidtest.MainActivity">
    
      <org.osmdroid.views.MapView
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
    </RelativeLayout>
    

    MainAvtivity 또는 TileSource 또는 터치로 확대 할 수있는 설정을 작성하십시오.



    MainActivity.java
    public class MainActivity extends AppCompatActivity {
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    
        org.osmdroid.tileprovider.constants.OpenStreetMapTileProviderConstants.setUserAgentValue(BuildConfig.APPLICATION_ID);
    
        MapView map = (MapView) findViewById(R.id.map);
        map.setTileSource(TileSourceFactory.MAPNIK);
        map.setBuiltInZoomControls(true);
        map.setMultiTouchControls(true);
      }
    }
    

    우선지도를 표시 할 수있게되었습니다.



    osmdroid

    쉽게 Open Street Map의 지도를 사용한 앱을 만들 수 있으므로 사용해 보면 어떨까요?

    「GoogleMap에서는 그렇게 할 수 있는데 osmdroid로는 할 수 없다!!!!」라고 하는 재료가 있으면 챌린지하고 싶으니까 누군가 가르쳐 주세요.

    그럼 안녕.

    좋은 웹페이지 즐겨찾기