2013-06-29 3 views
2

온라인에서 많은 자습서를 따랐지만 원하는 KML 오버레이로 내 사이트에서 Google지도 창을 가져 오는 데 성공하지 못했습니다. 내 코드는 다음과 같습니다 :Google지도 API V3 KML 레이어가 표시되지 않습니다.

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"> 
</script> 

<script> 
function initialize() 
{ 
var mapOptions = { 
    center: new google.maps.LatLng(38,-79.5), 
    zoom:3, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
} 
var map=new google.maps.Map(document.getElementById("googleMap"),mapOptions); 
var overlay = new google.maps.KmlLayer('https://doc-08-4g-  docs.googleusercontent.com/docs/securesc/ckoh7mm1pf9l58sknv61gkpp19v37j15/r3rh37mucb8nscl1r37disrlcom7i93t/1372536000000/00236509183910004089/00236509183910004089/0B-qVNYv_qM5vNy1ZbzJYVUgtTjA?h=16653014193614665626&e=download'); 

overlay.setMap(map); 
} 
</script> 
</head> 
<body> 
<div id="googleMap"></div> 
</body> 
</html> 

나는 스크립트 SRC를 이해 해달라고 이유는 필요한하지만 난 그것을 포함 그래서 튜토리얼을 발견했다. 지금 내 KMZ가 아닌 KML 파일은 Google 드라이브에 공개되어 있으며 다운로드 링크를 사용했습니다. 인터넷의 예제에서 KML 파일을 사용하는 경우에도 작동하지 않습니다. 누락 된 것이 있습니까? 도와주세요!!

+0

파일을 열 수 없습니다 (URL에서 공백을 제거하더라도) ... 보이지 않습니다. 공공에 접근 할 수 있어야합니다. 그러나 #googleMap에는 너가 무엇이든을보고 싶을 때 고도가 필요하다. –

답변

3

내가 볼 3 문제가 있습니다 : 초기화 기능이지도는

  • KML가 유효하지 않은 어떤 크기가 없습니다

  • 호출되지 않습니다

    1. <!DOCTYPE html> 
      <html> 
      <head> 
      <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"> 
      </script> 
      
      <script> 
      function initialize() 
      { 
      var mapOptions = { 
          center: new google.maps.LatLng(38,-79.5), 
          zoom:3, 
          mapTypeId: google.maps.MapTypeId.TERRAIN 
      } 
      var map=new google.maps.Map(document.getElementById("googleMap"),mapOptions); 
      var overlay = new google.maps.KmlLayer('https://doc-08-4g-docs.googleusercontent.com/docs/securesc/ckoh7mm1pf9l58sknv61gkpp19v37j15/r3rh37mucb8nscl1r37disrlcom7i93t/1372536000000/00236509183910004089/00236509183910004089/0B-qVNYv_qM5vNy1ZbzJYVUgtTjA?h=16653014193614665626&e=download'); 
      
      overlay.setMap(map); 
      google.maps.event.addListener(overlay,'status_changed',function(){ 
          document.getElementById('status').innerHTML = overlay.getStatus(); 
      }); 
          } 
      google.maps.event.addDomListener(window,'load', initialize); 
      </script> 
      </head> 
      <body> 
      <div id="googleMap" style="height:500px;width:600px;"></div> 
      <div id="status"></div> 
      </body> 
      </html> 
      
    2. (상태 INVALID_DOCUMENT를 반환)
  • +0

    코드를 제공해 주셔서 감사합니다. Google 드라이브에 KML 파일을 가져 와서 공개했습니다. 이를 설정하는 방법을 알고 계시겠습니까 아니면 Dropbox를 사용하는 것이 더 좋습니까? 아니면 사이트 자체의 다른 부분에지도를 가지고 있습니까? – Ravin

    +1

    @Ravin 현재 Google 드라이브에서 KML로 이동하여 '파일 -> 포함'을 클릭하면 KmlLayer 삽입에 적합한 URL로 javascript 행을 가져올 수 있습니다 (예 :'var layer = 새로운 google.maps.KmlLayer ({driveFileId : "0B2u_mC9PEAxyZDk1NjI4YjgtMzA5NC00ZDg3LTg3YzQtYTU5YTZmNjcyNTM1" }); '는 해당 파일에 대한 모든 유형의 GDrive URL에 나타나는 동일한 해시 코드입니다. – heltonbiker

    관련 문제