//百度地圖的腦殘設計,用Flutter添加多個BMFMarker時,必須在添加BMFMarker時本身保存ID,不然響應點擊時沒法肯定用戶點擊的是哪一個標籤java
//代碼不會返回,也沒有任何文檔說明,是花了一天時間搜索網絡無果,是本身翻江倒海摸索出來的
//附上代碼,爲後來的碼農們...git
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)); } }