Неправильное смещение пользовательского маркера Google Static Maps API v2 без тени

У меня возникли проблемы со смещением пользовательских значков в API статических карт Google. Обратите внимание на разницу в смещении для API javascript и API статических карт. Пользовательский значок создается точно так, как описано в документации Google API.

Как я могу исправить это смещение, чтобы значок располагался в правильных координатах? (Я использую API javascript в зоне администратора, чтобы расположить маркер для презентации с помощью статического API.)

Проблема в зуме, который я хочу сделать другим, но как мне его точнее расположить с другим зумом?

Это API статических карт с неправильным позиционированием:

Google Maps API V3![][1]

Это API статических карт с тенью:

С тенью

Это Javascript API v3 с правильным позиционированием:

API статической карты Google v2

edit: Итак, если я снова добавлю тень, положение будет правильным, но есть ли способ исправить это без тени?

Я хочу, чтобы маркер был в центре И с правильным позиционированием.


person Yeggeps    schedule 16.05.2012    source источник
comment
Вы можете легко увидеть, задействовано ли масштабирование, получив ту же статическую карту с другим масштабированием. На самом деле было бы неплохо сделать это и отредактировать результат в своем вопросе.   -  person Andrew Leach    schedule 16.05.2012
comment
Вы правы, зум был фактором.   -  person Yeggeps    schedule 16.05.2012


Ответы (2)


Поскольку вы не используете тень, API предположил, что «точка привязки» маркера находится в его центре, а не в нижней точке.

Центр значка статической карты на первой иллюстрации находится в том же месте, что и точка маркера на втором изображении.

Поскольку маркер имеет фиксированный размер, указатель будет указывать на другое место с разным увеличением.

Чтобы исправить это, удалите дескриптор shadow:false из пользовательского значка.

person Andrew Leach    schedule 16.05.2012
comment
Эй, спасибо за объяснение. Итак, я снова добавил тень, и это работает, но как это сделать без тени? Можно ли установить точку привязки на дно? - person Yeggeps; 17.05.2012
comment
Если вы будете следовать документам, вы увидите, что с тенью точка привязки находится в центре внизу. Без тени точкой привязки является центр значка. Так что будет правильно, если вы уберете точку снизу и пусть сама иконка укажет положение. Вариантов всего два: с тенью и снизу по центру; и без тени, в центре. - person Andrew Leach; 17.05.2012

«Думал, что может быть обходной путь». - Йеггепс

На самом деле так и есть — просто увеличьте свое изображение в два раза по высоте и выровняйте изображение по верхнему краю. Конечно, изображение расточительно в два раза больше по высоте, но, по крайней мере, это решает проблему ;)

Примечание. Это особенно полезно с новым параметром visual_refresh=true, поскольку он игнорирует параметр тени!

person Tadej Kanižar    schedule 29.06.2013
comment
+1 за указание, что с visual_refresh=true тень игнорируется. - person derflocki; 13.11.2013