0
Modell für meinen Marker erstellen:Siehe die Markierung auf der Karte
public class FirebaseMarker {
public String dob;
public String dod;
public String name;
public double latitude;
public double longitude;
public FirebaseMarker() {
}
public FirebaseMarker(String name, double latitude, double longitude, String dob, String dod) {
this.name = name;
this.latitude = latitude;
this.longitude = longitude;
this.dob = dob;
this.dod = dod;
}
Auch erstellen Getter und Setter für alle diese parametrs, danach i Klasse MapActivity erstellt (diese Aktivität i öffnen, wenn Druck auf Einzelteil in meinem recyclerView
)public class MapActivity extends AppCompatActivity implements OnMapReadyCallback {
ChildEventListener mChildEventListener;
DatabaseReference mProfileRef = FirebaseDatabase.getInstance().getReference("Profile");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
createMapView();
FirebaseMarker marker = new FirebaseMarker("Lincoln", -34.506081, 150.88104, "24/12/1940", "02/07/2016");
FirebaseMarker marker2 = new FirebaseMarker("Lincoln", -35.506081, 140.88104, "24/12/1940", "02/07/2016");
mProfileRef.push().setValue(marker);
mProfileRef.push().setValue(marker2);
}
private void createMapView() {
MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
return false;
}
});
LatLng wollongong = new LatLng(-34.404336, 150.881632);
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(wollongong, 18));
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
addMarkersToMap(googleMap);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
googleMap.setMyLocationEnabled(true);
}
@Override
public void onStop() {
if (mChildEventListener != null)
mProfileRef.removeEventListener(mChildEventListener);
super.onStop();
}
private void addMarkersToMap(GoogleMap googleMap) {
mChildEventListener = mProfileRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
FirebaseMarker marker = dataSnapshot.getValue(FirebaseMarker.class);
double latitude = marker.getLatitude();
double longitude = marker.getLongitude();
String name = marker.getName();
LatLng location = new LatLng(latitude, longitude);
googleMap.addMarker(new MarkerOptions().position(location).title(name));
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
Aber wenn ich öffnen Sie die Aktivität ich nur eine Karte zu sehen, wie ich die Markierung sehen kann?
gleiche Situation (i die Markierung sieht didn t. Mb muss ich seOnMarkerClickListener verwenden? – Inkognito