#可见性 #多边形 #地理

geo-visibility

计算可见多边形

6个版本 (重大更新)

0.5.0 2021年4月25日
0.4.0 2021年4月6日
0.3.0 2020年2月3日
0.2.0 2019年11月8日
0.1.1 2019年7月3日

#1938 in 算法

每月42次下载

ISC许可证

42KB
1K SLoC

geo-visibility

本包包含计算可见多边形的算法。

crate.io docs.rs

此代码是C++库visibility的Rust端口。

示例

以下示例展示了如何计算点在直线障碍物中的可见多边形。由visibility方法提供,该方法是Visibility trait提供的,该trait已实现于大多数geo-types

use geo::{Coordinate, Line};
use geo_visibility::Visibility;

let point = geo::Point::new(0.0, 0.0);

let lines = vec![
    Line::new(
        Coordinate { x: 1.0, y: 1.0 },
        Coordinate { x: 1.0, y: -1.0 },
    ),
    Line::new(
        Coordinate { x: -1.0, y: -1.0 },
        Coordinate { x: -1.0, y: -2.0 },
    ),
];

let visibility_polygon = point.visibility(lines.as_slice());

依赖项

~4–6MB
~115K SLoC