C#中如何把GPS的数据生成KML格式在Google Earth上显示(急求!!!)

C#中如何把GPS的数据生成KML格式在Google Earth上显示(急求!!!),第1张

写一个派野程序,来定时扫描GPS数据,通过将其数据解析后,生成一个kml文件,如RealTimePatrol.KML文尘粗喊件(kml文件实际就是xml文件,你按照生成xml文件的方式做就行。只是要注意里面的定义。具体定义,你可以在Google Earth自定义一个标签,保存为一个kml文件,用记事本打开这个kml文件就知道是什么了。然后你只需要根据你搜索到的经纬度,替换掉里面对应的经纬度即可)。凳陪

另外,你可在做一个定时扫描kml的kml文件,如RealtimeNetlink.kml。这个文件很简单:

<?xml version="1.0" encoding="UTF-8"?>

<kml xmlns=" http://earth.google.com/kml/2.2">

<Document>

<name>实时监控</name>

<visibility>1</visibility>

<open>1</open>

<NetworkLink>

<visibility>1</visibility>

<refreshVisibility>1</refreshVisibility>

<flyToView>0</flyToView>

<LookAt>

<longitude>114.12022</longitude>

<latitude>22.55841667</latitude>

<altitude>2000</altitude>

<range>1000</range>

<tilt>0</tilt>

<heading>0</heading>

<altitudeMode>relativeToGround</altitudeMode>

</LookAt>

<Link>

<href>\RealTimePatrol.KML</href>

<refreshMode>onInterval</refreshMode>

<refreshInterval>5</refreshInterval>

<viewRefreshMode>onStart</viewRefreshMode>

<viewRefreshTime>4</viewRefreshTime>

</Link>

</NetworkLink>

</Document>

</kml>

href节点内容代表的就是要扫描的kml文件,即你前面所生成的实时文件,refreshInterval节点内容则代表的扫描时间。

最后,双击RealtimeNetlink.kml即可在Google Earth下进行实时跟踪了。

1,首先生成XML文件

具体的你可以在我的Bolg里面找到。

KML文档说明

DOM

语法说明

XML声明

说明XML的版本信息和编码方式。

KML

KML文件的根节点。该节点必须有,且紧跟在XML声明。

Document

Document节点是所凳隐有样式节点,方案节点和其它特性节点的容器。该节点必须有。

Name

Name节点为用户自定义的一段文本,作为显示用户信息的一个标签。

Style

Style定义一组可访问的样式,可被StyleMap引用。Style如果需要共享,其应被定义在Document节点中,且要有一个id。

scale

用于缩放Icon的大小,默认为1。

Icon

自定义用户图标。

Href

图标的一个HTTP地址或一个本地文件地址。

StyleMap

StyleMap关联两个不同的图标样式,通常是用于定义正常地标和高亮地标。

Pair

定义轿尘StyleMap的键/值对。通常为normal或highlight。Pair包含两个节点:key和styleUrl。

key

定义StyleMap的键值

styleUrl

定义StyleMap要引用的Style

Folder

用于管理各属性的树状结构。

Name

说明目录结构的名称。

Open

说明在Google Earth中,该目录节点是否打开。该值为0和1。默认为1。1为展开,0为合拢。

Description

一段文本信息,用于说明目录节点。

Placemark(Point)

Placemark在Google Earth中位置面板中显示为一组列表信息。一个带Point的Placemark可以在Google Earth中将一个地理位置和一个图标关联,并可让用户 *** 作该图标。

Name

定义Placemark显示的名称。

styleUrl

定义Placemark使用的StyleMap。

Address

代表一个街道,城市,州,或者邮政编码。可以用Address标识一个点。

LookAt

定义一个摄像机的位置。当我们在位置面板双击一个条目,或我们双击一个视图中的标签时,我们的摄像机会飞到该位置。

Longitude

经度。其值为-180到180。

Latitude

纬度。其值为-90到90。

Altitude

高度。到地球表面的距离,单位为米。默认值为0。

Range

代表摄像机到目标点的距离。单位为米。

Tilt

摄像机和目标点的连线和垂直方向的夹角。

Heading

旋转北极的角度。其值为-180到180。

Point

一个地理位置的定义。格式:经度(必需),纬度(必需),高度(可选)。

Placemark(LineString)

Name

定义Placemark显示的名称。

Description

定义一段文本信息。

styleUrl

定义要应用的样式。

LineString

定义一组连接线段的集合。

LineStyle

定义颜色,颜色模式,宽度等。

Tessellate

altitudeMode

其值为:

1. clampToGround:忽略高度,以防止过长的连线进入地面以下。

2. relativeToGround:相对高度。

3. absolute:海拔高度。

Coordinates

定义一组连接线段的坐标集合。格式为:经度,纬度,高度 经度,纬度,高度 经度,闭粗禅纬度,高度


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12134602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存