【问题标题】:How to compute a GeoJson geometry area in dart / flutter如何在飞镖/颤振中计算 GeoJson 几何区域
【发布时间】:2019-11-13 20:11:27
【问题描述】:

我正在构建一个 Flutter 移动应用,我需要计算一些 GeoJson 几何图形的面积。

假设我们有一个类似 GeoJson 的对象:

final geo = {
    "type": "Polygon",
    "coordinates": [[
        [-122.085, 37.423],
        [-122.083, 37.423],
        [-122.083, 37.421],
        [-122.085, 37.421],
        [-122.085, 37.423]
    ]]
};

假设投影是 EPSG:4326,我们如何使用颤振或飞镖得到几何体的实际面积?

尝试使用dart-simple-features,但这不再维护,需要 SDK

我想到的另一个选择是将一些 JavaScript 库与 flutter_webview_plugin 结合使用,但是哦,天哪……这似乎有点矫枉过正!

也有可能使用platform-specific代码,但为了开发经验:尽可能避免在多个平台上测试...

有什么想法吗?还是推荐?

【问题讨论】:

    标签: flutter dart geojson area


    【解决方案1】:

    好的,将近一周没有回复...创建了我的第一个飞镖包:

    https://pub.dev/packages/area

    使用简单:

    import 'package:area/area.dart';
    
    main() {
      const world = {
        'type': 'Polygon',
        'coordinates': [
          [
            [-180, -90],
            [-180, 90],
            [180, 90],
            [180, -90],
            [-180, -90]
          ]
        ]
      };
    
      print("The world area is: ${area(world)} m²");
    }
    

    随意使用、憎恨或爱 ;)

    【讨论】:

    • 我正在寻找其中之一,但我无法找到,所以我做了和你一样的事情。谢谢
    【解决方案2】:

    你可以使用geojson_vi:

    const world = {
      'type': 'Polygon',
      'coordinates': [
        [
          [-180, -90],
          [-180, 90],
          [180, 90],
          [180, -90],
          [-180, -90]
        ]
      ]
    };
    final geoJSONPolygon = GeoJSONPolygon.fromMap(world);
    print(geoJSONPolygon.area);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-10
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 2020-08-12
      • 2020-11-05
      • 2020-11-19
      • 2019-08-02
      相关资源
      最近更新 更多