User:HannesHH

From OpenStreetMap Wiki
Jump to navigation Jump to search

http://www.openstreetmap.org/user/HannesHH

Random Ideas

Use the timestamps GPS track data to generate rules for procedural/grammar generation of realistic street networks.

http://wiki.openstreetmap.org/wiki/Linear_maps

Tile Stitching

This is a simple bash script to stitch local tiles to a single image. It is ugly and I don't want to talk about it.

#!/bin/bash
# will search for tiles in your current directory ($z/$x/$y.png) and stitch them all together
# will fail horribly if you do not have a rectangular area with tiles
# this is super i/o intense if you use it for a larger amount of tiles so do not do that
# that is because i am lazy and just needed something for small areas
# uses graphicsmagick's gm tool, just remove "gm" if you use imagemagick
# needs bash 3 i guess
# pass the wanted zoomlevel as argument, eg "bash ./tilestitch.sh 14"
zoomlevel=6

rows=$(ls -1 $zoomlevel/*/*.png | grep -Eo '/.*/' | sort| uniq | wc -l)
columns=$(ls -1 $zoomlevel/*/*.png | grep -Eo '/[^/]*png' | sort | uniq | wc -l)
min_x=$(ls -1 $zoomlevel/*/*.png | grep -Eo '/.*/' | sed 's/\///g' | sort -n  | head -1)
max_x=$(ls -1 $zoomlevel/*/*.png | grep -Eo '/.*/' | sed 's/\///g' | sort -n | tail -1)
min_y=$(ls -1 $zoomlevel/*/*.png | grep -Eo '[^/]*png' | sed 's/\.png//g' | sort -n | head -1)
max_y=$(ls -1 $zoomlevel/*/*.png | grep -Eo '[^/]*png' | sed 's/\.png//g' | sort -n | tail -1)
# so sorry...

echo "zoomlevel: $zoomlevel"
echo "rows: $rows"
echo "columns: $columns"
echo "min_x: $min_x"
echo "max_x: $max_x"
echo "min_y: $min_y"
echo "max_y: $max_y"

# gm montage needs them ordered by column ($y).
for y in $(eval echo {${min_y}..${max_y}})
do
	for x in $(eval echo {${min_x}..${max_x}})
	do	
		filenames="$filenames $zoomlevel/$x/$y.png"
	done
done

gm montage +frame +shadow +label -tile ${rows}x${columns} -geometry 256x256+0+0 $filenames stitchedtiles.png && gqview stitchedtiles.png

Maperitive

Ich habe ein paar einfache Renderregeln für Maperitive geschrieben:

buildings.mrules

Rendert Gebäude und zeigt mit Rot bzw Grün an, ob eine Hausnummer getaggt wurde. Kennt keine Interpolationslinien o.ä. Gelb sind "andere Flächen mit Hausnummer". Schwarze Punkte sind building=entrance-Nodes. Ist absolut nicht tauglich für Leute mit rot-grün Schwäche.

Buildings example.png

features
	areas
		building numbered : area[building=yes AND addr:housenumber]
		building unnumbered : area[building=yes AND NOT addr:housenumber]
		othernumberedthings : area[addr:housenumber AND NOT building]
	lines
		all lines : NOT building
	points
		building point : node[building=yes]
		housenumber : node[addr:housenumber]
		all points :

properties
	map-background-color	: #FFFFFF
	map-background-opacity	: 1
	map-sea-color : #FFFFFF
	
rules
	target : building unnumbered
		define
			fill-color : red
			fill-opacity : 1
			line-style : none
		draw : fill
		define
			line-color : red
			line-width : 3
		draw : line

	target : building numbered
		define
			fill-color : green
			fill-opacity : 1
			line-style : none
		draw : fill
		define
			line-color : green
			line-width : 3
		draw : line
		
	target : othernumberedthings
		define
			fill-color : yellow
			fill-opacity : 1
			line-style : none
		draw : fill
		define
			line-color : yellow
			line-width : 3
		draw : line

	target : housenumber
		define
			fill-color : green
			shape-size : 1
		draw : shape
			
	target : all lines
		define
			line-color : #000000
			line-width : 1
			line-opacity : 0.2
		draw : line

parking.mrules

Rendert einige Parking Conditions von http://wiki.openstreetmap.org/wiki/Proposed_features/parking:lane

ACHTUNG: Veraltet! Mittlerweile ist die Syntax für parking:lane teilweise anders. Parking beispiel.png

features
	areas
		parking_area : parking
	lines
		parking_line : parking
		parking_left : parking:lane:left=inline OR parking:lane:left=orthogonal OR parking:lane:left=diagonal
		parking_right : parking:lane:right OR parking:lane:right=orthogonal OR parking:lane:right=diagonal
		parking_no : parking:condition:both=no_parking OR parking:condition:both=no_stopping OR parking:condition:left=no_parking OR parking:condition:left=no_stopping OR parking:condition:right=no_parking OR parking:condition:right=no_stopping
		all lines : NOT parking
	points
		parking_node : parking=yes

properties
	map-background-color	: #FFFFFF
	map-background-opacity	: 1
	map-sea-color : #FFFFFF
	
rules
	target : parking_area
		define
			fill-color : red
			fill-opacity : 0.6
			line-style : none
		draw : fill
		define
			line-color : red
			line-width : 3
		draw : line
		
	target : parking_line
		define
			line-color : blue
			line-width : 3
		draw : line
		
	target : parking_left
		define
			line-color : #AAFFAA
			line-width : 3
			line-offset-sides : left
			line-offset : 14:0;15:1;16:3
		draw : line
		
	target : parking_right
		define
			line-color : #AAFFAA
			line-width : 3
			line-offset-sides : right
			line-offset : 14:0;15:1;16:3
		draw : line

	target : parking_no
		define
			line-color : #FF0000
			line-width : 3
		draw : line
		
	target : parking_node
		define
			fill-color : blue
			line-style : none
		draw : fill
			
	target : all lines
		define
			line-color : #000000
			line-width : 1
			line-opacity : 0.2
		draw : line



Uralt, ignorieren: "Problemzonen"/To-do:

  • Tempo 30-Zonen, Kopfsteinpflaster
  • Sülldorf: Sternmoosweg etc, living_street?
  • Rissen/Sülldorf: Asklepios
  • Kirschtenstraße Tag wegen Schulgelände?
  • Grete Nevermann Weg oder Grete-Nevermann-Weg?
  • Nienstedten: Wo Elbschloßtreppe?
  • Iserbrook: Reinheimerweg oder Reinheimer Weg?
  • Othmarschen: Poppes Weg oder Poppesweg?

Ist das noch aktuell...? HannesHH 23:47, 16 August 2010 (BST)

I support the license
upgrade to ODbL v 1.0

ODbL-Supporter.png

Public domain
All my contributions to OpenStreetMap are released into the public domain. This applies worldwide.
In case this is not legally possible, I grant anyone the right to use my contributions for any purpose, without any conditions, unless such conditions are required by law.