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.
Here is the Online Converter Tool from KML To GML
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.
<Schema name="roads" id="roads"> <SimpleField name="MED_DESCRI" type="string"></SimpleField> <SimpleField name="RTT_DESCRI" type="string"></SimpleField> <SimpleField name="F_CODE_DES" type="string"></SimpleField> <SimpleField name="ISO" type="string"></SimpleField> <SimpleField name="ISOCOUNTRY" type="string"></SimpleField> <SimpleField name="Length_km" type="float"></SimpleField> <SimpleField name="Latitude" type="string"></SimpleField> </Schema> <Folder><name>roads</name> <Placemark> <Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style> <ExtendedData><SchemaData schemaUrl="#roads"> <SimpleData name="MED_DESCRI">Without Median</SimpleData> <SimpleData name="RTT_DESCRI">Secondary Route</SimpleData> <SimpleData name="F_CODE_DES">Road</SimpleData> <SimpleData name="ISO">IND</SimpleData> <SimpleData name="ISOCOUNTRY">US</SimpleData> <SimpleData name="Length_km">0.3</SimpleData> </SchemaData></ExtendedData> <LineString><coordinates>77.8277403975188,35.5012774951028 77.8257523065223,35.4995003281062</coordinates></LineString> </Placemark>
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.
<gml:boundedBy> <gml:Box> <gml:coord><gml:X>-164404.6900820375</gml:X><gml:Y>893749.1179630321</gml:Y></gml:coord> <gml:coord><gml:X>2727970.187011702</gml:X><gml:Y>3932312.865004988</gml:Y></gml:coord> </gml:Box> </gml:boundedBy> <gml:featureMember> <ogr:raods fid="raods.0"> <ogr:geometryProperty><gml:LineString srsName="EPSG:32643"><gml:coordinates>756486.657418272,3932312.4133327 756311.93383727,3932110.06520674</gml:coordinates></gml:LineString></ogr:geometryProperty> <ogr:MED_DESCRI>Without Median</ogr:MED_DESCRI> <ogr:RTT_DESCRI>Secondary Route</ogr:RTT_DESCRI> <ogr:F_CODE_DES>Road</ogr:F_CODE_DES> <ogr:ISO>IND</ogr:ISO> <ogr:ISOCOUNTRY>US</ogr:ISOCOUNTRY> <ogr:Length_km>0.3</ogr:Length_km> <ogr:Latitude xsi:nil="true"/> </ogr:USraods> </gml:featureMember> <gml:featureMember>
Convert KML to GML using Ogr2ogr utility-
For using this utility you need to install GDAL OGR2OGR in your system. To install this you can follow the given commands.
If you have already install ogr2ogr utility you can check by typing ogr2ogr in terminal.
Now run the given command to convert from KML to GML-
--- ogr2ogr -f 'GML' Output_GML.gml Input_KML.kml
Changing Coordinate System of Output File kml to gml-
Sometimes we need different coordinate system. So to get different coordinate system from input you can follow this given command.
--- ogr2ogr -f 'GML' -t_srs EPSG:32643 -s_srs EPSG:4326 Output_GML.gml Input_KML.kml
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 –
If you have any problem regrading this tutorial, please let us know via comments in provided comments box.
Hi
this is excellent, is there a way to convert KML into GML in MSSQL?