Potlatch 1.1 (server code)

This commit is contained in:
Richard Fairhurst 2009-07-08 20:52:02 +00:00
parent 9a8a8622ef
commit 369202787b
13 changed files with 358 additions and 48 deletions

View file

@ -302,7 +302,7 @@ class AmfController < ApplicationController
end end
# Get a way including nodes and tags. # Get a way including nodes and tags.
# Returns the way id, a Potlatch-style array of points, a hash of tags, and the version number. # Returns the way id, a Potlatch-style array of points, a hash of tags, the version number, and the user ID.
def getway(wayid) #:doc: def getway(wayid) #:doc:
amf_handle_error_with_timeout("'getway' #{wayid}") do amf_handle_error_with_timeout("'getway' #{wayid}") do
@ -310,6 +310,7 @@ class AmfController < ApplicationController
points = sql_get_nodes_in_way(wayid) points = sql_get_nodes_in_way(wayid)
tags = sql_get_tags_in_way(wayid) tags = sql_get_tags_in_way(wayid)
version = sql_get_way_version(wayid) version = sql_get_way_version(wayid)
uid = sql_get_way_user(wayid)
else else
# Ideally we would do ":include => :nodes" here but if we do that # Ideally we would do ":include => :nodes" here but if we do that
# then rails only seems to return the first copy of a node when a # then rails only seems to return the first copy of a node when a
@ -326,9 +327,10 @@ class AmfController < ApplicationController
end end
tags = way.tags tags = way.tags
version = way.version version = way.version
uid = way.changeset.user.id
end end
[0, '', wayid, points, tags, version] [0, '', wayid, points, tags, version, uid]
end end
end end
@ -415,7 +417,8 @@ class AmfController < ApplicationController
# Remove any elements where 2 seconds doesn't elapse before next one # Remove any elements where 2 seconds doesn't elapse before next one
revdates.delete_if { |d| revdates.include?(d+1) or revdates.include?(d+2) } revdates.delete_if { |d| revdates.include?(d+1) or revdates.include?(d+2) }
# Collect all in one nested array # Collect all in one nested array
revdates.collect! {|d| [d.strftime("%d %b %Y, %H:%M:%S")] + revusers[d.to_i] } revdates.collect! {|d| [d.succ.strftime("%d %b %Y, %H:%M:%S")] + revusers[d.to_i] }
revdates.uniq!
return ['way', wayid, revdates] return ['way', wayid, revdates]
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
@ -428,7 +431,7 @@ class AmfController < ApplicationController
def getnode_history(nodeid) #:doc: def getnode_history(nodeid) #:doc:
begin begin
history = Node.find(nodeid).old_nodes.reverse.collect do |old_node| history = Node.find(nodeid).old_nodes.reverse.collect do |old_node|
[old_node.timestamp.strftime("%d %b %Y, %H:%M:%S")] + change_user(old_node) [old_node.timestamp.succ.strftime("%d %b %Y, %H:%M:%S")] + change_user(old_node)
end end
return ['node', nodeid, history] return ['node', nodeid, history]
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
@ -595,6 +598,14 @@ class AmfController < ApplicationController
# 6. hash of node versions (node=>version) # 6. hash of node versions (node=>version)
def putway(renumberednodes, usertoken, changeset_id, wayversion, originalway, pointlist, attributes, nodes, deletednodes) #:doc: def putway(renumberednodes, usertoken, changeset_id, wayversion, originalway, pointlist, attributes, nodes, deletednodes) #:doc:
logger.info("renumberednodes is #{renumberednodes.inspect}")
logger.info("wayversion is #{wayversion}")
logger.info("pointlist is #{pointlist.inspect}")
logger.info("sendnodes is #{nodes.inspect}")
logger.info("deletednodes is #{deletednodes.inspect}")
amf_handle_error("'putway' #{originalway}") do amf_handle_error("'putway' #{originalway}") do
# -- Initialise # -- Initialise
@ -748,10 +759,11 @@ class AmfController < ApplicationController
def getpoi(id,timestamp) #:doc: def getpoi(id,timestamp) #:doc:
amf_handle_error("'getpoi' #{id}") do amf_handle_error("'getpoi' #{id}") do
id = id.to_i
n = Node.find(id) n = Node.find(id)
v = n.version v = n.version
unless timestamp == '' unless timestamp == ''
n = OldNode.find(id, :conditions=>['timestamp=?',DateTime.strptime(timestamp, "%d %b %Y, %H:%M:%S")]) n = OldNode.find(:first, :conditions => ['id = ? AND timestamp <= ?', id, timestamp], :order => 'timestamp DESC')
end end
if n if n
@ -937,7 +949,11 @@ class AmfController < ApplicationController
end end
def sql_get_way_version(wayid) def sql_get_way_version(wayid)
ActiveRecord::Base.connection.select_one("SELECT version FROM current_ways WHERE id=#{wayid.to_i}") ActiveRecord::Base.connection.select_one("SELECT version FROM current_ways WHERE id=#{wayid.to_i}")['version']
end
def sql_get_way_user(wayid)
ActiveRecord::Base.connection.select_one("SELECT user FROM current_ways,changesets WHERE current_ways.id=#{wayid.to_i} AND current_ways.changeset=changesets.id")['user']
end end
end end

View file

