Note: The project in the face of different coordinate system, on the map display will have a small deviation, the following is the JavaScript conversion method.
//define some constantsvar x_pi = 3.14159265358979324 * 3000.0/180.0;var PI = 3.1415926535897932384626;var a = 6378245.0;var ee = 0.00669342162296594323;/*** Conversion of the Baidu coordinate system (BD-09) to the Mars coordinate system (GCJ-02)* That is, Baidu turned to Google, the German* @param Bd_lon* @param bd_lat* @returns {*[]}* /functionbd09togcj02(Bd_lon, Bd_lat) {var x_pi = 3.14159265358979324 * 3000.0/180.0;var x = bd_lon-0.0065;var y = bd_lat-0.006;var z = math.sqrt (x * x + y * y)-0.00002 * Math.sin (y * x_pi);var theta = math.atan2 (y, x)-0.000003 * MATH.COS (x * x_pi);var gg_lng = z * Math.Cos (theta);var Gg_lat = z * Math.sin (theta);return [GG_LNG, Gg_lat]} /*** Conversion of Mars coordinate system (GCJ-02) and Baidu coordinate system (BD-09)* That is, Google, high-German switch Baidu* @param LNG* @param lat* @returns {*[]} */functiongcj02tobd09(LNG, LAT) {var z = math.sqrt (LNG * LNG + lat * lat) + 0.00002 * Math.sin (LAT * x_pi);var theta = math.atan2 (lat, LNG) + 0.000003 * Math.Cos (LNG * x_pi);var bd_lng = z * Math.Cos (theta) + 0.0065;var Bd_lat = z * Math.sin (theta) + 0.006;return [BD_LNG, Bd_lat] } /*** WGS84 Turn GCj02* @param LNG* @param lat* @returns {*[]} */functionwgs84togcj02(LNG, LAT) {if (Out_of_china (LNG, LAT)) {return [LNG, LAT] }else {var Dlat = Transformlat (lng-105.0, lat-35.0);var dlng = transformlng (lng-105.0, lat-35.0);var Radlat = lat/180.0 * PI;var magic = Math.sin (Radlat);Magic = 1-ee * Magic * MAGIC;var sqrtmagic = math.sqrt (Magic);Dlat = (Dlat * 180.0)/((A * (1-ee))/(Magic * sqrtmagic) * PI);DLNG = (DLNG * 180.0)/(A/sqrtmagic * MATH.COS (Radlat) * PI);var Mglat = lat + Dlat;var mglng = lng + dlng;return [MGLNG, Mglat] } } /*** GCJ02 converted to WGS84* @param LNG* @param lat* @returns {*[]} */functiongcj02towgs84(LNG, LAT) {if (Out_of_china (LNG, LAT)) {return [LNG, LAT] }else {var Dlat = Transformlat (lng-105.0, lat-35.0);var dlng = transformlng (lng-105.0, lat-35.0);var Radlat = lat/180.0 * PI;var magic = Math.sin (Radlat);Magic = 1-ee * Magic * MAGIC;var sqrtmagic = math.sqrt (Magic);Dlat = (Dlat * 180.0)/((A * (1-ee))/(Magic * sqrtmagic) * PI);DLNG = (DLNG * 180.0)/(A/sqrtmagic * MATH.COS (Radlat) * PI);Mglat = lat + Dlat;mglng = LNG + dlng;return [LNG * 2-mglng, LAT * 2-mglat] } } functionTransformlat(LNG, LAT) {var ret = -100.0 + 2.0 * LNG + 3.0 * LAT + 0.2 * lat * lat + 0.1 * LNG * LAT + 0.2 * math.sqrt (math.abs (ln g));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) + * * Math.sin (LAT * pi/30.0)) * 2.0/3.0;return ret } functionTRANSFORMLNG(LNG, LAT) {var 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 } /*** To determine whether in the domestic, not in the country do not offset* @param LNG* @param lat* @returns {Boolean} */ functionOut_of_china(LNG, LAT) {return (LNG < 72.004 | | LNG > 137.8347) | | (Lat < 0.8293 | | lat > 55.8271) | | false); } //Use example//GPS coordinates to Mars coordinates var lng_lat_1 = wgs84togcj02 (113.912743,22.497629);Console.log (' Mars coordinates ... ', lng_lat_1); //MARS coordinates turn Baidu coordinatesvar lng_lat_2 = gcj02tobd09 (Lng_lat_1[0], lng_lat_1[1]);Console.log (' Baidu coordinates ... ', lng_lat_2);attached to the online map of latitude and longitude query link:http://www.gpsspg.com/maps.html
[Turn] Baidu coordinates (BD09), National geodetic coordinates (MARS coordinates, GCJ02), and WGS84 coordinate system conversion