Skip to content

Instantly share code, notes, and snippets.

View lukasmartinelli's full-sized avatar

Lukas Martinelli lukasmartinelli

View GitHub Profile
@lukasmartinelli
lukasmartinelli / tolerance_per_zoom.md
Last active September 27, 2022 00:40
ST_Simplify tolerance per zoom level
zoom_level tolerance
      0 |  78271.516953125
      1 | 39135.7584765625
      2 | 19567.8792382812
      3 | 9783.93961914062
      4 | 4891.96980957031
      5 | 2445.98490478516
      6 | 1222.99245239258

7 | 611.496226196289

@lukasmartinelli
lukasmartinelli / create_extracts.sh
Last active August 9, 2021 16:28
Create coutnry extracts from world MBTiles
#!/bin/bash
tilelive-copy --minzoom=0 --maxzoom=14 --bounds="60.403889,29.288333,74.989862,38.5899217" world.mbtiles afghanistan.mbtiles
tilelive-copy --minzoom=0 --maxzoom=14 --bounds="19.0246095,39.5448625,21.1574335,42.7611669" world.mbtiles albania.mbtiles
tilelive-copy --minzoom=0 --maxzoom=14 --bounds="-8.7689089,18.868147,12.097337,37.3962055" world.mbtiles algeria.mbtiles
tilelive-copy --minzoom=0 --maxzoom=14 --bounds="1.3135781,42.3288238,1.8863837,42.7559357" world.mbtiles andorra.mbtiles
tilelive-copy --minzoom=0 --maxzoom=14 --bounds="11.3609793,-18.1389449,24.18212,-4.2888889" world.mbtiles angola.mbtiles
tilelive-copy --minzoom=0 --maxzoom=14 --bounds="-63.7391991,17.9609378,-62.6125448,18.8951194" world.mbtiles anguilla.mbtiles
tilelive-copy --minzoom=0 --maxzoom=14 --bounds="-73.6603073,-55.285076,-53.5374514,-21.6811679" world.mbtiles argentina.mbtiles
tilelive-copy --minzoom=0 --maxzoom=14 --bounds="43.3471395,38.7404775,46.7333087,41.400712" world.mbtiles armenia.mbtiles
@lukasmartinelli
lukasmartinelli / semester_report
Created February 15, 2014 16:43
Calculate the total time based on the summary and time of iCalendar Events
from icalendar import Calendar
from datetime import timedelta
from itertools import groupby
from operator import itemgetter
def calculate_time(event):
start = event['DTSTART'].dt
end = event['DTEND'].dt
return end - start
@lukasmartinelli
lukasmartinelli / index.html
Created June 15, 2020 18:28
Swipe between maps
<div id="comparison-container">
<div id="before" class="map"></div>
<div id="after" class="map"></div>
</div>
@lukasmartinelli
lukasmartinelli / excel_formula.md
Last active February 16, 2017 13:16
Excel Formula for Creating Filenames from Titles
=CONCATENATE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(D11)," ","-"),"-","_"),"ä","ae"), "(", "_"), "(", "_"), "ö", "oe"), ",", "_"), "/", "_"), "__", "_"), ".csv")
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@lukasmartinelli
lukasmartinelli / generate_layer_readmes.sh
Created January 5, 2017 16:32
Generate Layer READMEs for OpenMapTiles
#!/bin/bash
set -o errexit
set -o nounset
function layer_readme() {
local layer="$1"
echo "## $layer" > $layer/README.md
echo "" >> $layer/README.md
echo "### Docs" >> $layer/README.md
echo "Read the layer documentation at **http://openmaptiles.org/schema#$layer**" >> $layer/README.md
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTFntvgSZvpI4QQch/RM3sCPWtFXNOp2ijk3zfi24u9WM2lWfqoDi0ED0p+DvM0yZHmDkmXcLo560zz7GjmMauqA6ta4NRJNPqfzNo0zBreNQ7ajV6A1J/4CSqFOyXDKdwz6TYq9B95Si7gqOL/1K2yeUJlpYJ+QkRtlurWRO85sIsbhJX2N3p5b++d2w2AihiXlCvsGwZGMeTDRxcjqgoz2q8bxqfPkGjJV3Pu6A5q/DzMyTXAg8rumTxqWdcjVkn8JPd62Zr7Nr6Jj/42jJWwTSuvmeuDzP73J9s2al9K8b0dsJXgCocSSlU0uxnGkX6QAU+R8PjVzukvpw1lXawkdPh3L1GBKp3jeHLmzK1Yi+GPfVgxJuaSmJFHWmc+RilBZCisZnMG4fUVXsZDylZKhvVwmlvedAySdETQi8QKcRguRVwoMtYApa3DKu8W/v0hZspYMc6yd+FigOpcGObjkNMoixKgyWs0kj6n1ZLSCSt27XPykbId4F0m2cMWc4SeHYScDBTPUGUnu1qeaqkJautId1X3GYOP6c2GQzhjzNPilpZv6bCdioJW/PDXAo5Akf2ZfwBQhfm4YVNSDDdvFXD9FQqahR4fLA0MMXiYTDKio/V0rkKg2bd81KBLG2swsAn2eA52mxd2+jDKIW2ufR1Utnb2txtnm6EOcq7Lw== me@lukasmartinelli.ch
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDTFntvgSZvpI4QQch/RM3sCPWtFXNOp2ijk3zfi24u9WM2lWfqoDi0ED0p+DvM0yZHmDkmXcLo560zz7GjmMauqA6ta4NRJNPqfzNo0zBreNQ7ajV6A1J/4CSqFOyXDKdwz6TYq9B95Si7gqOL/1K2yeUJlpYJ+QkRtlurWRO85sIsbhJX2N3p5b++d2w2AihiXlCvsGwZGMeTDRxcjqgoz2q8bxqfPkGjJV3Pu6A5q/DzMyTXAg8rumTxqWdcjVkn8JPd62Zr7Nr6Jj/42jJWwTSuvmeuDzP73J9s2al9K8b0dsJXgCocSSlU0uxnGkX6QAU+R8PjVzukvpw1lXawkdPh3L1GBKp3jeHLmzK1Yi+GPfVgxJuaSmJFHWmc+RilBZCisZnMG4fUVXsZDylZKhvVwmlvedAySdETQi8QKcRguRVwoMtYApa3DKu8W/v0hZspYMc6yd+FigOpcGObjkNMoixKgyWs0kj6n1ZLSCSt27XPykbId4F0m2cMWc4SeHYScDBTPUGUnu1qeaqkJautId1X3GYOP6c2GQzhjzNPilpZv6bCdioJW/PDXAo5Akf2ZfwBQhfm4YVNSDDdvFXD9FQqahR4fLA0MMXiYTDKio/V0rkKg2bd81KBLG2swsAn2eA52mxd2+jDKIW2ufR1Utnb2txtnm6EOcq7Lw== me@lukasmartinelli.ch
@lukasmartinelli
lukasmartinelli / mockup.json
Last active November 24, 2016 16:22
Maputnik Layout
{"mockup":{"controls":{"control":[{"ID":"0","h":"415","measuredH":"70","measuredW":"100","typeID":"Canvas","w":"694","x":"63","y":"12","zOrder":"0"},{"ID":"1","h":"341","measuredH":"222","measuredW":"252","typeID":"Map","w":"376","x":"306","y":"44","zOrder":"1"},{"ID":"2","children":{"controls":{"control":[{"ID":"0","h":"35","measuredH":"70","measuredW":"100","properties":{"backgroundAlpha":"1","borderStyle":"square"},"typeID":"Canvas","w":"79","x":"0","y":"0","zOrder":"0"},{"ID":"1","measuredH":"21","measuredW":"54","properties":{"text":"Maputnik"},"typeID":"Label","x":"9","y":"7","zOrder":"1"}]}},"h":"35","measuredH":"35","measuredW":"79","typeID":"__group__","w":"79","x":"63","y":"12","zOrder":"2"},{"ID":"3","children":{"controls":{"control":[{"ID":"0","children":{"controls":{"control":[{"ID":"0","h":"35","measuredH":"70","measuredW":"100","properties":{"backgroundAlpha":"1","borderStyle":"square"},"typeID":"Canvas","w":"82","x":"0","y":"0","zOrder":"0"},{"ID":"1","measuredH":"21","measuredW":"33","propert