2012-02-01 10 views
1

Я разместил успешное количество маркеров на моей платежной карте в Android-приложении Android.Маркер на Google Карте на Android НЕ выровнен

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

Мой маркер представляет собой простую яркую иконку с верхним треугольником в центре, поэтому нижний угол значка (который находится в реальном нижнем центре значка) должен быть точно установлен на GPS-координатах i для маркера. Вместо этого кажется, что выровненная точка находится в нижнем левом углу значка ...

Как установить выравнивание значка-значка?

+0

Добавить ответ в качестве ответа; это нормально (и подходит), чтобы ответить на ваш собственный вопрос. –

+0

У меня менее 100 репутации ... поэтому я не могу добавить ответ на свой вопрос до 8 часов ... Я добавил ответ как обновление, чтобы напомнить мне о тексте для записи. – Alex

ответ

1

Нашел решение самостоятельно. Я использовал стандартный наследуемый класс 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); 
    [...] 
    }