Pregunta

Tengo una actividad de mapa que tiene muchos pines del mapa, y cuando hago clic en un PIN, se abre un globo personalizado, que muestra información sobre ese PIN.Además, tengo una barra de búsqueda, donde si escribe el nombre de una perilla, la información aparece allí, pero quiero que vaya a ese PIN de búsqueda. Ejemplo: En el mapa tiene diferentes pasadores de verduras, y cuando busca la zanahoria, la lista de búsqueda mostrará la zanahoria del elemento y, cuando haga clic en él, el globo para el Pin de la zanahoriaInflar. Entonces, mi Pregunta es: ¿Hay algún tipo de método de vacío ()?Sé que, que ontap (int Índice) devuelve un booleano.

¿Fue útil?

Solución

Cree su propia superposición detallada y anule el método ONTAP, y en su clase principal, haga una instancia de la superposición detallada y llame a la superposición .ontap (punto)

Código de muestra:

public class MyItemizedOverlay<Item> extends ItemizedOverlay<OverlayItem> {
    private ArrayList<OverlayItem> m_overlays;
    private MapView mapView;
    final MapController mc;

    public MyItemizedOverlay(Drawable defaultMarker, MapView mapView) {
        super(boundCenterBottom(defaultMarker), mapView);
        m_overlays = new ArrayList<OverlayItem>();
        mc = mapView.getController();
        populate();
    }

    public void addOverlay(OverlayItem overlay) {
        m_overlays.add(overlay);
        setLastFocusedIndex(-1);
        populate();
    }

    public ArrayList<OverlayItem> getOverlays() {
        return m_overlays;
    }

    public final boolean onTap(int index) {
        GeoPoint point;
        point = createItem(index).getPoint();
        mc.animateTo(point);    
        return true;
    }

    ...
}

en la clase principal

public class Main extends MapActivity {
    private MapView mapView;
private List<Overlay> mapOverlays;
    private MyItemizedOverlay overlay;
private Drawable pin;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        doAction();
    }

    private void doAction() {
    mapView = (MapView)findViewById(R.id.map_view);
        pin = res.getDrawable(R.drawable.pin);

        overlay = new MyItemizedOverlay(pin, mapView);

        GeoPoint point = new GeoPoint((int)(7*1E6),(int)(42*1E6));
        overlayItem = new OverlayItem(point, "title", "text");

    overlay.addOverlay(overlayItem);

        mapOverlays = mapView.getOverlays();
    mapOverlays.add(overlay);

        //we tap the point here
        overlay.onTap(0);
    }
}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top