Как вычислить геометрическую область GeoJson в дротике / флаттере - PullRequest
0 голосов
/ 03 июля 2019

Я создаю мобильное приложение для флаттера, и мне нужно вычислить область некоторых геометрий 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. </p>

Еще одна опция, которая пришла мне в голову, - это использовать библиотеку JavaScript в сочетании с flutter_webview_plugin , но, о боже ... Это похоже на излишество!

Также есть возможность использовать специфичный для платформы код , но ради опыта разработки: давайте избегать тестирования на нескольких платформах, если это возможно ...

Есть идеи? Или рекомендации?

1 Ответ

1 голос
/ 09 июля 2019

Ладно, почти неделю нет ответа ... Создал мой первый пакет дротиков:

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²");
}

Не стесняйтесь использовать, ненавидеть или любить;)

...