@ -23,6 +23,7 @@ class SwfController < ApplicationController
xmax=params['xmax'].to_f; xmax=params['xmax'].to_f;
ymin=params['ymin'].to_f; ymin=params['ymin'].to_f;
ymax=params['ymax'].to_f; ymax=params['ymax'].to_f;
start=params['start'].to_i;
# - Begin movie # - Begin movie
@ -54,7 +55,7 @@ class SwfController < ApplicationController
" AND "+OSM.sql_for_area(ymin,xmin,ymax,xmax,"gps_points.")+ " AND "+OSM.sql_for_area(ymin,xmin,ymax,xmax,"gps_points.")+
" AND (gps_points.timestamp IS NOT NULL) "+ " AND (gps_points.timestamp IS NOT NULL) "+
"ORDER BY fileid DESC,ts "+ "ORDER BY fileid DESC,ts "+
"LIMIT 10000" "LIMIT 10000 OFFSET #{start}"
else else
sql="SELECT latitude*0.0000001 AS lat,longitude*0.0000001 AS lon,gpx_id AS fileid,"+ sql="SELECT latitude*0.0000001 AS lat,longitude*0.0000001 AS lon,gpx_id AS fileid,"+
" EXTRACT(EPOCH FROM timestamp) AS ts, gps_points.trackid AS trackid "+ " EXTRACT(EPOCH FROM timestamp) AS ts, gps_points.trackid AS trackid "+
@ -62,7 +63,7 @@ class SwfController < ApplicationController
"WHERE "+OSM.sql_for_area(ymin,xmin,ymax,xmax,"gps_points.")+ "WHERE "+OSM.sql_for_area(ymin,xmin,ymax,xmax,"gps_points.")+
" AND (gps_points.timestamp IS NOT NULL) "+ " AND (gps_points.timestamp IS NOT NULL) "+
"ORDER BY fileid DESC,ts "+ "ORDER BY fileid DESC,ts "+
"LIMIT 10000" "LIMIT 10000 OFFSET #{start}"
end end
gpslist=ActiveRecord::Base.connection.select_all sql gpslist=ActiveRecord::Base.connection.select_all sql

View file

@ -1,8 +1,11 @@
# Potlatch autocomplete values # Potlatch autocomplete values
# each line should be: key / way|point|POI (tab) list_of_values # each line should be: key / way|point|POI (tab) list_of_values
# '-' indicates no autocomplete for values # '-' indicates no autocomplete for values
highway/way motorway,motorway_link,trunk,trunk_link,primary,primary_link,secondary,tertiary,unclassified,residential,service,bridleway,cycleway,footway,pedestrian,steps,living_street,track,road highway/way motorway,motorway_link,trunk,trunk_link,primary,primary_link,secondary,tertiary,unclassified,residential,service,bridleway,cycleway,footway,pedestrian,steps,living_street,track,road,path
highway/point mini_roundabout,traffic_signals,crossing,gate,stile,cattle_grid,toll_booth,incline,viaduct,motorway_junction,services,ford,bus_stop,turning_circle highway/point mini_roundabout,traffic_signals,crossing,incline,viaduct,motorway_junction,services,ford,bus_stop,turning_circle
highway/POI bus_stop
barrier/way hedge,fence,wall,ditch
barrier/point hedge,fence,wall,ditch,bollard,cycle_barrier,cattle_grid,toll_booth,gate,stile,kissing_gate,entrance
tracktype/way grade1,grade2,grade3,grade4,grade5 tracktype/way grade1,grade2,grade3,grade4,grade5
junction/way roundabout junction/way roundabout
cycleway/way lane,track,opposite_lane,opposite_track,opposite cycleway/way lane,track,opposite_lane,opposite_track,opposite
@ -16,12 +19,13 @@ aeroway/way runway,taxiway,apron
aeroway/POI aerodrome,terminal,helipad aeroway/POI aerodrome,terminal,helipad
aerialway/way cable_car,chair_lift,drag_lift aerialway/way cable_car,chair_lift,drag_lift
power/POI tower power/POI tower
power/point tower
power/way line power/way line
man_made/point works,beacon,survey_point,power_wind,power_hydro,power_fossil,power_nuclear,tower,water_tower,gasometer,reservoir_covered,lighthouse,windmill man_made/point works,beacon,survey_point,power_wind,power_hydro,power_fossil,power_nuclear,tower,water_tower,gasometer,reservoir_covered,lighthouse,windmill
man_made/way reservoir_covered,pier man_made/way reservoir_covered,pier
leisure/POI sports_centre,golf_course,stadium,marina,track,pitch,water_park,fishing,nature_reserve,park,playground,garden,common,slipway leisure/POI sports_centre,golf_course,stadium,marina,track,pitch,water_park,fishing,nature_reserve,park,playground,garden,common,slipway
leisure/way sports_centre,golf_course,stadium,marina,track,pitch,water_park,fishing,nature_reserve,park,playground,garden,common leisure/way sports_centre,golf_course,stadium,marina,track,pitch,water_park,fishing,nature_reserve,park,playground,garden,common
amenity/POI pub,biergarten,cafe,nightclub,restaurant,fast_food,parking,bicycle_parking,bicycle_rental,car_rental,car_sharing,fuel,telephone,toilets,recycling,public_building,place_of_worship,grave_yard,post_office,post_box,school,university,college,pharmacy,hospital,library,police,fire_station,bus_station,theatre,cinema,arts_centre,courthouse,prison,bank,bureau_de_change,atm,townhall amenity/POI pub,biergarten,cafe,nightclub,restaurant,fast_food,parking,bicycle_parking,bicycle_rental,car_rental,car_sharing,drinking_water,fuel,telephone,toilets,recycling,public_building,place_of_worship,grave_yard,post_office,post_box,school,university,college,pharmacy,hospital,library,police,fire_station,bus_station,theatre,cinema,arts_centre,courthouse,prison,bank,bureau_de_change,atm,townhall
amenity/way parking,bicycle_parking,car_rental,car_sharing,public_building,grave_yard,school,university,college,hospital,townhall amenity/way parking,bicycle_parking,car_rental,car_sharing,public_building,grave_yard,school,university,college,hospital,townhall
shop/POI supermarket,convenience,bicycle,outdoor shop/POI supermarket,convenience,bicycle,outdoor
shop/way supermarket shop/way supermarket
@ -40,11 +44,12 @@ boundary/way administrative,civil,political,national_park
sport/POI 10pin,athletics,baseball,basketball,bowls,climbing,cricket,cricket_nets,croquet,cycling,dog_racing,equestrian,football,golf,gymnastics,hockey,horse_racing,motor,multi,pelota,racquet,rugby,skating,skateboard,soccer,swimming,skiing,table_tennis,tennis sport/POI 10pin,athletics,baseball,basketball,bowls,climbing,cricket,cricket_nets,croquet,cycling,dog_racing,equestrian,football,golf,gymnastics,hockey,horse_racing,motor,multi,pelota,racquet,rugby,skating,skateboard,soccer,swimming,skiing,table_tennis,tennis
sport/way 10pin,athletics,baseball,basketball,bowls,climbing,cricket,cricket_nets,croquet,cycling,dog_racing,equestrian,football,golf,gymnastics,hockey,horse_racing,motor,multi,pelota,racquet,rugby,skating,skateboard,soccer,swimming,skiing,table_tennis,tennis sport/way 10pin,athletics,baseball,basketball,bowls,climbing,cricket,cricket_nets,croquet,cycling,dog_racing,equestrian,football,golf,gymnastics,hockey,horse_racing,motor,multi,pelota,racquet,rugby,skating,skateboard,soccer,swimming,skiing,table_tennis,tennis
abutters/way residential,retail,industrial,commercial,mixed abutters/way residential,retail,industrial,commercial,mixed
area/way yes,no area/way yes
bridge/way yes,no bridge/way yes
tunnel/way yes,no tunnel/way yes
cutting/way yes,no cutting/way yes
embankment/way yes,no embankment/way yes
building/way yes
lanes/way - lanes/way -
layer/way - layer/way -
surface/way paved,unpaved,gravel,dirt,grass surface/way paved,unpaved,gravel,dirt,grass
@ -91,6 +96,7 @@ postal_code/way -
description/point - description/point -
description/POI - description/POI -
description/way - description/way -
traffic_calming/point bump,chicane,cushion,hump,rumble_strip
addr:housenumber/point - addr:housenumber/point -
addr:street/point - addr:street/point -
addr:full/point - addr:full/point -

