Preslovljavanje (Transliteration)

Коначно сам средио рачунар и сада могу да наставим где сам стао.

Дакле, најновија верзија плагина (http://svn.mpele.co.cc/SerbianTransliterator/) има могућност да се и релације пресловљавају, док у припремљеним фајловима оне су и даље издвојене.

Како стоје ствари што се тиче пресловљавања бројева зграда? Да ли је ишта потребно радити по том питању?

Ако је ико приметио да претходни домен више не ради да споменем да су фајлови за пресловљавање сада на: http://openstreetmap.iz.rs/

Имаш три лајка за ово :slight_smile:

Hvala! A gde je dostupan transliterator (i kod i paket)?

Све је премештено на http://svn.mpele.iz.rs/SerbianTransliterator/ .

Hvala mpele, mada je ova revizija 45 odjednom prestala da radi kod mene.

Koliko ja kontam, izgleda smo došli do ID-eva koji premašuju opseg Int-a?!

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2013-02-06 02:31:34
Last Changed Author: Don-vip
Revision: 5697
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2013-02-06 01:35:48 +0100 (Wed, 06 Feb 2013)
Last Changed Rev: 5697

Identification: JOSM/1.5 (5697 en_GB)
Memory Usage: 59 MB / 247 MB (23 MB allocated, but free)
Java version: 1.7.0_15, Oracle Corporation, Java HotSpot(TM) Client VM
Operating system: Windows XP
Dataset consistency test: No problems found

Plugin: AddrInterpolation (29210)
Plugin: PicLayer (29210)
Plugin: alignways (29210)
Plugin: download_along (29210)
Plugin: editgpx (29210)
Plugin: importvec (29210)
Plugin: mapdust (29210)
Plugin: mirrored_download (29210)
Plugin: namemanager (29210)
Plugin: openstreetbugs (29210)
Plugin: poly (29210)
Plugin: reverter (29296)
Plugin: serbiantransliterator (38)
Plugin: tageditor (29210)
Plugin: turnrestrictions (29210)
Plugin: utilsplugin2 (29241)
Plugin: waydownloader (29210)
Plugin: wayselector (29210)
Plugin: wikipedia (29218)

java.lang.NumberFormatException: For input string: "2163020816"
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at org.openstreetmap.josm.plugins.serbiantransliterator.PreslovljavanjeDialog.getRowZapisa(PreslovljavanjeDialog.java:443)
	at org.openstreetmap.josm.plugins.serbiantransliterator.PreslovljavanjeDialog.updateJOSMSelection(PreslovljavanjeDialog.java:392)
	at org.openstreetmap.josm.plugins.serbiantransliterator.PreslovljavanjeDialog$10.actionPerformed(PreslovljavanjeDialog.java:276)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.WaitDispatchSupport$2.run(Unknown Source)
	at java.awt.WaitDispatchSupport$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(Unknown Source)
	at java.awt.Dialog.show(Unknown Source)
	at java.awt.Component.show(Unknown Source)
	at java.awt.Component.setVisible(Unknown Source)
	at java.awt.Window.setVisible(Unknown Source)
	at java.awt.Dialog.setVisible(Unknown Source)
	at org.openstreetmap.josm.plugins.serbiantransliterator.StartPreslovljavanjeDialog$1.actionPerformed(StartPreslovljavanjeDialog.java:149)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$200(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Занимљиво. Ајд ми пошаљи osm фајл са проблематичним id-ом па ћу, чим будем имао времена да видим шта је у питању.

Evo probaj npr. na ovoj tački: http://www.openstreetmap.org/browse/node/2172295055

Trebalo bi po meni osvežiti dodatak da koristi svuda Long klasu za ID-e.

Милоше,
Пробај са најновијом верзијом (http://svn.mpele.iz.rs/SerbianTransliterator/). Чини ми се да сада коректно ради.

Radi, hvala Peđa!

Pozdrav

Imam JOSM instaliran, Win7 64bit, Java 7, i plug-in sam ubacio u: C:\Users\MOJEIME\AppData\Roaming\JOSM\plugins.

Međutim, nisam siguran ni da li se plugin učita, a isto tako nisam siguran ni kako se pokreće. Može li objašnjenje, par koraka, prvo da vidim da li je učitan, a posle i kako se pokreće. Nisam uspeo da nađem u ovim postovima nešto slično, tako da, izvinjavam se ako već negde ima objašnjeno.

Hvala
Branek

Добро дошао branek.

Генерално упутство за инсталирање додатака је дато на http://josm.openstreetmap.de/wiki/Help/Preferences/Plugins#Manuallyinstallingplugins , али чини ми се да си то већ пронашао. Дакле, пошто ископираш фајл потребно је да активираш плагин F12 → Plugins , рестартујеш ЈОСМ и под менијем EDIT ће се појавити ставка Еdit Nazivi.
Још бих додао да би радио са додатком потребно је да прво селектујеш објекте које желиш да пресловљаваш и да даље не би требало да је проблем…

Hvala Peđa,

uspeo sam. Sada je sve ok. Izostavljao sam korak aktiviranja dodatka.

branek

Имам техничких проблема са сервером који је до сада коришћен за освежавање фајлова на http://openstreetmap.iz.rs/ и http://openstreetmap.iz.rs/pumpe/ , па сада тражим алтернативу.

Досадашња пракса је била да се два-три пута недељно стартује скрипт који би скинуо 30-так MB са интернета, пар минута процесирао, и сличну количину послао на сервер. Идеално је да рачунар буде под linux-ом јер су за њега готове скрипте, мада су и други оперативни ситеми прихватљиви. Мени је проблем да то обављам на мом рачунару јер сам лимитиран приступом на интернет.

Пошто су масовна пресловљавања већ урађена и сада је остало само да се стање одржава можда више и нема потребе за већ полусажваканим издељеним фајловима. Можда је практичније да свако припреми фајлове сам за себе?

@mpele
Jel neko sem tebe i mene uopšte koristio te izlaze?

Slažem se da ne bi bio problem da svako radi za sebe po potrebi, ali bi nam onda dobro došlo neko javno mesto za skripte. Baš niko nema github repo ili nešto slično?

Немам тачну евиденцију ко је све користио фајлове, али рекао бих да број корисника није велики. У сваком случају велики посао је одрађен и сада је много лакше када пресловљава само нове ствари.

Ја могу да направим/поставим svn repo (рецимо svn.openstreetmap.iz.rs) за скрипте, мада је можда лепше да се негде отвори бесплатан налог. На openstreetmap.iz.rs можемо поставити блог као потпору за wiki, скрипте и тренутне активности са разним специјализованим прегледима. Под прегледима сам мислио на прегледе и за оне који желе да допринесу ОСМ-у и за оне који желе да користе већ унете податке. Ако има још неког ко је заинтересован да уложи мало времена у овако нешто нек се јави да видимо врели ли труда.

Док се не организујемо боље боље ево да наведем како се припремају фајлови за пресловљавање. Ја ћу се и даље трудити да ажурирам openstreetmap.iz.rs…

Дакле генерисање фајла за пресловљавање се врши помоћу командне:

java -cp serbiantransliterator.jar OSMParser -ulaz=serbia.osm -lektura -azuriratiName -azuriratiNameSr -azuriratiNameSrLatn

Потребно је напоменути да је улазни фајл osm који се може преузети sa http://download.geofabrik.de/europe/serbia.html.
Да би се поделио на регионе ово је bash скрипт:


POLIGONI=`ls ../Regioni_poly/RS*.poly`

counter=0
# Glavna petlja, pretpostavlje da je 'osmosis' u PATH
for i in ${POLIGONI}; do
    o=Regioni/`basename $i .poly`.osm
    komanda=$komanda" --bounding-polygon file=$i --write-xml file=$o"
    counter=`expr $counter + 1`
done

../osmosis-0.41/bin/osmosis --read-pbf file=../serbia.osm.pbf --tf reject-relations --tee $counter $komanda

Наравно у директоријуму Regioni_poly су одговарајуће границе региона.
За генерисање прегледа назива:


for file in $( ls -1 Regioni/*.osm )
do
    echo "java -cp serbiantransliterator.jar PregledNaziva -ulaz=$file "
    java -cp serbiantransliterator.jar PregledNaziva -ulaz=$file 
done 

Уколико желите да направите osm фајл са латиничним називима као подразумеваним:


#preslovljavanje
java -cp serbiantransliterator.jar OSMParser -ulaz=serbia.osm -name=latinica -azuriratiName -izlaz=zaOsmand/osmand.osm

#odstranjuje gde pravi problem
cat zaOsmand/osmand.osm | grep -v qуо > zaOsmand/osmand2.osm

Ово је корисно ако желите да сами генеришете мапе, а мало је незгодно ако немате ћириличну тастатуру на уређају (телефону). Конкретно ово корисним за генерисања мапа за osmand. Остало је да се уради и транслитерација и адреса у делу где је нумерација зграда, али отом потом…

Да ли постоји могућност прављења/припремања датотека за пресловљавање за државе у окружењу?
У том случају не би мењали ознаку name већ само додавали name:sr и name:sr-Latn.

Да ли транслитератор може да се допуни алгоритмом за препознавање назива са римским бројевима тако да кад се припремају датотеке за пресловљавање игнорише називе типа “Краља Петра I” или да они буду посебно разврстани?

Нисам баш разумео питање па ћу одговори на обе варијанте.

Требало би да је могуће и сада припремити фајл за пресловљавање при чему би се игнорисао статус тага name. То би требало да се добије са избацивањем -azuriratiName из команде, односно са:

java -cp serbiantransliterator.jar OSMParser -ulaz=serbia.osm -lektura -azuriratiNameSr -azuriratiNameSrLatn

А ако је питање било да ли је могуће да на openstreetmap.iz.rs буду припремљени фајлови одговор би био да је могуће али да је питање да ли постоји реална потреба за тиме. Иначе, већ ми је најављено да од краја маја више нећу моћи да користим сервер тако да је питање да ли ће се уопште и генерисати и фајлови за пресловљавање за Србију (као и остали прегледи).

Наравно да је могуће, али, на жалост, ја нема времена за то. Целокупни код је јавнодоступан па свако ко има знања/воље/времена је добродошао.

@Peđa
can your script run over buildings with addresses (i.e. addr:street & addr:city)?
http://tools.geofabrik.de/osmi/?view=addresses&lon=22.11353&lat=44.07360&zoom=13&opacity=1.00&overlays=buildings,buildings_with_addresses,postal_code,no_addr_street,street_not_found,nodes_with_addresses_defined,nodes_with_addresses_interpolated,interpolation,interpolation_errors,connection_lines,nearest_points,nearest_roads
The street name in the building addresses are in latin and the road names in cyrillic. Now the the routing engines don’t find the roads that belong to an address.