flutter - 如何在飞镖/颤振中计算 GeoJson 几何区域
问题描述
我正在构建一个颤动的移动应用程序,我需要计算一些 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 < 2.0.0。
我想到的另一个选择是结合使用一些 JavaScript 库和flutter_webview_plugin,但是哦,我的……这似乎有点矫枉过正!
也有可能使用特定于平台的代码,但为了开发经验:如果可能的话,让我们避免在多个平台上进行测试......
有任何想法吗?还是推荐?
解决方案
好的,将近一周没有回复......创建了我的第一个飞镖包:
使用简单:
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²");
}
随意使用,恨或爱;)
推荐阅读
- python - 如何使用 Django 和 REST 框架按共同值进行分页?
- r - 尝试拟合多元线性回归模型时 Predict() 函数的问题
- python-3.x - tkinter:为什么这个可移动标签在我不移动时会移动?
- css - 当给定显示:块时,是什么使按钮不会增长到 100% 宽度?
- amp-html - 在另一个动画之后触发动画
- node.js - 在 Node.js / Puppeteer 中使用 Tor 包时是否可以加快 IP 地址的更改?
- asp.net-core-mvc - 基于请求路由的条件验证与 asp.net core 2.2 和 FluentValidation
- ios - Quartzcore 崩溃调用 CA::Render::Encoder::encode_object_uncached(CA::Render::Object const*)
- html - html 电子邮件模板不会在 Outlook 中呈现属性
- c - 我想在excel vba中复制我在c中的这个嵌套for循环