700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 凯立德地图 将地理坐标转换为经纬度

凯立德地图 将地理坐标转换为经纬度

时间:2018-10-11 11:58:19

相关推荐

凯立德地图 将地理坐标转换为经纬度

前言:因项目需求以及客户提出的要求要将百度地图更换为凯立德地图,因此就牵扯到经纬度转换的问题,凯立德官方文档对这方面提供的信息少,没有找到合适的解决方案,所以在几经周折总算是找到一个比较委托的解决办法。

地理坐标:437438300,134912100 (第一个参数代表经度,第二个代表维度)

K码:8q91f4apv

经纬度:121.42437,37.415793

(参数仅供参考)

说明

凯立德地图 api 获取地理坐标以及K码都有相应的api,大家可以尽情调取,这里只根据K码转换为经纬度

因此请看转换的demo(java代码)

============================================================

由凯立德 k码 转换为经纬度

public class KCode {private double longitude;private double latitude;private byte[] map34 = new byte[123];public KCode() {map34['0'] = 0;map34['1'] = 1;map34['2'] = 2;map34['3'] = 3;map34['4'] = 4;map34['5'] = 5;map34['6'] = 6;map34['7'] = 7;map34['8'] = 8;map34['9'] = 9;map34['a'] = 10;map34['b'] = 11;map34['c'] = 12;map34['d'] = 13;map34['e'] = 14;map34['f'] = 15;map34['g'] = 16;map34['h'] = 17;map34['i'] = 18;map34['j'] = 19;map34['k'] = 20;map34['m'] = 21;map34['n'] = 22;map34['p'] = 23;map34['q'] = 24;map34['r'] = 25;map34['s'] = 26;map34['t'] = 27;map34['u'] = 28;map34['v'] = 29;map34['w'] = 30;map34['x'] = 31;map34['y'] = 32;map34['z'] = 33;}public double getLongitude() {return longitude;}public double getLatitude() {return latitude;}//private int pow34(int i){int sum = 1;while(i > 0){sum *= 34;--i;}return sum;}//private int Convert34to10(String str34){int sum = 0;for(int i = 0; i < str34.length(); ++i){if( (str34.charAt(i) != 'l' && str34.charAt(i) != 'o') &&((str34.charAt(i) >= '0' && str34.charAt(i) <= '9') ||(str34.charAt(i) >= 'a' && str34.charAt(i) <= 'z'))){sum += map34[ str34.charAt(i)] * pow34(i);}else{System.out.println("invalid chaa");return -1;}}return sum;}//public int Convert(String kcode){if(kcode.length() != 9){return -1;}int lut,lat;char quad = kcode.charAt(0);switch(quad){case '5':lut = Convert34to10(kcode.substring(1, 5));lat = Convert34to10(kcode.substring(5, 9));longitude = (double)lut / (3600 * 10) + 105;latitude = (double)lat / (3600 * 10) + 40;break;case '6':lut = Convert34to10(kcode.substring(1, 5));lat = Convert34to10(kcode.substring(5, 9));longitude = (double)lut / (3600 * 10) + 70;latitude = (double)lat / (3600 * 10) + 40;break;case '7':lut = Convert34to10(kcode.substring(1, 5));lat = Convert34to10(kcode.substring(5, 9));longitude = (double)lut / (3600 * 10) + 70;latitude = (double)lat / (3600 * 10) + 5;break;case '8':lut = Convert34to10(kcode.substring(1, 5));lat = Convert34to10(kcode.substring(5, 9));longitude = (double)lut / (3600 * 10) + 105;latitude = (double)lat / (3600 * 10) + 5;break;default:}return 0;}public static void main(String[] args) {KCode code = new KCode();code.Convert("8q91f4apv");System.out.println(code.getLongitude());System.out.println(code.getLatitude());}}

上述代码仅供参考。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。