博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java语言实现将mysql的linestring、point 数据类型解析成double类型
阅读量:6888 次
发布时间:2019-06-27

本文共 1274 字,大约阅读时间需要 4 分钟。

hot3.png

mysql的linestring、point从jdbc读入为byte[] 类型,下面的java代码实现逐次读取经纬度数据,返回double数组:

 

public  static double[] bytestoPoints(byte[] arr){		 if(arr==null){			 return null;		 }		 if(arr.length==25){			 return bytesToOnePoint(arr);		 }		 return bytesToMutiPoints(arr);	 }private static double bytes2Double(byte[] arr,int start) {			long value = 0;			for (int i = 0; i < 8; i++) {				value |= ((long) (arr[start+i] & 0xff)) << (8 * i);			}			return Double.longBitsToDouble(value);		}	 private static double[] bytesToOnePoint(byte[] arr){		 return new double[]{bytes2Double(arr,9),bytes2Double(arr,17)};	 }	 private static double[] bytesToMutiPoints(byte[] arr){		 int len=(arr.length-13)/8;		 double[] result=new double[len];		 for(int i=0;i

 

将double型经纬度转成mysql的point类型数据:

byte[] convert2Point(double lat,double lng){

                    byte[] bytelat=double2Bytes(lat);
                    byte[] bytelng=double2Bytes(lng);
                    byte[] bpoint=new byte[25];
                    bpoint[4]=0x01;
                    bpoint[5]=0x01;
                    for(int i=0;i<8;++i){
                        bpoint[9+i]=bytelng[i];
                        bpoint[17+i]=bytelat[i];
                    }

    return bpoint;

}

byte[] double2Bytes(double d) {

        long value = Double.doubleToRawLongBits(d);
        byte[] byteRet = new byte[8];
        for (int i = 0; i < 8; i++) {
            byteRet[i] = (byte) ((value >> 8 * i) & 0xff);
        }
        return byteRet;
    }

 

转载于:https://my.oschina.net/jingshishengxu/blog/1936212

你可能感兴趣的文章
jQuery $.each用法
查看>>
C语言结构体指针成员强制类型转换
查看>>
软件工程第二章 习题2 第4题
查看>>
《JavaScript设计模式与开发实践》读书笔记之命令模式
查看>>
hdu Problem 1242 Rescue bfs + 优先队列
查看>>
HDU-1507-Uncle Tom's Inherited Land*
查看>>
force里面的射线检测
查看>>
oracle 12.1.0.2中对象锁对系统的较大影响
查看>>
tensorboard的使用
查看>>
java进程占用CPU资源过高分析脚本
查看>>
day17--JQuery实例
查看>>
网络对抗技术作业一
查看>>
最短路(Floyd_Warshall) POJ 2240 Arbitrage
查看>>
spring boot 配置mybatis plus 控制台打印sql
查看>>
Windows系统安装Apache-tomacat
查看>>
补习系列(11)-springboot 文件上传原理
查看>>
《用正确的方法解决问题100%》读书笔记
查看>>
CodeChef March Challenge 2019题解
查看>>
STL容器底层数据结构的实现
查看>>
Web设计的Ruby on Rails 第2章 变量、数组、散列表
查看>>