Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run GDAL (ogr2ogr) in Java to convert Shapefiles to GeoJSON

I'm a beginner at programming and get pretty confused when trying to use external libraries. I have my maps in shapefiles that I convert to GeoJSON using the website Mapshaper.org, and only then can i read the map from my Java application.

I want the user to be able to import a shapefile directly so I found out about GDAL ogr2ogr that has Java bindings, and can make this conversion with a single command such as:

$ ogr2ogr -f GeoJSON -t_srs crs:84 [name].geojson [name].shp

but I have no idea how to use this from my program.

Can someone provide me with an example of how to implement this? How should I import GDAL to my project? I'm using LibGDX if that's of any help.

In the end, all i need is a way to convert shapefile to GeoJSON directly on my application so the user can add new maps himself, so any suggestion is welcome.

Thank you so much!

like image 421
user29903 Avatar asked Nov 28 '14 16:11

user29903


1 Answers

First you need to install the Java Bindings (see here at the bottom). Than download the ogr2ogr.java from here (scroll down -> download original format -> put it into your project folder). Than it gets quite easy. You just cann call ogr2ogr.java's main method. ogr2ogr -f GeoJSON -t_srs crs:84 [name].geojson [name].shp :

String[] cmd = {"-t_srs", "CRS:84", "-f", "GeoJSON","[name].geojson","[name].shp"};

ogr2ogr.main(cmd);
like image 66
Selphiron Avatar answered Sep 25 '22 09:09

Selphiron