Android应用URI调起百度地图、高德地图 和 腾讯地图

1、百度地图

地图调起API | 百度地图API SDKicon-default.png?t=N7T8https://lbs.baidu.com/faq/api?title=webapi/uri/andriod例:反向地址解析

//反向地址解析URI
private final String BAIDU_MAP_NAVI_URI = "baidumap://map/geocoder?location=";

/**
 * 跳转百度地图
 */
private void jumpBaiDuMap(Context context,String lat, String lon) {
	Intent intent = new Intent();
	intent.setData(Uri.parse(BAIDU_MAP_NAVI_URI + lat+","+lon+"&src="+ AppUtils.getPackageName(getContext())));
	context.startActivity(intent);
}


2、高德地图

导航-Android-开发指南-高德地图手机版 | 高德地图API###导航###输入终点,以用户当前位置为起点开始路线导航,提示用户每段行驶路线以到达目的地。**支持版本V4.1.3起icon-default.png?t=N7T8https://lbs.amap.com/api/amap-mobile/guide/android/navigation例:逆地理编码

//逆地址编码
private final String GAODE_MAP_NAVI_URI = "androidamap://viewReGeo?sourceApplication=";
/**
 * 高德地图
 * @param lat   纬度
 * @param lon   经度
 * @param dev   是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)
 */
private void createGaoDeIntent(Context context,String lat, String lon, String dev) {

	Intent intent = new Intent();
	intent.setAction(Intent.ACTION_VIEW);
	intent.addCategory(Intent.CATEGORY_DEFAULT);
	//将功能Scheme以URI的方式传入data
	Uri uri = Uri.parse(GAODE_MAP_NAVI_URI +
			AppUtils.getPackageName(getContext())
			+ "&lat=" + lat
			+ "&lon=" + lon
			+ "&dev=" + dev);
	intent.setData(uri);
	intent.setPackage("com.autonavi.minimap");
	context.startActivity(intent);
}

3.腾讯地图

URI API(地图调起) | 腾讯位置服务腾讯地图开放平台为各类应用厂商和开发者提供基于腾讯地图的地理位置服务和解决方案;有针对Web应用的JavaScript API, 适合手机端Native APP的各种SDK, WebService接口和各类地图API等。icon-default.png?t=N7T8https://lbs.qq.com/webApi/uriV1/uriGuide/uriMobileMarker例:地点标注

//反向地址解析URI
private final String QQ_MAP_NAVI_URI = "qqmap://map/geocoder?coord=";

/**
 * 跳转百度地图
 */
private void jumpBaiDuMap(Context context,String lat, String lon) {
	Intent intent = new Intent();
	intent.setData(Uri.parse(QQ_MAP_NAVI_URI + lat+","+lon+"&referer="+ appKey));
	context.startActivity(intent);
}

注:地图坐标系不一样,坐标会有偏差

三大主流坐标系:

WGS84:大地坐标系

GCJ02:国测局坐标系(如高德地图、腾讯地图、谷歌中国地图)

BD09:百度坐标系

以下是一个坐标系转化工具:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * 常用地图转换工具类(各个地图API采用的坐标系(WGS84坐标系:即地球坐标系,国际上通用的坐标系。谷歌地图用此坐标))
 * 百度地图API            百度坐标 (BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系。)
 * 腾讯搜搜地图API            火星坐标 (GCJ02坐标系:即火星坐标系,WGS84坐标系经加密后的坐标系。)
 * 阿里云地图API            火星坐标 (GCJ02坐标系:即火星坐标系,WGS84坐标系经加密后的坐标系。)
 * 高德MapABC地图API    火星坐标 (GCJ02坐标系:即火星坐标系,WGS84坐标系经加密后的坐标系。)
 */
public class MapUtils {
    public static final double r2d = 57.2957795131;
    public static final double PI = 3.1415926535897932384626433832795;
    public static final double rearth = 6371006.84;
 
    /**
     * wgs84坐标转上海城市坐标
     * @param lat 维度
     * @param lon 经度
     * @return
     */
    public static Map<String, Double> wgs84Tosh(Double lat, Double lon) {
        double tolat = (31 + (14.0 + 7.55996 / 60.0) / 60.0) / r2d;
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值