View file

@ -174,6 +174,7 @@ M <u>M</u>aximise editing window
P Create <u>p</u>arallel way P Create <u>p</u>arallel way
R <u>R</u>epeat tags R <u>R</u>epeat tags
S <u>S</u>ave (unless editing live) S <u>S</u>ave (unless editing live)
T <u>T</u>idy into straight line/circle
U <u>U</u>ndelete (show deleted ways) U <u>U</u>ndelete (show deleted ways)
X Cut way in two X Cut way in two
Z Undo Z Undo

View file

@ -10,20 +10,20 @@
"prompt_revertversion": "Tilbakestill til tidligere lagret versjon:" "prompt_revertversion": "Tilbakestill til tidligere lagret versjon:"
"tip_revertversion": Velg versjonen det skal tilbakestilles til "tip_revertversion": Velg versjonen det skal tilbakestilles til
"action_movepoi": flytter et POI (interessant punkt) "action_movepoi": flytter et POI (interessant punkt)
"tip_splitway": Del vei i valgt punkt (X) "tip_splitway": Del linje i valgt punkt (X)
"tip_direction": Veiretning, trykk for å snu "tip_direction": Retning på linje, trykk for å snu
"tip_clockwise": Sirkulær vei med klokka, trykk for å snu "tip_clockwise": Sirkulær linje med klokka, trykk for å snu
"tip_anticlockwise": Sirkulær vei mot klokka, trykk for å snu "tip_anticlockwise": Sirkulær linje mot klokka, trykk for å snu
"tip_noundo": Ingenting å angre "tip_noundo": Ingenting å angre
"action_mergeways": slår sammen to veier "action_mergeways": slår sammen to linjer
"tip_gps": Vis GPS sporlogger (G) "tip_gps": Vis GPS sporlogger (G)
"tip_options": Sett valg (velg kartbakgrunn) "tip_options": Sett valg (velg kartbakgrunn)
"tip_addtag": Legg til merke "tip_addtag": Legg til merke
"tip_addrelation": Legg til i en relasjon "tip_addrelation": Legg til i en relasjon
"tip_repeattag": Gjenta merker fra sist valgte vei (R) "tip_repeattag": Gjenta merker fra sist valgte linje (R)
"tip_alert": Det oppstod en feil, trykk for detaljer "tip_alert": Det oppstod en feil, trykk for detaljer
"hint_toolong": "for lang til å låse opp:\nvennligst del opp\ni mindre veier" "hint_toolong": "for lang til å låse opp:\nvennligst del opp\ni kortere linjer"
"hint_loading": laster veier "hint_loading": laster linjer
"prompt_welcome": Velkommen til OpenStreetMap! "prompt_welcome": Velkommen til OpenStreetMap!
"prompt_introduction": "Velg en knapp nedenfor for å redigere. Hvis du velger 'Start' redigerer du kartet direkte, endringer blir vanligvis synlige hver torsdag. Hvis du velger 'Øve' lagres ikke endringer, så du kan øve deg på å redigere.\nHusk OpenStreetMaps gyldne regler:\n\n" "prompt_introduction": "Velg en knapp nedenfor for å redigere. Hvis du velger 'Start' redigerer du kartet direkte, endringer blir vanligvis synlige hver torsdag. Hvis du velger 'Øve' lagres ikke endringer, så du kan øve deg på å redigere.\nHusk OpenStreetMaps gyldne regler:\n\n"
"prompt_dontcopy": Ikke kopier fra andre kart "prompt_dontcopy": Ikke kopier fra andre kart
@ -36,7 +36,7 @@
"help": Hjelp "help": Hjelp
"prompt_help": Finn ut hvordan du bruker Potlatch, programmet for kartredigering. "prompt_help": Finn ut hvordan du bruker Potlatch, programmet for kartredigering.
"track": Spor "track": Spor
"prompt_track": Overfør dine GPS-sporinger til (låste) veier for redigering. "prompt_track": Overfør dine GPS-sporinger til (låste) linjer for redigering.
"action_deletepoint": sletter et punkt "action_deletepoint": sletter et punkt
"deleting": sletter "deleting": sletter
"action_cancelchanges": avbryter endringer av "action_cancelchanges": avbryter endringer av
@ -47,33 +47,39 @@
"option_thinlines": Bruk tynne linjer uansett forstørrelse "option_thinlines": Bruk tynne linjer uansett forstørrelse
"option_custompointers": Bruk penn- og håndpekere "option_custompointers": Bruk penn- og håndpekere
"tip_presettype": Velg hva slags forhåndsinstillinger som blir vist i menyen "tip_presettype": Velg hva slags forhåndsinstillinger som blir vist i menyen
"action_waytags": sette merker på en vei "action_waytags": sette merker på en linje
"action_pointtags": sette merker på et punkt "action_pointtags": sette merker på et punkt
"action_poitags": sette merker på et POI (interessant punkt) "action_poitags": sette merker på et POI (interessant punkt)
"action_addpoint": legger til et punkt på enden av en vei "action_addpoint": legger til et punkt på enden av en linje
"add": Legg til "add": Legg til
"prompt_addtorelation": Legg $1 til en relasjon "prompt_addtorelation": Legg $1 til en relasjon
"prompt_selectrelation": Velg en relasjon som allerede finnes, eller lag en ny relasjon "prompt_selectrelation": Velg en relasjon som allerede finnes, eller lag en ny relasjon
"createrelation": Lag en ny relasjon "createrelation": Lag en ny relasjon
"tip_selectrelation": Legg til den valgte ruta "tip_selectrelation": Legg til den valgte ruta
"action_reverseway": snur en vei bak fram "action_reverseway": snur en linje bak fram
"tip_undo": Angre $1 (Z) "tip_undo": Angre $1 (Z)
"error_noway": Fant ikke veien $1 så det er ikke mulig å angre. (Kanskje den ikke er på skjermen lenger?) "error_noway": Fant ikke linjen $1 så det er ikke mulig å angre. (Kanskje den ikke er på skjermen lenger?)
"error_nosharedpoint": Veiene $1 og $2 deler ikke noe punkt lenger, så det er ikke mulig å angre. "error_nosharedpoint": Linjene $1 og $2 deler ikke noe punkt lenger, så det er ikke mulig å angre.
"error_nopoi": Fant ikke POI-et, så det er ikke mulig å angre. (Kanskje den ikke er på skjermen lenger?) "error_nopoi": Fant ikke POI-et, så det er ikke mulig å angre. (Kanskje den ikke er på skjermen lenger?)
"prompt_taggedpoints": Noen av punktene på denne veien er merket. Vil du virkelig slette? "prompt_taggedpoints": Noen av punktene på denne linjen har merker. Vil du virkelig slette?
"action_insertnode": legge til et punkt på veien "action_insertnode": legge til et punkt på linjen
"action_splitway": dele en vei "action_splitway": dele en linje
"editingmap": Redigerer kart "editingmap": Redigerer kart
"start": Start "start": Start
"play": Øve "play": Øve
"delete": Slett "delete": Slett
"a_way": $1 en vei "a_way": $1 en linje
"a_poi": $1 et POI "a_poi": $1 et POI
"action_moveway": flytter en vei "action_moveway": flytter en linje
"way": Vei "way": Linje
"point": Punkt "point": Punkt
"ok": Ok "ok": Ok
"existingrelation": Legg til en relasjon som er her fra før "existingrelation": Legg til en relasjon som er her fra før
"findrelation": Finn en relasjon som inneholder "findrelation": Finn en relasjon som inneholder
"norelations": Ingen relasjoner i området på skjermen "norelations": Ingen relasjoner i området på skjermen
"advice_toolong": For lang til å låse opp, linjen må deles i flere biter
"advice_waydragged": Linje flyttet (Z for å angre)
"advice_tagconflict": Ulike merker, vennligst sjekk (Z for å angre)
"advice_nocommonpoint": Linjene deler ikke et felles punkt
"option_warnings": Vis flytende advarsler
"reverting": Reverserer

