turf
一個類似於 turf.js 的地理空間分析庫,用於處理 GeoJSON,完全以 Dart 編寫。
一個類似於 turf.js 的地理空間分析庫,用於處理 GeoJSON,完全以 Dart 編寫。
以下為英文專案原文快照,最新內容請造訪 GitHub。
TurfDart is a Dart library for spatial analysis. It includes traditional spatial operations, helper functions for creating GeoJSON data, and data classification and statistics tools. You can use TurfDart in your Flutter applications on the web, mobile and desktop or in pure Dart applications running on the server.
As the foundation, we are using Geotypes, a lightweight dart library that provides a strong GeoJSON object model and fully RFC 7946 compliant serializers.
Most of the functionality is a translation from turf.js, the progress can be found here.
dart pub add turfimport 'package:turf/helpers.dart';
import 'package:turf/src/line_segment.dart';
Feature<Polygon> poly = Feature<Polygon>(
geometry: Polygon(coordinates: [
[
Position(0, 0),
Position(2, 2),
Position(0, 1),
Position(0, 0),
],
[
Position(0, 0),
Position(1, 1),
Position(0, 1),
Position(0, 0),
],
]),
);
void main() {
var total = segmentReduce<int>(
poly,
(previousValue, currentSegment, initialValue, featureIndex,
multiFeatureIndex, geometryIndex, segmentIndex) {
if (previousValue != null) {
previousValue++;
}
return previousValue;
},
0,
combineNestedGeometries: false,
);
print(total);
// total == 6
}
GeometryCollections (as described in
RFC 7946 section 3.1.8)
are not supported which takes a slightly firmer stance than the "should
avoid" language in the specificationTests are run with dart test and benchmarks can be run with
dart run benchmark
Any new benchmarks must be named *_benchmark.dart and reside in the
./benchmark folder.
依賴清單 12 項
^0.0.2^0.1.0^0.0.2^1.1.1^0.0.4^1.9.0^3.0.0^1.24.3^2.4.5^6.4.0^0.3.0^4.8.0先依使用情境篩選,再比較專案活躍情況,最後到原始儲存庫確認使用要求。
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