- added Camera in NetworkLinkControl (need flyToView in Entry kml)

git-svn-id: http://moon:8086/svn/software/trunk/projects/FsTrack@127 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2015-01-11 15:15:18 +00:00
parent ff613621c0
commit 26e909d4e5
3 changed files with 40 additions and 16 deletions
+29 -5
View File
@@ -36,6 +36,9 @@ void Kml::create()
destroy();
kml = new XmlElement("kml");
XmlElement *pNetworkLinkControl = kml->createNewChildElement("NetworkLinkControl");
pNetworkLinkControl->createNewChildElement("LinkName")->addTextElement("FsTrack");
XmlElement *pCamera = pNetworkLinkControl->createNewChildElement("Camera");
XmlElement *pDoc = kml->createNewChildElement("Document");
XmlElement *pFile = kml->getChildByName("Document")->createNewChildElement("filename");
XmlElement *pSnippet = kml->getChildByName("Document")->createNewChildElement("Snippet");
@@ -52,7 +55,16 @@ void Kml::create()
sprintf(time_str, "Created on %4.4d-%2.2d-%2.2d at %2.2d:%2.2d:%2.2d", 1900+time_now->tm_year, time_now->tm_mon+1, time_now->tm_mday, time_now->tm_hour, time_now->tm_min, time_now->tm_sec);
pSnippet->addTextElement(time_str);
// Camera
pCamera->createNewChildElement("longitude")->addTextElement("");
pCamera->createNewChildElement("latitude")->addTextElement("");
pCamera->createNewChildElement("altitude")->addTextElement("");
pCamera->createNewChildElement("heading")->addTextElement("");
pCamera->createNewChildElement("tilt")->addTextElement("");
pCamera->createNewChildElement("altitudeMode")->addTextElement("");
}
void Kml::destroy()
@@ -120,6 +132,9 @@ void Kml::updatePlane(FlightData const &flightData)
XmlElement *pAltitudeMode;
XmlElement *pCoords;
XmlElement *pCamera;
XmlElement *pLookAt;
if(pPlacemark == NULL)
{
// Placemark
@@ -153,8 +168,7 @@ void Kml::updatePlane(FlightData const &flightData)
// IconStyle
pIconStyle = pStyle->createNewChildElement("IconStyle");
pHeading = pIconStyle->createNewChildElement("heading");
sprintf(temp_str, "%d", (int)flightData.hdgTrue_deg);
pHeading->addTextElement(temp_str);
pHeading->addTextElement(String(flightData.hdgTrue_deg));
// Icon
pIcon = pIconStyle->createNewChildElement("Icon");
@@ -169,6 +183,7 @@ void Kml::updatePlane(FlightData const &flightData)
// Point
pPoint = pPlacemark->createNewChildElement("Point");
pPoint->setAttribute("id", "Pointy");
pExtrude = pPoint->createNewChildElement("extrude");
pExtrude->addTextElement("1");
pTesselate = pPoint->createNewChildElement("tesselate");
@@ -189,14 +204,23 @@ void Kml::updatePlane(FlightData const &flightData)
pDescr->getFirstChildElement()->setText(temp_str);
// Heading
sprintf(temp_str, "%d", (int)flightData.hdgTrue_deg);
pHeading = pPlacemark->getChildByName("Style")->getChildByName("IconStyle")->getChildByName("heading");
pHeading->getFirstChildElement()->setText(temp_str);
pHeading->getFirstChildElement()->setText(String(flightData.hdgTrue_deg));
// Coordinates
sprintf(temp_str, "%9.6f,%9.6f,%9.6f", flightData.lon, flightData.lat, flightData.alt_meter);
pCoords = pPlacemark->getChildByName("Point")->getChildByName("coordinates");
pCoords->getFirstChildElement()->setText(temp_str);
// Camera
pCamera = kml->getChildByName("NetworkLinkControl")->getChildByName("Camera");
pCamera->getChildByName("longitude")->getFirstChildElement()->setText(String(flightData.lon));
pCamera->getChildByName("latitude")->getFirstChildElement()->setText(String(flightData.lat));
pCamera->getChildByName("altitude")->getFirstChildElement()->setText(String(flightData.alt_meter));
pCamera->getChildByName("heading")->getFirstChildElement()->setText(String(flightData.hdgTrue_deg));
pCamera->getChildByName("tilt")->getFirstChildElement()->setText("90");
pCamera->getChildByName("altitudeMode")->getFirstChildElement()->setText(m_altitudeModeString);
}
}