View file

@ -0,0 +1,85 @@
"action_createpoi": POI oluşturuluyor
"hint_pointselected": nokta seçili\n(shift-tıkla yeni cizgi\nbaşlatmak için)
"action_movepoint": nokta taşınıyor
"hint_drawmode": yeni nokta için tıkla\nçizgi sona ermek için\nçift tıkla/ENTER bas
"hint_overendpoint": yolun son noktası\nbağlamak için tıkla\nbirleştirmek için shift-tıkla
"hint_overpoint": nokta üzerine\nbağlamak için tıkla
"gpxpleasewait": GPX izi işlenirken lütfen biraz bekleyin
"revert": Geri al
"cancel": Vazgeç
"prompt_revertversion": "Daha önce kaydedilmiş bir sürümüne dön:"
"tip_revertversion": Geri dönülecek sürümü seç
"action_movepoi": POI taşınıyor
"tip_splitway": Seçtiğin noktada yolu böl (X)
"tip_direction": Yolun yönü - ters yöne değiştirmek için tıkla
"tip_clockwise": saat yönünde dairesel yol - tersine dönmek için tıkla
"tip_anticlockwise": saatin ters yönünde dairesel yol - tersine dönmek için tıkla
"tip_noundo": Geri alınacak bir şey yok
"action_mergeways": iki yol birleştiriliyor
"tip_gps": GPS izlerini göster (G)
"tip_options": Ayarları değiştir (harita arka planını seç)
"tip_addtag": Yeni etiket ekle
"tip_addrelation": Bir ilişkiye ekle
"tip_repeattag": Etiketleri bir önceki seçtiğin yoldan kopyala (R)
"tip_alert": Bir hata oluştu - ayrıntılar için tıkla
"hint_toolong": "kilidi kaldırmak için yol fazla uzun:\nlütfen önce daha kısa\nyollara ayır"
"hint_loading": yollar yükleniyor
"prompt_welcome": "OpenStreetMap'e Hoşgeldin!"
"prompt_introduction": "Düzenlemek için aşağıdaki tuşlardan birini seç. 'Başla'ya tıklarsan, ana haritayı doğrudan düzenleyeceksin - değişiklikler genellikle Perşembe günleri gözükür. 'Deneme Tahtası'nı tıklarsan, değişikliklerin kaydedilmeyecektir, böylece düzenleme alıştırması yapabilirsin.\n\nOpenStreetMap'in kuralları anımsa:\n\n"
"prompt_dontcopy": Başka haritalardan kopyalamak kesinlikle yasaktır!
"prompt_accuracy": Hassasiyet önemlidir - bildiğin bölgeleri haritala
"prompt_enjoy": İyi eğlenceler!
"dontshowagain": Bu mesaj bir daha gösterme.
"prompt_start": OpenStreetMap ile harita çizmeye başla.
"prompt_practise": Harita üzerinde oyna - değişiklikler kaydedilmeyecek.
"practicemode": Deneme tahtası modu
"help": Yardım
"prompt_help": Potlatch, yani bu harita düzenleyici, nasıl kullanılır keşfet
"track": İz
"prompt_track": GPS izini, düzenlemek için (kilitli) bir yola dönüştür.
"action_deletepoint": bir nokta siliniyor
"deleting": siliniyor
"action_cancelchanges": "iptal ediliyor:"
"emailauthor": "\n\nLütfen bu hata konusunda richard\@systemeD.net'e bir e.posta at"
"error_connectionfailed": Maalesef OpenStreetMap sunucusuyla bağlantı koptu. Son değişiklikler kaydedilmedi.\n\nBir daha denemek ister misin?
"option_background": "Arkaplan:"
"option_fadebackground": Arkaplanı saydamlaştır
"option_thinlines": Tüm ölçeklerde ince çizgileri kullan
"option_custompointers": Kalem ve el işareti kullan
"tip_presettype": Menüde sunulan türleri seç
"action_waytags": yoldaki etiketler ayarlanıyor
"action_pointtags": noktadaki etiketler ayarlanıyor
"action_poitags": "POI'nin etiketleri ayarlanıyor"
"action_addpoint": yolun sonuna bir nokta ekleniyor
"add": Ekle
"prompt_addtorelation": ilişkiye $1 ekle
"prompt_selectrelation": Eklenecek mevcut bir ilişki seç, ya da yeni bir ilişki yarat.
"createrelation": Yeni bir ilişki yarat
"tip_selectrelation": Seçili rotaya ekle
"action_reverseway": yol tersine çevriliyor
"tip_undo": $1 Geri Al (Z)
"error_noway": $1 yolu bulunamıyor (belki atıdı) bu yüzden geri alamıyorum.
"error_nosharedpoint": $1 ve $2 yollarının paylaştıkları ortak bir nokta artık yok, bu yüzden bölmeyi geri alamıyorum.
"error_nopoi": "The POI cannot be found (perhaps you've panned away?) so I can't undo."
"prompt_taggedpoints": Bu yolun birkaç noktası etiketlenmiş. Gene de silinsin mi?
"action_insertnode": yola bir nokta ekleniyor
"action_splitway": yol bölünüyor
"editingmap": Harita düzenleme modu
"start": Başla
"play": Deneme Tahtası
"delete": Sil
"a_way": "yol: $1"
"a_poi": "POI: $1"
"action_moveway": yol taşınıyor
"way": Yol
"point": Nokta
"ok": Tamam
"existingrelation": Mevcut bir ilişkiye ekle
"findrelation": İçeren bir ilişki bul
"norelations": Çalışılan alanda ilişki yok
"advice_toolong": Kilidi kaldırmak için yol fazla uzun - lütfen önce daha kısa yollara ayır
"advice_waydragged": "Yol taşındı (geri almak için Z'ye bas)"
"advice_tagconflict": Etiketler eşleşmiyor - lütfen kontrol et
"advice_nocommonpoint": Yolların ortak noktası yok
"option_warnings": Uyarıları göster
"reverting": geri alınıyor

