2017-06-23 1 views
1

Ich habe ein Problem mit dem Drücken einer Option in meinem navigationView (R.id.create_marker) Ich möchte einen Marker in meinem MapFragment erstellen, aber ich kann es nicht tun, irgendwelche Vorschläge?NavigationDrawer + Google Maps Ereignis

Code of MainActivity.java, wo ich die Menüoption drücken:

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
@Override 
public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.create_marker: 
     Toast.makeText(MainActivity.this, "Crear Marker", Toast.LENGTH_SHORT).show(); 
     // Create marker and display it on the map 
     break; 
    } 
    return false; 
} 
}); 

Code of MapFragment.java:

public class MapFragment extends Fragment 
    implements OnMapReadyCallback { 

private View rootView; 
private GoogleMap gMap; 
private MapView mapView; 

public MapFragment() { 
    // Required empty public constructor 
} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    rootView = inflater.inflate(R.layout.fragment_map, container, false); 
    return rootView; 
} 

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    mapView = (MapView) rootView.findViewById(R.id.map); 
    if (mapView != null) { 
     mapView.onCreate(null); 
     mapView.onResume(); 
     mapView.getMapAsync(this); 
    } 
} 

@Override 
public void onResume() { 
    super.onResume(); 
} 

@Override 
public void onMapReady(GoogleMap googleMap) { 
} 
} 

Das ist die Struktur meines Projekts:

Antwort

0

Um eine Markierung zu erstellen, müssen Sie die Methode addMarker auf Ihrer Karte aufrufen, sobald sie für die Verwendung bereit ist.

public void onMapReady(GoogleMap googleMap) { 
     // Add a marker in Sydney, Australia, 
     // and move the map's camera to the same location. 
     LatLng sydney = new LatLng(-33.852, 151.211); 
     googleMap.addMarker(new MarkerOptions().position(sydney) 
       .title("Marker in Sydney")); 
     googleMap.moveCamera(CameraUpdateFactory.newLatLng(sydney)); 
    } 

Wenn Sie Ihre Karte wollen einen Marker für eine feste Lat-Lng zu öffnen, in den Koordinaten passieren, wie in den oben angezeigten Code ein, sonst Anfrage Standort über Google Location Api und übergeben die erhaltenen Lat-Lng-Werte die addMarker() -Methode.

Verwandte Themen