通过KML在地球上的位置

时间:2014-05-27 15:14:25

标签: c# kml google-earth

我的项目基于C#。我必须在谷歌地球上显示经度和纬度,因为我已经使用了这段代码

        String filename = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
        filename = filename + @"\latlon.kml";
        XmlDocument doc = new XmlDocument();
        XmlElement docEle = doc.CreateElement("Placemark");
        doc.AppendChild(docEle);
        XmlElement root = doc.DocumentElement;


        XmlElement infoEle = doc.CreateElement("LookAt");           
        XmlElement altEle = doc.CreateElement("altitude");
        XmlElement nameEle = doc.CreateElement("latitude");
        XmlElement responseEle = doc.CreateElement("longitude");

        XmlElement aEle = doc.CreateElement("altitudeMode");

        infoEle.AppendChild(nameEle);
        nameEle.InnerText = txtLongitude.Text;
        infoEle.AppendChild(responseEle);
        responseEle.InnerText = txtLatitude.Text;

        infoEle.AppendChild(altEle);
        altEle.InnerXml = "1223";
        infoEle.AppendChild(aEle);
        aEle.InnerXml = "relativeToGround";


        root.AppendChild(infoEle);
        doc.Save(filename);

        Process.Start(filename);

问题是地球正在读取我的KML文件,但它没有显示出完美的经度和纬度与地标和附近的地方。我得到了一个模糊的地球视图。请帮助。

1 个答案:

答案 0 :(得分:0)

您必须生成以下Link所示的此类输出。

我认为你错过了与Place标记内的Point标签相关的部分。

如果您不想生成Placemark对象而是生成Location对象,则必须遵循以下link指定的结构

如果您想放大以查看附近的地方'你需要指定标签' LookAt',并获得如下内容:

<LookAt>
   <longitude>YourLongitude</longitude>
   <latitude>YourLatitude</latitude>
   <altitude>YourAltitude</altitude>
   <range>YourRange</range>
   <tilt>50</tilt>
   <heading>0</heading>
</LookAt>
<Placemark>
   <Point>
     <coordinates>YourLongitude,YourLatitude,YourAltitude</coordinates>
   </Point>
</Placemark>