java語言實現將mysql的linestring、point 數據類型解析成double類型 原

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<len;++i){
			 result[i]=bytes2Double(arr,13+i*8);
		 }
		 return result;
	 }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章