Android
 Computer >> コンピューター >  >> プログラミング >> Android

Androidのグーグルマップに現在地を表示する方法は?


この例は、AndroidのGoogleマップに現在地を表示する方法を示しています。

ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。

ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="https://schemas.android.com/apk/res/android"
   xmlns:tools="https://schemas.android.com/tools"
   android:id="@+id/myMap"
   android:name="com.google.android.gms.maps.SupportMapFragment"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity" />

ステップ3 – build.gradle(モジュール:app)に次の依存関係を追加します

implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'

ステップ4 −次のコードをsrc / MainActivity.java

に追加します
import android.Manifest;
import android.content.pm.PackageManager;
import android.location.Location;
import android.os.Bundle;
import android.widget.Toast;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.FragmentActivity;
public class MainActivity extends FragmentActivity implements OnMapReadyCallback {
   Location currentLocation;
   FusedLocationProviderClient fusedLocationProviderClient;
   private static final int REQUEST_CODE = 101
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
      fetchLocation();
   }
   private void fetchLocation() {
      if (ActivityCompat.checkSelfPermission(
         this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
         this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
         ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);
         return;
      }
      Task<Location> task = fusedLocationProviderClient.getLastLocation();
      task.addOnSuccessListener(new OnSuccessListener<Location>() {
         @Override
         public void onSuccess(Location location) {
            if (location != null) {
               currentLocation = location;
               Toast.makeText(getApplicationContext(), currentLocation.getLatitude() + "" + currentLocation.getLongitude(), Toast.LENGTH_SHORT).show();
               SupportMapFragment supportMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.myMap);
               assert supportMapFragment != null;
               supportMapFragment.getMapAsync(MainActivity.this);
            }
         }
      });
   }
   @Override
   public void onMapReady(GoogleMap googleMap) {
      LatLng latLng = new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude());
      MarkerOptions markerOptions = new MarkerOptions().position(latLng).title("I am here!");
      googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng));
      googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 5));
      googleMap.addMarker(markerOptions);
   }
   @Override
   public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
      switch (requestCode) {
         case REQUEST_CODE:
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
               fetchLocation();
         }
         break;
      }
   }
}

ステップ5 –strings.xmlを開き、次のコードを追加します-

<resources>
   <string name="app_name">Sample</string>
   <string name="map_key" translatable="false">Enter your google API key here</string>
</resources>

ステップ6 – google APIキー(map_key)を取得するには、以下の手順に従ってください

GoogleCloudPlatformコンソールにアクセスします。

  • [プロジェクト]ドロップダウンをクリックして、APIキーを追加するプロジェクトを選択または作成します。
  • メニューボタンをクリックします Androidのグーグルマップに現在地を表示する方法は? そして[APIとサービス]>[クレデンシャル]を選択します。
  • [資格情報]ページで、[資格情報の作成]>[APIキー]をクリックします。 [APIキーの作成]ダイアログに、新しく作成したAPIキーが表示されます。
  • [閉じる]をクリックします。
  • 新しいAPIキーは、[資格情報]ページの[APIキー]の下に一覧表示されます。 (本番環境で使用する前に、APIキーを制限することを忘れないでください。)

ステップ7 −次のコードをandroidManifest.xmlに追加します

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
   <uses-permission android:name="android.permission.INTERNET"/>
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:supportsRtl="true"
      android:theme="@style/AppTheme">
      <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/map_key"/>
      <activity android:name=".MainActivity">
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

アプリケーションを実行してみましょう。実際のAndroidモバイルデバイスをコンピューターに接続していると思います。 android studioからアプリを実行するには、プロジェクトのアクティビティファイルの1つを開き、ツールバーの[実行]アイコンをクリックします。オプションとしてモバイルデバイスを選択し、デフォルトの画面を表示するモバイルデバイスを確認します–

Androidのグーグルマップに現在地を表示する方法は?


  1. AndroidでLocationAPIを使用して現在地を追跡するにはどうすればよいですか?

    この例は、AndroidでLocationAPIを使用して現在地を追跡する方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 build.gradle(Module:app)に次の依存関係を追加します- implementation 'com.google.android.gms:play-services-maps:17.0.0' ステップ2 −次のコードをres / layout/activity_main.x

  2. GoogleマップでHTML5ジオロケーションを使用して現在地を表示するにはどうすればよいですか?

    HTML5 Geolocation APIを使用すると、現在地をお気に入りのWebサイトと共有できます。 Javascriptは緯度と経度をキャプチャし、バックエンドWebサーバーに送信して、地元のお店を見つけたり、地図上に現在地を表示したりするなど、場所を意識した凝ったことを行うことができます。地理位置座標は、デバイスの地理的位置を指定します。 ジオロケーションメソッドgetCurrentPosition()およびgetPositionUsingMethodName()は、ロケーション情報を取得するコールバックメソッドを指定します。これらのメソッドは、完全な位置情報を格納するオブジェクトPo