diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 41847b9f10..74196f7ddd 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -12,6 +12,7 @@ import android.view.View; import android.view.animation.Interpolator; import com.amap.api.maps.AMap; +import com.amap.api.maps.AMapUtils; import com.amap.api.maps.CameraUpdateFactory; import com.amap.api.maps.model.BitmapDescriptorFactory; import com.amap.api.maps.model.CameraPosition; @@ -33,6 +34,7 @@ import com.amap.api.navi.model.NaviInfo; import com.mogo.map.IMogoMap; import com.mogo.map.IMogoMapView; import com.mogo.map.MogoLatLng; +import com.mogo.map.exception.MogoMapException; import com.mogo.map.impl.amap.marker.AMapMarkerWrapper; import com.mogo.map.impl.amap.message.AMapMessageListener; import com.mogo.map.impl.amap.message.AMapMessageManager; @@ -679,4 +681,12 @@ public class AMapNaviViewWrapper implements IMogoMapView, mMapView.getMap().runOnDrawFrame(); } } + + @Override + public float calculateLineDistance( MogoLatLng p1, MogoLatLng p2 ) throws Exception { + if ( p1 == null || p2 == null ) { + throw new Exception( "计算距离的点不能为 null" ); + } + return AMapUtils.calculateLineDistance( ObjectUtils.fromMogo2( p1 ), ObjectUtils.fromMogo2( p2 ) ); + } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java index cd0790f4af..48c5a0d45d 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java @@ -208,4 +208,12 @@ public class AMapUIController implements IMogoMapUIController { mClient.forceRender(); } } + + @Override + public float calculateLineDistance( MogoLatLng p1, MogoLatLng p2 ) throws Exception { + if ( mClient != null ) { + return mClient.calculateLineDistance( p1, p2 ); + } + return 0; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index a3546cc25f..05f2ebeabf 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -168,4 +168,12 @@ public interface IMogoMapUIController { * 强制刷新地图 */ void forceRender(); + + /** + * 计算两点之间的距离 + * @param p1 + * @param p2 + * @return + */ + float calculateLineDistance(MogoLatLng p1, MogoLatLng p2) throws Exception; } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index a75142cc95..3e02480d24 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -201,4 +201,12 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.forceRender(); } } + + @Override + public float calculateLineDistance( MogoLatLng p1, MogoLatLng p2 ) throws Exception { + if ( mDelegate != null ) { + return mDelegate.calculateLineDistance( p1, p2 ); + } + return 0; + } } diff --git a/map-upload.sh b/map-upload.sh new file mode 100755 index 0000000000..a53d5d66df --- /dev/null +++ b/map-upload.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +./gradlew :libraries:mogo-map-api:clean :libraries:mogo-map-api:uploadArchives +./gradlew :libraries:map-amap:clean :libraries:map-amap:uploadArchives +./gradlew :libraries:mogo-map:clean :libraries:mogo-map:uploadArchives \ No newline at end of file