查看原文
其他

科普 | KML生成及应用

达北云 多普云 2021-10-08
    👆  关注公众号  公司会给小编晚餐加鸡腿哟~  

一、概念

KML,即Keynote markup language,最初为Google定义的文件格式,用以描述地图中的关键数据,如路径、标记位置、叠加图层等信息。因此,使用KML文件可以记录一个简单的只包含街道、路径、多边形、标记位置等信息的简单地图,不包含高程、地形地貌等复杂信息。KML文件最终被OGC组织采纳为国际通行标准。

KML 格式便于在 Internet 上发布并可通过 Google 地球和ArcGIS Explorer 等许多免费应用程序进行查看,因此常用于与非 GIS用户共享地理数据。KML 文件要么以 .kml 为扩展名,要么以.kmz(表示压缩的 KML 文件)为扩展名。

KML 可以由要素和栅格元素组成,这些元素包括点、线、面和影像,以及图形、图片、属性和 HTML 等相关内容。尽管通常将 ArcGIS中的数据集视为独立的同类元素(例如,点要素类只能包含点,栅格只能包含像元或像素,而不能包含要素),但单个 KML 文件却可以包含不同类型的要素,并可包含影像。

2、KML在航测的应用

航测项目的合作,往往都是询价开始,而一份未根据实际情况而做的报价,未必合理。而一份KML文件,既能让乙方对项目情况了然于胸,也能让甲方获得贴近实际的反馈,包括报价,周期,实施方案等。那么,KML文件有什么作用呢?

帮助了解项目情况

通常情况下,乙方在给甲方做出项目报价前,需要提前了解项目的具体情况,比如项目地点,项目区域地形地貌,带状还是面状的、是否存在特殊情况等等。而帮助乙方准确获取项目信息的最好方式就是KML,通过KML与卫星影像相结合快速定位,获取项目区域信息。

比如将KML导入谷歌地球:


KML格式直观形象,但在实际过程中,会遇到甲方提供的CAD格式的情况。通常来讲,需要做航测的都会有相应的要求,一般会根据对应的规划、设计图纸来定,所以甲方手上基本上是CAD格式文件。而CAD多数没有投影,拿到这些数据,在定位到指定位置非常麻烦,非专业人士一般搞不定。(文章末尾提供一种CAD转KML格式的方法,仅供参考)

实际上,针对航测,通常只需要一个明确的界限就可以,而且现在做航测的,能够将CAD和GIS相结合的很少,为了工作效率的提高,尽量使用KML文件。

航线规划

现在的地面站,基本都支持KML格式的航线规划,可以直接将KML文件导入地面站,自动生成航线。通过KML可以有效的调整飞机的飞行路线,平滑的路线有助于保证飞行数据的重叠度,这点对固定翼而言尤为重要。

在航线规划上,天源欧瑞地面站还能对落差大的地形进行“真”分层规划,保证相对航高下的分辨率,提高大落差地区的测绘精度,解决大落差地区的测绘难题。

3、如何制作KML文件

(1)利用谷歌地球/LSV

操作步骤:

  1. 打开谷歌地球,点击添加点

  2. 根据特定区域添加完点后,另存KML格式即可


(2)应用教程 ArcGis

ArcGIS for Desktop 提供了一些可将 KML 转换为 ArcGIS 数据格式的工具,以便您可以查看、编辑和分析包含在任何 KML 文件中的地理数据。还提供了一些用于创建 KML 的工具,以便您可以将任何数据或地图转换为便于共享的 KML 文件。ArcGIS for Desktop 支持KML 2.0 和 2.1 规范中的所有要素。当前不支持 KML 2.2 规范中的任何新要素,包括动画、照片叠加层和模式标记。但是,即使版本 2.2 的KML 也将有可能转换为 ArcGIS 数据,因为将忽略任何不受支持的标记,只转换要素几何和影像等受支持的标记。

ArcGIS for Server 提供了一种以 KML 格式发布地图和影像服务的机制。此 KML 将动态链接到服务,以便能够在 KML 中获取服务器上的最新数据和地图。

操作步骤:

1、加载一个矢量图层至ArcGis工程文件中(也可以忽略此步骤在加载数据框中选择所需转换数据),如图4-2所示。

图4-2:


2、在标准工具中(图4-3)找到搜索框并在其中输入"KML"或"KMZ"单击Enter键,即出现如图4-4的窗口。

图4-3:

图4-4:




