2014-10-13 2 views
2

에 의해 다각형을 찾기 : 구글지도가 : 안녕 아래 다각형이 아이디

var polygon = new google.maps.Polygon({ 
       paths: coords, 
       id : 123, 
       strokeColor: '#FF0000', 
       strokeOpacity: 0.8, 
       strokeWeight: 1, 
       fillColor: '#FF0000', 
       fillOpacity: 0.35 
      }); 

polygon.setMap(globalMap); 

내가 그래서 나중에 참조 할 수 그것으로 ID 연결된 속성을 문제입니다. 같은 폴리곤을 찾고 이벤트를 트리거하는 방법은 무엇입니까? 변화하는 색깔 또는 무언가 같이?

function changePolygonColor(){ 
//refer to the polygon with id 123 (this is my question) 

//change its color 
polygon.fillColor = '#00FF00'; 
} 

많은 감사!

답변

4

내가 이해 한대로 특정 id 인 다각형을 찾은 후에 이벤트를 트리거하려고합니다.

이제 할 수있는 것은 polygon에 이벤트 리스너를 추가하고 this 컨텍스트를 사용하여 다각형을 참조하는 것입니다. 그런 다음 (예를 들어) 따라 색의 변화를 트리거 할 수 있습니다

google.maps.event.addListener(polygon, 'click', function (event) { 
    alert(this.id); 
    //Once you have the id here, you can trigger the color change 
}); 

를 귀하의 경우에는 그러나, 당신은 polygon에 추가 할 수있는 특정 심지어 청취자의 색상 변화를 유발하지 않으려면. 폴리곤 배열에 폴리곤을 저장하고 색상을 변경하는 특정 함수에서 반복 할 수 있습니다. 그래서 당신은이 (테스트되지 않은) 같은 것을 시도 할 수 : 또한 유사한 문제에 대한 몇 가지 otherSOPosts을 확인 할 수 있습니다

var polygonArray = []; //Have a global array of polygon elements 
polygonArray.push(polygon); //Push your polygons as you create them into this polygon array 

... 

function changePolygonColor(){ 
//refer to the polygon with id 123 (this is my question) 
//Loop through the polygon array 
    for (var i = 0; i < polygonArray.length; i++) { 
    if(polygonArray[i].id == 123) //Or whatever that you require 
    { 
     //change its color 
     polygon[i].fillColor = '#00FF00'; 
    } 
    } 
} 

. 희망이 당신을 올바른 방향으로 시작됩니다.

+0

위대한 솔루션 .. :) – muffin