文档章节

调用第三方地图 api实现

丁佳辉
 丁佳辉
发布于 2017/01/06 14:32
字数 345
阅读 6
收藏 0

http://www.biaodianfu.com/coordinate-system.html

http://www.jianshu.com/p/4597cfe21e5f

导航

百度方式

private void openBaiduMap(double lon, double lat, String title, String describle) {
try {
StringBuilder loc = new StringBuilder();
loc.append("intent://map/direction?origin=latlng:");
loc.append(lat);
loc.append(",");
loc.append(lon);
loc.append("|name:");
loc.append("我的位置");
loc.append("&destination=latlng:");
loc.append(lat);
loc.append(",");
loc.append(lon);
loc.append("|name:");
loc.append(describle);
loc.append("&mode=driving");
loc.append("&referer=Autohome|GasStation#Intent;scheme=bdapp;package=com.baidu.BaiduMap;end");
Intent intent = Intent.getIntent(loc.toString());
if (isInstallPackage("com.baidu.BaiduMap")) {
startActivity(intent); //启动调用
Log.e("GasStation", "百度地图客户端已经安装");
} else {
Log.e("GasStation", "没有安装百度地图客户端");
}
} catch (Exception e) {
e.printStackTrace();
}
}

高德方式

高德-uri-api

private void openGaoDeMap(double lon, double lat, String title, String describle) {
try {
double[] gd_lat_lon = bdToGaoDe(lon, lat);
StringBuilder loc = new StringBuilder();
loc.append("androidamap://viewMap?sourceApplication=XX");
loc.append("&poiname=");
loc.append(describle);
loc.append("&lat=");
loc.append(gd_lat_lon[0]);
loc.append("&lon=");
loc.append(gd_lat_lon[1]);
loc.append("&dev=0");
Intent intent = Intent.getIntent(loc.toString());
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}

判定是否装有地图APP

private boolean isInstallPackage(String packageName) {
return new File("/data/data/" + packageName).exists();
}

高德 com.autonavi.minimap

百度 com.baidu.BaiduMap

GCJ-02 == BD-09 地图坐标系互转

private double[] bdToGaoDe(double bd_lat, double bd_lon) {
    double[] gd_lat_lon = new double[2];
    double PI = 3.14159265358979324 * 3000.0 / 180.0;
    double x = bd_lon - 0.0065, y = bd_lat - 0.006;
    double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * PI);
    double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * PI);
    gd_lat_lon[0] = z * Math.cos(theta);
    gd_lat_lon[1] = z * Math.sin(theta);
    return gd_lat_lon;
 }

private double[] gaoDeToBaidu(double gd_lon, double gd_lat) {
    double[] bd_lat_lon = new double[2];
    double PI = 3.14159265358979324 * 3000.0 / 180.0;
    double x = gd_lon, y = gd_lat;
    double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * PI);
    double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * PI);
    bd_lat_lon[0] = z * Math.cos(theta) + 0.0065;
    bd_lat_lon[1] = z * Math.sin(theta) + 0.006;
    return bd_lat_lon;
}

 

本文转载自:http://www.jianshu.com/p/4597cfe21e5f

丁佳辉
粉丝 20
博文 452
码字总数 206257
作品 0
浦东
程序员
私信 提问
整合 Ext JS 和第三方类库

介绍 ExtJS提供了许多高度可定制化内置组件。如果它不在框架(framework)里面,你可以很容易的扩展这些类,或者浏览Sencha市场(Sencha Market)寻找你可能需要的任何东西。那些都在大部分的...

crazymus
2013/07/02
6.4K
2
Nokia 地图开放第三方接口

Codeplex今天放出了Nokia Map SDK工具包,该工具包封装了Nokia地图的第三方API调用接口接口,包含地图、名址查询、兴趣点、 Routes 和Places相关的接口和功能,这意味着未来第三方应用中将可...

红薯
2012/02/14
1K
1
ZJZHOME/heatmap-amap.js

高德地图JS API V1.3的热力图实现,基于第三方库heatmap.js(官网地址:http://www.patrick-wied.at/static/heatmapjs/)。 ##使用方法: 先后引入高德地图api和heatmap-amap.js。 初始化高德...

ZJZHOME
2014/09/19
0
0
Baidu与Google地图API初探

前天周六,有个好友过来玩,他说想在他的网站中加入地图导航模块,但不知道选择哪个第三方Map API 在网上查了下Baidu、Google、QQ和MapBar等4种Map API(都是采用JS开放API),也查看了它们的...

长平狐
2013/01/06
14.1K
0
百度地图首次开放 推出地图开放协议

百度地图近日推出了URI API,即地图开放协议。此举对广大开发者来说,无疑是一个巨大的利好,可实现零成本调用百度地图数据,增强App的位置服务功能,从而提升用户的产品体验,增强用户的使用...

oschina
2012/11/23
4K
13

没有更多内容

加载失败,请刷新页面

加载更多

家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
4分钟前
0
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
5分钟前
0
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
8分钟前
0
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
12分钟前
1
0
使用nodeJS实现前端项目自动化之项目构建和文件合并

本文转载于:专业的前端网站➜使用nodeJS实现前端项目自动化之项目构建和文件合并 前面的话   一般地,我们使用构建工具来完成项目的自动化操作。本文主要介绍如何使用nodeJS来实现简单的项...

前端老手
25分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部