View file

@ -0,0 +1,85 @@
"action_createpoi": đang tạo địa điểm
"hint_pointselected": đã chọn điểm\n(shift-nhấn chuột để\nbắt đầu lối mới)
"action_movepoint": đang chuyển điểm
"hint_drawmode": nhấn chuột để thêm điểm\nnhấn đúp/Enter\nđể kết thúc lối
"hint_overendpoint": đang trên điểm kết thúc\nnhấn chuột để nối\nshift-nhấn chuột để hợp nhất
"hint_overpoint": đang trên điểm\nnhấn chuột để nối"
"gpxpleasewait": Xin chờ, đang xử lý tuyến đường GPX.
"revert": Lùi
"cancel": Hủy bỏ
"prompt_revertversion": "Lùi lại phiên bản cũ hơn:"
"tip_revertversion": Chọn phiên bản để lùi lại
"action_movepoi": đang chuyển địa điểm
"tip_splitway": Chia cắt lối tại điểm đã chọn (X)
"tip_direction": Hướng của lối - nhấn để đảo ngược
"tip_clockwise": Lối vòng theo chiều kim đồng hồ - nhấn để đảo ngược
"tip_anticlockwise": Lối vòng ngược chiều kim đồng hồ - nhấn để đảo ngược
"tip_noundo": Không có gì để lùi
"action_mergeways": đang hợp nhất hai lối
"tip_gps": Hiện các tuyến đường GPS (G)
"tip_options": Tùy chỉnh (chọn nền bản đồ)
"tip_addtag": Thêm thẻ mới
"tip_addrelation": Xếp vào quan hệ
"tip_repeattag": Chép các thẻ từ lối được chọn trước (R)
"tip_alert": Đã gặp lỗi - nhấn để xem chi tiết
"hint_toolong": "dài quá không thể mở khóa:\nxin chia cắt nó thành\ncác lối ngắn hơn"
"hint_loading": đang tải các lối
"prompt_welcome": Hoan nghênh bạn đã đến OpenStreetMap!
"prompt_introduction": Hãy chọn cách sử dụng ở dưới để bắt đầu sửa đổi. Nút "Bắt đầu" để cho bạn sửa đổi thẳng bản đồ chính - các thay đổi thường hiện ra mỗi thứ năm. Nút 'Nghịch ngợm' để cho bạn thử sửa đổi, các thay đổi của bạn không được lưu.\n\nHãy nhớ các quy tắc vàng của OpenStreetMap:\n\n
"prompt_dontcopy": Đừng sao chép từ bản đồ khác
"prompt_accuracy": Cần chính xác - chỉ vẽ những nơi đã thăm
"prompt_enjoy": Và chúc vui vẻ!
"dontshowagain": Không hiện thông báo này lần sau
"prompt_start": Bắt đầu đóng góp vào bản đồ OpenStreetMap.
"prompt_practise": Thử vẽ bản đồ - các thay đổi của bạn không được lưu.
"practicemode": Chế độ thử
"help": Trợ giúp
"prompt_help": Tìm hiểu cách sử dụng Potlatch, trình vẽ bản đồ này.
"track": Tuyến đường
"prompt_track": Chuyển đổi tuyến đường GPS thành các lối (khóa) để sửa đổi.
"action_deletepoint": đang xóa điểm
"deleting": đang xóa
"action_cancelchanges": đang hủy bỏ các thay đổi
"emailauthor": \n\nXin gửi thư điện tử cho richard\@systemeD.net báo cáo lỗi và giải thích bạn làm gì lúc khi gặp lỗi.
"error_connectionfailed": "Rất tiếc - không thể kết nối với máy chủ OpenStreetMap. Những thay đổi gần đây có thể chưa được lưu.\n\nBạn có muốn thử lại không?"
"option_background": "Nền:"
"option_fadebackground": Nhạt màu nền
"option_thinlines": Hiện đường hẹp ở các tỷ lệ
"option_custompointers": Hiện con trỏ bút và tay
"tip_presettype": Chọn các loại thẻ được định trước trong trình đơn.
"action_waytags": đang gắn thẻ vào lối
"action_pointtags": đang gắn thẻ vào điểm
"action_poitags": đang gắn thẻ vào địa điểm
"action_addpoint": đang thêm nốt vào cuối lối
"add": Thêm
"prompt_addtorelation": Xếp $1 vào quan hệ
"prompt_selectrelation": Chọn một quan hệ đã tồn tại để xếp vào, hoặc tạo ra quan hệ mới.
"createrelation": Tạo quan hệ mới
"tip_selectrelation": Thêm vào tuyến đường đã chọn
"action_reverseway": đang đảo ngược lối
"tip_undo": Lùi $1 (Z)
"error_noway": Không tìm thấy $1 (có lẽ bạn đã kéo ra khỏi vùng?) nên không thể lùi lại.
"error_nosharedpoint": Các lối $1 và $2 không còn cắt ngang nhau tại điểm nào, nên không thể lùi lại việc chia cắt lối.
"error_nopoi": Không tìm thấy địa điểm (có lẽ bạn đã kéo ra khỏi vùng?) nên không thể lùi lại.
"prompt_taggedpoints": Một số điểm trên lối này đã được gắn thẻ. Bạn có chắc muốn xóa nó?
"action_insertnode": đang gắn nốt vào lối
"action_splitway": đang chia cắt lối
"editingmap": Sửa đổi bản đồ
"start": Bắt đầu
"play": Nghịch ngợm
"delete": Xóa
"a_way": $1 lối
"a_poi": $1 địa điểm
"action_moveway": đang chuyển lối
"way": Lối
"point": Điểm
"ok": OK
"existingrelation": Xếp vào quan hệ đã tồn tại
"findrelation": Tìm kiếm quan hệ chứa
"norelations": Không có quan hệ trong vùng này
"advice_toolong": Dài quá không thể mở khóa - xin chia cắt nó thành các lối ngắn hơn
"advice_waydragged": Đã kéo lối (Z để lùi lại)
"advice_tagconflict": Các thẻ không hợp - xin kiểm tra lại
"advice_nocommonpoint": Các lối không cắt ngang nhau tại điểm nào
"option_warnings": Nổi các cảnh báo
"reverting": đang lùi sửa

