航线管理接口使用及如何web和pilot端航线同步可相互操作
已完成主要问题如题所示,具体问题有:
1、时序图中的Object storege指的是什么,minio,阿里云oss之类的云存储吗
2、使用demo1.10版本后端,是否只需要自己前端调用文档中的接口即可,后端demo是否完成文档中的接口
3、文档中提到的传递航线文件的url如何操作,实现思想大概是什么样的
4、web端航线同步是否需要将地图上的点绘制存储,并生成kmz上传到minio,再在pilot端从云上下载航线
5、为什么官方文档实例的kml和wpml导入到pilot会一直转圈显示加载中
6、为什么参考官方文档和从pilot上绘制的航线kmz解压缩,重新生成航线生成模板程序,可以导入pilot但是会显示报错航线源文件被修改
7、航点航线中的元素 <wpml:distance>584.484191894531</wpml:distance>
<wpml:duration>127.396835327148</wpml:duration>是如何生成的?可以用高德的工具手动计算吗?还是模板文件生成
-
尊敬的开发者, 您好,感谢您联系DJI 大疆创新。 1.对,云存储服务 2.后端demo只完成了部分功能,它只是一个测试demo,一些协议还是需要开发者自己去实现 3.文档中的url是指航线文件的访问地址,比如说上传航线文件到存储服务,这个url就是航线文件在存储服务的存储地址 4.不需要,建议在司空或者pilot创建好航线文件,然后上传到存储服务。 5.所有航线文件以 “.kmz” 后缀结尾 6.KMZ文件实际上是一个压缩包,其中包含了KML和WPML文件。确保在解压缩和重新压缩的过程中,文件的格式和内容没有被错误修改 7.distance航线总长度,这个距离是通过地理坐标(经纬度)计算得出的 **duration这个元素表示航线预计执行时间。这个时间是基于距离和预设的飞行速度计算得出的** **这两个元素不是必填项** 希望我们的解决方案能够帮到您,感谢您的邮件,祝您生活愉快! Best Regards, DJI 大疆创新SDK技术支持 -
尊敬的开发者, 您好,感谢您联系DJI 大疆创新。 kml的文件格式参考官方文档就行了:https://developer.dji.com/doc/cloud-api-tutorial/cn/api-reference/dji-wpml/template-kml.html kml文件的版本有很多,之前老的版本是可以的,现在导入kml文件是不行的。需要导入kmz格式的文件 为什么司空2和pilot2绘制航线无法导入demo前端,报错见附图 --》》具体报的什么错误,附件图片我这边是看不到的 希望我们的解决方案能够帮到您,感谢您的邮件,祝您生活愉快! Best Regards, DJI 大疆创新SDK技术支持 -
request uri: /wayline/api/v1/workspaces/e3dea0f5-37f2-4d79-ae58-490af3228069/waylines/file/upload, IP: 192.168.161.169
java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:662)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at com.dji.sample.wayline.service.impl.WaylineFileServiceImpl.validKmzFile(WaylineFileServiceImpl.java:225)
at com.dji.sample.wayline.service.impl.WaylineFileServiceImpl.importKmzFile(WaylineFileServiceImpl.java:180)
at com.dji.sample.wayline.service.impl.WaylineFileServiceImpl$$FastClassBySpringCGLIB$$a4f7b054.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
at com.dji.sample.wayline.service.impl.WaylineFileServiceImpl$$EnhancerBySpringCGLIB$$21c84a2e.importKmzFile(<generated>)
at com.dji.sample.wayline.controller.WaylineFileController.importKmzFile(WaylineFileController.java:69)
at com.dji.sample.wayline.controller.WaylineFileController$$FastClassBySpringCGLIB$$c86b9140.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)
at com.dji.sample.wayline.controller.WaylineFileController$$EnhancerBySpringCGLIB$$6b7b7e97.importKmzFile(<generated>)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at com.dji.sample.component.CorsFilter.doFilter(CorsFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)这个是有一个新的官网demo导入官网航线的后端报错显示,我该如何排查 -
尊敬的开发者, 您好,感谢您联系DJI 大疆创新。 在尝试将字符串转换为整数时发生的 `NumberFormatException`。这个异常通常发生在尝试使用 `Integer.parseInt` 方法将一个空字符串或非数字字符串转换为整数时。 `com.dji.sample.wayline.service.impl.WaylineFileServiceImpl.validKmzFile` 方法的第 225 行,`For input string: ""` 表示尝试将空字符串转换为整数 检查 `validKmzFile` 方法中传递给 `Integer.parseInt` 方法的参数 希望我们的解决方案能够帮到您,感谢您的邮件,祝您生活愉快! Best Regards, DJI 大疆创新SDK技术支持
请先登录再写评论。
评论
17 条评论