7

私は都市内のさまざまな地域の連続LatLngを使用しています。クリック可能なポリゴンを作成できる方法はありますか?進むべき道はGoogleマップでクリック可能なポリゴンを作成する(Android用)

  • になります一度は利用できLatLngsでポリゴンを生成します。(私は視覚的にカラー符号化で地図上のポリゴンを表示する)setOnMapClickListenerを設定
  • ポリゴンテストの中でポイントを作成します。

私はこれがとても素朴であると理解します。代わりのアプローチは何ですか?

答えて

6

ここで私はそれをしました。

Polygon polygon = getMap().addPolygon(new PolygonOptions() 
        .add(new LatLng(12.780712, 77.770956), new LatLng(12.912006, 77.229738), new LatLng(12.412006, 77.629738), new LatLng(12.912006, 77.229738)) 
        .strokeColor(0xFF00AA00) 
        .fillColor(0x2200FFFF) 
        .strokeWidth(2) 
    ); 


    polygon.setClickable(true); 

    getMap().setOnPolygonClickListener(new GoogleMap.OnPolygonClickListener() { 
     public void onPolygonClick(Polygon polygon) { 

      mClusterManager = new ClusterManager<MyItem>(getApplicationContext(), getMap()); 
      getMap().setOnCameraChangeListener(mClusterManager); 
      getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(getMap().getCameraPosition().target, getMap().getCameraPosition().zoom)); 

      try { 
       readItems(); 
      } catch (JSONException e) { 
       Toast.makeText(getApplicationContext(), "Problem reading list of markers.", Toast.LENGTH_LONG).show(); 
      } 

     } 
    }); 

希望します。

+0

ありがとうございます!カスタムオブジェクトをPolygonに接続するには? –

2

クリック可能なポリゴンを持つことに夢中になる必要はありません。私は時間前にそれをやったが、今、そのためのAPIがあります:にポリゴンを追加することで

GoogleMap mymap =....//init your map 
mymap.setOnPolygonClickListener(new OnPolygonClickListener(){ 
void onPolygonClick(Polygon polygon){ 
    //do whatever with polygon! 
} 
}); 
2

GoogleMap.setOnPolygonClickListener(OnPolygonClickListener)あなたは簡単にそれを使用することができます

地図。最初にPolygonOptionsオブジェクトを作成し、いくつかのポイントを追加します。これらの点はポリゴンのアウトラインを形成します。 Polygonオブジェクトを返すGoogleMap.addPolygon(PolygonOptions)を呼び出して、ポリゴンをマップに追加します。 次のコードスニペットは、マップにポリゴンを追加する方法を示しています。

// Instantiates a new Polygon object and adds points to define a rectangle PolygonOptions rectOptions = new PolygonOptions() 
       .add(new LatLng(37.35, -122.0), 
        new LatLng(37.45, -122.0), 
        new LatLng(37.45, -122.2), 
        new LatLng(37.35, -122.2), 
        new LatLng(37.35, -122.0)); 

// Get back the mutable Polygon Polygon polygon = myMap.addPolygon(rectOptions); 

デフォルトでは、ポリゴンはクリックできません。クリック性を有効または無効にするには、Polygon.setClickable(boolean)を呼び出します。

好きNドリガッティと述べた。 OnPolygonClickListenerを使用してクリックイベントをリッスンする場合は、GoogleMap.setOnPolygonClickListener(OnPolygonClickListener)を呼び出します。

ユーザーがポリゴンをクリックすると、onPolygonClick(Polygon)コールバックが表示されます。 詳細については、documentをご確認ください。

関連する問題