View file

@ -0,0 +1,85 @@
"action_createpoi": 建立一個 POI
"hint_pointselected": 已選擇一個 point\n(按 shift再點選 point 可\n開始畫新的線段)
"action_movepoint": 移動 point
"hint_drawmode": 單擊加入新的 point\n雙擊/Enter\n可結束此線段
"hint_overendpoint": 在結束 point 上\n單擊會製作交叉\n按 shift 再點選會合併
"hint_overpoint": 在 point 上\n單擊會製作交叉
"gpxpleasewait": 在處理 GPX 追蹤時請稍候。
"revert": 回復
"cancel": 取消
"prompt_revertversion": "回復到較早儲存的版本:"
"tip_revertversion": 選擇要回復的版本
"action_movepoi": 移動 POI
"tip_splitway": 在選取的 point 將路徑分開 (X)
"tip_direction": 路徑的方向 - 單擊可反轉方向
"tip_clockwise": Clockwise circular way - click to reverse
"tip_anticlockwise": Anti-clockwise circular way - click to reverse
"tip_noundo": 沒有可復原的項目
"action_mergeways": 正在合併兩條路徑
"tip_gps": 顯示 GPS 追蹤 (G)
"tip_options": 設定選項 (選擇地圖背景)
"tip_addtag": 加入新的標籤
"tip_addrelation": 加入關係
"tip_repeattag": 重複前一次選取路徑的標籤 (R)
"tip_alert": 發生錯誤 - 點選以取得詳細資訊
"hint_toolong": "路徑太長而無法解除鎖定:\n請將它分離為\n較短的路徑"
"hint_loading": 正在載入路徑
"prompt_welcome": 歡迎使用 OpenStreetMap
"prompt_introduction": "選擇下列按鈕進行編輯。如果您選擇「開始」,將會直接編輯地圖 - 所做的變更通常會在每週四顯示出來。如果您選擇「練習」,您的變更將不會儲存,所以可以用來練習編輯。\n\n請記得 OpenStreetMap 的黃金定律:\n\n"
"prompt_dontcopy": 不要複製其他地圖
"prompt_accuracy": 準確性很重要 - 只繪製您到過的地方
"prompt_enjoy": 好好享受!
"dontshowagain": 不要再顯示這個訊息
"prompt_start": 開始繪製 OpenStreetMap。
"prompt_practise": 練習製圖 - 您的變更不會被儲存。
"practicemode": 練習模式
"help": 求助
"prompt_help": 了解如何使用 Potlatch這個地圖編輯器。
"track": 追蹤
"prompt_track": 將您的 GPS 追蹤轉換為 (鎖定的) 路徑以便編輯。
"action_deletepoint": 正在刪除 point
"deleting": 刪除中
"action_cancelchanges": 取消變更:
"emailauthor": \n\n請寄一封程式錯誤報告的電子郵件給 richard\@systemeD.net並說明當時您在做什麼動作。
"error_connectionfailed": 抱歉 - 對 OpenStreetMap 伺服器的連線失敗了。任何最新的變更將不會儲存。\n\n您是否要再試一次
"option_background": "背景:"
"option_fadebackground": 淡化背景
"option_thinlines": 在所有縮放等級使用細線
"option_custompointers": Use pen and hand pointers
"tip_presettype": 選擇在選擇中要提供哪種類型的預先設定。
"action_waytags": 設定路徑上的標籤
"action_pointtags": 設定 point 上的標籤
"action_poitags": 設定 POI 上的標籤
"action_addpoint": 在路徑的結尾加上節點
"add": 加入
"prompt_addtorelation": 將 $1 加入為關係
"prompt_selectrelation": 選擇一個既存的關係來加入,或是建立新的關係。
"createrelation": 建立新的關係
"tip_selectrelation": 加入到選取的路線
"action_reverseway": 反轉路徑
"tip_undo": 復原 $1 (Z)
"error_noway": "找不到路徑 $1 (perhaps you've panned away?) ,因此我不能復原它。"
"error_nosharedpoint": 路徑 $1 和 $2 不再分享共同 point因此我無法復原此分離動作。
"error_nopoi": "The POI cannot be found (perhaps you've panned away?) so I can't undo."
"prompt_taggedpoints": 這個路徑上的部分 point 已有標籤。確定要刪除?
"action_insertnode": 在路徑中加入節點
"action_splitway": 分離一條路徑
"editingmap": 編輯地圖
"start": 開始
"play": 練習
"delete": 刪除
"a_way": $1 路徑
"a_poi": $1 POI
"action_moveway": 移動路徑
"way": 路徑
"point": Point
"ok": 確定
"existingrelation": 加入既存的關係
"findrelation": 尋找關係有包含
"norelations": 在目前的區域中沒有此關係
"advice_toolong": 路徑太長而無法解除鎖定 - 請將它分離為較短的路徑
"advice_waydragged": 拖曳的路徑 (按 Z 復原)
"advice_tagconflict": 標籤不符 - 請檢查
"advice_nocommonpoint": 這些路徑不再分享共同 point
"option_warnings": 顯示浮動式警示
"reverting": 正在反轉

