2016-12-05 2 views
-5

私はここで学ぶことを試み、アンドロイドの開発の初心者です。私は地図上にマーカーが表示されるようにしようとしています。タッチやタップで地図を表示し、緯度と経度も表示します。私はそれらの緯度と経度をそれぞれの地名に変換したいと思います。逆ジオコーダーでは可能ですが、正しいコーディング方法はわかりません。Googleマップタイトルの地名を示すマーカー

ここに私のコードです。

public void onMapReady(final GoogleMap googleMap) { 
    mMap = googleMap; 

    LatLng sydney = new LatLng(-34, 151); 
    mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney")); 
    mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 

    mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { 

     @Override 
     public void onMapClick(LatLng point) { 

      String address; 
      String city; 
      mMap.clear(); 


      Geocoder geocoder; 
      List<Address> addresses; 

      geocoder = new Geocoder(MapsActivity.this, Locale.getDefault()); 

      try { 
       addresses = geocoder.getFromLocation(point.latitude, point.longitude, 1); 

       address = addresses.get(0).getAddressLine(0); 
       city = addresses.get(0).getLocality(); 

       MarkerOptions markerOptions = new MarkerOptions() 
         .position(point) 
         .title(city); 

       Marker marker = mMap.addMarker(markerOptions); 
       marker.showInfoWindow(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 

     } 
    });} 

答えて

0

あなたはユーバーのようなカスタムの場所ピッカーを構築したいか、場所の詳細情報を取得するために、GoogleプレイスAPIへのサービス呼び出しを記述する必要がswiggy場合。配置されたマーカーの位置を取得するには、非同期的なサービス呼び出しを行う必要があります。

Googleのヘルプを使用したい場合は、Google PlacePickerに行くことができます。これは、パフォーマンスとアプリの重量の面で、簡単で、速く、効果的です。

0

コレクションフレームワークを使用して、アドレスとマーカーを対応付ける(一致させる)ことができます。たとえば、 マップ«String、String»address_match; マーカーgetid()を作成し、アドレスをコレクションマップオブジェクトに配置するたびに、最初の文字列はマーカーIDになります。この方法で、マーカーをクリックしたときにIDで検索できます

+0

マーケットは既に緯度と経度を示しています。ジオコーダを使用して地名に変換するだけで済みます。私はそれが可能であることを知っているが、私はそれを適切にコーディングする方法を知らない。 –

関連する問題