#include <iostream>
#include <sstream>
#include <string>
std::string FormatPlacemark(double, double, double, double);
int main() {
std::cout << "<?xml version='1.0' encoding='utf-8'?>\n";
std::cout << "<kml xmlns='http://w...content-available-to-author-only...s.net/kml/2.2'>\n";
std::string placemark = FormatPlacemark(-76.2, 38.5, -76.1, 38.6);
std::cout << placemark;
std::cout << "</kml>\n";
return 0;
}
std::string FormatPlacemark(double lat1, double long1, double lat2, double long2)
{
std::ostringstream ss;
ss << "<Placemark>\n"
<< "<name>Path</name>\n"
<< "<description>This is the path between the 2 points</description>\n"
<< "<styleUrl>#pathstyle</styleUrl>\n"
<< "<LineString>\n"
<< "<tessellate>1</tessellate>\n"
<< "<coordinates>"
<< long1 << "," << lat1 << ",0"
<< " "
<< long2 << "," << lat2 << ",0"
<< "</coordinates>\n"
<< "</LineString>\n"
<< "</Placemark>\n";
return ss.str();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCnN0ZDo6c3RyaW5nIEZvcm1hdFBsYWNlbWFyayhkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpOwoKaW50IG1haW4oKSB7CglzdGQ6OmNvdXQgPDwgIjw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J3V0Zi04Jz8+XG4iOwoJc3RkOjpjb3V0IDw8ICI8a21sIHhtbG5zPSdodHRwOi8vdy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ucy5uZXQva21sLzIuMic+XG4iOwoKCXN0ZDo6c3RyaW5nIHBsYWNlbWFyayA9IEZvcm1hdFBsYWNlbWFyaygtNzYuMiwgMzguNSwgLTc2LjEsIDM4LjYpOwoJc3RkOjpjb3V0IDw8IHBsYWNlbWFyazsKCglzdGQ6OmNvdXQgPDwgIjwva21sPlxuIjsKCglyZXR1cm4gMDsKfQoKc3RkOjpzdHJpbmcgRm9ybWF0UGxhY2VtYXJrKGRvdWJsZSBsYXQxLCBkb3VibGUgbG9uZzEsIGRvdWJsZSBsYXQyLCBkb3VibGUgbG9uZzIpCnsKICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBzczsKICAgIHNzIDw8ICI8UGxhY2VtYXJrPlxuIgogICAgICAgPDwgIjxuYW1lPlBhdGg8L25hbWU+XG4iCiAgICAgICA8PCAiPGRlc2NyaXB0aW9uPlRoaXMgaXMgdGhlIHBhdGggYmV0d2VlbiB0aGUgMiBwb2ludHM8L2Rlc2NyaXB0aW9uPlxuIgogICAgICAgPDwgIjxzdHlsZVVybD4jcGF0aHN0eWxlPC9zdHlsZVVybD5cbiIKICAgICAgIDw8ICI8TGluZVN0cmluZz5cbiIKICAgICAgIDw8ICI8dGVzc2VsbGF0ZT4xPC90ZXNzZWxsYXRlPlxuIgogICAgICAgPDwgIjxjb29yZGluYXRlcz4iCiAgICAgICA8PCBsb25nMSA8PCAiLCIgPDwgbGF0MSA8PCAiLDAiCiAgICAgICA8PCAiICIKICAgICAgIDw8IGxvbmcyIDw8ICIsIiA8PCBsYXQyIDw8ICIsMCIKICAgICAgIDw8ICI8L2Nvb3JkaW5hdGVzPlxuIgogICAgICAgPDwgIjwvTGluZVN0cmluZz5cbiIKICAgICAgIDw8ICI8L1BsYWNlbWFyaz5cbiI7CgogICAgcmV0dXJuIHNzLnN0cigpOwp9