View file

@ -54,7 +54,7 @@ ruins: place=,tourism=,historic=ruins,name=(type name here)
way/recreation way/recreation
golf course: landuse=,leisure=golf_course golf course: landuse=,leisure=golf_course
pitch: landuse=,leisure=pitch, sport=(type sport here) pitch: landuse=,leisure=pitch,sport=(type sport here)
playground: landuse=,leisure=playground playground: landuse=,leisure=playground
recreation ground: landuse=recreation_ground,leisure= recreation ground: landuse=recreation_ground,leisure=
sports centre: landuse=,leisure=sports_centre sports centre: landuse=,leisure=sports_centre
@ -99,14 +99,15 @@ mini roundabout: place=,highway=mini_roundabout
traffic lights: place=,highway=traffic_signals traffic lights: place=,highway=traffic_signals
point/footway point/footway
bridge: place=,highway=bridge gate: place=,barrier=gate
gate: place=,highway=gate stile: place=,barrier=stile
stile: place=,highway=stile cattle grid: place=,barrier=cattle_grid
cattle grid: place=,highway=cattle_grid
point/cycleway point/cycleway
bike park: place=,highway=,amenity=bicycle_parking,capacity=(type number of spaces) bike park: place=,barrier=,amenity=bicycle_parking,capacity=(type number of spaces)
gate: place=,highway=gate,amenity=,capacity= bollard: place=,barrier=bollard,amenity=,capacity=
cycle barrier: place=,barrier=cycle_barrier,amenity=,capacity=
gate: place=,barrier=gate,amenity=,capacity=
point/waterway point/waterway
lock: place=,waterway=,lock=yes,name=(type name here) lock: place=,waterway=,lock=yes,name=(type name here)
@ -177,7 +178,7 @@ windmill: man_made=windmill,power=,amenity=,name=,religion=,denomination=
POI/recreation POI/recreation
golf course: leisure=golf_course golf course: leisure=golf_course
pitch: leisure=pitch, sport=(type sport here) pitch: leisure=pitch,sport=(type sport here)
playground: leisure=playground playground: leisure=playground
recreation ground: landuse=recreation_ground,leisure= recreation ground: landuse=recreation_ground,leisure=
sports centre: leisure=sports_centre sports centre: leisure=sports_centre

