google_map_polyutil
Dart bridge between native google map utility class PolyUtil and your application.
Now you can use all PolyUtil methods that are available in google map utility class PolyUtil.
Usage
Import package:google_map_polyutil/google_map_polyutil.dart and then you are all set to call all it's static methods.
Methods available
containsLocation[Future] : Computes whether the given point lies inside the specified polygon.decode[Future<List>] : Decodes an encoded path string into a sequence of LatLngs.distanceToLine[Future] : Computes the distance on the sphere between the point p and the line segment start to end.encode[Future] : Encodes a sequence of LatLngs into an encoded path string.isClosedPolygon[Future] : Returns true if the provided list of points is a closed polygon (i.e., the first and last points are the same), and false if it is not.isLocationOnEdge[Future] : Computes whether the given point lies on or near the edge of a polygon, within a specified tolerance in meters.isLocationOnPath[Future] : Computes whether the given point lies on or near a polyline, within a specified tolerance in meters.simplifyFuture<List> : Simplifies the given poly (polyline or polygon) using the Douglas-Peucker decimation algorithm.
Example
// Let's prepare dummy arguments.
List<LatLng> paths = [];
paths.add(LatLng(0,0));
paths.add(LatLng(0,1));
paths.add(LatLng(0,2));
paths.add(LatLng(0,4));
// Coordinate you want to check if it lies within or near path.
LatLng point = LatLng(0, 3);
String encodedString = "???_ibE?_seK?_ibE";containsLocation
GoogleMapPolyUtil.containsLocation(
point: point,
polygon: paths
).then((result) => print(result));decode
GoogleMapPolyUtil.decode(
encodedPath: encodedPath
).then((result) => print(result));distanceToLine
GoogleMapPolyUtil.distanceToLine(
point: LatLng(0, 0),
start: LatLng(0, 0),
end: LatLng(0, 8)
).then((result) => print(result));encode
GoogleMapPolyUtil.encode(
path: paths
).then((result) => print(result));
isClosedPolygon
GoogleMapPolyUtil.isClosedPolygon(
poly: path,
polygon: paths
).then((result) => print(result));isLocationOnEdge
GoogleMapPolyUtil.isLocationOnEdge(
point: point,
polygon: paths
).then((result) => print(result));
isLocationOnPath
GoogleMapPolyUtil.isLocationOnEdge(
point: point,
polygon: paths
).then((result) => print(result));simplify
GoogleMapPolyUtil.simplify(
poly: paths,
tolerance: 100
).then((result) => print(result));Author
Note : This plugin can only be used for android application. iOS support in not available yet.