高德地图导航和标注,通过调用高德APP实现呢

在调用高德地图APP提供坐标定位位置,若果是需要导航的话可以参考下面1,如果还想知道路线、周边、导航请调用标注来实现,标注包含导航功能。
1  导航(调用显示导航图)
高德地图导航和标注,通过调用高德APP实现呢_第1张图片
         一种是通过高德提供的SDK实现,另一种类似下面2中高德标注的提供intent启动)
NaviPara naviPara = new NaviPara();
        naviPara.setTargetPoint(new com.amap.api.maps.model.LatLng(Double.valueOf(latitude), Double.valueOf(longitude)));
        naviPara.setNaviStyle(AMapUtils.DRIVING_AVOID_CONGESTION);
        try
        {
            AMapUtils.openAMapNavi(naviPara, context);
        }
        catch(com.amap.api.maps.AMapException e)
        {
            Log.i("error", e.getErrorMessage());
            Toast.makeText(context, "您尚未安装高德地图app或app版本过低,请确认安装最新版本", Toast.LENGTH_SHORT).show();
        }
2 高德标注(调用显示图) 高德地图导航和标注,通过调用高德APP实现呢_第2张图片
if (Util. isInstall("com.autonavi.minimap")){
                Util.goToNaviAddress(context,"xxx","名称",Latitude,Longitude,"1");
 }else{
                    Toast.makeText(FoodDetailActivity.this, "您尚未安装高德地图app或app版本过低,请确认安装最新本", Toast.LENGTH_SHORT).show();
 }

 /**
     * 启动高德App进行地图标注
     * @param context
     * @param sourceApplication 必填 第三方调用应用名称
     * @param poiname 非必填 POI 名称
     * @param lat 必填 纬度
     * @param lon 必填 经度
     * @param dev 必填 是否偏移 起终点是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)
     */

    public static  void goToNaviAddress(Context context,String sourceApplication , String poiname , String lat , String lon , String dev){
        StringBuffer stringBuffer  = new StringBuffer("androidamap://viewMap?sourceApplication=")
                .append(sourceApplication);
        if (!TextUtils.isEmpty(poiname)){
            stringBuffer.append("&poiname=").append(poiname);
        }
        stringBuffer.append("&lat=").append(lat)
                .append("&lon=").append(lon)
                .append("&dev=").append(dev);
        Lg.i("addrress", stringBuffer.toString());
        Intent intent = new Intent("android.intent.action.VIEW", android.net.Uri.parse(stringBuffer.toString()));
        intent.setPackage("com.autonavi.minimap");
        context.startActivity(intent);
    }

    /**
     * 根据包名检测某个APP是否安装
     * @param packageName 包名
     * @return true-安装
     */
    public static boolean isInstall(String packageName) {
        return new File("/data/data/" + packageName).exists();
    }
高德标注参考URLAPI: http://lbs.amap.com/api/uri-api/android-uri-explain/viewmap/
高德导航参考URLAPI: http://lbs.amap.com/api/uri-api/android-uri-explain/navi/
高德SDK导航API: http://lbs.amap.com/api/android-navi-sdk/summary/


你可能感兴趣的:(Android开发)