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