addCustomMarker method
dynamic
addCustomMarker({
- required LatLng point,
- required String title,
- MapMarkerIconModel? icon,
- required List<
MapButtonClass> buttons, - List<
String> ? images, - List<
MapMarkerContentModel> ? content,
override
Create marker on point with title, in this marker you may configure a button and its callback
on point
with title
buttons with names
and callbacks acts
Implementation
@override
addCustomMarker(
{required LatLng point,
required String title,
MapMarkerIconModel? icon,
required List<MapButtonClass> buttons,
List<String>? images,
List<MapMarkerContentModel>? content}) {
// String buttIdsString = "[";
// String namesStr = "[";
//
// List<String> buttIds = [];
// for (var act in buttons) {
// String id = createUniqueUid(count: 6, isNumberEnabled: false);
//
// buttIds.add(id);
// buttIdsString += '"$id", ';
// //print(id);
// super.markersAction[id] = act.act;
//
// namesStr += '"${act.name}", ';
// }
//
// buttIdsString += "]";
// namesStr += "]";
List<String> buttIds = [];
for (int index = 0; index < buttons.length; index++) {
String id = createUniqueUid(count: 6, isNumberEnabled: false);
buttIds.add(id);
buttons[index] = buttons[index]..id = id;
//print(id);
super.markersAction[id] = buttons[index].act;
}
String iconString = "'none', ";
if(icon != null){
iconString = "'";
iconString += icon.toMapJs();
iconString += "', ";
}
String buttonString = "'none', ";
if(buttons.isNotEmpty){
buttonString = "[";
for(var but in buttons){
buttonString += "'${but.toMapJs()}', ";
}
buttonString.substring(0, buttonString.length - 2);
buttonString += "]";
}
String imagesString = "";
if(images != null){
imagesString = ", [";
for(var img in images){
imagesString += '"$img", ';
}
imagesString.substring(0, imagesString.length - 2);
imagesString += "]";
}
String contentString = "";
if(content != null){
contentString = ", [";
for(var cont in content){
contentString += "'${cont.toMapJs()}', ";
}
contentString.substring(0, contentString.length - 2);
contentString += "]";
}
print(
"$buttonString"
"$imagesString"
"$contentString");
NtkMapViewState.controller.runJavaScript("_addMarkerCustom("
"${point.latitude}, "
"${point.longitude}, "
"'$title', "
"$iconString"
"$buttonString"
"$imagesString"
"$contentString"
")");
}