View file

@ -55,6 +55,9 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj
args.lat = lat; args.lat = lat;
args.lon = lon; args.lon = lon;
args.zoom = zoom; args.zoom = zoom;
if (objtype && objid) {
args[objtype] = objid;
}
node.href = setArgs("/edit", args); node.href = setArgs("/edit", args);
node.style.fontStyle = 'normal'; node.style.fontStyle = 'normal';
} else { } else {

View file

@ -0,0 +1,18 @@
h1 { font-family: Arial,Helvetica,sans-serif;
font-size: 18px;
color: #DDDDFF; }
h2 { font-family: Arial,Helvetica,sans-serif;
font-size: 16px;
color: #DDDDFF; }
h3 { font-family: Arial,Helvetica,sans-serif;
font-size: 14px;
color: #DDDDFF; }
p { font-family: Arial,Helvetica,sans-serif;
font-size: 12px;
color: #FFFFFF; }
a:link { color: #00FFFF;
text-decoration: underline; }

Binary file not shown.

View file

@ -280,10 +280,13 @@ class AmfControllerTest < ActionController::TestCase
# ['way',wayid,history] # ['way',wayid,history]
assert_equal 'way', history[0] assert_equal 'way', history[0]
assert_equal latest.id, history[1] assert_equal latest.id, history[1]
# for some reason undocumented, the potlatch API now prefers dates # We use dates rather than version numbers here, because you might
# over version numbers. presumably no-one edits concurrently any more? # have moved a node within a way (i.e. way version not incremented).
assert_equal latest.timestamp.strftime("%d %b %Y, %H:%M:%S"), history[2].first[0] # The timestamp is +1 (timestamp.succ) because we say "give me the
assert_equal oldest.timestamp.strftime("%d %b %Y, %H:%M:%S"), history[2].last[0] # revision of 15:33:02", but that might actually include changes at
# 15:33:02.457.
assert_equal latest.timestamp.succ.strftime("%d %b %Y, %H:%M:%S"), history[2].first[0]
assert_equal oldest.timestamp.succ.strftime("%d %b %Y, %H:%M:%S"), history[2].last[0]
end end
def test_getway_history_nonexistent def test_getway_history_nonexistent