2013-07-16 2 views
0

그물을 통해 많은 시간을 물었습니다. 그러나 나는 아직도 이것을 해결할 수 없습니다. 이미 며칠이되었지만 여전히 해결할 수는 없습니다. 나는 아직도이 Google지도 API에 새로운 것이고 어쩌면 내가 섞어 놓은 것 또는 어떤 것이있다. 난 단지 마커를 클릭하면 SHRC 마커에 사용자가 클릭에서, 버스 정류장 및 MRT 아무것도 없을 것이다 정보창을 표시 할 그에서 제외Google지도에 여러 마커

var places = [ 
       ['Car Park', 1.301526,103.849379, 4], 
       ['Bus Stop', 1.301132,103.850077, 3], 
       ['MRT', 1.298515,103.845785, 2], 
       ['Success Human Resource Center', 1.301486,103.849712, 1] 
      ]; 

      var companyImage0 = new google.maps.MarkerImage('images/map-icon.png', 
       new google.maps.Size(54,62), 
       new google.maps.Point(0,0), 
       new google.maps.Point(50,50) 
      ); 

      var companyImage1 = new google.maps.MarkerImage('images/MRT.png', 
       new google.maps.Size(30,30), 
       new google.maps.Point(0,0), 
       new google.maps.Point(50,50) 
      ); 

      var companyImage2 = new google.maps.MarkerImage('images/bus-stop.png', 
       new google.maps.Size(30,33), 
       new google.maps.Point(0,0), 
       new google.maps.Point(50,50) 
      ); 

      var companyImage3 = new google.maps.MarkerImage('images/car-park.png', 
       new google.maps.Size(30,30), 
       new google.maps.Point(0,0), 
       new google.maps.Point(50,50) 
      ); 

      var companyShadow = new google.maps.MarkerImage('images/logo_shadow.png', 
       new google.maps.Size(54,62), 
       new google.maps.Point(0,0), 
       new google.maps.Point(65, 50) 
      ); 

      /*var companyPos = new google.maps.LatLng(1.301486,103.849712);*/ 

      for (var i = 0; i < places.length; i++) { 
      var place = places[i]; 
      var myLatLng = new google.maps.LatLng(place[1],place[2]); 
      var marker = new google.maps.Marker({ 
       position: myLatLng, 
       map: map, 
       shadow: companyShadow, 
       icon: companyImage[i], 
       title: 'Singapore', 
       zIndex: places[2][2]}); 
      } 

:

다음은 내 현재 코드입니다.

나를 도와 줄 수있는 모든 종류의 영혼을 감사하십시오. 미리 감사드립니다.

+0

코드에서 companyMarker를 정의하지 않았습니다. 오타 또는 마커 여야합니까? – gawi

답변

1

당신이 받고있는 오류에 대해 아무 말도하지 않아서 당신이 여기에서 무엇을하려고하는지 잘 모르겠습니다. 그러나 코드에 세 가지 오류가 있습니다.

CompanyMarker 초기화되지 않았으며 Z- 색인에 잘못된 변수 이름과 구문을 사용하고 있습니다. 당신은 버스 정류장과 MRT 마커 다른 이벤트 핸들러가있는 경우

var places = [ 
    ['Bus Stop', 1.301132,103.850077, 3], 
    ['MRT', 1.298515,103.845785, 2], 
    ['SHRC', 1.301486,103.849712, 1] 
]; 

//change marker to companyMarker 
var companyMarker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    shadow: companyShadow, 
    icon: companyImage, 
    title: 'Singapore', 
    zIndex: places[2][2]}); //<- change from place[3], get the z-index number 
} 

google.maps.event.addListener(companyMarker, 'click', function() { 
    infowindow.open(map,companyMarker); 
}); 

마지막으로, 당신이 필요합니다 : 배열이 너무,

places[2] // will retrieve the SHRC row data 
places[2][2] //will retrive the Z-index number from the SHRC row 

그래서, 다음과 같이 변경하려고 제로로부터 시작되는 인덱스 것을 기억하십시오 각각의 창을 닫으려면 infowindow.close(map, someMarkerName)을 수신기 companyMarker에 추가하십시오.

+0

안녕하세요 제이슨, 도와 줘서 고마워. 실제로지도에 3 개의 마커를 표시하려고했지만 SHRC에만 정보 창이 있고 나머지 2 개의 마커는 정보 창이없는 마커입니다. 그렇게 할 수 있습니까? – Dr3am3rz

+0

'companyMarker'가 SHRC에 바인딩되어 있다고 가정하면 정의한 클릭 이벤트 핸들러가 작동합니다. 원치 않는 경우 다른 두 마커에 이벤트를 바인딩 할 필요가 없습니다. – Jason

+0

안녕 Jason, 알겠습니다. 도움을 주셔서 감사합니다, 그것은 효과가! 나는 이벤트 처리기를 시도하지는 않았지만 3 개의 마커를 보여 주었다. 1 개의 마커를 더 추가했으며 4 개의 마커가 서로 다른 이미지를 가질 수 있습니까? 위 코드를 편집 했으므로 다음에 어떻게해야하는지 알려주십시오. 나는 companyimage 후에 [i]를 추가하려고 시도했지만 아무 일도 일어나지 않습니다. – Dr3am3rz

관련 문제