Comment créer une forme de polygone dans un fichier KML qui est positionné dans l'air?
-
25-09-2019 - |
Question
Je dois être en mesure de placer un objet polygone avec une hauteur donnée dans un fichier KML qui sera situé au-dessus du sol. Je cherche à afficher les informations de l'espace aérien dans un KML et chaque espace aérien a basse altitude et à haute valeur d'altitude.
La chose la plus proche que j'ai pu faire jusqu'à présent est de créer deux polygones avec des altitudes différentes pour montrer l'espace aérien, mais je n'ai pas moyen de connecter les polygones pour montrer la zone centrale.
Merci pour votre aide
La solution
Votre avez deux options, vous pouvez créer un modèle de Collada de l'espace aérien, ou une série d'objets de polygone définissant chaque face,
polygones verticly orientés peuvent être définis, être prendre note de la direction de votre (à droite ou à gauche) car cela affectera le style, l'affichage d'un polygone à partir du bas, il est légèrement plus foncée
pour une forme simple rectancular vous aurez besoin de 6 visages
le kml suivant est une version modifiée de l'exemple pentagone avec l'une des faces verticle remplis, les autres 4 faces verticle doivent être complètes, mais vous aurez l'idée.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns: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">
<Document>
<name>pm1.kml</name>
<Style id="poly">
<LineStyle>
<color>f0ffed42</color>
</LineStyle>
<PolyStyle>
<color>e8ff9257</color>
</PolyStyle>
</Style>
<Placemark>
<styleUrl>#poly</styleUrl>
<Polygon>
<altitudeMode>relativeToGround</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-77.05844056290393,38.86996206506943,500 -77.05552622493516,38.868757801256,500
-77.05315536854791,38.87053267794386,500 -77.05465973756702,38.87291016281703,500 -77.05788457660967,38.87253259892824,500 -77.05844056290393,38.86996206506943,500 </coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
<Placemark>
<styleUrl>#poly</styleUrl>
<Polygon>
<altitudeMode>relativeToGround</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-77.05844056290393,38.86996206506943,400 -77.05552622493516,38.868757801256,400
-77.05315536854791,38.87053267794386,400 -77.05465973756702,38.87291016281703,400 -77.05788457660967,38.87253259892824,400 -77.05844056290393,38.86996206506943,400 </coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
<Placemark>
<styleUrl>#poly</styleUrl>
<Polygon>
<altitudeMode>relativeToGround</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
-77.05844056290393,38.86996206506943,500 -77.05844056290393,38.86996206506943,400 -77.05552622493516,38.868757801256,400 -77.05552622493516,38.868757801256,500 -77.05844056290393,38.86996206506943,500
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
</Document>
</kml>
Autres conseils
On dirait que vous créez 2 polygones 2D plutôt qu'un 3d? Vous pouvez créer un polygone régulier 3D:
http://code.google.com/apis/kml /documentation/kml_tut.html#polygons
Ensuite, vérifiez le tag AltitudeMode dans KML à "flotter" au-dessus de la surface:
http://code.google.com/apis/kml/documentation /altitudemode.html