2017-08-22 10 views
0

しかし、私はそれらをそれぞれ別々に選択することはできません。
マーカーをタッチして詳細を取得することで、それぞれを個別に選択する方法を教えてください。この関数のAは、jsonarrayで、0〜19(20)の要素が使用されます。私はアンドロイドにGoogleマップの近くの場所APIを使用しています。私のコードは、近くの場所のみを表示します

それぞれのマーカーを個別に選択する方法はわかりません。

private void parseLocationResult(final JSONObject result) { 


    String id, place_id, placeName = null, reference, icon, vicinity = null; 
    JSONArray rev; 
    double latitude; 
    double longitude; 

    try { 
     final JSONArray jsonArray = result.getJSONArray(RESULTS);//JavaScript Object Notation 

     if (result.getString(STATUS).equalsIgnoreCase(OK)) { 

      mMap.clear(); 

      for (int i = 0; i < jsonArray.length(); i++) { 
       final JSONObject place = jsonArray.getJSONObject(i); 

       id = place.getString(SUPERMARKET_ID); 
       place_id = place.getString(PLACE_ID); 
       if (!place.isNull(NAME)) { 
        placeName = place.getString(NAME); 
       } 
       if (!place.isNull(VICINITY)) { 
        vicinity = place.getString(VICINITY); 
       } 
       latitude = place.getJSONObject(GEOMETRY).getJSONObject(LOCATION) 
         .getDouble(LATITUDE); 
       longitude = place.getJSONObject(GEOMETRY).getJSONObject(LOCATION) 
         .getDouble(LONGITUDE); 
       reference = place.getString(REFERENCE); 
       icon = place.getString(ICON); 


       MarkerOptions markerOptions = new MarkerOptions(); 
       final LatLng latLng = new LatLng(latitude, longitude); 
       markerOptions 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.bluemarker)) 
         .position(latLng); 
       markerOptions.title(placeName + " : " + vicinity); 


       mMap.addMarker(markerOptions); 



      } 

      Toast.makeText(getBaseContext(), jsonArray.length() + " found!", 
        Toast.LENGTH_LONG).show(); 
     } else if (result.getString(STATUS).equalsIgnoreCase(ZERO_RESULTS)) { 
      Toast.makeText(getBaseContext(), "Not found in 5KM radius!!!", 
        Toast.LENGTH_LONG).show(); 
     } 

    } catch (JSONException e) { 

     e.printStackTrace(); 
     Log.e(TAG, "parseLocationResult: Error=" + e.getMessage()); 
    } 
} 

答えて

0

GoogleMap.OnMarkerClickListenerを実装し、私はそれが特異的なマーカーであることを認識すべきであるかマーカー

@Override 
public boolean onMarkerClick(Marker marker) { 

    // on marker clicked 

    if (marker.equals(this.marker)) { 
     // on specific marker clicked 
    } 
    return false; 
} 
+0

をクリックして検出するonMarkerClickをオーバーライド??? –

+0

クリックしたマーカーの緯度と経度を特定の緯度と経度で比較できます。@ZiaAnsari –

+0

実際にマーカーをクリックすると詳細がログに表示されます。 –

関連する問題