2013-05-10 10 views
9
  • Tworzenie instancji klasy Marker, ale bez dodawania jej do mapy.
+0

To więcej niż istotna dla aplikacji, którą tworzę. –

Odpowiedz

3

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

+0

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. –

+1

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ą * /) ' –

+1

@ 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). –