Android天地圖常用工具

/**
 * 天地圖工具
 */
public class SkyLandMap {

    /**
     * 設置中心點
     *
     * @param context 上下文對象
     * @param mapView 地圖對象
     * @param point   GeoPoint point = new GeoPoint((int) (29.540659410147214 * 1E6), (int) (106.55687441905739 * 1E6));
     * @param ico     圖標
     */
    public static void showCenter(Context context, MapView mapView, GeoPoint point, @DrawableRes int ico) {
        //天機覆蓋物
        addMarkerOverlay(context, mapView, point, ico);
        //設置地圖中心點
        mapView.getController().setCenter(point);
    }

    /**
     * 添加標記
     *
     * @param context  上下文對象
     * @param mapView  地圖對象
     * @param geoPoint 座標點
     * @param ico
     */
    public static void addMarkerOverlay(Context context, MapView mapView, GeoPoint geoPoint, @DrawableRes int ico) {
        addMarkerOverlay(context, mapView, geoPoint, ico, null);
    }

    /**
     * 添加標記
     *
     * @param geoPoint 地理座標
     * @param ico      圖標
     */
    public static void addMarkerOverlay(Context context, MapView mapView, GeoPoint geoPoint, @DrawableRes int ico, MarkerOverlay.OnMarkerClickListener listener) {
        MarkerOverlay markerOverlay = new MarkerOverlay();
        markerOverlay.setClickListener(listener);
        markerOverlay.setIcon(context.getResources().getDrawable(ico));
        markerOverlay.setPosition(geoPoint);
        mapView.addOverlay(markerOverlay);
    }

    /**
     * 地理反編碼
     *
     * @param geoPoint 座標
     * @param listener 監聽
     */
    public static void geoDecode(GeoPoint geoPoint, TGeoDecode.OnGeoResultListener listener) {
        TGeoDecode tGeoDecode = new TGeoDecode(listener);
        tGeoDecode.search(geoPoint);
    }

    /**
     * 搜索座標獲取地址
     *
     * @param geoPoint 座標點
     * @param listener 監聽
     */
    public static void searchGeoPoint(GeoPoint geoPoint, TGeoDecode.OnGeoResultListener listener) {
        TGeoDecode tGeoDecode = new TGeoDecode(listener);
        tGeoDecode.search(geoPoint);
    }


}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章