[GIS] Baidu Maps SRID

chinacoordinate systemsrid

I am making an App which will make use of Baidu maps for geofencing and other features (as the app will be released in mainland China)

I am using GeoDjango, with Postgresql / PostGIS / Proj4 etc.. and I need to know what the SRID is for Baidu Maps, I can't find it documented anywhere!

Specifically the Latitude/Longitude SRID, rather than what they may or may not convert to on the Backend (like google…)

I know that its different from the EPSG 4326 that the Front end for Google maps uses (despite using the EPSG 3857 on the Backend), and Baidu offer a service to convert from Google map Lat/Long into Baidu Lat / Long, but I'd rather not require a third party service and GeoDjango can easily do the conversion on the server..

I should probably be a bit clearer, my database models are setup to use EPSG 3857 (like Gmaps) which we use to do distance indexing on locations in the database, So I need to be able to convert from lat / long from Baidu service location lat / long, but also to be able to plot the locations on a Baidu map..

Best Answer

Ok, So I have done some testing based on the results from the Baidu conversion tool..

My conclusion is that their SRID is a non EPSG standard (at least its not part of PostGIS spatial_ref_sys).

Basically I tested 5 google maps lat/long coordinates with the Baidu converted coords relative to them, looped through every record in the spatial_ref_sys table, and recorded which SRID came closest to matching the coords provided by Baidu.. there were 0 exact matches, and 3 different SRID's for closeness:

SRID 4131 had 2 close hits SRID 4293 also had 2 close hits SRID 4124 had 1 close hit

each provided precision on the X to at least 0.000X, and on the Y to at least 0.00X (except for 4124 on the Y which was 0.010) ..

In conclusion, For anyone else who may be in the same situation at any time in the future, you have to use the Baidu Coordinate conversion service.

Maybe in the future they will convert to a standard SRID, or at least release their calculation steps for the conversion to Proj4 or other projection systems to implement their spatial reference system... but for now, no such luck.

If anyone else has anymore information, then please do speak up.

Thanks.

N.B For anyone who is interested, here are my test results:

### TESTING: (GMap srid)4326: (x(long), y(lat)) // Expecting: (x(long), y(lat)) <- actual result from baidu conversion

CLOSEST: (srid): (disparity in X, disparity in Y) Coords: (x(long), y(lat)) <- coords from this srid

### TESTING: 4326: (121.473701, 31.230416) // Expecting: (121.48023840788, 31.236350801053)

CLOSEST: 4131: (6.3786957142e-05, 0.00681682346478) Coords: (121.48030219483714, 31.229533977588215)

### TESTING: 4326: (114.21892734521, 29.575429778924) // Expecting: (114.22539195429, 29.581585367458)

CLOSEST: 4293: (0.000256233235731, 0.00542959113594) Coords: (114.22513572105427, 29.57615577632206)

### TESTING: 4326: (116.407395, 39.904211) // Expecting: (116.41378001156, 39.910532950532)

CLOSEST: 4131: (0.000271824907415, 0.00608994543753) Coords: (116.41405183646741, 39.90444300509447)

### TESTING: 4326: (113.264385, 23.12911) // Expecting: (113.27081796629, 23.135338412503)

CLOSEST: 4293: (0.000533895461771, 0.00512210575143) Coords: (113.27028407082823, 23.130216306751567)

### TESTING: 4326: (91.117212, 29.646923) // Expecting: (91.123751537185, 29.652824407202)

CLOSEST: 4124: (3.43024616285e-05, 0.0107703741209) Coords: (91.12378583964663, 29.642054033081056)