Portál AbcLinuxu, 21. května 2025 08:20
<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.