summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorywang <yw05@forksworld.de>2020-06-07 14:22:19 +0200
committerywang <yw05@forksworld.de>2020-06-07 14:22:19 +0200
commit8eb50eddb9733b01f19d19a2bbb68bac9d64c8d4 (patch)
treefe643164c033480b804727819cd38738ca2957b6
parentbe16cf2f6e4548d3ba6f0554202c921b0c90b5a5 (diff)
downloadlifomapserver-ywang-patch.tar.gz
lifomapserver-ywang-patch.tar.bz2
lifomapserver-ywang-patch.zip
Use unpkg when possible; update map tile generatorywang-patch
- Moved most sources to unpkg. - Add scripts/getassets to fetch files that need to be hosted locally. - Added a new map tile generator that uses symlinks instead of PHP.
-rw-r--r--.gitignore4
-rw-r--r--htdocs/index.html4
-rw-r--r--htdocs/tiles/index.php3
-rwxr-xr-xscripts/convert_maps.1.sh64
-rwxr-xr-xscripts/getassets.sh3
5 files changed, 72 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index 12e7f0c..9ea0174 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
-htdocs/tiles/**/
+htdocs/tiles/
+htdocs/geojson/
+htdocs/fa/
diff --git a/htdocs/index.html b/htdocs/index.html
index 2d77687..acc5254 100644
--- a/htdocs/index.html
+++ b/htdocs/index.html
@@ -5,10 +5,10 @@
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="fa/css/all.css">
- <link rel="stylesheet" href="awesomemarkers/leaflet.awesome-markers.css">
+ <link rel="stylesheet" href="https://unpkg.com/leaflet.awesome-markers@2.0.5/dist/leaflet.awesome-markers.css" integrity="sha512-boUmbsf2HYx73lupnu+hMGOCttEtpt6FWQDcpHFmTIsY+lXPiP3iefbxrAvCNa6bt5TbdoO3zza2a2kxAm8HTg==" crossorigin="">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script>
- <script src="awesomemarkers/leaflet.awesome-markers.js"></script>
+ <script src="https://unpkg.com/leaflet.awesome-markers@2.0.5/dist/leaflet.awesome-markers.js" integrity="sha512-Oj9plGLST4IMXFXDfqMdTP+gSInbodkyno117PSjo5R08eu6TdzY9WPnnwQZGx2O2lG/kN0MzQk95ulWsRFuLA==" crossorigin=""></script>
<!-- Streets -->
<script src='leafletjs/ctxtextpath.js'></script>
<script src='leafletjs/L.LabelTextCollision.js'></script>
diff --git a/htdocs/tiles/index.php b/htdocs/tiles/index.php
deleted file mode 100644
index 62a2de0..0000000
--- a/htdocs/tiles/index.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php
-
-?>
diff --git a/scripts/convert_maps.1.sh b/scripts/convert_maps.1.sh
new file mode 100755
index 0000000..0c78c8f
--- /dev/null
+++ b/scripts/convert_maps.1.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+# Convert a huge .png file into smaller chunks for LeafletJS.
+#
+# Copyright (C) 2020 Y. Wang <ywang@forksworld.de>
+# Copyright (C) 2020 Markus Koch <markus@notsyncing.net>
+#
+# This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
+# You can obtain a copy of the license at https://mozilla.org/MPL/2.0/.
+
+TILESIZE=256
+MAPFILE="$1"
+MAPNAME="${1/.png/}"
+
+width=`file "$MAPFILE" | sed -n "s/.* \([0-9]\+\) x \([0-9]\+\).*/\1/p"`
+crop=$TILESIZE
+zoom=0
+
+# Enabled because my VPS
+IMFLAGS="-limit area 0"
+#IMFLAGS=""
+
+echo -n "Getting highest zoomlevel... ";
+while [ $crop -lt $width ]; do
+ crop=$(($crop * 2));
+ zoom=$(($zoom + 1));
+done;
+echo "$zoom";
+
+echo "Extending map for maptile generation..."
+extended=$(mktemp)
+echo " The extended map is temporarily saved to $extended."
+convert $MAPFILE -extent ${crop}x${crop} png:$extended
+
+while [ $zoom -ge 0 ]; do
+ out="$MAPNAME/$zoom"
+ tempfile=$out/temp.png
+
+ echo "Generating maps for zoomlevel $zoom to $out..."
+
+ mkdir -p $out;
+
+ echo " Scaling image..."
+ convert png:$extended -resize ${crop}x${crop} $tempfile
+
+ echo " Generating tiles..."
+ convert $tempfile -crop ${TILESIZE}x${TILESIZE} +adjoin $out/%d.png
+
+ rm $tempfile
+
+ echo " Creating symlinks..."
+ n=$(($crop / $TILESIZE))
+ for i in $(seq 0 $(($n-1))); do
+ rm -rf $out/$i >/dev/null 2>/dev/null # Nobody cares if this fails ...
+ mkdir $out/$i
+ for j in $(seq 0 $(($n-1))); do
+ ln -s ../$(($j*$n+$i)).png $out/$i/${j}.png
+ done
+ done
+
+ crop=$(($crop / 2))
+ zoom=$(($zoom - 1))
+done;
+
+rm $extended
diff --git a/scripts/getassets.sh b/scripts/getassets.sh
new file mode 100755
index 0000000..34dde08
--- /dev/null
+++ b/scripts/getassets.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+# This script fetches all necessary files to run the map server
+git clone https://github.com/FortAwesome/Font-Awesome.git --depth 1 ../htdocs/fa