Question

Mise à jour 07/12/2011: Je l'ai compris. Publiera une solution dès que j'aurai terminé avec l'implémentation.

Je crée une application Android qui affichera l'emplacement de plusieurs utilisateurs sur une carte Google. Les utilisateurs sont actuellement représentés comme des points bleus et verts sur la carte. Lorsque vous appuyez sur le point bleu représentant votre emplacement, une superposition personnalisée apparaît sur la carte qui indique "l'emplacement actuel"

http://imgur.com/7S1Bg

Mon problème est que lorsque je fais défiler ou zoomer la carte, la superposition avec "l'emplacement actuel" reste au même endroit pendant que la carte se déplace en dessous. Je veux qu'il se déplace avec la carte afin que la fenêtre contextuelle soit toujours directement au-dessus du point bleu, comme dans cet exemple:

http://econym.org.uk/gmap/example_ewindow.htm.

Voici comment mon projet de carte est disposé:

J'ai une activité qui étend com.google.android.maps.mapactivité. Cette activité a en tant que membre un objet com.google.android.maps.mapView. Je gère les superpositions avec un AdjacentMapoverlayList (qui étend itemizedOverlay).

Voici mon code lorsqu'un utilisateur clique sur l'icône bleue:

/*
 * Handle tap events.
 * 
 * @param index the item that was tapped
 */
@Override
protected boolean onTap(int index) {

    Log.d(TAG, "User clicked something");

    // get the item that was tapped
    OverlayItem item = (OverlayItem) getItem(index);

    // cast it
    AdjacentUserOverlay overlay = (AdjacentUserOverlay) item;

    // get the point from the item
    GeoPoint geo = overlay.getPoint();
    Point pt = m_mapView.getProjection().toPixels(geo, null);

    // display the dialog
    m_userPopupDialog.show(pt.x, pt.y);

    // true dat
    return true;
}

Je suppose que je dois intercepter les événements de mouvement de la carte et déplacer les dialogues contextuels manuellement, mais il doit y avoir un moyen plus facile. Quelqu'un peut-il expliquer comment faire cela? Je serai sur toute la journée si vous avez besoin d'informations supplémentaires. Merci pour tout conseil!

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top