J'essaie de dessiner une polyligne entre deux emplacements à l'aide de la bibliothèque de cartes Google Flutter.
// here the Map Body
body:Container(
child: GoogleMap(
myLocationEnabled: true,
mapType: MapType.hybrid,
onMapCreated: (GoogleMapController controller){
mapController=controller;
},
initialCameraPosition: CameraPosition(
target: center,
zoom: 11.0
),
markers: markers,
),
),
3 Réponses :
si vous utilisez le plugin goole_maps_flutter, sur la version 0.5.6, le support des polylignes a été ajouté à GoogleMaps. https://pub.dev/packages/google_maps_flutter#056
vous pouvez l'ajouter similaire à la façon dont vous ajoutez des marqueurs:
body:Container(
child: GoogleMap(
myLocationEnabled: true,
mapType: MapType.hybrid,
onMapCreated: (GoogleMapController controller){
mapController=controller;
},
initialCameraPosition: CameraPosition(
target: center,
zoom: 11.0
),
markers: markers,
polylines: polylines, // Set<Polyline>
),
),
consultez l'exemple suivant:
Je suppose que vous avez trouvé une solution à ce problème, mais juste au cas où quelqu'un d'autre se trouverait ici ...
Voici comment procéder.
List<Polyline> _polyLine = [];
_polyLine.add(Polyline(
polylineId: PolylineId("route1"),
color: Colors.blue,
patterns: [
PatternItem.dash(20.0),
PatternItem.gap(10)
],
width: 3,
points: [
LOCATION_A,
LOCATION_B,
],
));
.
.
.
.
GoogleMap(
myLocationEnabled: true,
mapType: MapType.hybrid,
onMapCreated: (GoogleMapController controller){
mapController=controller;
},
initialCameraPosition: CameraPosition(
target: center,
zoom: 11.0
),
markers: markers,
polylines: _polyLine.toSet(),
),
p>
Utilisez les polygones du widget Google () et essayez comme ceci
getPoints() {
return [
LatLng(6.862472, 79.859482),
LatLng(6.862258, 79.862325),
LatLng(6.863121, 79.863644),
LatLng(6.864538, 79.865039),
LatLng(6.865124, 79.864546),
LatLng(6.866451, 79.864667),
LatLng(6.867303, 79.86544),
LatLng(6.867899, 79.865826),
LatLng(6.867867, 79.866727),
LatLng(6.864884, 79.870333),
LatLng(6.861859, 79.873112),
LatLng(6.861593, 79.87499),
LatLng(6.860837, 79.876427),
];
}
mettez vos coordonnées dans
getPoint ()
GoogleMap(
markers: markersAr,
myLocationEnabled: true,
initialCameraPosition: CameraPosition(
target: LatLng(6.843369, 79.874814),
zoom: 12.99,
),
polygons: Set<Polygon>.of(<Polygon>[
Polygon(
polygonId: PolygonId('area'),
points: getPoints(),
geodesic: true,
strokeColor: Colors.red.withOpacity(0.6),
strokeWidth: 5,
fillColor: Colors.redAccent.withOpacity(0.1),
visible: true),
]),)