背景:现有多个geojson文件,内容为某时段汽车的行驶轨迹,以经纬度的坐标保存,需要将其进行压缩重新保存为geojson
geojson格式:
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point", "coordinates": [102.0, 0.5]},
"properties": {
"prop0": "value0"}
}]
}
详见官网:https://www.oschina.net/translate/geojson-spec?cmp
抽稀算法:道格拉斯-普克法(Douglas-Peucker algorithm)
#算法逻辑:
- 确定起终点
- 计算起终点之间所有点到起终点组成线段的距离
- 设定阈值,若最大距离小于阈值,则去除中间所有点,反之,以最大距离对应的点为界,分别对左半部分和右半部分从第2步递归计算
python实现:
# -*- coding:utf-8 -*-
"""
道格拉斯算法的实现
"""
import math
import json
import numpy as np
import matplotlib.pyplot as plt
class Point:
"""点类"""
x = 0.0
y = 0.0
index = 0 # 点在线上的索引
tag = False # 是否保留该点,默认都不保留
def __init__(sel

这篇博客介绍了如何使用Python实现道格拉斯-普克算法来对GeoJSON格式的车辆行驶轨迹数据进行抽稀处理。文章背景是需要压缩包含多个汽车行驶轨迹的geojson文件,通过设定阈值,递归计算并删除距离线段起终点小于阈值的中间点,从而达到数据压缩的目的。
最低0.47元/天 解锁文章
601

被折叠的 条评论
为什么被折叠?



