geotools 0.4.0 copy "geotools: ^0.4.0" to clipboard
geotools: ^0.4.0 copied to clipboard

A Dart library that provides tools for manipulating and working with geospatial data.

example/geotools_example.dart

import 'package:geotools/geotools.dart';
import 'dart:io';

main() {
  // Geo stuff...

  final LatLong eiffelTower = LatLong.fromDecimal(48.85805556, 2.29416667);
  final LatLong statueOfLiberty = LatLong.fromDecimal(40.68972222, 72.04444444);
  final LatLong eiffelTowerDuplicate =
      LatLong.fromDecimal(48.85805556, 2.29416667);

  print(eiffelTower
      .asJsonStringDecimal()); // prints {"lat":48.85805556,"long":2.29416667}

  print(eiffelTower
      .asGeoJson()); // prints {"type":"Point", "coordinates":[2.29416667,48.85805556]}

  print(GeoUtils.distanceInMeters(
      eiffelTower, statueOfLiberty)); // prints 5384207.973601257

  GeoUtils.sameLocation(eiffelTower, eiffelTowerDuplicate); // prints true

  final Latitude plazaMayorMaxLatitude = Latitude.fromDecimal(40.415780);
  final Latitude plazaMayorMinLatitude = Latitude.fromDecimal(40.415013);
  final Longitude plazaMayorMaxLongitude = Longitude.fromDecimal(-3.706646);
  final Longitude plazaMayorMinLongitude = Longitude.fromDecimal(-3.708113);
  final BoundingBox plazaMayor = BoundingBox.fromDecimal(
      plazaMayorMinLongitude.decimal,
      plazaMayorMaxLongitude.decimal,
      plazaMayorMinLatitude.decimal,
      plazaMayorMaxLatitude.decimal);

  print(plazaMayor
      .asGeoJson()); // prints {"type":"Polygon","coordinates":[[[-3.708113,40.415013],[-3.706646,40.415013],[-3.706646,40.41578],[-3.708113,40.41578],[-3.708113,40.415013]]]}

  // Graph stuff...

  final File luxembourg = File(
      'test/luxembourg.json'); // [{"id": 3895896119, "lat": 49.615311, "long": 6.1297125, "neighbours": [4321295305 ] }, {"id": 74998906, "lat": 49.6134879, "long": 6.1295215, "neighbours": [4083207920, 4083207905 ] },...

  luxembourg.readAsString().then((String contents) {
    final Tile tile = Tile()..withNodesFromJsonString(contents);
    final double targetTrackDistanceInMeters = 5000;
    tile.generateRandomTrack(targetTrackDistanceInMeters);
    final double trackLengthInMeters = tile.getRandomTrack().getCost();
    print("Track length in meters: " + trackLengthInMeters.toString());
    print(tile.getTrackAsGeoJson());
  });

  // Canvas stuff

  luxembourg.readAsString().then((String contents) {
    final Latitude luxembourgMaxLatitude = Latitude.fromDecimal(49.6168);
    final Latitude luxembourgMinLatitude = Latitude.fromDecimal(49.6065);
    final Longitude luxembourgMaxLongitude = Longitude.fromDecimal(6.1377);
    final Longitude luxembourgMinLongitude = Longitude.fromDecimal(6.1207);
    final BoundingBox luxembourg = BoundingBox.fromDecimal(
        luxembourgMinLongitude.decimal,
        luxembourgMaxLongitude.decimal,
        luxembourgMinLatitude.decimal,
        luxembourgMaxLatitude.decimal);
    print(luxembourg.asGeoJson());
    final Tile tile = Tile()
      ..withNodesFromJsonString(contents)
      ..withBoundingBox(luxembourg)
      ..withCanvas(1129, 1207);
    final double targetTrackDistanceInMeters = 5000;
    tile.generateRandomTrack(targetTrackDistanceInMeters);
    final double trackLengthInMeters = tile.getRandomTrack().getCost();
    print("Track length in meters: " + trackLengthInMeters.toString());
    print(tile.getRandomTrack().asGeoJson());
    print(tile.getTrackAsSvgPolyline());
  });
}
3
likes
40
pub points
0%
popularity

Publisher

unverified uploader

A Dart library that provides tools for manipulating and working with geospatial data.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

More

Packages that depend on geotools