2012-11-28 5 views
0

KML 파일을 조작하는 방법을 배우기 시작한 순간입니다. 여기 어떻게 극복 해야할지 모르겠다는 문제가 있습니다 .... 풍선으로 표시 할 설명을 추가하고 폴리곤을 만들었지 만, Google 어스가 작동하기 시작하자마자 다각형을 볼 수 있습니다. 내가 원하는 것은 폴리곤이 나타나는 특정 거리 (예 : LookAt 요소의 거리 범위)에서 풍선을 표시하는 것입니다. 누구나 관리하는 방법을 알고 있습니까? 내 코드는 다음과 같습니다 당신이 "가까운"얻을 때까지KML 코드의 풍선 구성 요소를 지연하는 중

<?xml version="1.0" encoding="UTF-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2" mlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"> 
    <LookAt> 
    <longitude>17.99514610290434</longitude> 
    <latitude>59.36293893395309</latitude> 
    <altitude>0</altitude> 
    <range>597.51212259908</range> 
    <tilt>52.34415598649959</tilt> 
    <heading>105.3974737169693</heading> 

</LookAt> 
<Placemark> 
    <name>Stadium</name> 

    <description> 
     <![CDATA[ 
     this is <b><i>Råsunda soccer stadium</i></b> 
     ]]> 
    </description> 
     <gx:balloonVisibility>1</gx:balloonVisibility> 


     <styleUrl>#msn_ylw-pushpin</styleUrl> 
    <Polygon> 
     <extrude>1</extrude> 
     <tessellate>1</tessellate> 
     <altitudeMode>absolute</altitudeMode> 
     <outerBoundaryIs> 
      <LinearRing> 
       <coordinates> 
        17.99514610290434,59.36293893395309,100 17.99651951950199,59.36209399425741,100 17.99752330705672,59.36252751885282,100 17.99613146514916,59.36335387902954,100 17.99514610290434,59.36293893395309,100 
       </coordinates> 
      </LinearRing> 
     </outerBoundaryIs> 
    </Polygon> 
</Placemark> 
</Document> 
</kml> 

답변

1

는 일반적으로 당신은 충분한 다각형 렌더링을 건너 뛸 수있는 A 최소 또는 최대 #에 지역지도를 투여했을 때 계산에 의해 결정되는 Region 요소에 의해 정의 된 픽셀 수

또한 <gx:balloonVisibility> 태그는 지역 활성화 여부에 관계없이 KML로드시 설명 풍선을 강제로 표시합니다. KML에 지역 직접 추가는 여전히 팝업 풍선을 표시합니다.

KML 파일을 영역이 활성화되어있을 때만 (즉 충분히 근접한) KML을로드하는 Region이있는 NetworkLink를 사용하여 KML 파일을 두 번째 KML 파일로 래핑해야합니다. 다각형과 함께 표시됩니다.

<?xml version="1.0" encoding="ISO-8859-1"?> 
<kml xmlns="http://www.opengis.net/kml/2.2">  
<Placemark> 
    <name>Stadium</name> 
    ... 
</Placemark>  
</kml> 

당신은 거리를 기능을 변경할 수 있습니다 + 풍선이 minLodPixels에게 값 및/또는 크기를 조정하여 나타납니다

<?xml version="1.0" encoding="utf-8"?> 
<kml xmlns="http://www.opengis.net/kml/2.2"> 
<Document> 

    <LookAt> 
     <longitude>17.99514610290434</longitude> 
     <latitude>59.36293893395309</latitude> 
     <altitude>0</altitude> 
     <heading>105.3974737169693</heading> 
     <tilt>52.34415598649959</tilt> 
     <range>597.51212259908</range> 
    </LookAt> 

    <NetworkLink> 
    <Region> 
     <LatLonAltBox> 
      <north>59.363792</north> 
      <south>59.361556</south> 
      <east>17.998029</east> 
      <west>17.994443</west> 
     </LatLonAltBox> 
     <Lod> 
      <minLodPixels>128</minLodPixels> 
      <maxLodPixels>-1</maxLodPixels> 
     </Lod> 
     </Region> 

     <Link> 
     <href>target.kml</href> 
     </Link>  
    </NetworkLink> 

</Document> 

</kml> 

그리고 target.kml 파일은 당신이 준 원래 KML을 포함 부위. 현재 다각형을 둘러싸는 영역으로 정의 된 영역이 화면의 128 픽셀 이상일 때이 기능이 표시됩니다. 32 또는 64로 변경하거나 더 빠르게 표시하려면 영역 영역을 크게 만드십시오.

참고 Google 어스 클라이언트는지도에서 지역 경계 상자를 편집하거나 볼 수있는 도구를 제공하지 않으므로 디버깅이 까다 롭습니다. KML을 tool에 붙여 넣으면 KML이 생성되어 지역 테두리 영역이 표시됩니다. 이것은 지역을 더 쉽게 디버그하는 데 도움이됩니다.

+0

에 관해서는, 풍선없이 풍선을 사용했기 때문에 기능을 클릭하면 활성화 될 것입니다 ... 그래서 클릭하지 않고 표시하지만 기능과의 적절한 거리에 표시하고 싶습니다. . – msc87

+1

내 대답이 업데이트되었습니다. 새로운 해결 방법을 확인하십시오. – JasonM1

+0

작동 했어 ..... TNX .... 어떻게 거리를 바꿀 수 있습니까? PLZ에서 짧은 설명을 해 주시겠습니까? (가능한 경우) – msc87