2010-08-15 4 views
1

폴리곤을 생성하고 마우스 이벤트를 첨부하는 멋진 코드를 만든 후 KML 레이어 (주로 위치 표시 자)를 추가 한 프로젝트에서 작업하고 있습니다. KML 레이어의 자리 표시 자와 생성 된 다각형 사이의 비협조적인 행동.Google지도 v3 API : 클릭, 마우스 이벤트로 KML 레이어 엉망이 됨

먼저 폴리곤을 만들고 KML 파일을 설정 한 다음 위치 표시자를 클릭하면 infowindow()가 예상대로 표시됩니다. 그러나 아래에있는 다각형의 마우스 오버는 아무런 결과도 얻지 못하고 반대로 강조 표시되기 전에는 클릭 할 수 없습니다.

KML 레이어를 null로 설정해도 도움이되지 않습니다. 위치 표시기는 사라지지만 폴리곤은 등록되지 않습니다.

처음 플레이스 마커를 사용하여 KML을 호출하면 나중에 호출되는 폴리곤 레이어가 위치 지정기 맨 위로 이동합니다. 다각형은 불투명하므로 창과 같은 위치 표시자를 볼 수 있지만 위치 표시자를 클릭하거나 상호 작용할 수는 없습니다.

다각형을 null로 설정하면 이전과 동일한 결과가 발생합니다. 여전히 자리 표시자를 클릭 할 수 없습니다.

도움 말? KML 레이어 코드에 대한 zIndex 참조를 찾을 수 없었습니다. 그게 전부라고 생각합니다. KML과 사용자가 만든 콘텐츠 "레이어"가 서로 상충합니다.지도에 표시된 후자는 초점을 맞추고 이벤트를 캡처합니다. 그런 생각을했을 것입니다. 그것은 당신이 다른 div의 위에 div를 가질 수있는 것과 같은 방식으로, 특히 당신이 색인 생성을 사용한다면 중요하지 않을 것입니다. 당신은 단순히 사용자 이벤트에 반응이있는 KML 층에 정보를 표시하지하려면

+1

것을 언급하는 것을 잊었다. – CrazyEnigma

답변

4

, 당신은 생성자에 suppressInfoWindows 플래그를 추가 할 수 있습니다 :이 효과적으로 모든 상호 작용을 차단합니다

var myKmlLayer = new google.maps.KmlLayer('http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml', { suppressInfoWindows: true }); 

및 다른 레이어가 상호 작용을하게하십시오.

편집

는 : 정보의 좋은 소스 일부 코드가 도움이 될 것 Google API V3 site discussing KML layers

+0

Tony에게 감사드립니다. 즉, KML 레이어 용 InfoWindow가 필요합니다. 그렇지 않으면 데이터 포인트가 아닙니다. Infopoints를 만들고 KML 레이어에서 에뮬레이션하려고 할 수는 있지만 그 시점에서는 마커를 생성하는 것이 더 쉽습니다. – Eugene

관련 문제