Import KML/KMZ files to PostGIS
Last updated on August 15, 2022.
If you want to import a KML file manually into PostGIS or a similar spatial database, it's typical to use the
ST_GeomFromKML function PostGIS exposes or even use the command line tool
ogr2ogr to convert the file into your database.
The KMZ file format is a compressed version of KML, much like a
.zip file. Much more data can be fit into the same file which makes it convenient to work with. Our importer also supports
Here, you can upload your KML file and download it as a spatial .sql file. You can directly upload this .sql file to your PostGIS instance. Or, you can choose to have us host it for you.
KML Format Support:
- CRS automatically detected
- Handles up to 512MB
- Detect encoding (UTF8, Latin1, etc)
Once the file is converted to PostGIS, you can either download the file as
.sql and upload to your database with
psql, or host the file with us for free. This file fits on our free plan, which is under 128MB of storage and shared compute time. Larger datasets can be stored for $2.50/GB/month.
Uploading to PostGIS (self-host)
To load your .psql file into your PostGIS instance (local, Amazon RDS, or other), you can use the
psql command line tool.
psql -U postgres -h localhost -d postgres -f downloaded_file.sql
Database Connection (managed)
If you choose Bunting as your host, connect to the PostGIS database with your username and password:
psql -W -U username --dbname data_gis \
Connection can also be made through GeoDjango or GeoPandas, like so:
from sqlalchemy import create_engine
db_connection_url = "postgresql://username:[email protected]:5432/data_gis"
con = create_engine(db_connection_url)
sql = "SELECT geom, highway FROM target_table"
gdf = geopandas.GeoDataFrame.from_postgis(sql, con)