2010-02-10 7 views
0

Je suis nouveau au développement d'applications GPS Android.Je dois montrer l'emplacement multiple dans la carte et si l'utilisateur touche l'un de l'emplacement alors il devrait afficher les informations sur cet endroit.Maintenant, mon problème est que je ne pouvais pas obtenir le emplacement exact dans l'événement tactile.Il existe un moyen d'obtenir l'emplacement exact de l'image dans la superposition.Comment résoudre ce recouvrement dans Android?

Répondre

0

La méthode onTouchEvent est la suivante:

public boolean onTouchEvent(MotionEvent event, MapView mapView) 

Vous pouvez récupérer l'emplacement du point avec ce qui suit:

Projection projection = mapView.getProjection(); 
GeoPoint g = projection.fromPixels((int)event.getX(),(int)event.getY()); 

Edit:

Ceci est juste une idée . Peut-être que vous pouvez jeter un oeil à la doc pour ItemizedOverlay, et plus particulièrement onTap(int index)

Je suppose que vous devrez garder une trace de vos superpositions dans un tableau et avec l'index, récupérer l'élément de recouvrement correspondant

+0

Salut ccheneson, Merci pour une réponse immédiate je l'ai déjà essayé, en utilisant celui-ci, nous pouvons en mesure d'obtenir la longitude et la latitude de l'endroit où nous touchons, mais ce que je veux est, je dois obtenir la longitude exacte et latitude de la valeur sélectionnée. for-ex) considérons deux images A et B pointant deux endroits respectivement place1 et place2 dans la carte.quand l'utilisateur touche l'image A il devrait afficher la longitude exacte et la latitude de lieu1 comme sage quand l'utilisateur touche l'image B il devrait afficher les points de place2 Comment réaliser cela? – Kumar

0

Quelque chose comme cela pourrait vous être utile?

Si vous souhaitez obtenir lat et long, vous pouvez utiliser le point d'accès GeoPoint pour les obtenir.

private mapLocation getHitMapLocation(MapView mapView, GeoPoint tapPoint) 
{ 
    mapLocation hitMapLocation = null; 
    RectF hitTestRecr = new RectF(); 
    Point screenCoords = new Point(); 
    Iterator iterator = mapLocationViewer.getMapLocations().iterator(); 
    while(iterator.hasNext()) { 
    mapLocation testLocation = iterator.next(); 
    mapView.getProjection().toPixels(testLocation.getPoint(), screenCoords);    
    hitTestRecr.set(-bubbleIcon.getWidth()/2,-bubbleIcon.getHeight(),bubbleIcon.getWidth()/2,0); 
    hitTestRecr.offset(screenCoords.x,screenCoords.y); 
    mapView.getProjection().toPixels(tapPoint, screenCoords); 
    if (hitTestRecr.contains(screenCoords.x,screenCoords.y)) { 
    pLocation = testLocation; 
    break; } 
} 
return hitMapLocation; 
Questions connexes