3、选择自己的需求,双击即可弹出图层转KML或kml转图层的窗口,本次以图层转KML为例。如图4-5所示为转换窗口,直到右下角出现如图4-6的显示就表示转换成功。图4-5:




图4-6:




4、本次转换的图层为随意画作,定义了投影坐标为西安80,导出的kml在安装了Googleearth或者其他地图软件即可双击打开,如视频4-7所示,只要定义了投影坐标,转换kml就就能够在Googleearth上显示,只是此次的转换跑到了玛尔达夫海域。至此kml转换就算成功了。视频4-1:

(3)应用教程 EXCEL+转换工具


 第一步:将经纬度、海拔数据输入到excel表格中。若是度分秒格式,根据分除以60,秒除以3600,换算成小数格式。



  1. 第二步:生成csv文件


    第三步:导入到软件中。其中根据经纬度、海拔选择数据就可以


  2. 第四步:点击convert,即可成功


    第五步:打开google地球,直接在file—open中打开上述输出的kmz文件



工具下载地址:

链接:https://pan.baidu.com/s/1ChQTtjDJ6oCwjsLfhiWy3g

提取码:u6jy


4、如何转换成DXF/DWG格式


应用教程 :Globalmapper/91卫图助手


【适用范围】将gloole上勾选或者已知的点、线、图形使用转换参数精准转为dxf或dwg。

【软件】Global mapper或91卫图助手

 


方法1:【Globalmapper】

一、先用“COORD”求出测区七参数。(建议使用布尔沙模型)

二、文件打开:

三、投影转换:


四、转换后成果导出:

注:GM软件互转参数需反号。建议转换图形前先测试测区已知控制点转换是否正确,若不正确,则需要交换七参数中X,Y,Z,三个参数的正负号。如:

DX(米)=-3.902020                 DX(米)= 3.902020

DY(米)=120.818293     =>    DY(米)=-120.818293

DZ(米)=-53.356201               DZ(米)= 53.356201

方法2:【91卫图助手】

一、文件打开:


5.相关设置如图,非红框选项默认不变

①选择求参的坐标系统

②按照格式输入用于求取七参数的坐标

③选择输入的WGS84坐标格式

④输入中央子午线

⑤点击计算参数,计算完成后保存参数


5、KML常用字段

1.1 地点标记(Placemarks)

上一节我们给出了一个地点标记(Placemarks)的示例。地点标记是Google Earth中最常用的地理特征,它使用一个黄色的图钉在地球表面标记一个位置。一个简单的地点标记的KML代码如下所示:

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

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

 <Placemark>   

<name>Simple placemark</name>   

<description>Attached to the ground. Intelligently places itself

       at the height of the underlying terrain.

</description>   

<Point>     

<coordinates>-122.0822035425683,37.42228990140251,0</coordinates>   

</Point> 

</Placemark>

</kml>

它包括以下几个部分:

(1)XML头:<?xml version="1.0" encoding="UTF-8"?>

(2)KML命名空间定义:<kml xmlns="http://earth.google.com/kml/2.1">

(3)地点标记对象,包括:

名称(name):用于对地点标记进行注记;

描述(description):对地点标记进行描述,“气球(ballon)”中的显示内容;

点(Point):指定地点标记的位置。

1.2 使用HTML描述地点标记

有两种方式来使用HTML描述地点标记,一种是直接在<description>,<Snippet>和<BalloonStyle>中的<text>标记中写入标准HTTP超链接地址,如www.google.com,这样Google Earth 4.0及更高版本将利用Auto-Markup技术自动把它显示为超链接。另一种是使用CDATA元素在<description>标记中写入自己的HTML标记语言,如下所示:

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

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

 <Document>

    <Placemark>

      <name>CDATA example</name>

      <description>

        <![CDATA[

          <h1>CDATA Tags are useful!</h1>

          <p><font color="red">Text is <i>more readable</i> and

          <b>easier to write</b> when you can avoid using entity

          references.</font></p>

        ]]>

      </description>

      <Point>

        <coordinates>102.595626,14.996729</coordinates>

      </Point>

    </Placemark>

 </Document>

</kml>

当然,还有一种使用转义字符来表示特殊符号的方式,这就不需要CDATA元素,如下所示:

