Search code examples
geojsonreact-leafletmap-projectionswgs84epsg

How to Reproject GeoJSON without crs property to WGS84 (to use React Leaflet)


(Please help I've been struggling with the same problem for more than three days...🤖)

I got GeoJSON file from National Statistical Office, which means it's official data- and the coordinates in this file look like this- :

[959394.1770449197,1948599.8772112513], 
... ,
[1140386.5164449196,1684523.5489112514], 

It's a GeoJSON object without a member named "crs", and as you can see, it's not using the WGS84 datum. Seems like it's coordinates to draw polygons, which are the shape of each district. I assume that there is no problem with data structure.

I tried to create map using this file with React Leaflet, but failed continuously. To find out if it's the problem of GeoJSON that I'm using, I used other GeoJSON files and it worked fine(meaning that interactive map was created on web) - By comparing the GeoJSON files, I found out that coordinates should be in WGS84 if I want to work with leaflet. So I tried to transform GeoJSON to WGS84 using reproject. In my react app project, I installed reproject, epsg and put the code below:

import * as mapData from '../data/sigunguWithPopGeo.json'
import { toWgs84 } from 'reproject'
import 'epsg'

let epsg = require('epsg');
toWgs84(mapData, undefined, epsg);

And the error was returned:

Error: Unable to detect CRS, GeoJSON has no "crs" property.

Thanks for reading this long intro - Finally here is my question. Is there any way to reproject GeoJSON without "crs" property to WGS84? I also tried making the coordinates WGS84 with mapshaper.org. Again, I got the error caused by undefined coordinate system of GeoJSON file: Unable to project -- source coordinate system is unknown

Should I consider adding crs property to GeoJSON? It's my very first time to create the interactive map using GeoJSON with React-leaflet, so any kind of advice from people who experienced similar projects would really help me!


Solution

  • Luckily, solved the problem by myself..! Instead of keep looking for the methods to convert GeoJSON with undefined coordinate system to WGS84, I visited National Statistical Office's website to figure out the code of coordinate system that was used in src data - which was EPSG 5179. Then I converted GeoJSON file from EPSG 5179 to EPSG 4326(WGS84) on MyGeoData Converter. Before downloading the converted data, I checked on the map to see if the coordinates of data was successfully converted to proper lat, lng values. Hope this solution helps who are struggling with similar problems..👩‍🔧