高德地圖 獲取定位藍點旋轉角度 獲取Marker物件
阿新 • • 發佈:2019-01-06
高德版本v6.3.0(其它版本可自行測試)
高德沒有提供獲取定位藍點物件的api,如果需要用到該物件,可以用反射獲取。
取得定位小藍點物件的方法如下:(Kotlin版)
//mMap是地圖物件,即AMap,高德SDK6.3.0 val a = getSpecifiedFieldObject(mMap, "a") val ac = getSpecifiedFieldObject(a, "ac") val f = getSpecifiedFieldObject(ac, "f") //小藍點物件 val marker = f as? Marker //小藍點的旋轉角度 val rotation = (marker?.rotateAngle ?: 0f)
//2018/11/24更新,高德SDK 6.5.0對應以下欄位
val a = getSpecifiedFieldObject(mMap, "a")
val ab = getSpecifiedFieldObject(a, "ab")
val f = getSpecifiedFieldObject(ab, "f")
getSpecifiedFieldObject
方法如下
/** * 反射獲取指定欄位的值(是一個物件) */ public static Object getSpecifiedFieldObject(Object obj, String fieldName) { if (obj == null) return null; Class<?> clazz = obj.getClass(); Object object = null; try { Field field = clazz.getDeclaredField(fieldName); field.setAccessible(true); object = field.get(obj); } catch (Exception e) { e.printStackTrace(); } return object; }