overlayHandle method
Implementation
Future<dynamic> overlayHandle(MethodCall method) async {
final argument = method.arguments;
final type =
OverlayType.values.firstWhere((e) => e.value == argument["type"]);
final layerId =
argument.containsKey("layerId") ? argument["layerId"] : null;
switch (method.method) {
case "createLabelLayer":
_labelLayer[layerId!] =
WebLabelController._(layerId!, controller, this, false);
break;
case "createLodLabelLayer":
_lodLabelLayer[layerId!] =
WebLabelController._(layerId!, controller, this, true);
break;
case "createRouteLayer":
_routeLayer[layerId!] =
WebRouteController._(layerId!, controller, this);
break;
case "createShapeLayer":
_shapeLayer[layerId!] =
WebShapeController._(layerId!, controller, this);
break;
case "removeLabelLayer":
_labelLayer[layerId!]!.removeLabelLayer();
_labelLayer.remove(layerId!);
return;
case "removeLodLabelLayer":
_lodLabelLayer[layerId!]!.removeLabelLayer();
_lodLabelLayer.remove(layerId!);
return;
case "removeRouteLayer":
_routeLayer[layerId!]!.removeRouteLayer();
_routeLayer.remove(layerId!);
return;
case "addPoiStyle":
final poiStyleId = argument["styleId"] ?? _uuid.v4();
_poiStyles[poiStyleId] =
PoiStyle.fromMessageable(argument["styles"], poiStyleId);
return poiStyleId;
case "addRouteStyle":
final routeStyleId = argument["styleId"] ?? _uuid.v4();
_routeStyles[routeStyleId] = argument["styles"]
.map<RouteStyle>((e) => RouteStyle.fromMessageable(e, routeStyleId))
.toList();
return routeStyleId;
case "addPolylineShapeStyle":
final polylineStyleId = argument["styleId"] ?? _uuid.v4();
_polylineStyles[polylineStyleId] = argument["styles"]
.map<PolylineStyle>((payload) =>
PolylineStyle.fromMessageable(payload, polylineStyleId))
.toList();
return polylineStyleId;
case "addPolygonShapeStyle":
final polygonStyleId = argument["styleId"] ?? _uuid.v4();
_polygonStyles[polygonStyleId] = argument["styles"]
.map<PolygonStyle>((payload) =>
PolygonStyle.fromMessageable(payload, polygonStyleId))
.toList();
return polygonStyleId;
}
switch (type) {
case OverlayType.label || OverlayType.lodLabel:
WebLabelController? layer = _labelLayer[layerId!];
layer = layer ?? _lodLabelLayer[layerId!];
return await layer?.labelHandle(method);
case OverlayType.shape:
return await _shapeLayer[layerId!]?.shapeHandle(method);
case OverlayType.route:
return await _routeLayer[layerId!]?.routeHandle(method);
}
}