proximity_hash 2.2.0
proximity_hash: ^2.2.0 copied to clipboard
Generate a set of geohashes that cover a circular or square area, given the center coordinates and the radius
Dart Proximity Hash #
Proximity Hash generates a set of geohashes that cover a circular area, given the center coordinates and the radius. Geohash is a public domain geocode system which encodes a geographic location into a short string of letters and digits and is used as unique identifies and to represent point data in databases.
For example the point
25.6953° S, 54.4367° W
will covert to
6g3mc626.
Geohash #
Proximity hash also comes with a geohash library forked from dart_geohash since it was not being actively maintained.
import 'package:proximity_hash/geohash.dart';
Install #
To get this plugin, add proximity_hash as a dependency in your pubspec.yaml file. For example:
dependencies:
proximity_hash: ^1.1.0
Usage #
To get all the geohashes within a radius of 5000 meters from the point 25.6953° S, 54.4367° W with precision 3 simply import the library and call createGeohashes(). The precision dictates how long and how many geohashes are returned. For
example a precision of 3 returns geohahses of length 3.
import 'package:proximity_hash/proximity_hash.dart';
List<String> proximityGeohashes = createGeohashes(48.864716, 2.349014, 5000, 3);
// proximityGeohashes == ["u0d","u09"]
Performance #
Benchmark of createGeohashes for different precisions with radius 1000. Performance can become limiting starting at precision 9. Note that a larger radius will also decrease performance.
| Precicion | Time |
|---|---|
| 1 | .0068 sec |
| 2 | .0068 sec |
| 3 | .0070 sec |
| 4 | .0070 sec |
| 5 | .0070 sec |
| 6 | .0079 sec |
| 7 | .0232 sec |
| 8 | .1664 sec |
| 9 | 4.996 sec |
| 10 | 153.5 sec |
Issues #
Please file any issues, bugs or feature requests as an issue on our GitHub page.
Want to Contribute #
If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug or adding a cool new feature) submit a pull request.
Want to Support #
Based on proximityhash