2013-03-04 6 views
1
function showPointMarker (point, index, address, changeCenter, changeZoomLevel) { 

    if (changeCenter) 
    { 
     if (changeZoomLevel) { 
     // marker.setMap(map); 
      map = new google.maps.Map(
         document.getElementById('map'), { 
         center: point, 
         zoom: 7, 
         mapTypeId: google.maps.MapTypeId.ROADMAP 
        }); 
     } else { 
      map = new google.maps.Map(
         document.getElementById('map'), { 
         center: point, 
         zoom: 10, 
         mapTypeId: google.maps.MapTypeId.ROADMAP 
        }); 


     var letter = String.fromCharCode("A".charCodeAt(0) + index); 
     //var letteredIcon = new GIcon(baseIcon); 
     //letteredIcon.image = ""; 
     var pinImage = new google.maps.MarkerImage("http://www.google.com/mapfiles/marker" + letter + ".png" , 
       new google.maps.Size(21, 34), 
       new google.maps.Point(0,0), 
       new google.maps.Point(10, 34)); 
     var siteLatLng = new google.maps.LatLng(point.hb,point.ib); 
     var marker = new google.maps.Marker({ 
      position: siteLatLng, 
      map: map, 
      icon:pinImage, 
      html: address 
     }); 
     marker.setMap(map); 
     google.maps.event.addListener(marker, "click", function() { 
      // alert(this.html); 
       infowindow.setContent(this.html); 
       infowindow.open(map, this); 
      }); 

     } //else ends here 
    } // if change center ends here 

} //function ends here 

내가지도에 마커를 추가하기 위해 노력하고있어 구글지도 v3에서 마커를 보존 할 수없는, 메신저 마지막을보고 .. 여기 나 좀 도와 도움을 주셔서 감사하십시오 . 여기에 뭔가 빠졌습니다. 내 실수를 지적 할 수 있습니다.내가 내 이전 마커를 보존 할 수없는,

답변

0

매번지도를 다시 초기화하는 것처럼 보입니다. 다음과 같이이 작업을 한 번만 수행하려고합니다.

if(! map) { 
    map = new google.maps.Map(  
    // ... 

null로 시작하는 전역 변수를 맵으로 만듭니다.

var map = null; 

또한 페이지를 새로 고치는 경우 루프의 모든 점을 다시 그려야합니다.

+0

답장을 보내 주셔서 감사합니다. 이제지도에서 마지막 표시와 마스트를 얻습니다. –

+0

'if (changeCenter)'행이 흥미 롭습니다. 전체 함수를 감싸므로 false 인 경우 함수는 아무 것도하지 않습니다. 이 경우 함수를 호출하는 이유는 무엇입니까? 이 문제를 해결하려고 시도 할 수도 있습니다 (이 기능을 호출하는 블록에서이 테스트를 수행하십시오). 또한 첫 번째'if (changeZoomLevel) '및'else else {'비대칭 인 것으로 보입니다. 이 함수에서 모든 맵 초기화와 특수한 경우를 나눠 냈습니다. changeCenter 및 changeZoomLevel과 관련된 모든 것을 제거했습니다. 또한 자바 스크립트 오류를 ​​확인하는 경우 그냥 이것에 막을거야. –

+0

고마워 User1389596, 나는 모두 if 조건을 풀었습니다. 현재 잘 작동 중입니다. 최신지도가 줌 레벨 변경 또는 센터 변경을 자동으로 확인하고, 내가 틀렸다면 수정합니다. –

관련 문제