Как решить это наложение в Android? - PullRequest
0 голосов
/ 10 февраля 2010

Я новичок в разработке приложений для Android GPS. Мне нужно показать несколько местоположений на карте, и если пользователь коснется какого-либо одного из местоположений, он должен отобразить информацию об этом месте. Теперь моя проблема в том, что я не смог получить точное местоположение в событии касания. Есть ли способ получить точное заостренное местоположение изображения в оверлее.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2010

Что-то подобное может быть полезным для вас?

Если вы хотите получить широту и долготу, вы можете использовать GeoPoint tapPoint, чтобы получить их.

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; 
0 голосов
/ 10 февраля 2010

Метод onTouchEvent выглядит следующим образом:

public boolean onTouchEvent(MotionEvent event, MapView mapView)

Вы можете получить местоположение точки следующим образом:

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

Edit:

Это всего лишь идея. Может быть, вы можете взглянуть на документ для ItemizedOverlay , а более конкретно onTap(int index)

Полагаю, вам придется отслеживать ваши оверлеи в массиве и, используя индекс, получить соответствующий элемент оверлея

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...