bd09坐標(biāo)轉(zhuǎn)wgs84

之前公司定位用的是百度定位蹲诀,但是由于公司地圖展示位天地圖斑粱,由于偏移嚴(yán)重(畢竟坐標(biāo)系不同)需要坐標(biāo)系轉(zhuǎn)換,之前看公司的處理邏輯是聯(lián)網(wǎng)糾偏(非公司內(nèi)部服務(wù))脯爪,一直也能延用则北,近期由于外網(wǎng)服務(wù)不能使用服務(wù)遷至阿里矿微,無法使用,所以需要另謀方式 尚揣,功夫不負(fù)有心人總算找到 上源碼(親測準(zhǔn)確)

package wewell.com.qcl.util;

public class CoordinateUtil {
private static double x_pi = 3.14159265358979324 * 3000.0 / 180.0;
//pai
private static double pi = 3.1415926535897932384626;
//離心率
private static double ee = 0.00669342162296594323;
//長半軸
private static double a = 6378245.0;
//百度轉(zhuǎn)國測局
public static double[] bd09togcj02(double bd_lon, double bd_lat) {
double x = bd_lon - 0.0065;
double 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_lng = z * Math.cos(theta);
double gg_lat = z * Math.sin(theta);
return new double[] { gg_lng, gg_lat };
}
//國測局轉(zhuǎn)百度
public static double[] gcj02tobd09(double lng, double lat) {
double z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_pi);
double theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_pi);
double bd_lng = z * Math.cos(theta) + 0.0065;
double bd_lat = z * Math.sin(theta) + 0.006;
return new double[] { bd_lng, bd_lat };
}
//國測局轉(zhuǎn)84
public static double[] gcj02towgs84(double lng, double lat) {
double dlat = transformlat(lng - 105.0, lat - 35.0);
double dlng = transformlng(lng - 105.0, lat - 35.0);
double radlat = lat / 180.0 * pi;
double magic = Math.sin(radlat);
magic = 1 - ee * magic * magic;
double sqrtmagic = Math.sqrt(magic);
dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * pi);
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * pi);
double mglat = lat + dlat;
double mglng = lng + dlng;
return new double[] { lng * 2 - mglng, lat * 2 - mglat };
}
//經(jīng)度轉(zhuǎn)換
public static double transformlat(double lng, double lat) {
double ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
ret += (20.0 * Math.sin(6.0 * lng * pi) + 20.0 * Math.sin(2.0 * lng * pi)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(lat * pi) + 40.0 * Math.sin(lat / 3.0 * pi)) * 2.0 / 3.0;
ret += (160.0 * Math.sin(lat / 12.0 * pi) + 320 * Math.sin(lat * pi / 30.0)) * 2.0 / 3.0;
return ret;
}
//緯度轉(zhuǎn)換
public static double transformlng(double lng, double lat) {
double ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
ret += (20.0 * Math.sin(6.0 * lng * pi) + 20.0 * Math.sin(2.0 * lng * pi)) * 2.0 / 3.0;
ret += (20.0 * Math.sin(lng * pi) + 40.0 * Math.sin(lng / 3.0 * pi)) * 2.0 / 3.0;
ret += (150.0 * Math.sin(lng / 12.0 * pi) + 300.0 * Math.sin(lng / 30.0 * pi)) * 2.0 / 3.0;
return ret;
}
}

//1 使用說明 (bd09->wgs84 )
public static String getWgs84xy(double x, double y){
//先轉(zhuǎn) 國測局坐標(biāo)

double[] doubles_gcj = CoordinateUtil.bd09togcj02(x, y);//(x 117. y 36. )

//國測局坐標(biāo)轉(zhuǎn)wgs84

double[] doubles_wgs84 = CoordinateUtil.gcj02towgs84(doubles_gcj[0], doubles_gcj[1]);

//返回 糾偏后 坐標(biāo)
return doubles_wgs84[0] + "," + doubles_wgs84[1];
}

//此算法如果不準(zhǔn)涌矢,請聯(lián)系我,我有其他的
//哦快骗,誤差一米內(nèi)蒿辙,只不過需要收費(fèi)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市滨巴,隨后出現(xiàn)的幾起案子思灌,更是在濱河造成了極大的恐慌,老刑警劉巖恭取,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泰偿,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜈垮,警方通過查閱死者的電腦和手機(jī)耗跛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來攒发,“玉大人调塌,你說我怎么就攤上這事』菰常” “怎么了羔砾?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長偶妖。 經(jīng)常有香客問我姜凄,道長,這世上最難降的妖魔是什么趾访? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任态秧,我火速辦了婚禮,結(jié)果婚禮上扼鞋,老公的妹妹穿的比我還像新娘申鱼。我一直安慰自己,他們只是感情好云头,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布捐友。 她就那樣靜靜地躺著,像睡著了一般盘寡。 火紅的嫁衣襯著肌膚如雪楚殿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音脆粥,去河邊找鬼砌溺。 笑死,一個胖子當(dāng)著我的面吹牛变隔,可吹牛的內(nèi)容都是我干的规伐。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼匣缘,長吁一口氣:“原來是場噩夢啊……” “哼猖闪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起肌厨,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤培慌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后柑爸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吵护,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年表鳍,在試婚紗的時候發(fā)現(xiàn)自己被綠了馅而。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡譬圣,死狀恐怖瓮恭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情厘熟,我是刑警寧澤屯蹦,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站盯漂,受9級特大地震影響颇玷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜就缆,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谒亦。 院中可真熱鬧竭宰,春花似錦、人聲如沸份招。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锁摔。三九已至廓旬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谐腰,已是汗流浹背孕豹。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工涩盾, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人励背。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓春霍,卻偏偏與公主長得像,于是被迫代替她去往敵國和親叶眉。 傳聞我的和親對象是個殘疾皇子址儒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361