//百度地图的脑残设计,用Flutter添加多个BMFMarker时,必须在添加BMFMarker时自己保存ID,否则响应点击时无法确定用户点击的是哪个标签
//代码不会返回,也没有任何文档说明,是花了一天时间搜索网络无果,是自己翻江倒海摸索出来的
//附上代码,为后来的码农们...
Future getListBMFMarker({List listDwinfo}) async { if (null == listDwinfo) { listDwinfo = listDwinfoGetList2; } int len = listDwinfo.length; for (int i = 0; i < len; i++) { BMFMarker marker = BMFMarker( position: getBMFCoordinate(listDwinfo[i]["dwzb"]), title: ‘${listDwinfo[i]["id"].toString()}、${listDwinfo[i]["dwmc"]}‘, subtitle: ‘test‘, identifier: ‘${listDwinfo[i]["id"].toString()}、${listDwinfo[i]["dwmc"]}‘, icon: ‘assets/images/location.png‘, /// 默认情况下, annotation view的中心位于annotation的坐标位置, /// 可以设置centerOffset改变view的位置,正的偏移使view朝右下方移动,负的朝左上方,单位是像素 /// 目前Android只支持Y轴设置偏移量对应SDK的 yOffset(int yOffset) 方法 centerOffset: BMFPoint(100, 110), //标记中心偏移 enabled: enable, draggable: dragable); //百度地图的脑残设计,用Flutter添加多个BMFMarker时,必须在添加BMFMarker时自己保存ID,否则响应点击时无法确定用户点击的是哪个标签 //代码不会返回,也没有任何文档说明,是花了一天时间搜索网络无果,是自己翻江倒海摸索出来的 g_map_BMFMarkerID_dwIndex[marker.getId()] = i; g_listBMFMarker.add(marker); g_listBMFText.add(BMFText( text: ‘${listDwinfo[i]["id"].toString()}、${listDwinfo[i]["dwmc"]}‘, position: getBMFCoordinate(listDwinfo[i]["dwzb"]), //自己控制off_latitude、off_longitude效果不好 bgColor: Colors.yellow, fontColor: Colors.black, fontSize: 35, typeFace: BMFTypeFace(familyName: BMFFamilyName.sMonospace, textStype: BMFTextStyle.BOLD), alignY: BMFVerticalAlign.ALIGN_TOP, alignX: BMFHorizontalAlign.ALIGN_LEFT, rotate: 0.0, zIndex: 99)); } }
原文:https://www.cnblogs.com/ybmj/p/14408263.html