Androidアプリにマップを統合する

モバイルデバイス上のマップを必要とする可能性のあるさまざまなアイデアがあります。

このようなデバイスの機能により、位置情報、グラフィックデータ、グラフィック変換をすばやく取得して、風景のボリュームを表示できます。



この記事では、Yandex MapsとGoogle Mapsの例を使用して、Androidベースのモバイルデバイスのマップを表示する機能を統合する方法を説明します。

これらの企業の機能ライブラリを使用すると、次のことができます。







国内メーカーから始めましょう。



ヤンデックス



Yandex MapKitライブラリGitHubからダウンロードできます。iOS用のバージョンもあります。

しかし、使用を開始する前に、APIキーを取得する必要があります。そのため、メールにアクセスし、「Map Kit」という見出しのAPIキーのリクエストを示す手紙をsupport@mobmaps.yandex.ruに書き込みます。 これに応じて、ドキュメント、使用規則、および実際にレターの本文にキー自体が記載された追加リンクを示すレターを受け取ります(または、送信されない場合があります)。



手紙を待っている間に、 ライブラリを受け取り、プロジェクトに添付します。



コーヒーマグで長い間待った後、私たちは手紙の内容とリンクの情報に精通し、キーを受け取り、アプリケーションレイアウトに次のコードを記述します。

<ru.yandex.yandexmapkit.MapView android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="you are key" />
      
      





「あなたはキーです」の代わりに、受け取ったキー挿入します。 それだけです、地図があります。



以下のコードは、マップを特定の座標に移動してズームを使用する方法を示しています。

 final MapView mMapView = (MapView) findViewById(R.id.map); //  MapController MapController mMapController = mMapView.getMapController(); //      mMapController.setPositionAnimationTo(new GeoPoint(60.113337, 55.151317)); mMapController.setZoomCurrent(15);
      
      







グーグル



Googleマップを使用するには、より高度なアクションを実行する必要があります。 カードを使用するためのデバッグキーを取得する方法を説明しますが、リリースバージョンを取得するプロセスは少し混乱しているようですが、まだリリースを受け取っていません。



デバッグキーを取得するには、デバッグ用のキーストアを見つける必要があります。

デフォルトでは、パスは次のようになります。

 C:\Documents and Settings\<user>\.android\debug.keystore
      
      





次に、コマンドラインを開き、Javaがインストールされているディレクトリに移動します。

 cd C:\Program Files\Java\jre6\bin
      
      





それから私達は書きます:

 keytool -list -alias androiddebugkey -keystore <___>.keystore -storepass android -keypass android
      
      





ここで、 keystore_pathはdebug.keystoreへのパスです(注意、パスにスペースがあると問題が発生する可能性があります)。



次に、同じウィンドウで、 「証明書の指紋(MD5)」の後にmd5キーが表示されます。

リンクをたどってコードを登録します。

その後、Googleはレイアウトに必要なコードと埋め込みコードを生成し、それを取得してレイアウトに貼り付けます。

次に、アクティビティを次の形式で提示する必要があります。

 package com.fewpeople.geoplanner; import android.os.Bundle; import com.google.android.maps.MapActivity; public class GeoMapActivity extends MapActivity { @Override public void onCreate(Bundle savedInstanceData) { super.onCreate(savedInstanceData); setContentView(R.layout.geomap); } @Override protected boolean isRouteDisplayed() { return false; } }
      
      







アクティビティは、com.google.android.maps.MapActivityに保存されているMapActivityから継承する必要があることに注意してください。

そして、タグ間のマニフェストレジスタで
 <application></application>
      
      



挿入:

 <uses-library android:name="com.google.android.maps" />
      
      





また、アプリケーションのインターネットへのアクセス許可を忘れないでください。

 <uses-permission android:name="android.permission.INTERNET" />
      
      







それ以外の場合、GoogleMapsとYandexMapKitの機能は非常に似ています:

 final MapView mMapView = (MapView) findViewById(R.id.mapview); //  MapController MapController mMapController = mMapView.getController(); //      mMapController.animateTo(new GeoPoint(60.113337, 55.151317)); mMapController.setZoom(15);
      
      







ご覧のとおり、カードをアプリケーションに統合するプロセスは非常に簡単で、使用範囲は非常に広いです。

詳細は以下をご覧ください。



自分の立場を定義する



この例を少し拡張するために、コードを添付します。

 final MapView cMapView = (MapView) findViewById(R.id.map); //  MapController MapController cMapController = cMapView.getMapController(); //   ,   cMapView.setBuiltInZoomControls(true); //     "" final LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); final LocationListener locationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) {} @Override public void onProviderEnabled(String provider) {} @Override public void onProviderDisabled(String provider) {} @Override public void onLocationChanged(Location location) {} }; locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); //  overlay     cMyLocationOverlay = new MyLocationOverlay(this, cMapView); cMyLocationOverlay.disableCompass(); cMyLocationOverlay.enableMyLocation(); cMapView.getOverlays().add(cMyLocationOverlay); //  cMapController.setZoomCurrent(15); //    (  LocationManager.NETWORK_PROVIDER,     ) Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); //      cMapController.animateTo(new GeoPoint((int) location.getLatitude() * 1000000, (int) location.getLongitude() * 1000000));
      
      







ただし、このコードを使用するには、マニフェストで次のアクセス許可を指定する必要があります。

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
      
      











使用される材料のリスト:

こんにちは、MapView(developers.android.com)

GoogleマップがApiを取得(一時)

Google Maps APIキーの取得

Androidアプリケーションのマップ

GoogleMapとポンピングされたSimpleCursorAdapterを使用してシンプルなアプリケーションを作成しています

Yandex Map Kitサービスの利用規約

例のAndroid OS用Yandexマップキット(Maxim Khromtsov)

マキシム・クロムツォフ。 例のAndroid OS用Yandex MapKit(ビデオ)



All Articles