一文搞懂大疆机场kmz航线和图新地球导出的kmz的区别

2024-03-28 02:04

本文主要是介绍一文搞懂大疆机场kmz航线和图新地球导出的kmz的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0序:

近期有用户问“ 把KML文件放到图新后,想转出来KMZ(大疆的机场用的格式)但是转出来的KMZ显示格式不对 ”

之前只是知道大疆的航线规划采用的是kml规范,但具体是什么样并不清楚。就这这个问题把这个事情给弄明白。

1.找一份大疆机场能认的kmz文件进行分析

原理:kmz就是zip文件改了后缀。核心是kml与附件的压缩包。

kmz复制一份,并改名为.zip,然后解压

打开kml和wpml看下,注意这里面存了author信息哦

2.了解大概的原理

原理直接到大疆官网查看即可,网址如下:上云API

结论:

大疆的航线kmz是遵循kml规范的自定义文件。

如果需要自己开发航线规划软件,可以参考大疆的规范,把各个字段搞清楚,如何通过参数控制飞机的指令。

3.图新地球导出的kmz和大疆的航线kmz的区别

图新地球核心是一个三维GIS平台,能够融合各类GIS数据,并在数据融合的基础上进行方案制作、分析等。

所以图新平台在展示kmz、kml方面能解析加载几十Gb的文件,

在编辑kml、kmz文件中设置图标、风格、增加属性(图片、视频、全景)等,也能基于地图快速的标绘点、线、面等格式的文件。

图新地球在操作kml、kmz方面的几个点,大家了解一下

  • 1.图新在加载kml、kmz时会自动备份,生成后缀为.bak的文件,如果出现文件编辑后损坏,请使用备份文件恢复(前提,选项设置中打开自动备份)
  • 2.图新加载kmz后,会自动修改kmz中的文件结构,如果kmz中的kml名称不是doc,会自动改为doc。
  • 3.会自动重新整理附件,如果附件没有用到,会删除掉相关的附件。

4.航线转换与开发

如果只是为了把老的kml航线转为新的kmz航线,请使用大疆自己的【Pilot2】转换。

不要把大疆的航线导入到图新地球进行编辑,图新只能展示,编辑后无法再导回到【大疆机场】。

图新只能解析大疆机场的航线kmz文件,但是无法导出大疆机场可用的航线kmz。

看一个图新加载的大疆kmz文件

如果有编码能力的朋友想要做一些简单的航线规划软件,可以基于python语言和图新地球的python api快速完成这样的设定。

大概思路:

1.基于图新地球完成航线的绘制

2.给节点设置对应的参数指令

3.按照大疆的规范协议输出kml和wpml

附:

图新地球PythonAPI帮助文档:

1.产品概述 | 图新地球PythonAPI

输出大疆机场文件java代码示例:

大疆机场开发四(画航线)_大疆司空2航线文件-CSDN博客

5.大疆机场航线导入遥控器失败解决方案

5.1MultiGeometry问题

1、右键KML文件,选择编辑文本。

2、<Polygon> 的上级标签只能是 <Placemarker>,不能再包含其他标签,如果设置了其他标签,需要手动删除。

3、重新保存KML文件,然后导入遥控器中,即可正常使用。

举例:下图中的KML文件,需要删除文本中的<MultiGeometry>标签。

5.2根目录Folder问题

1、右键KML文件,选择编辑文本。

2、M300无法识别带有 <Folder>标签的KML,如下图所示,需要删除这个标签。

3、重新保存KML文件,然后导入遥控器中,即可正常使用。

5.3非document标签开头

1、右键KML文件,选择编辑文本

2、M300可以识别的KML,必须要以<Document>为开头标签,如果缺失,APP将无法识别。

错误示范的KML中,缺少了<Document>开头标签,导致KML无法识别。解决方案是手头添加这个条目。

3、重新保存KML文件,然后导入遥控器中,即可正常使用。

这篇关于一文搞懂大疆机场kmz航线和图新地球导出的kmz的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/854120

相关文章

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

native和static native区别

本文基于Hello JNI  如有疑惑,请看之前几篇文章。 native 与 static native java中 public native String helloJni();public native static String helloJniStatic();1212 JNI中 JNIEXPORT jstring JNICALL Java_com_test_g

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

Collection List Set Map的区别和联系

Collection List Set Map的区别和联系 这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复来进行区别记忆,以便恰当地使用,当然还存在同步方面的差异,见上一篇相关文章。 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否

javascript中break与continue的区别

在javascript中,break是结束整个循环,break下面的语句不再执行了 for(let i=1;i<=5;i++){if(i===3){break}document.write(i) } 上面的代码中,当i=1时,执行打印输出语句,当i=2时,执行打印输出语句,当i=3时,遇到break了,整个循环就结束了。 执行结果是12 continue语句是停止当前循环,返回从头开始。

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

ActiveMQ—Queue与Topic区别

Queue与Topic区别 转自:http://blog.csdn.net/qq_21033663/article/details/52458305 队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型:         1、点对点(point-to-point,简称PTP)Queue消息传递模型:         通过该消息传递模型,一个应用程序(即消息生产者)可以

深入探讨:ECMAScript与JavaScript的区别

在前端开发的世界中,JavaScript无疑是最受欢迎的编程语言之一。然而,很多开发者在使用JavaScript时,可能并不清楚ECMAScript与JavaScript之间的关系和区别。本文将深入探讨这两者的不同之处,并通过案例帮助大家更好地理解。 一、什么是ECMAScript? ECMAScript(简称ES)是一种脚本语言的标准,由ECMA国际组织制定。它定义了语言的语法、类型、语句、

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

MySQL使用mysqldump导出数据

mysql mysqldump只导出表结构或只导出数据的实现方法 备份数据库: #mysqldump 数据库名 >数据库备份名 #mysqldump -A -u用户名 -p密码 数据库名>数据库备份名 #mysqldump -d -A --add-drop-table -uroot -p >xxx.sql 1.导出结构不导出数据 mysqldump --opt -d 数据库名 -u