欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android天地图常用工具

程序员文章站 2022-07-01 22:29:37
...
/**
 * 天地图工具
 */
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);
    }


}