图表应用 >> 高级统计图 >> gis地图 >> gis地图之地址定位

楼主
我是社区第55878位番薯,欢迎点我头像关注我哦~
本帖最后由 lee_ 于 2015-8-28 17:07 编辑

图表应用 >> 高级统计图 >> gis地图 >> gis地图之地址定位
1.描述
设计器中提供了两个不同的gis地图,分别是百度地图和google地图,但是由于google今年好像一直被强,导致大部分访问不了google地图,所以可能出现部分用户使用的是谷歌地图的经纬度的坐标,而因为google不能访问的原因,即使换成百度地图因为经纬度计算的差异,导致数据失去精准。
如图: 虽然看上去并没有很大差异,但是对于诸如一些需要精确定位的用户可能会比较麻烦。
2.准备工作
使用自定义函数将原始google地图的经纬度转换为百度地图的经纬度,以下是代码部分。
package com.fr.function;

import com.fr.script.AbstractFunction;

/**
* Created by pan on 2015/8/26.
*/
public class TranslateToBaidu extends AbstractFunction{

    private static final double x_pi = 3.14159265358979324 * 3000.0 / 180.0;
    private static final double pi = 3.14159265358979324;
    private static final double a = 6378245.0;
    private static final double ee = 0.00669342162296594323;

    public Object run(Object[] args){

        /*获取google地图的经纬度坐标*/
double lon_lat[] = new double[2];
        String []temp = null;
        temp = args[0].toString().split(",");
        lon_lat[0] = Double.valueOf(temp[0]);
        lon_lat[1] = Double.valueOf(temp[1]);

        double x = lon_lat[0], y = lon_lat[1];
        double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
        double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
        double bd_lon = z * Math.cos(theta) + 0.0065;
        double bd_lat = z * Math.sin(theta) + 0.006;

        String result = String.valueOf(bd_lon)+","+String.valueOf(bd_lat);

        return result;
    }
}

修复之后的百度地图:
3.另外附送百度地图的经纬度转换到google地图的代码部分:double x = bd_lon - 0.0065, y = bd_lat - 0.006;  
double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);  
double theta =Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);  
double gg_lon = z * Math.cos(theta);  
double gg_lat = z * Math.sin(theta);  


ps:模板内部配置部分

另外附送一个关于google地图百度地图和gps转换的文档链接:http://my.oschina.net/Thinkeryjgfn/blog/402565

分享扩散:
参与人数 +1 F币 +325 理由
传说哥 + 325 赞一个!

查看全部评分

沙发
发表于 2015-8-26 22:06:18
来自手机
可以的,小伙子
板凳
发表于 2015-8-27 09:36:05
很实用,感觉很强大!
地板
发表于 2015-8-27 10:59:54
强大实用

需要上传下cpt模板  并且对模板设计方面多做截图,需要把阅读文档的人当做新手,按照你的文档就能一步步走向成功
5楼
发表于 2015-8-27 13:01:11
不错,{:8_209:}
6楼
发表于 2015-8-27 13:42:47
真的很高大上啊~最近正好要用到这个地图做个简单的项目,看来要用上了。
7楼
发表于 2015-8-28 16:01:22
模板内部配置的发了截图部分!!!
8楼
发表于 2015-8-28 16:35:38
非常厉害,  从初学角度,  还是希望可以更加详细点,  可以介绍下 代码啊, 类似的 , 给你点赞哦
9楼
发表于 2015-8-31 15:20:04
10楼
发表于 2015-9-10 17:03:37
楼主楼主,回来改文档了
11楼
发表于 2015-12-22 22:22:25
louzhu NIUBI
12楼
发表于 2017-11-19 09:25:28
来自手机
学习了。
13楼
发表于 2019-7-18 16:04:41
无法编译,怎么回事?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表