2016-05-25 6 views
0

Ich versuche, indem die Breite und die Länge von einem bestimmten Ort eine Markierung in Google Maps zu setzen, nachdem dies durch den Einsatz Orte zu finden:Wie setze ich einen Marker in Google Maps nach einem Klick?

public void findPlace() { 

    AutocompleteFilter typeFilter = new AutocompleteFilter.Builder() 
      .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS) 
      .build(); 

    try { 
     Intent intent = 
       new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) 
         .setFilter(typeFilter) 
     .build(getActivity()); 

     getActivity().startActivityForResult(intent, PLACE_AUTOCOMPLETE_REQUEST_CODE); 

     //to add marker for destination location 


    } catch (GooglePlayServicesRepairableException e) { 
     // TODO: Handle the error. 
    } catch (GooglePlayServicesNotAvailableException e) { 
     // TODO: Handle the error. 
    } 
} 

Daraus ich den Platz zu bekommen, und ich bin mit dem folgend zu erhalten lat und lange der Orts gesucht:

Place place = PlaceAutocomplete.getPlace(MainActivity.this, data); 
Log.e("lat and long", place.getLatLng().latitude + place.getLatLng().longitude) 

danach i Marker zu diesem lat zu setzen versuchen und lange mit dieser Methode i erstellt:

protected Marker createMarker(double latitude, double longitude) { 

    Logger.e("inside" ,"create marker"); 
    return mMap.addMarker(new MarkerOptions() 
      .position(new LatLng(latitude, longitude)) 
      .anchor(0.5f, 0.5f) 
      .title("Destination") 
      .snippet("Snippet Destination").icon(BitmapDescriptorFactory.fromResource(R.drawable.black))); 

} 

und diese Methode scheint nur innerhalb der Onverride-Methode onMapReady zu funktionieren.

Wie kann ich es nach dem Klicken verwenden?

Antwort

1

Rufen Sie unten Methode, wenn Sie Marker auf Karte setzen möchten.

public Marker placeMarker(EventInfo eventInfo) { 
    Marker m = getMap().addMarker(new MarkerOptions().position(eventInfo.getLatLong()).title(eventInfo.getName())); 
    return m; 

}