Portál AbcLinuxu, 13. listopadu 2025 07:43
<bounds minlat="48.7400" maxlat="48.7486" minlon="21.2448" maxlon="21.2471" />Teraz môžme prejsť k renderingu. Z osm dát vytvoríme na základe xml pravidiel pomocou or/p renderera svg súbor nasledovným príkazom:
./orp.pl -r rules.xml data.osm
Vygenerovaný vektorový súbor data.svg prevedieme do rastrového png napr. v inkscape. Rozlíšenie exportovaného súboru závisí od použitia, podľa mojich skúseností je ako postačujúce maximum 550 dpi pre detailnú mapu.
Mapu rozkrájame skriptom TBCutter.pl (pre stiahnutie sa treba zaregistrovať na fóre):
./TBcutter.pl -f mapa.pngPosledným krokom je vytvorenie plaintextového .gmi súboru, podľa ktorého sa bude pixelová pozícia x/y prevádzať na súradnice. Použite takúto šablónu:
Map Calibration data file v3.0 nazov suboru s rastrovou mapou sirka mapy v pixeloch vyska mapy v pixeloch 0;0;minlon (vid tag bounds);maxlat (vid tag bounds); sirka mapy v pixeloch;0;maxlon;maxlat; 0;vyska mapy v pixeloch;minlon;minlat; sirka mapy v pixeloch;vyska mapy v pixeloch;maxlon;minlat;Príklad:
Map Calibration data file v3.0 data-21-02.png 10147 11525 0;0;21.1620;48.7869; 10147;0;21.3287;48.7869; 0;11525;21.1620;48.6620; 10147;11525;21.3287;48.6620;Teraz už len stačí .set, .gmi a adresár s nakrájanou mapu preniesť do mobilu a načítať ju v aplikácii.
Update: Celé by to šlo zautomatizovať nejak takto:
#!/bin/bash
###############################
# rules file already contains
# <bounds ..> tag
mapname=ke-osm-feb28
rules=rules.xml
minlat=48.6871
maxlat=48.7656
minlon=21.194
maxlon=21.2915
dpi=500
##############################
wget -O data.osm "http://www.openstreetmap.org/api/0.5/map?bbox=${minlon},${minlat},${maxlon},${ma
xlat}"
./orp.pl -r ${rules} data.osm
inkscape --without-gui -Df data.svg -d ${dpi} -e ${mapname}.png
./TBcutter.pl -f ${mapname}.png
width=$(file -b ${mapname}.png | sed -n "s/^[^0-9]*\([0-9]*\) x.*/\1/p")
height=$(file -b ${mapname}.png | sed -n "s/^[^0-9]*[0-9]* x \([0-9]*\).*/\1/p")
echo "Detected width is ${width}"
echo "Detected height is ${height}"
echo "Map Calibration data file v3.0
${mapname}.png
${width}
${height}
0;0;${minlon};${maxlat};
${width};0;${maxlon};${maxlat};
0;${height};${minlon};${minlat};
${width};${height};${maxlon};${minlat}; " > ${mapname}/${mapname}.gmi
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.