Превратить изображение в Google Maps V3? - PullRequest
1 голос
/ 10 января 2011

Мне нужна помощь с JavaScript в google map v3. У меня есть изображение, и мне нужно его включить.Это работает, но настоящая проблема в том, что я не могу повлиять на маркер, потому что я не знаю, как вызвать его и изменить этот маркер.Я показываю вам часть кода:

Маркер:

sURL    =  'http://www.sl2o.com/tc/picture/Fleche.PNG';
iWidth  =  97;
iHeight =  100;

mImage = new google.maps.MarkerImage(sURL, new google.maps.Size(iWidth,iHeight), new google.maps.Point(0,0), new google.maps.Point(Math.round(iWidth/2),Math.round(iHeight/2)));

var oMarker = new google.maps.Marker({
'position': new google.maps.LatLng(iStartLat,iStartLon),
'map': map,
'title': 'mon point',
'icon': mImage
});

Тогда у меня есть это:

onload=function(){ 
 rotate.call(document.getElementById('im'),50);  
} 
</script>
<img id="im" src="http://www.sl2o.com/tc/picture/Fleche.PNG" width="97" height="100" />

Итак, вот оно.Как вы видите, я изменяю это изображение, и мне действительно нужно исправить маркер.Как мне это сделать ?Пожалуйста, мне нужно это, я работаю над этим часами.Спасибо !!

Ответы [ 2 ]

0 голосов
/ 27 января 2011

В моем проекте я хочу повернуть изображение. Вот почему я строю много маркеров изображений: для (var i = 1; i <31; i ++) { nadelimages [i] = new google.maps.MarkerImage ( './Static/map/Kompass_'+i+'.png', новый google.maps.Size (w, w), новый google.maps.Point (0,0), новый google.maps.Point (w / 2, w / 2) ); </p>

Сейчас: var rotatePin = function () { ni = ni + 1 if (ni> 29) ni = 1; nadelMarkers [1] .setIcon (nadelimages [Ni]); SetTimeout (rotatePin, 100); }

В приведенном выше решении установите Icon dont update , но при этом вставьте новое изображение маркера. Количество маркеров растет.

var rotatePin = function () { ni = ni + 1 if (ni> 29) ni = 1; nadelMarkers [1] .setIcon ( './ статические / Карта / Компасс _ + Ni + PNG.'); SetTimeout (rotatePin, 100); }

В этом случае он работает нормально, но центр - это не центр изображения, а его центр снизу.

Другие решения?

Rainer

0 голосов
/ 10 января 2011

К сожалению, Google Maps API не предоставляет никаких методов для доступа к img-элементу (я искал его много раз).Img-элементы смешиваются в DOM-дереве и поэтому доступны для поиска.то есть:

var imgElements = document.getElementsByTagName('img'),
    i = 0;
for (i = 0; i < imgElements.length; i+= 1) {
    if (imgElements[i].src === 'http://www.sl2o.com/tc/picture/Fleche.PNG') {
         rotate.call(imgElements[i], 50);
    }
}

Это превратит ВСЕ img-элементы с указанным src, вы можете добавить больше условий к оператору if, чтобы быть более конкретным.

Но это обычно не хорошее решениетак как часто больше маркеров, чем у того же img src.

, я бы сделал больше одного изображения и повернул бы его в Photoshop (или любом другом инструменте для работы с изображениями), а затем создал бы новый MarkerImage для каждого варианта, который вы хотитеиспользовать.И изменить изображение маркера с помощью .setIcon ().т.е.:

oMarker.setIcon(mImage);

.. Фредрик

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