parent
2337dcf220
commit
1f31f4663b
@ -0,0 +1,37 @@
|
||||
import uuid
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
import json
|
||||
|
||||
def geojson2vt(uploaded_geojson) -> str:
|
||||
"""Convert geojson file to vector tiles
|
||||
|
||||
Args:
|
||||
uploaded_geojson: GeoJSON file uploaded by user
|
||||
|
||||
Returns:
|
||||
str: vector tiles id
|
||||
"""
|
||||
# save the uploaded file
|
||||
# get a path to the saved geojson
|
||||
uploaded_geojson_path = "land.geojson" # replace value with the path to the saved geojson
|
||||
vector_tiles_id = uploaded_geojson_path + uuid.uuid4().hex
|
||||
tippecanoe_command = f"tippecanoe --maximum-zoom=g --output-to-directory={vector_tiles_id} --drop-densest-as-needed --no-tile-compression {uploaded_geojson_path}"
|
||||
subprocess.run(tippecanoe_command, shell=True) # https://stackoverflow.com/a/51950538/14742462
|
||||
metadata_path = Path(vector_tiles_id, "metadata.json")
|
||||
with open(metadata_path, "r") as metadata_file:
|
||||
metadata = json.load(metadata_file)
|
||||
|
||||
with open("catalog.json", "r") as catalog_file:
|
||||
catalog = json.load(catalog_file)
|
||||
catalog.append(metadata)
|
||||
|
||||
with open("catalog.json", "w") as catalog_file:
|
||||
json.dump(catalog, catalog_file, ensure_ascii=False)
|
||||
return vector_tiles_id
|
||||
|
||||
geojson2vt("ert")
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in new issue