In this article we would be discussing about conversion of GeoJSON data to KML (Keyhole Markup Language). This conversion is required when you are using software such Google earth to see the data. KML works great with Google earth. There is simple step to Convert GeoJSON to KML using ogr2ogr utility from GDAL library. Before that we must go through specification of GeoJSON and KML.
Geojson data is open standard format, contains simple geographical feature with non-spatial data. In type element it has feature collection. That contains name, CRS (coordinate reference system) and features. These features can be line, point, polygon, Multi-Line string and multi-polygon.
Convert GeoJSON to KML
Specification of KML- Convert GeoJSON to KML
The KML (Keyhole Markup language) this data format contains information in tags. SimpleField contains attribute information with name and type. Style tag contains the style of file as color of lines, points and polygons. Geometry is stored as coordinates in file.
Convert GeoJSON to KML using GDAL Utility-
The conversion requires Gdal utility. This utility can be installed in the system by following the given commands.
By typing ogr2ogr in command prompt you can get the following result. This result shows the presence of ogr2ogr utility in system.
To know the version of installed GDAL library you can type,
–> gdalinfo –version
Before executing the conversion command, you should check the drivers. The drivers can be checked by typing
–> ogr2ogr –formats
in your command prompt. Now check for the GeoJSON and KML driver.
After checking the drivers you can execute the following command.
In this article we are converting GeoJSON to Shapefile shp format. You might be thinking why would anyone convert GeoJSON in shapefile. Answer is very simple Shapefile is very popular data format with open specification for data interoperability among GIS (Geographical information system) softwares. Before moving towards conversion steps we must look for GeoJSON and Shape file in detail. There Specification is given below.
Geojson data is open standard format, contains simple geographical feature with non-spatial data. In type element it has feature collection. That contains name, CRS (coordinate reference system) and features. These features can be line, point, polygon, Multi-Line string and multi-polygon.
Convert GeoJSON to Shapefile
Specification of Shapefile-
Shapefile is very popular data format specially among open source GIS softwares. It has some mandatory files, which contains various information such as index of geometry, attribute data and projection information.
Convert GeoJSON to Shapefile Shp Using Gdal Utility-
Conversion from geojson to shapefile requires GDAL library in your system. For downloading it you can follow given commands.
To check the availability of library can be check by typing ogr2ogr in command prompt. You can also check the version of GDAL library by typing gdalinfo –version.
To convert data from geojson to shapefile we must have format available in library. To check the formats available you can execute the following command,
–> ogr2ogr –formats
you will get the following list that contains the drivers list. Check for the GeoJSON and Shapefile driver.
Now you can execute the conversion command given below,
Here Command shows some options of ogr2ogr utility as -f, which shows output file format, -a_srs shows SRS (spatial reference system) assigned to output file. The Generated output file can be seen on QGIS software.
Converted Output GeoJSON to Shapefile In QGIS software-
Sometimes we need to convert KML to GML where the software supports GML language. But before converting Keyhole markup language to Geography markup language, you should know the basic structure of KML and GML. So that if the file is corrupted then before converting it you can correct it manually and process the same in any GIS converter software to work properly. If you already know structure of this files, then you can directly navigate to the main topic i.e kml to gml conversion of this page.
Know KML and GML data structure before converting kml to gml
WHAT IS KML (Keyhole Markup Language)? – KML (Keyhole Markup Language), is an XML grammar and file format for modeling and storing geographic features such as points, lines,images, and polygons for display in the Google Earth client.KML is based on GML, although it doesn’t formally import GML schemas. KML language is used by a variety of GIS and mapping applications and the specifications are freely available to the public and available to the user community without charge or restriction. The Google Earth client supports a number of display features for rich presentation of GIS data. All of the features supported by the Google Earth client are described in KML. The Google Earth client supports a number of two-dimensional geometric shapes for display in the 3D viewer.
WHAT IS GML (Geography Markup Language)? GML (Geography Markup Language) is only concerned with the representation of the geographic data content. While GML is an effective means for transporting geographic information from one place to another we expect that it will also become an important means of storing geographic information as well.
Convert KML (KeyHole Markup Language) to GML (Geography Markup Language) Using PHP Code-
If you want the conversion using programing or don’t want to use terminal then this can also be done using PHP. You can create a function that defined this command as string and can give this string in shell_exec() method to execute. Shell_exec() actually execute the command and returns output as string.
public function kmltogml($kmlfilepath,$output,$srsno,$srsold){
$query="ogr2ogr -f GML -t_srs EPSG:$srsno -s_srs EPSG:$srsold $output.gml $kmlfilepath";
shell_exec($query);
}
Generated output of kml to gml –
KML to GML – Convert Keyhole to Geography
If you have any problem regrading this tutorial, please let us know via comments in provided comments box.
Convert kml to shp shapefile. Have you extracted and downloaded kml file from Google Earth or Google map and want to render it with your geo library which support shapefile? Do you have KML data given from third party and want to give a proper representation of data over map by converting the same in shapefile? If so, here is an article to convert kml to shp using command line tool ogr2ogr or using php code. While if you use QGIS tool, you can look over kml to shp convert using QGISor else continue using this article.
KML (Keyhole Markup Language)is very popular GIS format. It is available in text format containing tags such as Placemark, SimpleField, SimpleData and ExtendedData etc. It contains whole information in tag. But when you need to see the geometry you may require Shapefile. This conversion can be done using Ogr2ogr utility from GDAL (Geospatial Data Abstraction Library) and other GIS software such as QGIS, ArcGIS etc.
Convert kml to shp – Look Details For KML (Keyhole Markup Language) structure with Line feature-
In the above given example, attribute fields are given with their data type. In style tag geometry style shown with color. Extended Data encloses attribute field name with values. In the last coordinates are given for particular line string. In similar way other lines, point and polygon are given in KML.
Here -f defines the output file format and ‘ESRI shapefile’ is driver available.
PHP code for converting KML to SHP shapefile-
If you want the conversion using programing or don’t want to use terminal then this can also be done using PHP. You can create a function that defined this command as string and can give this string in shell_exec() method to execute. Shell_exec() actually execute the command and returns output as string.
public function KML_to_shp($KMLfilepath,$output){
$query="ogr2ogr -f 'ESRI Shapefile' $output.gml $KMLfilepath";
shell_exec($query);
}
Generated output in QGIS software-
KML to SHP Shapefile – Convert
Change Coordinate System of shapefile generated from kml-
Changing coordinate system of output file can be done with this same ogr2ogr utility. It has various option for SRS (Spatial reference system), given below
Shapefile shp can be converted in pgsql file using shp2pgsql command line tool. Sometimes you have a shapefile and want to upload the same in postgresql database, you can directly use shp2pgsql command and upload shapefile to postgis. While there might be possibilites that you would not be having access to your production server to install shp2pgsql command line tool, so you can convert shapefile into a sql file and then upload the same to Database. Lets check how to convert shp to sql file.
For executing this command you need to have shp2pgsql utility in your system. You can check the presence of utility by typing shp2pgsql in terminal. If this utility is present then you will see the following result.
Convert- Shapefile Shp to SQL postgersql file
Shp2pgsql has some option, some for them are used here. Option -I creates a spatial index on the geocolumn. Option -s specifies the SRS (Spatial Reference system) in EPSG (European Petroleum Survey Group) number.
After executing this command, you can run the sql file in postgres to insert data in table.
Code – Convert- Shapefile Shp to SQL postgersql filE
If you know to read binary files by knowing its format, you can easily read and convert shapefile to sql, as shapefile has an open standard file format. For instance, you can look over tutorial I had created in how to read shapefile bounding box using c++ or reading shapefile header.
In codeigniter framework of php, we can use shell_exec() by providing command as input. In command we need to export PGPASSWORD, where password is supplied.
While writing command in PHP, we need to take SRS (Spatial Reference system) of shape file, input shapefile and output file name from the user. The passwrThen query is written in string format and supplied to shell_exec() method. This method returns output as string and generates file in folder.
PGPASSWORD behaves the same as the password connection parameter. Use of this environment variable is not recommended for security reasons, as some operating systems allow non-root users to see process environment variables via ps; instead consider using the ~/.pgpass file. For more detail you can visit https://www.postgresql.org/docs/9.1/static/libpq-envars.html link.
public function shptosql($shpfilepath,$output){
$srs=4326;
$query=”export PGPASSWORD=’download1′; shp2pgsql -I -s $srs $shpfilepath $output > $output.sql”;
shell_exec($query);
}
You can check for SQL file in the same folder where shapefile is kept. The generated result will look like-
Convert- Shapefile Shp to SQL postgersql file
Change coordinate system – shp to sql
While converting shapefile into sql, you can not change the coordinate system. But you can execute this process in two steps as-
Hope you enjoyed the conversion and executed it successfully. Let us know you face any difficulty during execution of this tutorial via commenting in provided box.
Many people uses MapServer as their Server, so they might need to store shape file as MIF (Map Info File) file on server. The OGR Simple Features Library allows MapServer users to display several types of vector data files in their native formats. For example, MapInfo Mid/Mif and TAB data can be seen on MapServer when using OGR support with it. So lets see how to convert Shapefile shp to mif or map info file.
Lets look what is MIF ( MapInfo Interchange Format) Before converting shp to Mif
MIF (Map Info File) File format used by MapInfo mapping and geographic analysis software. This stores a map visualization in a format that can be recognized by third party applications. Also used as an exchange format between GIS applications. This sometimes accompanied by a .MID (MapInfo data) file that contains additional spatial data. MID files are GIS data files created by MapInfo, a spatial data analysis and visualization software, saves spatial data for a corresponding .MIF (MapInfo Interchange Format) file. Also used for storing larger data sets not expressed in the MIF file. What is Shapefile – collection of geometry with other supported files as shx, dbf, prj ect.
MIF file show some general property when open with QGIS software, as like :
i.) Storage type of this layer
–> MapInfo File
ii.) Description of this provider
–> OGR data provider (compiled against GDAL/OGR library version 2.2.2, running against GDAL/OGR library version 2.2.2)
iii.) Source for this layer
–> /var/www/html/PHP_pgrouting/public/shpfolder222/newwhello.mif
iv.) Geometry type of the features in this layer
–> Line
v.) The number of features in this layer
–> 19148
vi.) Capabilities of this layer
–> Fast Access to Features at ID, Presimplify Geometries, Presimplify Geometries with Validity Check
vii.) In layer spatial reference system units
–> xMin,yMin 68.4982,7.92528 : xMax,yMax 97.3348,35.5013
viii.) Layer Spatial Reference System
–> +proj=longlat +datum=WGS84 +no_defs
Convert Shapefile SHP TO MIF format using ogr2ogr utility-
ogr2ogr supports some file format MIF is one of them. You can write a simple command to convert your shapefile. Before this you must check for ogr2ogr utility. That can be done by typing ogr2pgr in your terminal.
Convert- Shapefile Shp to MIF – Map Info File
If this utitlity is not available, you should run the given commands-
You must have shp along with .shx and .dbf file for proper conversion.
If you only have shp file you will got an error something like.
Convert- Shapefile Shp to MIF – Map Info File
And if you don’t have .dbf file, then you following error will appear
Code to Convert Shp to MIF
If you are aware of reading binary file by knowing the file format, you can easily read and parse shapefile and convert the same to any other format. You can check out one such tutorial which I had created to read header of shapefile using c++ or bounding box of shapefile using c++.
This same work can be done in PHP using shelll_exec() method, which execute the command and gives output as string. The following function describes the $query variable, which takes command as string and given to shell_exec(0 method.
public function shptomif($shpfilepath,$output) {
$query=”ogr2ogr -f ‘MapInfo file’ $output.mif $shpfilepath.shp”;
shell_exec($query);
}
Output of mif file from shp file-
The Output will contain .mif and .mid files. You can open MIF file in QGIS software.
If you are using Windows operating software than you can open .mif (Map Info File) with microsoft word. The following result will appear
Version 300
Charset “Neutral”
Delimiter “,”
CoordSys Earth Projection 1, 104
Columns 7
MED_DESCRI Char(254)
RTT_DESCRI Char(254)
F_CODE_DES Char(10)
ISO Char(7)
ISOCOUNTRY Char(54)
Length_km Decimal(11,2)
Latitude Decimal(11,2)
Data line(…..)
Change Coordinate System of MIF from shp format
Converting shapefile into MapInfo File with desired coordinate system can be done by using ogr2ogr utility. It has some options related to SRS (Spatial reference system), given below-
Sometimes we just need to see attribute details not geometry. So instead of carrying heavy shape files we can convert them in XLSX format. XLSX file contains on attribute detail or can say non spatial data. XLSX files are light in weight. Along with shp to xlsx convert you may also check for shp to ods, shp to csv conversion which also more focuses on attribute details.
KNOW ABOUT XLSX AND SHAPEFILE format -BEFORE CONVERTING SHP TO XLSX
An XLSX file is an Excel spreadsheet created by Microsoft Excel or another spreadsheet program. It stores data in worksheets, which contain cells arranged in a grid of rows and columns, and may also contain charts, mathematical functions, styles, and formatting. XLSX files create simple or complex mathematical models.
What is shapefile? Each object within a SHP file contains an individual geographic feature and its attributes.
Conversion from shapefile to XLSX using ogr2ogr utility-
In command -f is file format and XLSX is driver. Then you can specify the output file name with .xlsx extension and input shapefile. This command can be executed on terminal or using PHP code. Here you must look for the ogr2ogr utility in your system. If not available you can install it using given line of code.
Then you can check the presence of utility by typing ogr2ogr in terminal. The output will look like-
SHP to XLSX
Note that while converting shapefile to XLSX, you must check for .shx file. If shx file is not available you may get following error.
Shapefile has some supporting file like .dbf, .shx, .prj etc. So you must take all file whenever you perform conversion.
PHP CODE – SHP to XLSX
If you are aware of Shapefile Open description format, then you can easily access shapefile data through coding. As i have created one such shapefile minimum bounding box parser in c++. Below in the php code to execute ogr2ogr tool.
Here you can perform the conversion using shell_exec() method, which actually executes the command and returns string as output.
public function shptoxlsx($shpfilepath,$output) {
$query=”ogr2ogr -f XLSX $output.xlsx $shpfilepath.shp”;
shell_exec($query);
}
After execution of command you can check the specified folder to see generated xlsx file. The content of file will be something like-
Hope you enjoyed the article and successfully converted shape file into XLSX file. If you have any problem regarding conversion please feel free to write in comment box.
Shape file to ODS (Open Document Spreadsheet) conversion is required when you only need non spatial information i.e. only attribute information. This conversion need ogr2ogr utility. Or you may also you any other tool to convert shp to ods easily.
What is ODS (Open Document Spreadsheet) and Shapefile-Shp to ODS CONVERT
An ODS (Open Document Spreadsheet) file is a spreadsheet. It stores data in cells that are organized into rows and columns. ODS files are formatted using the OASIS Open Document XML-based standard. Whereas shape files are collection of geometry with non spatial data as attributes.
To install ogr2ogr utility you can follow the given lines of command.
Then check for presence of ogr2ogr utility by typing ogr2ogr in your terminal.
Conversion- Shapefile shp to ODS (Open Document Spreadsheet) using Ogr2ogr utility-
Here, in the command -f is the option for file format.
Note that while converting shx file should be present in same folder where shp file is kept. Otherwise you will get error like-
All the supported file (.shx, .prj and .dbf etc.) should be kept together while performing any conversion.
Code- Convert shp to ods
You can use any programming language to convert between shapefile to ods, if you know the format of shapefile and ods file. I have created one such minimum example of code to find the minimum bounding box of shapefile with c++ programming lanauage. Below is the php code.
public function shptoods($shpfilepath,$output) {
$query=”ogr2ogr -f ODS $output.ods $shpfilepath.shp”;
shell_exec($query);
}
The generated output can be seen in the same folder, where shapefile is kept. Output will look as-
Hope this post is helpful for you to convert shp to ods document. If you find any difficulty in implementing the conversion of shapefile to open document spreadsheet, let you know by commenting below in the box provided.
Shape file shp to GML conversion is required when you carry data from one place to another. Shapefiles are heavy as compared with GML (Geography Markup Language). On the other hand we can say that GML makes you able to do many of the same things that you would do with heavyweight desktop GIS files.
For a more in-depth guide on this topic, be sure to check out our accompanying video tutorial, where we walk you through each step visually and provide practical demonstrations.
GML (Geography Markup Language) is about describing kinds of geographic objects. This is XML based language that contain two part- the schema that describes the document and the instance document that contains the actual data. GML schema allows users and developers to describe generic geographic data sets that contain points, lines and polygons. Using this schema user can differentiate between geometry primitives.
GMl format composed of geometry property and attribute detail in feature member tag. Here geometry defines which primitive is available in data. Whether it is point, line or polygon. These can be multilinestring or multipolygon. The given line of GMl defines the lineString, contains attributes as MED_DESCRI, RTT_DESCRI, F_CODE_DES, ISO and ISO_country in ogr tag. The srsName(Spatial reference system name) is given is file for each geometry as EPSG number.
LineString as Example of GML file Describing feature – Know Before performing shp to gml convert
Convert shapefile Shp to GML (Geography Markup Language) using Ogr2Ogr –
For converting shapefile in GML format you need to have ogr2ogr utility in your system. If this is not available you can follow the given procedure.
Convert Shapefile shp to GML – Geography Markup Language
After installing, you can check the availability of ogr2ogr in terminal by typing ogr2ogr, then you will be able to see the following result.
Command Line conversion – shp to gml-
Now, to convert Shapefile to GML you need to execute the following command-
In this command -f is the output file format i.e. GML then specify the output file name with .gml extension and after that input shapefile name with .shp extension. Note- while executing this command you must check for .shx file, which contains the positional index for geometry objects.
Code- Convert shp to GML
If you want the conversion using programing or don’t want to use terminal then this can also be done using PHP. You can create a function that defined this command as string and can give this string in shell_exec() method to execute. Shell_exec() actually execute the command and returns output as string.
public function shptogml($shpfilepath,$output){ $query=”ogr2ogr -f GML $output.gml $shpfilepath”; print_r($query); shell_exec($query); }
The GML output file will be something like this-
Change coordinate system of GML file from shp-
Many of times, we need the output file in other coordinate system. For this we can use options of ogr2ogr utility. It has
-t_srs srs_def:
Reproject/transform to this SRS on output
-s_srs srs_def:
Override source SRS
So using these option, we can get the data in required coordinate system. So for this you can write the query as-
Shapefile shp can be converted into GPS ( Global Positioning System) using ogr2ogr utility. The GPS data is best option when routes and tracks are required in XML format. Here we will check how to convert shapefile shp to GPX / GPS.
Convert Shp to GPX – Using IGIS Map Tool
Go to MAPOG Conversion Tool . Login with registered id and password or if you are new then register with valid email id. Then tap on Switch To button select conversion in the drop down list.
Upload your file from system or drive or from drop box. After uploading the file choose the output format. And in the last click on Convert File button. You will be directed to the map where converted file is published.
Download the converted SHP to GPX file from the download icon. For detailed conversion watch the video provided below.
Details for GPX/GPS (GPS Exchange Format) and Shapefile Format Before Converting Shapefile to GPX GPS data-
GPX (GPS Exchange Format) is a light-weight XML data format for the interchange of GPS data (waypoints, routes, and tracks) between applications and Web services on the Internet. Shapefile is collection of geometry with attributes mainly comprised of three files .shp for which stores geometry, .shx which stores index and .dbf which stores data of respective attributes.
The example is given below for linestring feature of gpx version. Here metadata contains the bounding box with min (lat,long) and max (lat, long). The tag trk defines the tracks, which contains extension tag, trkseg tag and trkpt tag. Here extension tag contains all the attributes in ogr tag with values. Trkseg tag is the track segment, which is composed of track points with latitude longitude.
Convert- Shapefile shp to GPX / GPS- Global Positioning System
Convert shp to GPX /GPS using ogr2ogr utility-
Ogr2ogr utility has some options some of them are give below,
-dsco NAME=VALUE:
Dataset creation option (format specific)
-nlt type:
Define the geometry type for the created layer. One of NONE, GEOMETRY, POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION, MULTIPOINT, MULTIPOLYGON or MULTILINESTRING.
-f option:
format_name
GPX_USE_EXTENSIONS:
By default, the GPX driver will discard attribute fields that do not match the GPX XML definition (name, cmt, etc.).
If GPX_USE_EXTENSIONS=YES is specified, extra fields will be written inside the <extensions> tag.
If you don’t have ogr2ogr utility in your system please execute the given commands to install ogr2ogr,
Check the presence of utility by typing ogr2ogr in command prompt-
Code to Convert GPX GPS from Shp
The conversion thing can be done in PHP using shell_exec() method, given below-
public function shptogpx ($shpfilepath,$output,$type) {
$query=”ogr2ogr -f GPX -dsco GPX_USE_EXTENSIONS=YES $output.gps $shpfilepath.shp -nlt $type”;
shell_exec($query);
}
Change coordinate system of GPS/GPX file-
Changing coordinate system using ogr2ogr is a one of the simple task. It has various option, here two are given, which will help to convert the coordinate system into desired one.
-t_srs srs_def:
Reproject/transform to this SRS on output
-s_srs srs_def:
Override source SRS
So using these option, we can get the data in required coordinate system. So for this you can write the query as-
If you find any problem during implementing this tutorial, please let us know. Feel free to comment in given comment box.
Loading Comments...
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok