当前位置: 首页 > news >正文

深圳宝安商城网站建设公司江苏网站建设电话

深圳宝安商城网站建设公司,江苏网站建设电话,抖音怎么运营和引流,北京网站建设 seo公司场景#xff1a; 我目前设计到的场景是#xff1a;以路面上行驶的汽车为例#xff0c;即在地图应用中#xff0c;对GPS轨迹数据进行压缩#xff0c;减少数据传输和存储开销#xff0c;因为轨迹点太频繁了#xff0c;占用空间太大#xff0c;运行节点太慢了#xff0c…场景 我目前设计到的场景是以路面上行驶的汽车为例即在地图应用中对GPS轨迹数据进行压缩减少数据传输和存储开销因为轨迹点太频繁了占用空间太大运行节点太慢了经过小组讨论需要上这个算法。 涉及到的算法 Douglas-Peucker算法该算法通过递归地将轨迹分割为线段并丢弃那些与整体轨迹偏差较小的线段从而实现轨迹的压缩。 Visvalingam-Whyatt算法该算法基于三角形面积的概念通过不断移除面积最小的点来达到轨迹压缩的目的 图片来源郑宇博士《computing with spatial trajectories》 Haversine公式计算距离和Douglas-Peucker压缩算法代码实现-scala版 import org.apache.spark.sql.{DataFrame, SparkSession} import org.apache.spark.sql.functions._ import scala.math._// 定义表示点的类 case class Point(lon: Double, lat: Double, time: String, id: String)// Haversine距离计算函数 def haversineDistance(point1: Point, point2: Point): Double {val R 6371000.0 // 地球半径米val dLat toRadians(point2.lat - point1.lat)val dLon toRadians(point2.lon - point1.lon)val a pow(sin(dLat / 2), 2) cos(toRadians(point1.lat)) * cos(toRadians(point2.lat)) * pow(sin(dLon / 2), 2)val c 2 * atan2(sqrt(a), sqrt(1 - a))R * c }// Douglas-Peucker轨迹压缩函数 def douglasPeucker(points: List[Point], epsilon: Double): List[Point] {if (points.length 3) {return points}val dmax points.view.zipWithIndex.map { case (point, index) if (index ! 0 index ! points.length - 1) {perpendicularDistance(point, points.head, points.last)} else {0.0}}.maxif (dmax epsilon) {val index points.view.zipWithIndex.maxBy { case (point, index) if (index ! 0 index ! points.length - 1) {perpendicularDistance(point, points.head, points.last)} else {0.0}}._2val recResults1 douglasPeucker(points.take(index1), epsilon)val recResults2 douglasPeucker(points.drop(index), epsilon)recResults1.init ::: recResults2} else {List(points.head, points.last)} }// 创建Spark会话 val spark SparkSession.builder().appName(TrajectoryCompression).getOrCreate()// 创建包含lon、lat、time和id列的示例DataFrame //https://blog.csdn.net/qq_52128187?typeblog,by_laoli val data Seq((40.7128, -74.0060, 2023-11-18 08:00:00, 1),(40.7215, -74.0112, 2023-11-18 08:05:00, 1),(40.7312, -74.0146, 2023-11-18 08:10:00, 1),(40.7356, -74.0162, 2023-11-18 08:15:00, 1),(40.7391, -74.0182, 2023-11-18 08:20:00, 1),(40.7483, -74.0224, 2023-11-18 08:25:00, 1),(40.7527, -74.0260, 2023-11-18 08:30:00, 1) ).toDF(lon, lat, time, id)// 为DataFrame添加id列 val dfWithId data.withColumn(id, monotonically_increasing_id())// 将DataFrame转换为Point列表 val points dfWithId.as[(Double, Double, String, Long)].collect().map(p Point(p._1, p._2, p._3, p._4.toString)).toList// 执行轨迹压缩 val compressedPoints douglasPeucker(points, epsilon 10) // 设置您期望的epsilon值// 将压缩后的数据重新转换为DataFrame import spark.implicits._ val df2 compressedPoints.toDF(lon, lat, time, id)参考文章 Douglas, D.H., and Peucker, T.K. Algorithms for the reduction of the number of points required to represent a digitized line or its caricature. The Canadian Cartographer 10.2 (1973): 112-122.Visvalingam, M., and Whyatt, J.D. Line generalization by repeated elimination of the smallest-area triangle. Cartographic Journal 30.1 (1993): 46-51.轨迹数据压缩的Douglas-Peucker算法附代码及原始数据 - 知乎
http://www.pierceye.com/news/966355/

相关文章:

  • 专注做一家男生最爱的网站北京旅游设计网站建设
  • c 做网站凡科网站免费版怎么做
  • 门户网站开发多少钱wordpress主题文章页面不显示
  • 网站建设丶金手指下拉13个人网站有什么用
  • 企业网站建设解决方案wordpress搜索不了中文linux
  • 怎样在网站上做有效的广告投放手机网站公司哪家好
  • 四川德行天下建设工程有限公司网站ie兼容所有网站
  • 网站seo诊断免费php源码网
  • 微信公众号商城网站开发湖南省新闻最新消息十条
  • 如何做网站家具导购做哈尔滨本地门户网站赚钱吗
  • 建立网站的步骤有哪些wordpress 主题
  • 网站功能建设中页面个体户做网站有用吗
  • 网站建设具体要求wordpress启用注册
  • 重庆好的网站建设公司车辆管理网站开发
  • 十大SEO网站外链建设误区城乡住房建设部网站保证金
  • 自己做一元夺宝网站dede 管理多个网站
  • 做app还是做微网站好聚美网站开发开题报告
  • 网站建设总结与科技网站建设+长沙
  • 网博士自助建站系统手机wap网站程序
  • 做网站有什么不好竞价广告
  • 个人网站 cms企业做网站的好处有哪些
  • 公司做网站的费用入账国内电商平台网站制作排行榜
  • 做网站电脑开一天用多少钱怎么做网页动图
  • 织梦做网站教程网站风格要求
  • 网站制作用什么编程百度贴吧网页版登录
  • 站长之家ip查询雄安哪里在建设
  • wdcp创建网站网站开发如何找甲方
  • 做网站运营用什么软件高校支付网站建设费需要入无形资产
  • 在那个网站做ppt可以赚钱网页代码怎么看
  • 免费做企业网站广州萝岗网站建设