<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://earth.google.com/kml/2.1">

 <Document>

    <Placemark>

      <name>Entity references example</name>

      <description>

               &lt;h1&gt;Entity references are hard to type!&lt;/h1&gt;

               &lt;p&gt;&lt;font color="green"&gt;Text is

          &lt;i&gt;more readable&lt;/i&gt;

          and &lt;b&gt;easier to write&lt;/b&gt;

          when you can avoid using entity references.&lt;/font&gt;&lt;/p&gt;

      </description>

      <Point>

        <coordinates>102.594411,14.998518</coordinates>

      </Point>

    </Placemark>

 </Document>

</kml>

1.3叠层

叠层是覆盖在地球表面的图像。一个简单的叠层KML代码如下所示:

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

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

<Folder>   

<name>Ground Overlays</name>   

<description>Examples of ground overlays</description>   

<GroundOverlay>     

<name>Large-scale overlay on terrain</name>     

<description>Overlay shows Mount Etna erupting on July 13th, 2001.</description>

<Icon>       

<href>http://code.google.com/apis/kml/documentation/etna.jpg</href>     

</Icon>     

<LatLonBox>       

<north>37.91904192681665</north>       

<south>37.46543388598137</south>       

<east>15.35832653742206</east>       

<west>14.60128369746704</west>       

<rotation>-0.1556640799496235</rotation>     

</LatLonBox>   

</GroundOverlay> 

</Folder>

</kml>

在<GroundOverlay>中,它包含两个较新的标记:

<Icon>:指定图片的URL;

<LatLonBox>:指定图片的位置和范围。

Google Earth支持JPEG,BMP, GIF, TIFF, TGA和PNG等格式的图像。

1.4 路线

在KML里面,路线由<LineString>元素来创建。如下所示:

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

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

<Document>   

<name>Paths</name>

<description>Examples of paths. Note that the tessellate tag is by default      set to 0. If you want to create tessellated lines, they must be authored      (or edited) directly in KML.</description>

<Style id="yellowLineGreenPoly">     

<LineStyle>       

<color>7f00ffff</color>       

<width>4</width>     

</LineStyle>     

<PolyStyle>       

<color>7f00ff00</color>     

</PolyStyle>   

</Style>

<Placemark>

<name>Absolute Extruded</name>     

<description>Transparent green wall with yellow outlines</description>      <styleUrl>#yellowLineGreenPoly</styleUrl>     

<LineString>       

<extrude>1</extrude>       

<tessellate>1</tessellate>       

<altitudeMode>absolute</altitudeMode>       

<coordinates>

-112.2550785337791,36.07954952145647,2357          -112.2549277039738,36.08117083492122,2357          -112.2552505069063,36.08260761307279,2357          -112.2564540158376,36.08395660588506,2357          -112.2580238976449,36.08511401044813,2357          -112.2595218489022,36.08584355239394,2357          -112.2608216347552,36.08612634548589,2357          -112.262073428656,36.08626019085147,2357          -112.2633204928495,36.08621519860091,2357          -112.2644963846444,36.08627897945274,2357          -112.2656969554589,36.08649599090644,2357

</coordinates>     

</LineString>

</Placemark> 

</Document>

</kml>

1.5 多边形

多边形由<Polygon>定义,包括<outerBoundaryIs>和<innerBoundaryIs>,如下所示:

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

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

<Placemark>   

<name>The Pentagon</name>   

<Polygon>     

<extrude>1</extrude>     

<altitudeMode>relativeToGround</altitudeMode>     

<outerBoundaryIs>       

<LinearRing>         

<coordinates>           

-77.05788457660967,38.87253259892824,100             -77.05465973756702,38.87291016281703,100             -77.05315536854791,38.87053267794386,100             -77.05552622493516,38.868757801256,100             -77.05844056290393,38.86996206506943,100             -77.05788457660967,38.87253259892824,100         

</coordinates>       

</LinearRing>     

</outerBoundaryIs>     

<innerBoundaryIs>        

<LinearRing>         

<coordinates>           

-77.05668055019126,38.87154239798456,100             -77.05542625960818,38.87167890344077,100             -77.05485125901024,38.87076535397792,100             -77.05577677433152,38.87008686581446,100             -77.05691162017543,38.87054446963351,100             -77.05668055019126,38.87154239798456,100         

</coordinates>       

</LinearRing>     

</innerBoundaryIs>   

</Polygon> 

</Placemark>

</kml>





相关文章
技术 | 仿地飞行最全使用流程及应用
免费资料上新!零基础7天掌握无人机航测处理[photoscan+pix4D+CC(smart3D)+Terrasolid]
应用 | 很详细的无人机倾斜摄影测量外业控制点作业方法
: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存