Маркер на Google Map на Android НЕ выровнен - PullRequest
1 голос
/ 01 февраля 2012

Я успешно разместил много маркеров на карте активности в моем приложении для Android.

Проблема в том, что когда зум низок (я вижу всю страну на экране), я вижу, что маркер совсем не выровнен по установленному положению. я имею в виду, что маркер при низком уровне масштабирования, кажется, расположен в 50-100 км от этой точки.

Мой маркер - это простой нарисованный значок, у которого в верхней части находится ТРЕУГОЛЬНИК, поэтому нижний угол значка (который расположен в реальном нижнем центре значка) должен быть точно расположен на координатах GPS, которые я установил. для маркера. Вместо этого кажется, что выровненная точка - это левый нижний угол значка ...

как установить выравнивание маркера и иконки?

1 Ответ

1 голос
/ 02 февраля 2012

Нашел решение сам. я использовал стандартный класс наследования Overlay.

я изменил инструкцию в переопределенной функции рисования:

public boolean draw(Canvas canvas, MapView mapView, boolean shadow,
        long when) {
    Point screenPts = new Point();
    mapView.getProjection().toPixels(p, screenPts);
    Point finalDrawPosition= new Point();
    finalDrawPosition.set(screenPts.x - (bmp.getWidth()/2), screenPts.y- bmp.getHeight());

    canvas.drawBitmap(bmp, finalDrawPosition.x, finalDrawPosition.y, null); 
    [...] 
    }
...