- Tworzenie instancji klasy Marker, ale bez dodawania jej do mapy.
Odpowiedz
Można użyć LazyMarker.java z Android Maps Extensions.
Nie tworzy fizycznie markera, dopóki nie zadzwonisz pod numer setVisible(true)
.
To się udało. Dziękuję Ci. –
Można to zrobić poprzez ustawienie visibility
do false
Marker marker = mMap.addMarker(new MarkerOptions()
.position(
new LatLng(arg0.latitude,
arg0.longitude))
.draggable(true).visible(false));
Edycja
Marker m = new Marker(new z() {
@Override
public IBinder asBinder() {
return null;
}
@Override
public void showInfoWindow() throws RemoteException {
}
@Override
public void setVisible(boolean paramBoolean)
throws RemoteException {
}
@Override
public void setTitle(String paramString)
throws RemoteException {
}
@Override
public void setSnippet(String paramString)
throws RemoteException {
}
@Override
public void setPosition(LatLng paramLatLng)
throws RemoteException {
}
@Override
public void setDraggable(boolean paramBoolean)
throws RemoteException {
}
@Override
public void remove() throws RemoteException {
}
@Override
public boolean isVisible() throws RemoteException {
return false;
}
@Override
public boolean isInfoWindowShown() throws RemoteException {
return false;
}
@Override
public boolean isDraggable() throws RemoteException {
return false;
}
@Override
public void hideInfoWindow() throws RemoteException {
}
@Override
public int hashCodeRemote() throws RemoteException {
return 0;
}
@Override
public String getTitle() throws RemoteException {
return null;
}
@Override
public String getSnippet() throws RemoteException {
return null;
}
@Override
public LatLng getPosition() throws RemoteException {
return null;
}
@Override
public String getId() throws RemoteException {
return null;
}
@Override
public boolean g(z paramz) throws RemoteException {
return false;
}
});
a następnie dodanie go, gdy chcesz się ten
mMap.addMarker(new MarkerOptions().position((m.getPosition())));
Nadzieja pomaga
Jest to jedna z opcji, ale nadal znacznik jest dodawany praktycznie do mapy. Zastanawiam się, czy istnieje sposób, aby go stworzyć bez dodawania go - jak Flex Maps API. –
Myślę, że można to zrobić tylko przez utworzenie nowego obiektu 'Marker' za pomocą' com.google.android.gms.internal.z' jak 'Marker m = new Marker (nowy z()/* z pełną anonimową wewnętrzną klasą * /) ' –
@ AnujMathur_07 Konstruktor znaczników nie powinien być dostępny dla programistów i nie jest dobrze, aby spróbować go użyć. Zobacz [ten problem z komendami] (http://code.google.com/p/gmaps-api-issues/issues/detail?id=5281). –
To więcej niż istotna dla aplikacji, którą tworzę. –