由于需要,要调用高德和百度地图的APP。
1。判断是否存在高德和百度地图,但是又没有用到它们的SDK包,方式就是检测手机上有没有安装APP。首先要知道APP的包名。然后通过以下代码判断:
private boolean isInstallByread(String packageName) { return new File("/data/data/" + packageName).exists(); }
2。调用APP。通过Intent。但是可以指定和不指定具体包名。(百度:com.baidu.BaiduMap,高德:com.autonavi.minimap)
Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("geo:纬度,经度,地名"); intent.setData(uri); intent.setPackage("APP包名"); NavigationActivity.this.startActivity(intent);
或者让用户选择调用什么地图:
Intent intent = new Intent(Intent.ACTION_VIEW); Uri uri = Uri.parse("geo:纬度,经度,地名"); intent.setData(uri); NavigationActivity.this.startActivity(intent);
3。最让人无语的是,这个经度纬度不准确的问题。用了Google,因为服务器访问问题不得不放弃,然后就看百度地图的经纬度,给了一个值,(23.134032,113.278766)。高德地图也给了一个值,(23.1274699,113.27242792),但是这两个都不准确!定位相差的十万八千里,无奈就一点一点改变经纬度为了达到预期的定位地点。最后尝试着差不多的结果是(23.13004012,113.26724052)。我在想,是不是下次找经纬度得增加或减少一点差值,但还没有实验。
关于调用百度和高德APP
时间: 2024-10-09 23:05:27