Historical maps of Estonian cities under the grid of today's street network.
Shortcut keys: F11 enables/disables fullscreen. By OpenLayers defaults arrow keys pan, +/- keys zoom & Page Up/Page Down/Home/End scroll by three quarters of a page. Additionally, comma (,) displays next and period (.) will display previous historical map.
Era | Legend explanations |
---|---|
< 1900 | et/sv/ru |
~ 1900 | et |
~ 1918 | de |
~ 1925 | et |
> 1940 | ru: 1:10k, 1:10...25k, 1:25...100k |
&marker=R
adds marker to the center of map.Hints:
&debug=1
to URLs.&draw=KML
or &draw=GPX
to urls, you can draw and export KML or GPX tracks.Following describes data adding process with Debian Linux 8.4.
{VANALINNAD_ROOT_DIR}/cache
{VANALINNAD_ROOT_DIR}/loads/local_machine_data.json.example
to {VANALINNAD_ROOT_DIR}/cache/local_machine_data.json
. Open SQLite database {VANALINNADROOTDIR}/loads/loads.sqlite. In local_machine_data.json
, "upload" should be result of SELECT MAX(id) FROM updates;
./configure ; make ; sudo make install
sudo apt-get install markdown imagemagick python-gdal xsltproc osmctools wget
)sudo ln -s /usr/lib/libproj.so.0 /usr/lib/libproj.so
sudo cpan XML::Simple JSON Storable Math::Round DBD::SQLite
or apt-get install libxml-simple-perl libjson-perl libstorable-perl libmath-round-perl libdbi-perl libdbd-sqlite3-perl
)wget -r --no-parent -A jpg --reject-regex "(.*)\?(.*)" http://vanalinnad.mooo.com/raster/places/
. Copy directory vanalinnad.mooo.com/raster/places to {VANALINNAD_ROOT_DIR}/raster
.Run dev/newsite/newsite.pl {SITE}
. Add new <Placemark>
with <name>{SITE}</name>
to vector/selector.kml to make new site visible on main page. NB! Dont use symbols outside standard latin alphabet in {SITE}, it will be included in catalogue names. You can add "real name" into /Document/Placemark[x]/description
@ vector/selector.kml and into /city
@ vector/places/{SITE}/layers.xml .
In following, {SOURCEFILEDIR} is /dirsource from conf.xml.
{SOURCE_FILE_DIR}/places/{SITE}/composed/{COMPOSITE_YEAR}
, if new map is composite (composed from more then one map).{SOURCE_FILE_DIR}/places/{SITE}
, if new map is NOT composite.-gcp {X_COORDINATE_OF_GCP_ON_SOURCE_IMAGE} {Y_COORDINATE_OF_GCP_ON_SOURCE_IMAGE}
{EAST_COORDINATE_OF_GCP} {NORTH_COORDINATE_OF_GCP}
. For example, GCPs can be narrow crossroads which are on both historic and modern maps. You can use index.html?debug=1 for finding GCPs geographical coordinates and dev/pixelpicker.html for finding GCP pixel coordinates.
<translate map="{YEAR}" composite="{COMPOSITE_YEAR}"><t file="{SOURCE_FILE}" gcps="{GEOREFERENCE}"/></translate>
and <composite id="{COMPOSITE_YEAR}" maps="{YEAR}" montage="yes"/>
to gdal.xml. Later, new composite map years can be added to attribute maps
, separated by comma. NB! Order of this list decides, how component maps overwrite eachother. Remove attribute montage="yes", when component maps dont touch eachother.<translate map="{YEAR}"><t file="{SOURCE_FILE}" gcps="{GEOREFERENCE}"/></translate>
to gdal.xml.dev/tiler.pl -s {SITE} -y {YEAR}
. (If you for some reason dont want to generate map tiles but still want to generate misc data files, add -r flag.) NB! Only last <t>
from <translate>
added in previous step is taken into account while rendering tiles.<roadbounds w="..." s="..." e="..." n="..."/>
to {VANALINNAD_ROOT_DIR}/vector/places/{SITE}/layers.xml
. If this tag or some of its coordinates are missing, other boundaries are calculated from maximum values of tile layers in {VANALINNAD_ROOT_DIR}/vector/places/{SITE}/layers.xml
.<layer type="roads" name="{LAYER_NAME}" file="{KML_FILENAME}" maxres="{MIN_ZOOM_LEVEL}" levels="{LEVEL_LIST}"/>
to {VANALINNAD_ROOT_DIR}/vector/places/{SITE}/layers.xml
. {LEVEL_LIST} is comma separated list of numbers from 0 to 5../dev/osm2xml/osmroads.pl {SITE} .00001
./dev/osm2xml/osmroads.pl {SITE} .00001 highway
You can update existing road layers by running ./dev/osm2xml/allosmroads.pl
.
Copyright 2013-2021, juks at alkohol ee. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY juks at alkohol ee ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of juks at alkohol ee.
Vanalinnad | Readme | Info