2011-07-04 4 views
0

mouseover 이벤트에서 마커 이미지를 변경하고 싶습니다. 깜박임이Google지도 Api V3 - MarkerImage의 URL을 변경할 때 눈에 띄는 깜박임

google.maps.event.addListener(marker, "mouseover", function (event) 
{ 
    this.set('icon', 'http://google.com/mapfiles/ms/micons/yellow-dot.png'); 
}); 

google.maps.event.addListener(marker, "mouseout", function (event) 
{ 
    this.set('icon', 'http://google.com/mapfiles/ms/micons/red-dot.png'); 
}); 

때이지도는 URL에서 새 이미지를로드하기 때문에 생각 처음으로, 이상의 I 마우스 : 바로 지금, 중요한 비트는 다음과 같습니다.

노란색과 빨간색 패들 마커를 미리로드하고 캐시에 저장할 수있는 방법이 있습니까?

답변

2

Preload marker images for Google Maps<div> 태그에 display으로 설정하고 none으로 설정하면 브라우저를 속여서 미리로드 할 수 있습니다.

다른 방법 (HTML5가 표시 될 수 있습니까?)이 시도 할 수있는 빠르고 간단한 해결책 인 것처럼 보일 수 있습니다. (작동하지 않는다면 실행 및 실행 취소에 많은 노력을 기울이지 않았습니다. 시도해 보면 작동하는지 또는 작동하지 않는지 알고 싶습니다.)

이 솔루션은 사용자의 특정 문제를 해결하지만,의 "최적화"속성을 해제하려고한다면 잘 모르겠어요

<div style="display:none"> 
    <img alt="" src="http://google.com/mapfiles/ms/micons/yellow-dot.png"/> 
</div> 
+0

안녕하세요, 내가 제안한대로 솔루션을 시도하고 이미지가 한 번 깜박입니다. 그것이 없으면 마커가 표시되지 않는 일시 중지가있을 수 있으므로 여전히 개선 된 것입니다. – lowzhien

+0

아직 완벽하지는 않습니다. 마커 이미지가로드되면 전환이 훨씬 원활 해집니다. – lowzhien

+0

이 문제를 발견 한 사람 : Stuart Cusack의 답변으로 제안 된 솔루션보다 훨씬 나은 (읽기 : 완전히 해결 된) 문제가 해결되었습니다. – DrColossos

6

: 당신은 당신의 페이지에이를 포함하여 그것을 더러운 빠른 및 테스트를 할 수있는 마커 :

var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(lat, long), 
    icon: markerIcon, 
    optimized: false 
}); 

IE에서 특정 확대/축소 수준에서 마커를 가리키면 제스처가 생기는 문제가 해결되었습니다. ering 효과.

+0

이것은 실제로 모든 브라우저에서 프로 플램을 수정했습니다. [문서 내부] (https://developers.google.com/maps/documentation/javascript/reference?hl=de#MarkerOptions)를 읽으면 왜'optimized : false'가 그런 경우에 작동합니다 – DrColossos

관련 문제