Как мне увеличить кликабельную область иконки на Google Maps? - PullRequest
2 голосов
/ 20 мая 2009

Мы пытаемся увеличить кликабельную область маркера на карте Google. Причина, по которой мы хотим это сделать, - щелчок по значку иногда пропускает точку привязки. Мы скорее не уменьшаем размер иконки

Мы предполагаем, что нам необходимо изменить одно из свойств объектов GIcon, и попытались изменить свойства iconAnchor и и infoWindowAnchor в GIcon, но это, похоже, не работает.

Кто-нибудь указывает нам правильное направление?

Ответы [ 4 ]

2 голосов
/ 03 августа 2010

Если у вас разные значки, рекомендуется динамически создавать карту изображений:

function getImgSize(imgSrc) {
   var newImg = new Image();
   newImg.src = imgSrc;
   var height = newImg.height;
   var width = newImg.width;
   return [height,width];
}

var icon = new GIcon(G_DEFAULT_ICON,iconUrl);
var iconSize = getImgSize(iconUrl);
icon.iconSize = new GSize(iconSize[1], iconSize[0]); // set icon size
icon.imageMap = [0,0, icon.iconSize.width,0, icon.iconSize.width,icon.iconSize.height,0,icon.iconSize.height]; // set click area
icon.shadowSize = new GSize(0, 0); // disable shadow
2 голосов
/ 03 ноября 2009

Я знаю, что это было давно, но у меня была та же проблема, допустим, ваш значок имеет ширину 51 пиксель и высоту 32 пикселя:

var baseIcon = new GIcon(G_DEFAULT_ICON);
baseIcon.imageMap = [0,0 , 51,0, 51,32 , 0,32];

В основном вы просто вводите координаты x, y

0 голосов
/ 02 июня 2009

В итоге мы уменьшили размер изображения. Мы не заметили, что рекомендуемый размер графики был 19x19

0 голосов
/ 20 мая 2009

Ссылка: http://code.google.com/apis/maps/documentation/reference.html#GIcon

iconAnchor и infoWindowAnchor устанавливают, где на изображении действительная точка на карте и информационное окно соответственно.

Если вы хотите увеличить кликабельную область, вы можете сделать что-то со свойством imageMap для не-IE (я никогда не пробовал). Тем не менее, я думаю, что лучше всего было бы определить пользовательский GIcon, который использует увеличенное изображение (дополненное прозрачным пространством. К сожалению, это довольно хакерский - возможно, кто-то другой знает о лучшем способе.

...