Skip to content

Instantly share code, notes, and snippets.

@jachym
Created March 17, 2021 12:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jachym/dd4a9bdc0c15c8cdbb5686453bcb9361 to your computer and use it in GitHub Desktop.
Save jachym/dd4a9bdc0c15c8cdbb5686453bcb9361 to your computer and use it in GitHub Desktop.
Výpočet rozlišení pro S-JTSK dlaždice 512px
try:
from tabulate import tabulate
except ModuleNotFoundError as e:
tabulate = None
print ("tabulate not installed, using `print`")
import json
dpi = 90
maxscaledenom = 7315200/2
top = -920000
left = -925000
meters_per_inch = 0.0254
inch_per_meter = 1/meters_per_inch
tilesize = 512
dots_per_meter = dpi * inch_per_meter
tilesize_meters = tilesize / dots_per_meter
data = [
[
"zoom", "scaledenom", "resolution", "columns and rows", "bbox"
]
]
for zoom in range(0, 16):
scaledenom = maxscaledenom/(2**zoom)
cols_rows = 2**zoom
tilesize_meters_scale = tilesize_meters * scaledenom
resolution = tilesize_meters_scale/tilesize
bbox = [left, top - cols_rows * tilesize_meters_scale, left + cols_rows * tilesize_meters_scale , top]
data.append([zoom, scaledenom, resolution, cols_rows, bbox])
if tabulate:
print(tabulate(data))
else:
for row in data:
print("\t|".join([str(i) for i in row]))
geojson = {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "polygon",
"coordinates": [[
[ data[-1][-1][0], data[-1][-1][1] ],
[ data[-1][-1][2], data[-1][-1][1] ],
[ data[-1][-1][2], data[-1][-1][3] ],
[ data[-1][-1][0], data[-1][-1][3] ],
[ data[-1][-1][0], data[-1][-1][1] ],
]]
}
}
]
}
print(json.dumps(geojson))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment