2012-04-30 2 views
0

KML 파일을 만들고 웹 사이트의 Google 어스 API에 표시하려고합니다. Google code playground내 웹 사이트에서 KML 파일을 Google 어스 API로 구문 분석하는 방법은 무엇입니까?

을 찾아 보았지만 KML을 Google 어스 API에 구문 분석하는 데 어떤 코드를 사용해야하는지 잘 모르겠습니다. 이것은 내가 생성 한 KML 파일의 링크입니다. http://g.co/maps/6zp5a

아무도 도와 줄 수 있습니까?

답변

1

대신 fetchKml을 사용해야합니다.

http://code.google.com/apis/ajax/playground/?exp=earth#fetch_good_kml

는 또한 유효한 URL을 제공해야합니다, 그래서 대신 '짧은'URL, 당신은 '& 출력 = KML'말

http://maps.google.com/maps/ms?msid=201182140457027399871.0004bee0c7348bce68977&msa=0&ll=9.438,39.5105&spn=130.55749,316.054688&output=kml의 전체를 사용하고 추가해야 그것을 샘플 코드 페이지에 URL 및 실행

넣어, 그것은 아래

+0

의견을 보내 주셔서 감사합니다. 나는 그것을 시도했지만 어떤 점들도 보여주지 못한다. 당신이 그것을 실행할 때 API의 컬러 점들을 보았습니까? 또한 또 다른 KML (대화 형)을 가져 오는 것도 보았습니다. 상자에 위의 URL을 입력하려고했지만 잘 작동하지 않습니다. –

+0

정상적인 가져 오기 및 대화식 가져 오기 예제에 내가 준 URL (끝에 && 출력 =)이 있습니다. 둘 다 나를 위해 장소 표시를로드합니다. 직접보기를 볼 수 있도록보기를 수동으로 이동해야하지만 더 많은 코딩을하면 페이지를로드하여 사용자 정의보기를 설정할 수 있습니다. – lifeIsGood

1

이 KML의 페치 기능이 "안녕하세요 지구"데모입니다 작동합니다. 파란색 패들을 사용하려면 kml의 아이콘 스타일을 지정해야합니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <head> 
<!-- 
Copyright 2008 Google Inc. 
Licensed under the Apache License, Version 2.0 (the "License"); 
you may not use this file except in compliance with the License. 
You may obtain a copy of the License at 

    http://www.apache.org/licenses/LICENSE-2.0 

Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an "AS IS" BASIS, 
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
See the License for the specific language governing permissions and 
limitations under the License. 
--> 
    <title>Hello Google Earth!</title> 
    <script src="http://www.google.com/jsapi"></script> 
    <script> 
google.load("earth", "1"); 

var ge = null; 

function init() { 
    google.earth.createInstance("map3d", initCallback, failureCallback); 
} 

function initCallback(object) { 
    ge = object; 
    ge.getWindow().setVisibility(true); 
    function finished(object) { 
    if (!object) { 
     // wrap alerts in API callbacks and event handlers 
     // in a setTimeout to prevent deadlock in some browsers 
     setTimeout(function() { 
     alert('Bad or null KML.'); 
     }, 0); 
     return; 
    } 
    ge.getFeatures().appendChild(object); 
    } 
    // fetch the KML 
    var url = 'http://maps.google.com/maps/ms?ie=UTF8&authuser=0&msa=0&output=kml&msid=201182140457027399871.0004bee0c7348bce68977'; 
    google.earth.fetchKml(ge, url, finished); 

    document.getElementById('installed-plugin-version').innerHTML = 
    ge.getPluginVersion().toString(); 
} 

function failureCallback(errorCode) { 
} 
    </script> 
    </head> 
    <body onload='init()' id='body'> 
    <center> 
     <div> 
     Hello, Earth! 
     </div> 
     <div id='map3d' align="left" style='border: 1px solid silver; height: 600px; width: 800px;'></div> 
    </center> 
    </body> 
</html> 
+0

대단히 감사합니다! 핀 포인트가 표시되지만 원은 표시되지 않습니다. –

+0

파란색 패들로 장식 된 kml입니다. URL을이 URL로 바꿀 수 있어야합니다 (http://maps.google.com/maps/ms?ie=UTF8&authuser=0&msa=0&output=kml&msid=201784530892227263374.0004bf65bb9e0a92e227d). – jwilliams