Compare commits

...

224 Commits

Author SHA1 Message Date
DennisSchiefer f7150057d5 slight version bump to 0.1.8.1 2012-09-18 12:02:43 +01:00
DennisSchiefer c3288528bc Merge remote-tracking branch 'origin/develop' 2012-09-18 12:01:37 +01:00
DennisSchiefer f1e935e904 Swedish translation thanks to Tobias Johansson 2012-09-18 11:47:08 +01:00
DennisSchiefer 72d5b60500 added comment 2012-09-17 15:26:46 +01:00
DennisSchiefer 621d2a6504 graceful decay if route names are not implemented in router engine 2012-09-17 15:19:58 +01:00
DennisSchiefer eefaabbd16 added route names in tooltips (remember to remove temporary names when
this goes live in the router)
2012-09-17 09:43:16 +01:00
DennisSchiefer 3d5f242398 error correction 2012-09-12 16:47:56 +01:00
DennisSchiefer 98ac1224cf corrected Turkish translation,
added Portuguese translation
2012-09-12 16:47:08 +01:00
DennisSchiefer 88fac9ab51 translations thanks to the EU Comenius Project
Necdet Varoglu (turkey)
Madalina Ionescu (romania)
2012-09-12 13:31:31 +01:00
DennisSchiefer be56bafdc4 romanian and turkish translation,
added to japanese translation
2012-09-12 13:18:26 +01:00
DennisSchiefer 21acdd90e0 corrected Nominatim link,
added incomplete Japanese translation
2012-09-10 07:16:33 +01:00
DennisSchiefer 891630bb4b remove highlight marker when switching alternatives 2012-09-03 15:44:18 +01:00
DennisSchiefer 2b8eefe238 updated Spanish translation 2012-09-03 08:44:11 +01:00
DennisSchiefer 54270f5169 when showing a highlight marker, respective description stays selected 2012-09-03 08:27:08 +01:00
DennisSchiefer ce1db933f3 added temporary marker when hovering over a route description 2012-09-03 08:02:18 +01:00
DennisSchiefer e9a31746b6 fixed order of tile servers for Chrome and IE 2012-08-31 15:11:39 +01:00
DennisSchiefer 22435f693d convenience method for changing marker tooltips 2012-08-31 14:50:22 +01:00
DennisSchiefer 71d0268642 updated readme 2012-08-31 14:41:39 +01:00
DennisSchiefer 35d2c6871f Merge remote-tracking branch 'github/master' 2012-08-31 14:32:59 +01:00
DennisSchiefer 9a7863f8d5 removed whitespaces 2012-08-31 14:31:03 +01:00
DennisSchiefer 716e5ed6b0 fix for engine selector size when changing languages 2012-08-31 14:24:35 +01:00
DennisSchiefer 8f4e10de2d Merge pull request #17 from DennisOSRM/patch-3
Typefix for automatic deploy script
2012-08-31 06:00:25 -07:00
Project OSRM 99b36e8f46 Typefix for automatic deploy script 2012-08-31 15:58:13 +03:00
DennisSchiefer d64fb6781c removed test routing engines for release 2012-08-31 08:17:05 +01:00
DennisSchiefer cdaef51b20 version push to 0.1.8 2012-08-31 07:41:01 +01:00
DennisSchiefer 40ad5a22ad styles for qrcode image 2012-08-31 07:34:37 +01:00
DennisSchiefer 54232645ae higher qrcode window 2012-08-31 07:34:12 +01:00
DennisSchiefer 618bb3ef70 bugfix so that HTML5 capable browsers use canvas 2012-08-31 07:22:57 +01:00
DennisSchiefer a83a3d125d adding QR codes 2012-08-30 16:50:59 +01:00
DennisSchiefer f2a4a02af8 bugfix for Leaflet bug 2012-08-30 15:46:08 +01:00
DennisSchiefer cdc98b2ad8 fixed bug with printing window 2012-08-30 15:13:36 +01:00
DennisSchiefer aee90bf530 added localization for qr code 2012-08-30 15:13:22 +01:00
DennisSchiefer db857166b2 fixed bug that mapping options were no longer localized 2012-08-30 07:59:27 +01:00
DennisSchiefer 0d13f1f6d7 bugfix for distance units 2012-08-28 12:29:22 +01:00
DennisSchiefer 65f53b6563 changed mouse cursor on layers control 2012-08-28 09:18:30 +01:00
DennisSchiefer d4c5725613 inactive buttons use default cursor 2012-08-28 09:09:43 +01:00
DennisSchiefer ab99ffc241 added OSRM layers control;
refactored checkboxes in mapping block
2012-08-28 08:57:14 +01:00
DennisSchiefer 794140711d - gui animations no longer trigger an onEndTransition event on loading
- refactored control management (handle is stored with map)
- refactored inactive control buttons (no background change)
- added localization strings for zooming and default search engine
- renaming: OSRM.MapView -> OSRM.Control.Map
2012-08-27 16:24:37 +01:00
DennisSchiefer 6dcea6d808 changed icons for locations and layers 2012-08-27 12:58:41 +01:00
DennisSchiefer c9f229fea8 Bulgarian translation thanks to Konstantin Delchev 2012-08-27 12:58:13 +01:00
DennisSchiefer d3d3ebb5de added new buttons for map zooming and requesting important locations 2012-08-27 10:27:19 +01:00
DennisSchiefer 94ad1003e9 bugfix to store shortest distance to route within the the closest
point no longer required
2012-08-24 14:16:50 +01:00
DennisSchiefer afb70126ad prevent drag after dragEnd bugfix no longer need 2012-08-24 14:03:06 +01:00
DennisSchiefer 532d7cb057 added switching between search engines
- works with different languages
- works with links

refactored selector code:
- changed method names
- changed method parameters (object -> id),
- added method to rename all options of dropdown menu

refactored distance format selector code:
- changed method names
- changed variable names
- changed how to init/select element/change language of dropdown menu

refactored maintenance notification overrides:
- changed names of default variables
2012-08-24 13:27:21 +01:00
DennisSchiefer e98afb46e7 removed new gui buttons again 2012-08-24 08:00:27 +01:00
DennisSchiefer f8779e479e temporary commit 2012-08-24 07:58:29 +01:00
DennisSchiefer e1cb34cf38 further restructuring of gui buttons 2012-08-23 17:08:55 +01:00
DennisSchiefer f2cd56b329 fixed bug with geocoder 2012-08-23 14:45:38 +01:00
DennisSchiefer 80d51683d4 first additions for multiple engine gui 2012-08-23 14:12:45 +01:00
DennisSchiefer ee8d04656d added function to zoom on user and translations 2012-08-23 07:55:25 +01:00
DennisSchiefer 3fc8c4309f added tooltip for gui boxes 2012-08-22 16:20:28 +01:00
DennisSchiefer 3f1c3e0923 moved gui version/timestamp to configuration box 2012-08-22 15:47:09 +01:00
DennisSchiefer 695ef4746b changed legal notice (added link to Project OSRM website thanks to the
kind request of a fellow OSM user)
2012-08-22 14:31:27 +01:00
DennisSchiefer 995466e89f raw image for new controls 2012-08-22 14:03:28 +01:00
DennisSchiefer 4f28b2fe69 changed sorting/filtering step of processing geocoder results:
relations are no longer skipped; boundaries are highest ranked;
duplicate locations are removed
2012-08-22 14:02:52 +01:00
DennisSchiefer 5498aa03a5 additional controls (temporary) 2012-08-22 13:16:16 +01:00
DennisSchiefer 60d236dd3e images for additional controls 2012-08-22 13:15:55 +01:00
DennisSchiefer f571b5c7e5 circumvent leaflet racing condition #918 by switching off animation
during initialization
2012-08-22 07:25:45 +01:00
DennisSchiefer 792404b311 changed cz -> cs 2012-08-14 17:22:41 +01:00
DennisSchiefer 862cde1056 fix for maps without attribution control 2012-08-14 17:16:04 +01:00
DennisSchiefer 71399daf00 added scale control 2012-08-14 16:51:24 +01:00
DennisSchiefer 320bbcfb20 Merge branch 'trial/multiple_servers' into trial/leaflet04 2012-08-14 15:37:05 +01:00
DennisSchiefer 4bb52cfe8c czech translation thanks to miszka999 2012-08-14 15:29:00 +01:00
DennisSchiefer 915baf57c3 corrected russian translation (direction 6, 8) 2012-08-14 15:15:42 +01:00
DennisSchiefer f31abcea80 fixed bugs with printing -> needed to recreate all objects in printing
window context
2012-08-14 15:13:33 +01:00
DennisSchiefer 3ab5a22890 fix for culture and icons 2012-08-14 13:46:46 +01:00
DennisSchiefer 5a2dd78694 removed old marker/icon classes 2012-08-14 12:39:47 +01:00
DennisSchiefer 6c2e391622 leaflet 0.4 compliant markers and icons 2012-08-14 12:39:26 +01:00
DennisSchiefer 9a6c6cd485 added routing_engine and routing_metric to describe the currently chosen
routing
2012-08-14 06:59:42 +01:00
DennisSchiefer ea84f774a7 fixed problem with using non L.LatLng objects 2012-08-13 16:12:41 +01:00
DennisSchiefer 5901b25e69 set dashArray for non-dashed lines 2012-08-13 15:03:48 +01:00
DennisSchiefer d9b0ab3d2e reenabled features;
removed no longer needed custom initialization of Control.Layers
2012-08-13 14:56:33 +01:00
DennisSchiefer f004a65db1 removed dashed polyine 2012-08-13 14:46:26 +01:00
DennisSchiefer b792d44b4e removed deprecated TileLayer.Bing 2012-08-13 13:29:36 +01:00
DennisSchiefer e8eb342434 finalized BingLayers;
added culture support outside of BingLayers.js
2012-08-13 13:29:03 +01:00
DennisSchiefer 0916e3f2e3 added new BingLayer code 2012-08-13 13:10:09 +01:00
DennisSchiefer 5f089e628b switched to leaflet0.4;
commented out most GUI
2012-08-13 13:04:26 +01:00
shiin de2e070dde remove one indirection from routing server url 2012-07-30 15:13:46 +02:00
shiin 8ecae7ef97 support for multiple routing servers 2012-07-30 15:06:15 +02:00
shiin ecd342224e notifications can be switched on/off in OSRM.config,
notifications can be localized
2012-07-30 14:40:56 +02:00
shiin 1f7a724ded added function to check whether a variable holds a number 2012-07-30 14:39:01 +02:00
DennisSchiefer ecd04188df fixed bug with giving a destination in the url 2012-07-16 13:31:41 +01:00
DennisSchiefer 71f55dc30a fix for old route links breaking 2012-07-10 15:40:09 +01:00
DennisSchiefer 1746946b70 changed notification time from 3min to 30min 2012-07-10 15:24:56 +01:00
DennisSchiefer 3746a25057 fixed bug with .class vs ["class"] 2012-07-10 14:44:33 +01:00
DennisSchiefer 17bfe95cd3 Russian translation (thanks to Barboska) 2012-07-09 09:38:32 +01:00
DennisSchiefer e90fe88cc0 added whitespaces to the tooltips for alternatives before the numbers 2012-07-06 11:50:25 +01:00
DennisSchiefer eba6330db1 removed backup file 2012-07-05 14:50:16 +01:00
DennisSchiefer a21aaf330e added backup to tooltip handling with wrapper function (not entirely
working)
2012-07-05 14:49:59 +01:00
DennisSchiefer 390a14ac77 clarified introduction 2012-07-05 14:46:05 +01:00
DennisSchiefer f2d4f31b8f moved tooltip position a bit down and on top of everything else besides
exclusive notifications
2012-07-05 14:36:01 +01:00
DennisSchiefer ed72366e69 version jump to 0.1.7 2012-07-05 14:32:48 +01:00
DennisSchiefer 6feccd2507 clarified tooltips 2012-07-05 14:31:25 +01:00
DennisSchiefer f27e05564d fixed bug with dragging via markers while an alternative is active 2012-07-05 14:25:42 +01:00
DennisSchiefer d1bc05fcae clarified tooltips,
changed timers to short durations for testing
2012-07-05 14:16:36 +01:00
DennisSchiefer 8323ce78e3 fixed bug with route reversal 2012-07-05 14:08:12 +01:00
DennisSchiefer 517f321ccc Merge branch 'trial/notifications' into develop
Conflicts:
	WebContent/main.html
2012-07-05 14:02:37 +01:00
DennisSchiefer 5e24749826 clarified comments 2012-07-05 14:00:47 +01:00
DennisSchiefer 8f6cd99ff6 changed notification triggers from wrapped functions to simple function
calls
2012-07-05 13:53:07 +01:00
DennisSchiefer efa959d112 added clarifying comment 2012-07-05 13:01:27 +01:00
DennisSchiefer f119b79101 removed comment 2012-07-05 13:00:57 +01:00
DennisSchiefer 8b17e4864e changed check to make sure parameters exist 2012-07-05 09:45:54 +01:00
DennisSchiefer 4ebe4848af Merge branch 'trial/alternatives' into develop
Conflicts:
	WebContent/routing/OSRM.Routing.js
2012-07-05 09:33:00 +01:00
DennisSchiefer ba46d77d1d finalized alternative integration 2012-07-05 09:24:27 +01:00
DennisSchiefer 0c946f1476 added additional notifications,
better argument passing to wrapped trigger functions for notifications,
notification boxes adapt in size to contained text,
notification functions renamed,
2012-07-04 17:27:08 +01:00
DennisSchiefer 22783a53cd wrapper function for localization pulldown menu to work as trigger
function for notifications
2012-07-04 17:25:04 +01:00
DennisSchiefer 770f3b5979 added some notifications 2012-07-04 16:36:10 +01:00
DennisSchiefer a90b2371c2 Merge branch 'trial/geocoder' into develop 2012-07-04 16:15:27 +01:00
DennisSchiefer 052f7060c1 changed look of geocoder results a bit (vertical alignment, debug
messages)
2012-07-04 16:15:04 +01:00
DennisSchiefer 314ff97ca0 nominatim results with type "arial_views" will not be displayed 2012-07-04 15:42:20 +01:00
DennisSchiefer 35bb9efa51 separated normal notifications from important notifications (that lock
the screen)
2012-07-04 15:35:06 +01:00
DennisSchiefer 60436e9928 filter boundaries 2012-07-04 14:07:31 +01:00
DennisSchiefer f575ff2ba5 increased limit on search results 2012-07-04 13:58:06 +01:00
DennisSchiefer 84a960ae1e highlight markers are rendered below normal markers 2012-07-04 13:40:23 +01:00
DennisSchiefer 38ccb9d974 Merge branch 'trial/zooming' into develop 2012-07-04 13:32:36 +01:00
DennisSchiefer 5e3de973d7 recentering/zooming on a route is only done, when the route is first
drawn by clicking on the map and only if the rout doesn't fit into the
current viewport
2012-07-04 13:31:45 +01:00
DennisSchiefer f385ea4e97 modified notification markers, so that a trigger function can be named
that will prevent the notification from happening
2012-07-04 12:36:43 +01:00
DennisSchiefer c38c0b6f03 added notifications 2012-07-04 09:00:11 +01:00
DennisSchiefer 74154ab0a6 alternatives work - sort of 2012-07-04 07:42:49 +01:00
DennisSchiefer c33dbe67d8 printing and alternatives works! 2012-07-03 15:17:29 +01:00
DennisSchiefer 903c4577d1 removed selection restrictions 2012-07-03 14:51:31 +01:00
DennisSchiefer c07f87edca removed geomformat=cmp from jsonp requests as it is now the default 2012-07-03 14:42:23 +01:00
DennisSchiefer 537b9b0623 added stuff to alternatives 2012-07-03 14:39:29 +01:00
DennisSchiefer d88baaf1a4 zoom/pan to route when it doesn't fit on the screen 2012-07-03 13:37:12 +01:00
DennisSchiefer 232409d70b selector elements now use offsetHeight and offsetWidth instead of
clientHeight and clientWidth of invisible selector element
2012-07-03 10:24:10 +01:00
DennisSchiefer c549311349 setting a marker on the map no longer centers on the marker 2012-07-03 10:06:57 +01:00
DennisSchiefer 40c6ac0c28 added letvian translation (thanks to Lauris Bukšis-Haberkorns) 2012-07-03 09:59:16 +01:00
DennisSchiefer 80d2918203 alternatives work with zooming now 2012-06-21 08:26:57 +01:00
shiin 90c48abeaf more alternative stuff 2012-06-20 23:52:43 +02:00
shiin badd48f166 more alternative stuff 2012-06-20 22:08:25 +02:00
DennisSchiefer caa99038c5 no more special characters! 2012-06-18 16:35:10 +01:00
DennisSchiefer ec62156322 additional fix to the slight/sharp left dilema 2012-06-18 16:23:08 +01:00
DennisSchiefer 1423d80556 fixed language error on vs. onto 2012-06-18 08:48:03 +01:00
shiin 59775a9864 more towards alternatives 2012-06-17 18:23:57 +02:00
shiin 7b94a3092f preparation for zooming 2012-06-17 11:04:27 +02:00
shiin 7d82661927 first code for managing alternatives 2012-06-17 09:07:32 +02:00
shiin eeec69dfab added Spanish translation 2012-06-16 13:04:01 +02:00
shiin a8731d91ab fixed bug with "slight left" and "sharp left" instructions being
reversed
2012-06-16 12:44:19 +02:00
DennisSchiefer 3c5c26a8b5 fixed a bug where elements of hidden GUIBoxes could be selected by
tabbing.
2012-06-14 08:08:14 +01:00
DennisSchiefer 2e71ad3060 added fix for touch enabled devices using the layer control 2012-06-14 07:35:26 +01:00
DennisSchiefer 2ad919c970 added geocoder filtering and using Nominatim icons 2012-06-13 10:29:30 +01:00
DennisSchiefer 308b8e5f48 Merge branch 'feature/geocoder' into develop 2012-06-13 07:08:07 +01:00
DennisSchiefer 8677f15d47 zoom button now has same distance to left and right buttons 2012-06-13 07:07:31 +01:00
DennisSchiefer 5923d034c9 added button to zoom on current route 2012-06-12 16:58:16 +01:00
DennisSchiefer 05410d5587 using viewbox, removing zoom-on-route 2012-06-12 15:55:39 +01:00
shiin 1c76c992c1 merged two ideas of raphnik for testing 2012-06-11 14:58:00 +02:00
DennisSchiefer 1973198f3d changed order of loading scripts 2012-05-16 16:27:11 +01:00
DennisSchiefer f2ca2ccaed bumped version to 0.1.6 2012-05-16 12:37:59 +01:00
DennisSchiefer 4cdf683447 Merge branch 'develop'
Conflicts:
	AUTHORS.md
	WebContent/OSRM.config.js
	WebContent/localization/OSRM.Locale.dk.js
	WebContent/localization/OSRM.Locale.pl.js
2012-05-16 12:37:01 +01:00
DennisSchiefer 3bce384f9b changed test server to work server 2012-05-16 12:31:57 +01:00
DennisSchiefer 03bb7f4f40 Merge branch 'trial/viass' into trial/gui 2012-05-16 12:29:44 +01:00
DennisSchiefer c900cd0122 Merge remote-tracking branch 'origin/trial/gui' into trial/gui
Conflicts:
	WebContent/OSRM.config.js
2012-05-16 10:32:21 +01:00
DennisSchiefer 2fbfdc93b1 moved maintenance message to config file 2012-05-16 10:27:25 +01:00
DennisSchiefer cd68e21b95 moved maintenance message to config file 2012-05-16 10:08:10 +01:00
DennisSchiefer 8677218404 transparancy for IE8 2012-05-16 10:07:21 +01:00
DennisSchiefer f6744f9aa1 corrected jsonp call to fetch timestamp 2012-05-16 07:41:36 +01:00
DennisSchiefer df623df3e9 compatibility 2012-05-16 07:34:04 +01:00
shiin 6665207066 added basic maintenance message 2012-05-15 23:02:19 +02:00
shiin 26262541a4 completed language-dependent bing maps 2012-05-15 21:03:58 +02:00
DennisSchiefer ba0064af99 prepared for bing language specific maps 2012-05-15 17:19:09 +01:00
DennisSchiefer 8d40bc7f4f added option to query current layer 2012-05-15 16:24:10 +01:00
DennisSchiefer b85849b6bd fix to timeoutRoute call 2012-05-15 15:10:24 +01:00
DennisSchiefer 543b54e2af fix to polnish translation 2012-05-15 15:10:02 +01:00
DennisSchiefer dfd5ee9134 added via marker numbering 2012-05-15 13:48:24 +01:00
DennisSchiefer 19ae6db308 made timestamp secure against injections 2012-05-15 13:47:36 +01:00
DennisSchiefer 2a634041a7 different colors for history routes 2012-05-15 13:36:21 +01:00
DennisSchiefer 34389f9789 added support for new API regarding via_nodes 2012-05-15 11:39:39 +01:00
DennisSchiefer 2ee7ea87cd prevent bug when first route yields a timeout 2012-05-15 10:42:05 +01:00
DennisSchiefer 6186f3f27e added option for Bing Layers (you still have to provide your own API
key, though!)
2012-05-15 10:33:45 +01:00
DennisSchiefer a53a34a261 integrated attribution fix to Leaflet code 2012-05-15 10:08:40 +01:00
DennisSchiefer e706a9867d data_updated -> data_timestamp 2012-05-14 17:50:17 +01:00
DennisSchiefer 9e5689858e when checking if two routes are equal, only check up to 5 digits 2012-05-14 17:12:02 +01:00
DennisSchiefer 40900f6f56 put Danish after German (de < dk) 2012-05-14 16:31:24 +01:00
DennisSchiefer f266655b9b added data update date 2012-05-14 15:40:23 +01:00
DennisSchiefer 8b0ae1bc5f added Italien translsation (thanks to sabas),
clarified procedure to add commits
2012-05-14 15:39:59 +01:00
DennisSchiefer 979327ec82 refactored code for history routes 2012-05-14 12:18:04 +01:00
DennisSchiefer 0976358fdf added comment 2012-05-14 07:12:29 +01:00
DennisSchiefer 9502689ff8 correction for IE css 2012-05-14 07:06:29 +01:00
shiin 36f5b36c6b more work on history routes 2012-05-13 20:28:24 +02:00
shiin 101fc5d02f removed third parameter from OSRM.bind as it is no longer used 2012-05-13 12:59:19 +02:00
shiin e9736173b0 added clarifying comment to JSONP call 2012-05-13 12:51:49 +02:00
shiin 1ec7c6ab50 did some renaming 2012-05-12 11:33:05 +02:00
shiin f90d1db802 made html + css look better 2012-05-12 08:22:21 +02:00
DennisSchiefer 14ca66459a history routes work now (i hope) 2012-05-11 16:25:06 +01:00
DennisSchiefer e7b3590352 commented out route history 2012-05-11 15:08:04 +01:00
DennisSchiefer c0e86c47c2 changed many names for jsonp routing functions 2012-05-11 12:30:00 +01:00
DennisSchiefer 4a8c2f323c removed comments 2012-05-11 08:23:39 +01:00
DennisSchiefer d4e6ad8a05 added funtionality to the show previous routes button 2012-05-10 15:28:18 +01:00
DennisSchiefer f95e515f20 fixed bug with IE and select elements,
made config box nicer
2012-05-10 14:44:20 +01:00
DennisSchiefer 85ea79701c work on history routes 2012-05-10 14:43:20 +01:00
DennisSchiefer 357ec5acfc danish: da -> dk 2012-05-10 12:53:51 +01:00
DennisSchiefer 47b2268504 test 2012-05-10 12:52:55 +01:00
DennisSchiefer 224c55dec1 fixed bug that did not always remove drag marker on reset 2012-05-10 12:26:56 +01:00
DennisSchiefer 1727187b5e Danish da -> dk 2012-05-10 11:01:50 +01:00
shiin 4d28f02273 route history test 2 2012-05-09 22:34:27 +02:00
shiin a329b1259e finished new gui for language toggle 2012-05-09 22:22:51 +02:00
DennisSchiefer e39479b908 changes localization to new selector elements,
completed units selector,
modified localization selector
2012-05-09 17:27:11 +01:00
DennisSchiefer 2b4935c29c added code to create selector elements with our look&feel 2012-05-09 17:23:11 +01:00
DennisSchiefer 3e15c0a164 tests with showing routing history 2012-05-09 16:22:18 +01:00
DennisSchiefer 7830f82b62 added language support for new elements 2012-05-09 15:21:11 +01:00
shiin 84677ddddf moving UI to new boxes 2012-05-08 22:37:27 +02:00
shiin c8912ad6ee fixed printing bug in IE8 2012-05-08 21:40:55 +02:00
shiin 2d956983a5 finished new box design 2012-05-08 20:52:41 +02:00
DennisSchiefer 884f79a620 new handling of gui boxes (work in progress) 2012-05-08 16:58:08 +01:00
DennisSchiefer 39f33b670d added functions for binding functions to a context and for concating
them
2012-05-08 15:58:54 +01:00
DennisSchiefer a975dba975 first steps to make printing work with IE8 2012-05-08 15:57:25 +01:00
DennisSchiefer 50aea3310a fixed bug that caused wrong destinations when clicking on a routing
instruction after zooming
2012-05-08 13:32:44 +01:00
DennisSchiefer 6c1c830c0d commented out stuff 2012-05-08 10:23:22 +01:00
shiin 826cbc9a24 added parameter to set meters/miles,
changed toHumanDistance functions so that conditions don't need to be
checked all the time
2012-05-06 19:10:43 +02:00
shiin 7451cc3150 added Danish translation 2012-05-06 18:45:13 +02:00
shiin 0e9dcc30b7 added miles/feet display (without gui option at the moment) 2012-05-06 18:37:23 +02:00
shiin 222e4e8916 testing route history 2012-05-06 18:36:58 +02:00
DennisSchiefer a3cdba5044 moved localization and printing paths to (internal) variables, so it's
easier to place everything in a different directory
2012-05-04 13:05:30 +01:00
DennisSchiefer 57040e6924 minor fixes in printing for IE8 2012-05-04 08:46:14 +01:00
DennisSchiefer b9a817ce26 bug with redrawing print route 2012-05-03 16:26:11 +01:00
DennisSchiefer 4130144687 removed Leaflet relative path 2012-05-03 15:25:58 +01:00
DennisSchiefer ec5934364a images moved from css style to main.js 2012-05-03 14:18:11 +01:00
DennisSchiefer 23d1ea2a32 polnish tranlation added 2012-05-03 09:06:34 +01:00
shiin 28e78e6ea6 Übersetzung 2012-04-28 08:54:53 +02:00
shiin 90925bd91d made printing window more robust (on refresh, stand-alone opening,
closing browser window...)
2012-04-28 08:33:55 +02:00
shiin 42f38a42db reconverted all routing arrows 2012-04-28 08:32:52 +02:00
shiin ab8c700a94 removed localization directory from config file 2012-04-27 21:09:29 +02:00
shiin 10a96e3aba bugfix 2012-04-27 20:52:53 +02:00
DennisSchiefer 99f0abef0c changed some mouse cursors 2012-04-27 17:29:49 +01:00
116 changed files with 9666 additions and 2636 deletions
+15 -2
View File
@@ -1,4 +1,4 @@
The following people contributed code to the Open Source Routing Machine:
The following people contributed to the Open Source Routing Machine web frontend:
Dennis Schieferdecker
Dennis Luxen
@@ -8,4 +8,17 @@ Nicolas Belett Vigneron
Moyg
Jean-Frederic
Zbigniew Czernik
Jonas Häggqvist
Jonas Häggqvist
Sabas
Paul Spencer
Raphael Pinson
Juan Luis Rodriguez Ponce
Lauris Bukšis-Haberkorns
Barboska
miszka999
Konstantin Delchev
Fumito Mizuno
Necdet Varoglu (OSM-Comenius Project)
Madalina Ionescu (OSM-Comenius Project)
Luis Costa (OSM-Comenius Project)
Tobias Johansson
+13 -5
View File
@@ -10,8 +10,7 @@ A deployed version of the the web frontend can be seen at [(3)].
Setup
-----
The frontend should work directly as provided.
Several settings - including the URL for the routing server and the geocoder server - can be specified in `OSRM.config.js`.
Different tile servers can be specified in `OSRM.Map.js`.
Settings - including URLs of the routing server, geocoder server and tile servers - are specified in `OSRM.config.js`.
Note that the URL shortener used for generating route links only works with URLs pointing to the official Project-OSRM website.
@@ -29,9 +28,10 @@ Please use the OSRM-Project bug tracker [(4)] for submitting any bug reports or
Contribute
----------
If you like to contribute, you can simply fork the project and start coding.
When you are going to provide a more substantial addition, please create a new branch first.
For pull requests use the develop branch as target, never the master branch.
If you like to contribute, simply fork the project and start coding.
It is best practice to create a new branch (from the current master) with a descriptive name for your contributions.
When you are done, send a pull request from that branch.
With this workflow, each pull request is isolated and can be easily merged.
Integration into Project-OSRM repository
@@ -49,6 +49,14 @@ To successfully work a repository that contains submodules, use the following gi
Note that the frontend can also be checked out independently of the Project-OSRM repository.
Compatibility
-------------
The frontend has been tested with Firefox 3.0+, Internet Explorer 8+ and Chrome 18+.
Certain visuals like rounded corners or moving boxes will only show in newer browser versions.
But no actual functionality is affected by this.
Note that the frontend will not work with Internet Explorer 6 or 7.
References
----------
[(1)] Cloudmade Leaflet: http://leaflet.cloudmade.com/
+3 -2
View File
@@ -19,10 +19,11 @@ or see http://www.gnu.org/licenses/agpl.txt.
// [has to be loaded before all other OSRM classes]
var OSRM = {};
OSRM.VERSION = '0.1.5.1';
OSRM.DATE = '120507';
OSRM.VERSION = '0.1.8.1';
OSRM.DATE = '120918';
OSRM.CONSTANTS = {};
OSRM.DEFAULTS = {};
OSRM.GLOBALS = {};
OSRM.Control = {}; // control container
OSRM.G = OSRM.GLOBALS; // abbreviations
OSRM.C = OSRM.CONSTANTS;
+61 -20
View File
@@ -19,35 +19,55 @@ or see http://www.gnu.org/licenses/agpl.txt.
// [has to be loaded directly after OSRM.base]
OSRM.DEFAULTS = {
HOST_ROUTING_URL: 'http://router.project-osrm.org/viaroute',
HOST_SHORTENER_URL: 'http://map.project-osrm.org/shorten/',
ROUTING_ENGINES: [
{ url: 'http://router.project-osrm.org/viaroute',
timestamp: 'http://router.project-osrm.org/timestamp',
metric: 0,
label: 'ENGINE_0',
}
],
WEBSITE_URL: document.URL.replace(/#*(\?.*|$)/i,""), // truncates URL before first ?, and removes tailing #
HOST_GEOCODER_URL: 'http://nominatim.openstreetmap.org/search',
HOST_REVERSE_GEOCODER_URL: 'http://nominatim.openstreetmap.org/reverse',
WEBSITE_URL: document.URL.replace(/#*(\?.*|$)/i,""), // truncates URL before first ?, and removes tailing #
JSONP_TIMEOUT: 10000,
HOST_SHORTENER_URL: 'http://map.project-osrm.org/shorten/',
SHORTENER_PARAMETERS: '%url&jsonp=%jsonp',
SHORTENER_REPLY_PARAMETER: 'ShortURL',
ROUTING_ENGINE: 0,
DISTANCE_FORMAT: 0, // 0: km, 1: miles
GEOCODER_BOUNDS: '',
ZOOM_LEVEL: 14,
HIGHLIGHT_ZOOM_LEVEL: 16,
JSONP_TIMEOUT: 10000,
ONLOAD_ZOOM_LEVEL: 5,
ONLOAD_LATITUDE: 48.84,
ONLOAD_LONGITUDE: 10.10,
ONLOAD_SOURCE: "",
ONLOAD_TARGET: "",
HIGHLIGHT_ZOOM_LEVEL: 16,
GEOCODER_BOUNDS: '', // the world is not enough!
//GEOCODER_BOUNDS: '&bounded=1&viewbox=-27.0,72.0,46.0,36.0', // bounds for Europe
SHORTENER_PARAMETERS: '%url&jsonp=%jsonp',
SHORTENER_REPLY_PARAMETER: 'ShortURL',
LANGUAGE: "en",
LANGUAGE_FILES_DIRECTORY: "localization/",
LANUGAGE_ONDEMAND_RELOADING: true,
LANGUAGE_SUPPORTED: [
{display_name:"en", encoding:"en"},
{display_name:"da", encoding:"da"},
{display_name:"de", encoding:"de"},
{display_name:"fi", encoding:"fi"},
{display_name:"fr", encoding:"fr"},
{display_name:"pl", encoding:"pl"}
{encoding:"en", name:"English"},
{encoding:"bg", name:"Български"},
{encoding:"cs", name:"Česky"},
{encoding:"de", name:"Deutsch"},
{encoding:"dk", name:"Dansk"},
{encoding:"es", name:"Español"},
{encoding:"fi", name:"Suomi"},
{encoding:"fr", name:"Français"},
{encoding:"it", name:"Italiano"},
{encoding:"ja", name:"日本人"},
{encoding:"lv", name:"Latviešu"},
{encoding:"pl", name:"Polski"},
{encoding:"pt", name:"Portugues"},
{encoding:"ro", name:"Română"},
{encoding:"ru", name:"Русский"},
{encoding:"sv", name:"Svenska"},
{encoding:"tr", name:"Türkçe"}
],
TILE_SERVERS: [
@@ -70,6 +90,27 @@ OSRM.DEFAULTS = {
url:'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png',
attribution:'Map data &copy; 2011 OpenStreetMap contributors, Imagery &copy; 2011 CloudMade',
options:{maxZoom: 18}
}
]
};
},
{
display_name: 'Bing Road',
apikey:'AjCb2f6Azv_xt9c6pl_xok96bgAYrXQNctnG4o07sTj4iS9N68Za4B3pRJyeCjGr', // please use your own apikey (http://msdn.microsoft.com/en-us/library/ff428642.aspx)
options:{type:"Road", minZoom: 1},
bing:true,
},
{
display_name: 'Bing Aerial',
apikey:'AjCb2f6Azv_xt9c6pl_xok96bgAYrXQNctnG4o07sTj4iS9N68Za4B3pRJyeCjGr', // please use your own apikey (http://msdn.microsoft.com/en-us/library/ff428642.aspx)
options:{type:"Aerial", minZoom: 1},
bing:true,
}
],
NOTIFICATIONS: {
LOCALIZATION: 1800000, // 30min
CLICKING: 60000, // 1min
DRAGGING: 120000, // 2min
MAINTENANCE: false
},
OVERRIDE_MAINTENANCE_NOTIFICATION_HEADER: undefined,
OVERRIDE_MAINTENANCE_NOTIFICATION_BODY: undefined
};
+94 -14
View File
@@ -34,7 +34,7 @@ call: function(marker_id, query) {
if(query=="")
return;
//geo coordinates given -> directly draw results
// geo coordinates given -> directly draw results
if(query.match(/^\s*[-+]?[0-9]*\.?[0-9]+\s*[,;]\s*[-+]?[0-9]*\.?[0-9]+\s*$/)){
var coord = query.split(/[,;]/);
OSRM.Geocoder._onclickResult(marker_id, coord[0], coord[1]);
@@ -42,8 +42,11 @@ call: function(marker_id, query) {
return;
}
//build request for geocoder
var call = OSRM.DEFAULTS.HOST_GEOCODER_URL + "?format=json&json_callback=%jsonp" + OSRM.DEFAULTS.GEOCODER_BOUNDS + "&accept-language="+OSRM.Localization.current_language+"&q=" + query;
// build basic request for geocoder
var call = OSRM.DEFAULTS.HOST_GEOCODER_URL + "?format=json&json_callback=%jsonp" + OSRM.DEFAULTS.GEOCODER_BOUNDS + "&accept-language="+OSRM.Localization.current_language+"&limit=30&q=" + query;
// prioritize results in currently shown mapview
var bounds = OSRM.G.map.getBounds();
call += "&viewbox=" + bounds._southWest.lat + "," + bounds._northEast.lng + "," + bounds._northEast.lat + "," + bounds._southWest.lng;
OSRM.JSONP.call( call, OSRM.Geocoder._showResults, OSRM.Geocoder._showResults_Timeout, OSRM.DEFAULTS.JSONP_TIMEOUT, "geocoder_"+marker_id, {marker_id:marker_id,query:query} );
},
@@ -71,33 +74,62 @@ _showResults: function(response, parameters) {
OSRM.Geocoder._showResults_Empty(parameters);
return;
}
if(response.length == 0) {
OSRM.Geocoder._showResults_Empty(parameters);
return;
}
// filter/sort inputs
var filtered_response_temp = []; // filter results
for(var i=0, iEnd=response.length; i < iEnd; i++){
var result = response[i];
if( OSRM.Geocoder._filterResult( result ) )
continue;
filtered_response_temp.push( result );
}
if(filtered_response_temp.length == 0) { // stop if no results remain
OSRM.Geocoder._showResults_Empty(parameters);
return;
}
filtered_response_temp.sort( OSRM.Geocoder._compareResults ); // rank results
filtered_response_temp.sort( OSRM.Geocoder._compareLocations ); // remove duplicate locations (stable sort -> retain highest ranked)
var filtered_response = [];
filtered_response.push( filtered_response_temp[0] );
for(var i=1, iEnd = filtered_response_temp.length; i<iEnd; i++) {
var prev_result = filtered_response_temp[i-1];
var result = filtered_response_temp[i];
if( result.lat != prev_result.lat || result.lon != prev_result.lon ) {
filtered_response.push( result );
}
}
filtered_response.sort( OSRM.Geocoder._compareResults ); // rank results again
// show first result
OSRM.Geocoder._onclickResult(parameters.marker_id, response[0].lat, response[0].lon);
OSRM.Geocoder._onclickResult(parameters.marker_id, filtered_response[0].lat, filtered_response[0].lon);
if( OSRM.G.markers.route.length > 1 ) // if a route is displayed, we don't need to show other possible geocoding results
return;
return;
// show possible results for input
var html = "";
html += '<table class="results medium-font">';
for(var i=0; i < response.length; i++){
var result = response[i];
for(var i=0; i < filtered_response.length; i++){
var result = filtered_response[i];
//odd or even ?
var rowstyle='results-body-odd';
if(i%2==0) { rowstyle='results-body-even'; }
html += '<tr class="'+rowstyle+'">';
html += '<td class="results-body-counter"><span">'+(i+1)+'.</span></td>';
if(!result.icon)
result.icon = "http://nominatim.openstreetmap.org/images/mapicons/poi_point_of_interest.glow.12.png";
html += '<td class="results-body-counter"><img src="'+ result.icon + '" alt=""/></td>';
html += '<td class="results-body-items">';
if(result.display_name){
html += '<div class="results-body-item" onclick="OSRM.Geocoder._onclickResult(\''+parameters.marker_id+'\', '+result.lat+', '+result.lon+');">'+result.display_name+'</div>';
html += '<div class="results-body-item" onclick="OSRM.Geocoder._onclickResult(\''+parameters.marker_id+'\', '+result.lat+', '+result.lon+');">'+result.display_name;
// debug output to show osm_type, class, type
// html += '<br/><span class="results-body-item-remark small-font">[osm_type: ' + result.osm_type + ', class: ' + result.class + ', type: ' + result.type + ']</span>';
html += '</div>';
}
html += "</td></tr>";
}
@@ -105,8 +137,8 @@ _showResults: function(response, parameters) {
document.getElementById('information-box-header').innerHTML =
"<div class='header-title'>"+OSRM.loc("SEARCH_RESULTS")+"</div>" +
"<div class='header-content'>("+OSRM.loc("FOUND_X_RESULTS").replace(/%i/,response.length)+")</div>";
"<div class='header-content'>(found "+response.length+" results)"+"</div>";
"<div class='header-content'>("+OSRM.loc("FOUND_X_RESULTS").replace(/%i/,filtered_response.length)+")</div>";
"<div class='header-content'>(found "+filtered_response.length+" results)"+"</div>";
document.getElementById('information-box').innerHTML = html;
},
_showResults_Empty: function(parameters) {
@@ -125,7 +157,55 @@ _showResults_Timeout: function() {
"<div class='header-title'>"+OSRM.loc("SEARCH_RESULTS")+"</div>" +
"<div class='header-content'>("+OSRM.loc("FOUND_X_RESULTS").replace(/%i/,0)+")</div>";
document.getElementById('information-box').innerHTML = "<div class='no-results big-font'>"+OSRM.loc("TIMED_OUT")+"</div>";
},
},
// filter search results [true: result will not be displayed]
_filterResult: function(result) {
// if( result.osm_type == "relation")
// return true;
if( result.type == "aerial_views")
return true;
return false;
},
// comparator for sorting results [higher weight: result will appear first]
_compare_class_weights: {
boundary: 9000,
place: 8000,
highway: 7000,
},
_compare_type_weights: {
country: 13,
state: 12,
county: 11,
city: 10,
town: 9,
village: 8,
hamlet: 7,
suburb: 6,
locality: 5,
farm: 4
},
_compareResults: function(lhs, rhs) {
var class_values = OSRM.Geocoder._compare_class_weights;
var type_values = OSRM.Geocoder._compare_type_weights;
var lhs_value = (-class_values[ lhs["class"] ] || 0) + (-type_values[ lhs.type ] || 0);
var rhs_value = (-class_values[ rhs["class"] ] || 0) + (-type_values[ rhs.type ] || 0);
return (lhs_value - rhs_value);
},
// comparator for sorting objects according to their locations
_compareLocations: function(lhs, rhs) {
if( lhs.lat != rhs.lat )
return lhs.lat < rhs.lat;
else
return lhs.lon < rhs.lon;
},
// [reverse geocoding]
+193
View File
@@ -0,0 +1,193 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM route management (handles drawing of route geometry - current route, old route, unnamed route, highlight unnamed streets)
// [this holds the route geometry]
OSRM.HistoryRoute = function() {
// style and count of history routes
this._history_styles = [{color:'#FFFFFF', opacity:0.5, weight:5, dashArray:""},
{color:'#0000DD', opacity:0.45, weight:5, dashArray:""},
{color:'#0000BB', opacity:0.40, weight:5, dashArray:""},
{color:'#000099', opacity:0.35, weight:5, dashArray:""},
{color:'#000077', opacity:0.30, weight:5, dashArray:""},
{color:'#000055', opacity:0.25, weight:5, dashArray:""},
{color:'#000033', opacity:0.20, weight:5, dashArray:""},
{color:'#000011', opacity:0.15, weight:5, dashArray:""},
{color:'#000000', opacity:0.10, weight:5, dashArray:""}
];
this._history_length = this._history_styles.length;
// actual history data
this._history = [];
for(var i=0, size=this._history_length; i<size; i++) {
var history = {};
history.route = new OSRM.SimpleRoute("current" , {dashArray:""} );
history.markers = [];
history.checksum = null;
this._history.push(history);
}
// helper functions bound to this
this._initiate_redrawHistory = OSRM.bind(this, this._getRoute_RedrawHistory);
this._callback_redrawHistory = OSRM.bind(this, this._showRoute_RedrawHistory);
};
OSRM.extend( OSRM.HistoryRoute,{
// switch history routes on/off
activate: function() {
this.storeHistoryRoute = this._storeHistoryRoute;
this.fetchHistoryRoute = this._fetchHistoryRoute;
this.showHistoryRoutes = this._showHistoryRoutes;
this.clearHistoryRoutes = this._clearHistoryRoutes;
OSRM.G.map.on('zoomend', this._initiate_redrawHistory );
this.storeHistoryRoute();
},
deactivate: function() {
this.clearHistoryRoutes();
this.storeHistoryRoute = this.empty;
this.fetchHistoryRoute = this.empty;
this.showHistoryRoutes = this.empty;
this.clearHistoryRoutes = this.empty;
OSRM.G.map.off('zoomend', this._initiate_redrawHistory );
},
// empty function
empty: function() {},
storeHistoryRoute: function() {},
fetchHistoryRoute: function() {},
showHistoryRoutes: function() {},
clearHistoryRoutes: function() {},
// actual functions
_storeHistoryRoute: function() {
var route = OSRM.G.route;
if( !route.isShown() || !route.isRoute() )
return;
// store current route in staging spot
var hint_data = OSRM.G.response.hint_data;
this._history[0].route.setPositions( route.getPositions() );
this._history[0].checksum = hint_data.checksum;
this._history[0].markers = [];
var markers = this._getCurrentMarkers();
for(var i=0,size=markers.length; i<size; i++) {
var position = { lat:markers[i].lat, lng:markers[i].lng, hint:hint_data.locations[i] };
this._history[0].markers.push(position);
}
},
_fetchHistoryRoute: function() {
if( this._history[0].markers.length == 0 )
return;
if( OSRM.G.route.isShown() && this._equalMarkers(this._history[0].markers, this._getCurrentMarkers()) )
return;
if( this._equalMarkers(this._history[0].markers, this._history[1].markers) )
return;
// move all routes down one position
for(var i=this._history_length-1; i>0; i--) {
this._history[i].route.setPositions( this._history[i-1].route.getPositions() ); // copying positions quicker than creating new route!
this._history[i].markers = this._history[i-1].markers;
this._history[i].checksum = this._history[i-1].checksum;
}
// reset staging spot
this._history[0].route.setPositions( [] );
this._history[0].markers = [];
this._history[0].checksum = null;
},
_showHistoryRoutes: function() {
for(var i=1,size=this._history_length; i<size; i++) {
this._history[i].route.setStyle( this._history_styles[i] );
this._history[i].route.show();
OSRM.G.route.hideOldRoute();
}
},
_clearHistoryRoutes: function() {
for(var i=0,size=this._history_length; i<size; i++) {
this._history[i].route.hide();
this._history[i].route.setPositions( [] );
this._history[i].markers = [];
this._history[i].checksum = null;
}
},
// get positions of current markers (data of jsonp response used, as not all data structures up-to-date!)
_getCurrentMarkers: function() {
var route = [];
var positions = OSRM.G.route.getPositions();
if(positions.length == 0)
return route;
for(var i=0; i<OSRM.G.response.via_points.length; i++)
route.push( {lat:OSRM.G.response.via_points[i][0], lng:OSRM.G.response.via_points[i][1]} );
return route;
},
// check if two routes are equivalent by checking their markers
_equalMarkers: function(lhs, rhs) {
if(lhs.length != rhs.length)
return false;
for(var i=0,size=lhs.length; i<size; i++) {
if( lhs[i].lat.toFixed(5) != rhs[i].lat.toFixed(5) || lhs[i].lng.toFixed(5) != rhs[i].lng.toFixed(5) )
return false;
}
return true;
},
// requery history routes
_showRoute_RedrawHistory: function(response, history_id) {
if(!response)
return;
var positions = OSRM.RoutingGeometry._decode(response.route_geometry, 5);
this._history[history_id].route.setPositions(positions);
this._updateHints(response, history_id);
},
_getRoute_RedrawHistory: function() {
for(var i=0,size=this._history_length; i<size; i++)
if( this._history[i].markers.length > 0 ) {
OSRM.JSONP.clear('history'+i);
OSRM.JSONP.call(this._buildCall(i)+'&instructions=false', this._callback_redrawHistory, OSRM.JSONP.empty, OSRM.DEFAULTS.JSONP_TIMEOUT, 'history'+i, i);
}
},
_buildCall: function(history_id) {
var source = OSRM.G.active_routing_server_url;
source += '?z=' + OSRM.G.map.getZoom() + '&output=json&jsonp=%jsonp';
if(this._history[history_id].checksum)
source += '&checksum=' + this._history[history_id].checksum;
var history_markers = this._history[history_id].markers;
for(var i=0,size=history_markers.length; i<size; i++) {
source += '&loc=' + history_markers[i].lat.toFixed(6) + ',' + history_markers[i].lng.toFixed(6);
if( history_markers[i].hint )
source += '&hint=' + history_markers[i].hint;
}
return source;
},
_updateHints: function(response, history_id) {
this._history[history_id].checksum = response.hint_data.checksum;
var hints = response.hint_data.locations;
for(var i=0; i<hints.length; i++)
this._history[history_id].markers[i].hint = hints[i];
}
});
+42 -18
View File
@@ -20,6 +20,7 @@ or see http://www.gnu.org/licenses/agpl.txt.
// will hold the map object
OSRM.GLOBALS.map = null;
OSRM.GLOBALS.localizable_maps = [];
// map controller
@@ -29,33 +30,51 @@ OSRM.Map = {
// map initialization
init: function() {
// check if GUI is initialized!
if(OSRM.GUI.visible == null)
if(OSRM.G.main_handle == null)
OSRM.GUI.init();
// setup tile servers
var tile_servers = OSRM.DEFAULTS.TILE_SERVERS;
var base_maps = {};
for(var i=0, size=tile_servers.length; i<size; i++) {
tile_servers[i].options.attribution = tile_servers[i].attribution;
base_maps[ tile_servers[i].display_name ] = new L.TileLayer( tile_servers[i].url, tile_servers[i].options );
if( tile_servers[i].bing == true ) {
base_maps[ tile_servers[i].display_name ] = new L.BingLayer( tile_servers[i].apikey, tile_servers[i].options );
OSRM.G.localizable_maps.push( base_maps[ tile_servers[i].display_name ] );
} else {
tile_servers[i].options.attribution = tile_servers[i].attribution;
base_maps[ tile_servers[i].display_name ] = new L.TileLayer( tile_servers[i].url, tile_servers[i].options );
}
L.Util.stamp( base_maps[ tile_servers[i].display_name ] ); // stamp tile servers so that their order is correct in layers control
}
// setup map
OSRM.G.map = new OSRM.MapView('map', {
OSRM.G.map = new OSRM.Control.Map('map', {
center: new L.LatLng(OSRM.DEFAULTS.ONLOAD_LATITUDE, OSRM.DEFAULTS.ONLOAD_LONGITUDE),
zoom: OSRM.DEFAULTS.ONLOAD_ZOOM_LEVEL,
layers: [base_maps[tile_servers[0].display_name]],
zoomAnimation: false, // remove animations -> routes are not hidden during zoom
fadeAnimation: false
zoomAnimation: false, // animations have to be inactive during initialization (leaflet issue #918)
fadeAnimation: false,
zoomControl: false // use OSRM zoom buttons
});
// add locations control
OSRM.G.map.locationsControl = new OSRM.Control.Locations();
OSRM.G.map.locationsControl.addTo(OSRM.G.map);
// add layer control
var layerControl = new L.Control.QueryableLayers(base_maps, {});
OSRM.G.map.addLayerControl(layerControl);
OSRM.G.map.layerControl = new OSRM.Control.Layers(base_maps, {});
OSRM.G.map.layerControl.addTo(OSRM.G.map);
// move zoom markers
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.left=(OSRM.GUI.width+10)+"px";
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.top="5px";
// add zoom control
OSRM.G.map.zoomControl = new OSRM.Control.Zoom();
OSRM.G.map.zoomControl.addTo(OSRM.G.map);
OSRM.G.map.zoomControl.show();
// add scale control
OSRM.G.map.scaleControl = new L.Control.Scale();
OSRM.G.map.scaleControl.options.metric = (OSRM.G.DISTANCE_FORMAT != 1);
OSRM.G.map.scaleControl.options.imperial = (OSRM.G.DISTANCE_FORMAT == 1);
OSRM.G.map.scaleControl.addTo(OSRM.G.map);
// map events
OSRM.G.map.on('zoomend', OSRM.Map.zoomed );
@@ -63,6 +82,12 @@ init: function() {
OSRM.G.map.on('contextmenu', OSRM.Map.contextmenu );
OSRM.G.map.on('mousemove', OSRM.Map.mousemove );
},
initFinally: function() {
L.Util.setOptions( OSRM.G.map, {
zoomAnimation: true,
fadeAnimation: true
} );
},
// init map position and zoom (respect UI visibility / use browser geolocation)
initPosition: function() {
@@ -75,25 +100,24 @@ initPosition: function() {
// map event handlers
zoomed: function(e) {
if(OSRM.G.dragging)
OSRM.Routing.getDragRoute();
OSRM.Routing.getRoute_Dragging();
else
OSRM.Routing.getZoomRoute();
OSRM.Routing.getRoute_Redraw({keepAlternative:true});
},
contextmenu: function(e) {;},
mousemove: function(e) { OSRM.Via.drawDragMarker(e); },
click: function(e) {
OSRM.GUI.deactivateTooltip( "CLICKING" );
if( !OSRM.G.markers.hasSource() ) {
var index = OSRM.G.markers.setSource( e.latlng );
OSRM.Geocoder.updateAddress( OSRM.C.SOURCE_LABEL, OSRM.C.DO_FALLBACK_TO_LAT_LNG );
OSRM.G.markers.route[index].show();
OSRM.G.markers.route[index].centerView( OSRM.G.map.getZoom() );
OSRM.Routing.getRoute();
OSRM.G.markers.route[index].show();
OSRM.Routing.getRoute( {recenter:OSRM.G.markers.route.length == 2} ); // allow recentering when the route is first shown
} else if( !OSRM.G.markers.hasTarget() ) {
var index = OSRM.G.markers.setTarget( e.latlng );
OSRM.Geocoder.updateAddress( OSRM.C.TARGET_LABEL, OSRM.C.DO_FALLBACK_TO_LAT_LNG );
OSRM.G.markers.route[index].show();
OSRM.G.markers.route[index].centerView( OSRM.G.map.getZoom() );
OSRM.Routing.getRoute();
OSRM.Routing.getRoute( {recenter:OSRM.G.markers.route.length == 2} ); // allow recentering when the route is first shown
}
},
geolocationResponse: function(response) {
+21 -10
View File
@@ -20,16 +20,21 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Markers = function() {
this.route = new Array();
this.highlight = new OSRM.DragMarker("highlight", {draggable:true,icon:OSRM.G.icons['marker-highlight'],dragicon:OSRM.G.icons['marker-highlight-drag']});;
this.highlight = new OSRM.DragMarker("highlight", {zIndexOffset:-1,draggable:true,icon:OSRM.G.icons['marker-highlight'],dragicon:OSRM.G.icons['marker-highlight-drag']});;
this.hover = new OSRM.Marker("hover", {zIndexOffset:-1,draggable:false,icon:OSRM.G.icons['marker-highlight']});;
this.dragger = new OSRM.DragMarker("drag", {draggable:true,icon:OSRM.G.icons['marker-drag'],dragicon:OSRM.G.icons['marker-drag']});;
};
OSRM.extend( OSRM.Markers,{
removeAll: function() {
reset: function() {
// remove route markers
for(var i=0; i<this.route.length;i++)
this.route[i].hide();
this.route.splice(0, this.route.length);
document.getElementById('gui-delete-source').style.visibility = "hidden";
document.getElementById('gui-delete-target').style.visibility = "hidden";
// remove special markers
this.highlight.hide();
this.dragger.hide();
},
removeVias: function() {
// assert correct route array s - v - t
@@ -94,13 +99,13 @@ reverseMarkers: function() {
// switch positions in nodes
var temp_position = this.route[0].getPosition();
this.route[0].setPosition( this.route[size-1].getPosition() );
OSRM.G.markers.route[size-1].setPosition( temp_position );
this.route[size-1].setPosition( temp_position );
// switch nodes in array
var temp_node = OSRM.G.markers.route[0];
OSRM.G.markers.route[0] = OSRM.G.markers.route[size-1];
OSRM.G.markers.route[size-1] = temp_node;
var temp_node = this.route[0];
this.route[0] = this.route[size-1];
this.route[size-1] = temp_node;
// reverse route
OSRM.G.markers.route.reverse();
this.route.reverse();
// clear information (both delete markers stay visible)
document.getElementById('information-box').innerHTML = "";
document.getElementById('information-box-header').innerHTML = "";
@@ -119,13 +124,19 @@ reverseMarkers: function() {
},
hasSource: function() {
if( OSRM.G.markers.route[0] && OSRM.G.markers.route[0].label == OSRM.C.SOURCE_LABEL )
if( this.route[0] && this.route[0].label == OSRM.C.SOURCE_LABEL )
return true;
return false;
},
hasTarget: function() {
if( OSRM.G.markers.route[OSRM.G.markers.route.length-1] && OSRM.G.markers.route[OSRM.G.markers.route.length-1].label == OSRM.C.TARGET_LABEL )
if( this.route[this.route.length-1] && this.route[this.route.length-1].label == OSRM.C.TARGET_LABEL )
return true;
return false;
},
//relabel all via markers
relabelViaMarkers: function() {
for(var i=1, size=this.route.length-1; i<size; i++)
this.route[i].marker.setLabel(i);
}
});
});
+57 -23
View File
@@ -18,24 +18,29 @@ or see http://www.gnu.org/licenses/agpl.txt.
// OSRM route management (handles drawing of route geometry - current route, old route, unnamed route, highlight unnamed streets)
// [this holds the route geometry]
OSRM.Route = function() {
this._current_route = new OSRM.SimpleRoute("current" , {dashed:false} );
this._old_route = new OSRM.SimpleRoute("old", {dashed:false,color:"#123"} );
this._unnamed_route = new OSRM.MultiRoute("unnamed");
this._current_route = new OSRM.SimpleRoute("current" , {dashArray:""} );
this._alternative_route = new OSRM.SimpleRoute("alternative" , {dashArray:""} );
this._old_route = new OSRM.SimpleRoute("old", {color:"#123", dashArray:""} );
this._unnamed_route = new OSRM.MultiRoute("unnamed");
this._current_route_style = {dashed:false,color:'#0033FF', weight:5};
this._current_noroute_style = {dashed:true, color:'#222222', weight:2};
this._old_route_style = {dashed:false,color:'#112233', weight:5};
this._old_noroute_style = {dashed:true, color:'#000000', weight:2};
this._unnamed_route_style = {dashed:false, color:'#FF00FF', weight:10};
this._old_unnamed_route_style = {dashed:false, color:'#990099', weight:10};
this._current_route_style = {color:'#0033FF', weight:5, dashArray:""};
this._current_noroute_style = {color:'#222222', weight:2, dashArray:"8,6"};
this._old_route_style = {color:'#112233', weight:5, dashArray:""};
this._old_noroute_style = {color:'#000000', weight:2, dashArray:"8,6"};
this._unnamed_route_style = {color:'#FF00FF', weight:10, dashArray:""};
this._old_unnamed_route_style = {color:'#990099', weight:10, dashArray:""};
this._alternative_route_style = {color:'#770033', weight:5, opacity:0.6, dashArray:""};
this._noroute = OSRM.Route.ROUTE;
this._history = new OSRM.HistoryRoute();
};
OSRM.Route.NOROUTE = true;
OSRM.Route.ROUTE = false;
OSRM.extend( OSRM.Route,{
// show/hide route
showRoute: function(positions, noroute) {
this._noroute = noroute;
this._current_route.setPositions( positions );
@@ -45,22 +50,22 @@ OSRM.extend( OSRM.Route,{
this._current_route.setStyle( this._current_route_style );
this._current_route.show();
//this._raiseUnnamedRoute();
this._history.fetchHistoryRoute();
this._history.showHistoryRoutes();
this._history.storeHistoryRoute();
},
hideRoute: function() {
this._current_route.hide();
this._unnamed_route.hide();
// activate printing
OSRM.Printing.deactivate();
this._history.fetchHistoryRoute();
this._history.showHistoryRoutes();
// deactivate GUI features that need a route
OSRM.GUI.deactivateRouteFeatures();
},
hideAll: function() {
this._current_route.hide();
this._unnamed_route.hide();
this._old_route.hide();
this._noroute = OSRM.Route.ROUTE;
// activate printing
OSRM.Printing.deactivate();
},
// show/hide highlighting for unnamed routes
showUnnamedRoute: function(positions) {
this._unnamed_route.clearRoutes();
for(var i=0; i<positions.length; i++) {
@@ -78,7 +83,9 @@ OSRM.extend( OSRM.Route,{
this._unnamed_route.hide();
this._unnamed_route.show();
}
},
},
// show/hide previous route as shadow
showOldRoute: function() {
this._old_route.setPositions( this._current_route.getPositions() );
if ( this._noroute == OSRM.Route.NOROUTE)
@@ -94,6 +101,17 @@ OSRM.extend( OSRM.Route,{
this._old_route.hide();
},
// show/hide alternative route
showAlternativeRoute: function(positions) {
this._alternative_route.setPositions( positions );
this._alternative_route.setStyle( this._alternative_route_style );
this._alternative_route.show();
},
hideAlternativeRoute: function() {
this._alternative_route.hide();
},
// query routines
isShown: function() {
return this._current_route.isShown();
},
@@ -105,11 +123,27 @@ OSRM.extend( OSRM.Route,{
},
getPoints: function() {
return this._current_route.getPoints();
},
},
// helper routines
reset: function() {
this.hideRoute();
this._old_route.hide();
this._noroute = OSRM.Route.ROUTE;
this._history.clearHistoryRoutes();
},
fire: function(type,event) {
this._current_route.route.fire(type,event);
},
centerView: function() {
this._current_route.centerView();
}
},
// handle history routes
activateHistoryRoutes: function() {
this._history.activate();
},
deactivateHistoryRoutes: function() {
this._history.deactivate();
}
});
+8 -10
View File
@@ -18,9 +18,6 @@ or see http://www.gnu.org/licenses/agpl.txt.
// OSRM via marker routines
// [find correct position for a via marker]
// store location of via points returned by server
OSRM.GLOBALS.via_points = [];
OSRM.Via = {
@@ -49,12 +46,13 @@ findViaIndex: function( new_via_position ) {
var nearest_index = OSRM.Via._findNearestRouteSegment( new_via_position );
// find correct index to insert new via node
var new_via_index = OSRM.G.via_points.length;
var via_points = OSRM.G.response.via_points;
var new_via_index = via_points.length-2;
var via_index = Array();
for(var i=0; i<OSRM.G.via_points.length; i++) {
via_index[i] = OSRM.Via._findNearestRouteSegment( new L.LatLng(OSRM.G.via_points[i][0], OSRM.G.via_points[i][1]) );
if(via_index[i] > nearest_index) {
new_via_index = i;
for(var i=1; i<via_points.length-1; i++) {
via_index[i-1] = OSRM.Via._findNearestRouteSegment( new L.LatLng(via_points[i][0], via_points[i][1]) );
if(via_index[i-1] > nearest_index) {
new_via_index = i-1;
break;
}
}
@@ -80,7 +78,7 @@ drawDragMarker: function(event) {
// get distance to route
var minpoint = OSRM.G.route._current_route.route.closestLayerPoint( event.layerPoint );
var min_dist = minpoint ? minpoint._sqDist : 1000;
var min_dist = minpoint ? minpoint.distance : 1000;
// get distance to markers
var mouse = event.latlng;
@@ -111,7 +109,7 @@ drawDragMarker: function(event) {
min_dist = 1000;
}
if( min_dist < 400) {
if( min_dist < 20) {
OSRM.G.markers.dragger.setPosition( OSRM.G.map.layerPointToLatLng(minpoint) );
OSRM.G.markers.dragger.show();
} else
+147
View File
@@ -0,0 +1,147 @@
/*
Copyright (c) 2011-2012, Pavel Shramov
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// TileLayer using BingMaps
// [modified to support multiple cultures]
L.BingLayer = L.TileLayer.extend({
options: {
subdomains: [0, 1, 2, 3],
type: 'Aerial', // supported: 'Road', 'Aerial', 'AerialWithLabels'
attribution: 'Bing',
culture: 'en-US'
},
initialize: function(key, options) {
L.Util.setOptions(this, options);
this._key = key;
this._url = null;
this.meta = {};
this.loadMetadata();
},
tile2quad: function(x, y, z) {
var quad = '';
for (var i = z; i > 0; i--) {
var digit = 0;
var mask = 1 << (i - 1);
if ((x & mask) != 0) digit += 1;
if ((y & mask) != 0) digit += 2;
quad = quad + digit;
}
return quad;
},
getTileUrl: function(p, z) {
var z = this._getZoomForUrl();
var subdomains = this.options.subdomains,
s = this.options.subdomains[(p.x + p.y) % subdomains.length];
return this._url.replace('{subdomain}', s)
.replace('{quadkey}', this.tile2quad(p.x, p.y, z))
.replace('{culture}', this.options.culture);
},
loadMetadata: function() {
var _this = this;
var cbid = '_bing_metadata_' + L.Util.stamp(this);
window[cbid] = function (meta) {
_this.meta = meta;
window[cbid] = undefined;
var e = document.getElementById(cbid);
e.parentNode.removeChild(e);
if (meta.errorDetails) {
alert("Got metadata" + meta.errorDetails);
return;
}
_this.initMetadata();
};
var url = "http://dev.virtualearth.net/REST/v1/Imagery/Metadata/" + this.options.type + "?include=ImageryProviders&jsonp=" + cbid + "&key=" + this._key;
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
script.id = cbid;
document.getElementsByTagName("head")[0].appendChild(script);
},
initMetadata: function() {
var r = this.meta.resourceSets[0].resources[0];
this.options.subdomains = r.imageUrlSubdomains;
this._url = r.imageUrl;
this._providers = [];
for (var i = 0; i < r.imageryProviders.length; i++) {
var p = r.imageryProviders[i];
for (var j = 0; j < p.coverageAreas.length; j++) {
var c = p.coverageAreas[j];
var coverage = {zoomMin: c.zoomMin, zoomMax: c.zoomMax, active: false};
var bounds = new L.LatLngBounds(
new L.LatLng(c.bbox[0]+0.01, c.bbox[1]+0.01),
new L.LatLng(c.bbox[2]-0.01, c.bbox[3]-0.01)
);
coverage.bounds = bounds;
coverage.attrib = p.attribution;
this._providers.push(coverage);
}
}
this._update();
},
_update: function() {
if (this._url == null || !this._map) return;
this._update_attribution();
L.TileLayer.prototype._update.apply(this, []);
},
_update_attribution: function() {
var bounds = this._map.getBounds();
var zoom = this._map.getZoom();
if(this._map.attributionControl) // check if attributionControl is active
for (var i = 0; i < this._providers.length; i++) {
var p = this._providers[i];
if ((zoom <= p.zoomMax && zoom >= p.zoomMin) &&
bounds.intersects(p.bounds)) {
if (!p.active)
this._map.attributionControl.addAttribution(p.attrib);
p.active = true;
} else {
if (p.active)
this._map.attributionControl.removeAttribution(p.attrib);
p.active = false;
}
}
},
onRemove: function(map) {
if(this._map.attributionControl) // check if attributionControl is activ
for (var i = 0; i < this._providers.length; i++) {
var p = this._providers[i];
if (p.active) {
this._map.attributionControl.removeAttribution(p.attrib);
p.active = false;
}
}
L.TileLayer.prototype.onRemove.apply(this, [map]);
}
});
+7 -65
View File
@@ -19,68 +19,10 @@ or see http://www.gnu.org/licenses/agpl.txt.
// [assorted bugfixes to Leaflet functions we use]
// find relative leaflet URL
var i = 0;
while( L.ROOT_URL[i] == document.URL[i] ) { i++; }
L.RELATIVE_ROOT_URL = L.ROOT_URL.slice(i);
// return closest point on segment or distance to that point
L.LineUtil._sqClosestPointOnSegment = function (p, p1, p2, sqDist) {
var x = p1.x,
y = p1.y,
dx = p2.x - x,
dy = p2.y - y,
dot = dx * dx + dy * dy,
t;
if (dot > 0) {
t = ((p.x - x) * dx + (p.y - y) * dy) / dot;
if (t > 1) {
x = p2.x;
y = p2.y;
} else if (t > 0) {
x += dx * t;
y += dy * t;
}
}
dx = p.x - x;
dy = p.y - y;
// DS_CHANGE: modified return values
if(sqDist)
return dx*dx + dy*dy;
else {
var p = new L.Point(x,y);
p._sqDist = dx*dx + dy*dy;
return p;
}
};
// makes requestAnimFrame respect the immediate paramter -> prevents drag events after dragend events
// (alternatively: add if(!this.dragging ) return to L.Draggable._updatePosition, but must be done in leaflet.js!)
// [TODO: In Leaflet 0.4 use L.Util.cancelAnimFrame(this._animRequest) in L.Draggable._onUp() instead, also has to be done in leaflet.js!]
L.Util.requestAnimFrame = (function () {
function timeoutDefer(callback) {
window.setTimeout(callback, 1000 / 60);
}
var requestFn = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
timeoutDefer;
return function (callback, context, immediate, contextEl) {
callback = context ? L.Util.bind(callback, context) : callback;
if (immediate ) { // DS_CHANGE: removed additional condition requestFn === timeoutDefer
callback();
} else {
requestFn(callback, contextEl);
}
};
}());
// bugfix for issue #892 of Leaflet
L.DomUtil.enableTextSelection = function () {
if( !document.onselectstart )
return;
document.onselectstart = this._onselectstart;
this._onselectstart = null;
};
@@ -1,60 +0,0 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// Leaflet extension: Dashed Polyline
// [adds dashed optionally dashed lines when using SVG or VML rendering]
// dashed polyline class
L.DashedPolyline = L.Polyline.extend({
initialize: function(latlngs, options) {
L.Polyline.prototype.initialize.call(this, latlngs, options);
},
options: {
dashed: true
}
});
// svg rendering
L.DashedPolyline = !L.Browser.svg ? L.DashedPolyline : L.DashedPolyline.extend({
_updateStyle: function () {
L.Polyline.prototype._updateStyle.call(this);
if (this.options.stroke) {
if (this.options.dashed == true)
this._path.setAttribute('stroke-dasharray', '8,6');
else
this._path.setAttribute('stroke-dasharray', '');
}
}
});
// vml rendering
L.DashedPolyline = L.Browser.svg || !L.Browser.vml ? L.DashedPolyline : L.DashedPolyline.extend({
_updateStyle: function () {
L.Polyline.prototype._updateStyle.call(this);
if (this.options.stroke) {
if (this.options.dashed == true)
this._stroke.dashstyle = "dash";
else
this._stroke.dashstyle = "solid";
}
}
});
+60
View File
@@ -0,0 +1,60 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// Leaflet extension: LabelMarker
// [marker class that allows for changing icons while dragging]
// extended marker class
L.LabelMarker = L.Marker.extend({
// change marker icon
changeIcon: function( icon ) {
this.options.icon = icon;
if (this._map) {
this._changeIcon();
}
},
// add/change marker label
setLabel: function( label ) {
if(this._icon) {
this._icon.lastChild.innerHTML=label;
this._icon.lastChild.style.display = "block";
}
},
// add/change marker tooltip
setTitle: function ( title ) {
this.options.title = title;
this._icon.title = title;
},
// actual icon changing routine
_changeIcon: function () {
var options = this.options,
map = this._map,
animation = (map.options.zoomAnimation && map.options.markerZoomAnimation),
classToAdd = animation ? 'leaflet-zoom-animated' : 'leaflet-zoom-hide';
if (this._icon) {
this._icon = options.icon.changeIcon( this._icon );
L.DomUtil.addClass(this._icon, classToAdd);
L.DomUtil.addClass(this._icon, 'leaflet-clickable');
}
}
});
@@ -0,0 +1,77 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// Leaflet extension: LabelMarkerIcon
// [icon class with extra label and simple icon changing]
// extended icon class
L.LabelMarkerIcon = L.Icon.extend({
// altered icon creation (with label)
_createImg: function (src) {
var el;
if (!L.Browser.ie6) {
el = document.createElement('div');
var img = document.createElement('img');
var num = document.createElement('div');
img.src = src;
num.className = 'via-counter';
num.innerHTML = "";
el.appendChild(img);
el.appendChild(num);
} else {
el = document.createElement('div');
el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '")';
}
return el;
},
// non-destructive icon changing
changeIcon: function (el) {
return this._changeIcon('icon', el);
},
changeShadow: function (el) {
return this.options.shadowUrl ? this._changeIcon('shadow', el) : null;
},
_changeIcon: function (name, el) {
var src = this._getIconUrl(name);
if (!src) {
if (name === 'icon') {
throw new Error("iconUrl not set in Icon options (see the docs).");
}
return null;
}
var img = this._changeImg(src, el);
this._setIconStyles(img, name);
return img;
},
_changeImg: function (src, el) {
if (!L.Browser.ie6) {
el.firstChild.src = src;
} else {
el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '")';
}
return el;
}
});
-65
View File
@@ -1,65 +0,0 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// Leaflet extension: MouseMarker
// [marker class that propagates modifier and button presses in mouse click events and allows for changing icons]
// extended marker class
L.MouseMarker = L.Marker.extend({
initialize: function (latlng, options) {
L.Marker.prototype.initialize.apply(this, arguments);
},
switchIcon: function( icon ) {
this.options.icon = icon;
if (this._map) {
this._changeIcon();
this._reset();
}
},
_changeIcon: function () {
var options = this.options;
if (this._icon) {
this._icon = options.icon.switchIcon( this._icon );
if (this.options.clickable) // TODO: only needed until Leaflet 0.4
this._icon.className += ' leaflet-clickable';
}
var panes = this._map._panes;
if (this._shadow)
panes.shadowPane.removeChild(this._shadow);
this._shadow = options.icon.createShadow();
if (this._shadow)
panes.shadowPane.appendChild(this._shadow);
},
_onMouseClick: function (e) {
L.DomEvent.stopPropagation(e);
if (this.dragging && this.dragging.moved()) { return; }
this.fire(e.type, {
altKey: e.altKey,
ctrlKey: e.ctrlKey,
shiftKey: e.shiftKey,
button: e.button
});
}
});
-115
View File
@@ -1,115 +0,0 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// Leaflet extension: SwitchableIcon
// [will be an extension of L.Icon in Leaflet 0.4, for now it is a copy with added functionality]
// icon class with functions to simply switch the icon images
L.SwitchableIcon = L.Class.extend({
options: {
/*
iconUrl: (String) (required)
iconSize: (Point) (can be set through CSS)
iconAnchor: (Point) (centered by default if size is specified, can be set in CSS with negative margins)
popupAnchor: (Point) (if not specified, popup opens in the anchor point)
shadowUrl: (Point) (no shadow by default)
shadowSize: (Point)
*/
className: ''
},
initialize: function (options) {
L.Util.setOptions(this, options);
},
createIcon: function () {
return this._createIcon('icon');
},
createShadow: function () {
return this.options.shadowUrl ? this._createIcon('shadow') : null;
},
_createIcon: function (name) {
var img = this._createImg(this.options[name + 'Url']);
this._setIconStyles(img, name);
return img;
},
_setIconStyles: function (img, name) {
var options = this.options,
size = options[name + 'Size'],
anchor = options.iconAnchor;
if (!anchor && size) {
anchor = size.divideBy(2, true);
}
if (name === 'shadow' && anchor && options.shadowOffset) {
anchor._add(options.shadowOffset);
}
img.className = 'leaflet-marker-' + name + ' ' + options.className;
if (anchor) {
img.style.marginLeft = (-anchor.x) + 'px';
img.style.marginTop = (-anchor.y) + 'px';
}
if (size) {
img.style.width = size.x + 'px';
img.style.height = size.y + 'px';
}
},
_createImg: function (src) {
var el;
if (!L.Browser.ie6) {
el = document.createElement('img');
el.src = src;
} else {
el = document.createElement('div');
el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '")';
}
return el;
},
// new functions start here
switchIcon: function (el) {
return this._switchIcon('icon', el);
},
switchShadow: function (el) {
return this.options.shadowUrl ? this._switchIcon('shadow', el) : null;
},
_switchIcon: function (name, el) {
var img = this._switchImg(this.options[name + 'Url'], el);
this._setIconStyles(img, name);
return img;
},
_switchImg: function (src, el) {
if (!L.Browser.ie6) {
el.src = src;
} else {
el.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + src + '")';
}
return el;
}
});
@@ -0,0 +1,68 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM Layers control
// [extension of Layers.Control with OSRM styling and additional query methods]
OSRM.Control.Layers = L.Control.Layers.extend({
// query functionality
getActiveLayerName: function () {
var i, input, obj,
inputs = this._form.getElementsByTagName('input'),
inputsLen = inputs.length;
for (i = 0; i < inputsLen; i++) {
input = inputs[i];
obj = this._layers[input.layerId];
if (input.checked && !obj.overlay) {
return obj.name;
}
}
},
getActiveLayer: function () {
var i, input, obj,
inputs = this._form.getElementsByTagName('input'),
inputsLen = inputs.length;
for (i = 0; i < inputsLen; i++) {
input = inputs[i];
obj = this._layers[input.layerId];
if (input.checked && !obj.overlay) {
return obj.layer;
}
}
},
// overwrite Control.Layers methods to get OSRM styling
_initLayout: function () {
L.Control.Layers.prototype._initLayout.apply(this);
this._container.className = "box-wrapper gui-control-wrapper";
this._layersLink.className = "box-content gui-control gui-layers";
this._form.className = "box-content gui-control gui-layers-list medium-font";
this._baseLayersList.className = "gui-layers-base";
this._separator.className = "gui-layers-separator";
this._overlaysList.className = "gui-layers-overlays";
},
_expand: function () {
L.DomUtil.addClass(this._container, 'gui-layers-expanded');
},
_collapse: function () {
this._container.className = this._container.className.replace(' gui-layers-expanded', '');
}
});
@@ -0,0 +1,63 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// locations control
// [navigation buttons for important locations - zoom on route, zoom on user]
OSRM.Control.Locations = L.Control.extend({
options: {
position: 'topright'
},
onAdd: function (map) {
// create wrapper
var container = L.DomUtil.create('div', 'box-wrapper gui-control-wrapper');
L.DomEvent.disableClickPropagation(container);
// create buttons
this._userButton = this._createButton('gui-locations-user', container, OSRM.GUI.zoomOnUser, map, !!navigator.geolocation );
this._routeButton = this._createButton('gui-locations-route', container, OSRM.GUI.zoomOnRoute, map, false);
this._container = container;
return container;
},
_createButton: function (id, container, fn, context, isActive) {
var inactive = (isActive == false) ? "-inactive" : "";
var classNames = "box-content" + " " + "gui-control"+inactive + " " + id+inactive;
var link = L.DomUtil.create('a', classNames, container);
link.title = id;
L.DomEvent
.on(link, 'click', L.DomEvent.stopPropagation)
.on(link, 'click', L.DomEvent.preventDefault)
.on(link, 'click', fn, context)
.on(link, 'dblclick', L.DomEvent.stopPropagation);
return link;
},
activateRoute: function() {
this._routeButton.className = "box-content gui-control gui-locations-route";
},
deactivateRoute: function() {
this._routeButton.className = "box-content gui-control-inactive gui-locations-route-inactive";
},
setTooltips: function( userButton, routeButton) {
this._userButton.title = userButton;
this._routeButton.title = routeButton;
}
});
@@ -15,24 +15,71 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// map view/model
// [extending Leaflet L.Map with setView/fitBounds methods that respect UI visibility, better layerControl]
OSRM.MapView = L.Map.extend({
// OSRM Map control
// [extension of L.Map with additional view & bounds methods that respect OSRM UI visibility; methods for querying active layers]
OSRM.Control.Map = L.Map.extend({
_boundsInsideView: function(bounds) {
var viewBounds = this.getBounds(),
viewSw = this.project(viewBounds.getSouthWest()),
viewNe = this.project(viewBounds.getNorthEast()),
sw = this.project(bounds.getSouthWest()),
ne = this.project(bounds.getNorthEast());
if (viewNe.y > ne.y) { // north
return false;
}
if (viewNe.x < ne.x) { // east
return false;
}
if (viewSw.y < sw.y) { // south
return false;
}
if (viewSw.x > sw.x) { // west
return false;
}
return true;
},
setViewBounds: function(bounds) {
var zoom = this.getBoundsZoom(bounds); // maximum zoom level at which the bounds fit onto the map
if( this._zoom > zoom ) { // if current zoom level is too close change zoom level and recenter
this.setView(bounds.getCenter(), zoom);
} else if(!this._boundsInsideView(bounds)){ // if current zoom level is okay, but bounds are outside the viewport, pan
this.setView(bounds.getCenter(), this._zoom);
}
},
setViewUI: function(position, zoom, no_animation) {
if( OSRM.GUI.visible == true ) {
if( OSRM.G.main_handle.boxVisible() ) {
var point = this.project( position, zoom);
point.x-=OSRM.GUI.width/2;
point.x-=OSRM.G.main_handle.boxWidth()/2;
position = this.unproject(point,zoom);
}
this.setView( position, zoom, no_animation);
},
setViewBoundsUI: function(bounds) {
var southwest = bounds.getSouthWest();
var northeast = bounds.getNorthEast();
var zoom = this.getBoundsZoom(bounds);
var sw_point = this.project( southwest, zoom);
if( OSRM.G.main_handle.boxVisible() )
sw_point.x-=OSRM.G.main_handle.boxWidth()+20;
else
sw_point.x-=20;
sw_point.y+=20;
var ne_point = this.project( northeast, zoom);
ne_point.y-=20;
ne_point.x+=20;
bounds.extend( this.unproject(sw_point,zoom) );
bounds.extend( this.unproject(ne_point,zoom) );
this.setViewBounds( bounds );
},
fitBoundsUI: function(bounds) {
var southwest = bounds.getSouthWest();
var northeast = bounds.getNorthEast();
var zoom = this.getBoundsZoom(bounds);
var sw_point = this.project( southwest, zoom);
if( OSRM.GUI.visible == true )
sw_point.x-=OSRM.GUI.width+20;
if( OSRM.G.main_handle.boxVisible() )
sw_point.x-=OSRM.G.main_handle.boxWidth()+20;
else
sw_point.x-=20;
sw_point.y+=20;
@@ -45,27 +92,20 @@ OSRM.MapView = L.Map.extend({
},
getBoundsUI: function(unbounded) {
var bounds = this.getPixelBounds();
if( OSRM.GUI.visible == true )
bounds.min.x+=OSRM.GUI.width;
if( OSRM.G.main_handle.boxVisible() )
bounds.min.x+=OSRM.G.main_handle.boxWidth();
var sw = this.unproject(new L.Point(bounds.min.x, bounds.max.y), this._zoom, true),
ne = this.unproject(new L.Point(bounds.max.x, bounds.min.y), this._zoom, true);
return new L.LatLngBounds(sw, ne);
},
getCenterUI: function(unbounded) {
var viewHalf = this.getSize();
if( OSRM.GUI.visible == true )
viewHalf.x += OSRM.GUI.width;
if( OSRM.G.main_handle.boxVisible() )
viewHalf.x += OSRM.G.main_handle.boxWidth();
var centerPoint = this._getTopLeftPoint().add(viewHalf.divideBy(2));
return this.unproject(centerPoint, this._zoom, unbounded);
},
addLayerControl: function( layerControl ) {
if( this.layerControl )
return;
this.layerControl = layerControl;
this.addControl(this.layerControl);
},
getActiveLayerId: function() {
var tile_server_id = 0;
+69
View File
@@ -0,0 +1,69 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// zoom control
// [modified zoom control with ids, prevention of click propagation, show/hide with respect to main OSRM window]
OSRM.Control.Zoom = L.Control.extend({
options: {
position: 'topleft'
},
onAdd: function (map) {
// create wrapper
var container = L.DomUtil.create('div', 'box-wrapper gui-control-wrapper');
L.DomEvent.disableClickPropagation(container);
// create buttons
this._zoomIn = this._createButton('gui-zoom-in', container, map.zoomIn, map, true);
this._zoomOut = this._createButton('gui-zoom-out', container, map.zoomOut, map, true);
this._container = container;
return container;
},
_createButton: function (id, container, fn, context, isActive) {
var inactive = (isActive == false) ? "-inactive" : "";
var classNames = "box-content" + " " + "gui-control"+inactive + " " + id+inactive;
var link = L.DomUtil.create('a', classNames, container);
link.title = id;
L.DomEvent
.on(link, 'click', L.DomEvent.stopPropagation)
.on(link, 'click', L.DomEvent.preventDefault)
.on(link, 'click', fn, context)
.on(link, 'dblclick', L.DomEvent.stopPropagation);
return link;
},
hide: function() {
if( this._container )
this._container.style.visibility="hidden";
},
show: function() {
if( this._container ) {
this._container.style.top = "5px";
this._container.style.left = ( OSRM.G.main_handle.boxVisible() == true ? (OSRM.G.main_handle.boxWidth()+10) : "30") + "px";
this._container.style.visibility="visible";
}
},
setTooltips: function( zoomIn, zoomOut) {
this._zoomIn.title = zoomIn;
this._zoomOut.title = zoomOut;
}
});
+13 -4
View File
@@ -24,7 +24,7 @@ OSRM.Marker = function( label, style, position ) {
this.label = label ? label : "marker";
this.position = position ? position : new L.LatLng(0,0);
this.marker = new L.MouseMarker( this.position, style );
this.marker = new L.LabelMarker( this.position, style );
this.marker.parent = this;
this.shown = false;
@@ -38,6 +38,14 @@ show: function() {
hide: function() {
OSRM.G.map.removeLayer(this.marker);
this.shown = false;
// revert highlighted description
if( this.label == "highlight" )
if( this.description ) {
var desc = document.getElementById("description-"+this.description);
desc && (desc.className = "description-body-item");
this.description = null;
}
},
setPosition: function( position ) {
this.position = position;
@@ -95,12 +103,13 @@ onClick: function(e) {
onDrag: function(e) {
this.parent.setPosition( e.target.getLatLng() );
if(OSRM.G.markers.route.length>1)
OSRM.Routing.getDragRoute();
OSRM.Routing.getRoute_Dragging();
OSRM.Geocoder.updateLocation( this.parent.label );
},
onDragStart: function(e) {
OSRM.GUI.deactivateTooltip( "DRAGGING" );
OSRM.G.dragging = true;
this.switchIcon(this.options.dragicon);
this.changeIcon(this.options.dragicon);
// store id of dragged marker
for( var i=0; i<OSRM.G.markers.route.length; i++)
@@ -118,7 +127,7 @@ onDragStart: function(e) {
},
onDragEnd: function(e) {
OSRM.G.dragging = false;
this.switchIcon(this.options.baseicon);
this.changeIcon(this.options.baseicon);
this.parent.setPosition( e.target.getLatLng() );
if (OSRM.G.route.isShown()) {
+2 -5
View File
@@ -22,10 +22,7 @@ or see http://www.gnu.org/licenses/agpl.txt.
// simple route class (wraps Leaflet Polyline)
OSRM.SimpleRoute = function (label, style) {
this.label = (label ? label : "route");
this.route = new L.DashedPolyline();
this.route.setLatLngs( [] );
if(style) this.route.setStyle( style );
this.route = new L.Polyline( [], style );
this.shown = false;
};
OSRM.extend( OSRM.SimpleRoute,{
@@ -82,7 +79,7 @@ isShown: function() {
return this.shown;
},
addRoute: function(positions) {
var line = new L.DashedPolyline( positions );
var line = new L.Polyline( positions );
line.on('click', function(e) { OSRM.G.route.fire('click',e); });
this.route.addLayer( line );
},
+53
View File
@@ -0,0 +1,53 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM MainGUI
// [handles all GUI events that interact with appearance of main window]
// OSRM GUIBoxGroup
// [group UI boxes so that handles can be shown/hidden together]
OSRM.GUIBoxGroup = function() {
this._handles = [];
};
OSRM.extend( OSRM.GUIBoxGroup, {
add: function( handle ) {
this._handles.push( handle );
handle.$addToGroup(this);
},
select: function( handle ) {
for(var i=0; i< this._handles.length; i++) {
if( this._handles[i] != handle )
this._handles[i].$hideBox();
else
this._handles[i].$showBox();
}
},
$hide: function() {
for(var i=0; i< this._handles.length; i++) {
this._handles[i].$hide();
}
},
$show: function() {
for(var i=0; i< this._handles.length; i++) {
this._handles[i].$show();
}
}
});
+134
View File
@@ -0,0 +1,134 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM GUIBoxHandle
// [performs showing and hiding of UI boxes]
OSRM.GUIBoxHandle = function( box_name, side, css, transitionStartFct, transitionEndFct ) {
// do not create handle if box does not contain a toggle button
var toggle = document.getElementById( box_name + '-toggle');
if( toggle == null ) {
console.log("[error] No toggle button for " + box_name);
return;
}
// create handle DOM elements
var wrapper = document.createElement('div');
wrapper.id = box_name + '-handle-wrapper';
wrapper.className = 'box-wrapper box-handle-wrapper-'+side;
wrapper.style.cssText += css;
var content = document.createElement('div');
content.id = box_name + '-handle-content';
content.className = 'box-content box-handle-content-'+side;
var icon = document.createElement('div');
icon.id = box_name + '-handle-icon';
icon.className = 'iconic-button';
icon.title = box_name;
content.appendChild(icon);
wrapper.appendChild(content);
document.body.appendChild(wrapper);
// create attributes
this._box = document.getElementById( box_name + '-wrapper' );
this._class = this._box.className;
this._width = this._box.clientWidth;
this._side = side;
this._handle = wrapper;
this._box_group = null;
this._transitionEndFct = transitionEndFct;
// hide box and show handle by default
this._box.style[this._side]=-this._width+"px";
this._box_visible = false;
this._box.style.visibility="hidden";
this._handle.style.visibility="visible";
// add functionality
var full_fct = transitionStartFct ? OSRM.concat(this._toggle, transitionStartFct) : this._toggle;
var fct = OSRM.bind( this, full_fct );
toggle.onclick = fct;
icon.onclick = fct;
var full_fct = transitionEndFct ? OSRM.concat(this._onTransitionEnd, transitionEndFct) : this._onTransitionEnd;
var fct = OSRM.bind( this, full_fct );
if( OSRM.Browser.FF3==-1 && OSRM.Browser.IE6_9==-1 ) {
var box_wrapper = document.getElementById(box_name + '-wrapper');
box_wrapper.addEventListener("transitionend", fct, false);
box_wrapper.addEventListener("webkitTransitionEnd", fct, false);
box_wrapper.addEventListener("oTransitionEnd", fct, false);
box_wrapper.addEventListener("MSTransitionEnd", fct, false);
} else {
this._legacyTransitionEndFct = fct; // legacy browser support
}
};
OSRM.extend( OSRM.GUIBoxHandle, {
boxVisible: function() {
return this._box_visible;
},
boxWidth: function() {
return this._width;
},
$addToGroup: function(group) {
this._box_group = group;
},
$show: function() {
this._handle.style.visibility="visible";
},
$hide: function() {
this._handle.style.visibility="hidden";
},
$showBox: function() {
this._box_visible = true;
this._box.style.visibility="visible";
this._handle.style.visibility="hidden";
this._box.style[this._side]="5px";
},
$hideBox: function() {
this._box_visible = false;
this._box.style.visibility="hidden";
this._handle.style.visibility="visible";
this._box.style[this._side]=-this._width+"px";
},
_toggle: function() {
this._box.className += " box-animated";
if( this._box_visible == false ) {
this._box_group.$hide();
this._box.style[this._side]="5px";
this._box.style.visibility="visible"; // already show box, so that animation is seen
} else {
this._box.style[this._side]=-this._width+"px";
}
// legacy browser support
if( OSRM.Browser.FF3!=-1 || OSRM.Browser.IE6_9!=-1 )
setTimeout(this._legacyTransitionEndFct, 0);
},
_onTransitionEnd: function() {
this._box.className = this._class;
if( this._box_visible == true ) {
this._box_group.$show();
this._box_visible = false;
this._box.style.visibility="hidden";
} else {
this._box_visible = true;
this._box.style.visibility="visible";
}
}
});
+86 -63
View File
@@ -21,43 +21,38 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.GUI.extend( {
// defaults
visible: null,
width: null,
// init GUI
init: function() {
OSRM.GUI.visible = true;
OSRM.GUI.width = document.getElementById("main-wrapper").clientWidth;
// init main box
var main_group = new OSRM.GUIBoxGroup();
OSRM.G.main_handle = new OSRM.GUIBoxHandle("main", "left", "left:-5px;top:5px;", OSRM.GUI.beforeMainTransition, OSRM.GUI.afterMainTransition);
main_group.add( OSRM.G.main_handle );
main_group.select( OSRM.G.main_handle );
// init additional boxes
var option_group = new OSRM.GUIBoxGroup();
var config_handle = new OSRM.GUIBoxHandle("config", "right", "right:-5px;bottom:70px;");
var mapping_handle = new OSRM.GUIBoxHandle("mapping", "right", "right:-5px;bottom:25px;");
option_group.add( config_handle );
option_group.add( mapping_handle );
option_group.select( null );
// init starting source/target
document.getElementById('gui-input-source').value = OSRM.DEFAULTS.ONLOAD_SOURCE;
document.getElementById('gui-input-target').value = OSRM.DEFAULTS.ONLOAD_TARGET;
// init events
document.getElementById("gui-toggle-in").onclick = OSRM.GUI.toggleMain;
document.getElementById("gui-toggle-out").onclick = OSRM.GUI.toggleMain;
// gui after transition events
if( OSRM.Browser.FF3==-1 && OSRM.Browser.IE6_9==-1 ) {
document.getElementById('main-wrapper').addEventListener("transitionend", OSRM.GUI._onMainTransitionEnd, false);
document.getElementById('main-wrapper').addEventListener("webkitTransitionEnd", OSRM.GUI._onMainTransitionEnd, false);
document.getElementById('main-wrapper').addEventListener("oTransitionEnd", OSRM.GUI._onMainTransitionEnd, false);
document.getElementById('main-wrapper').addEventListener("MSTransitionEnd", OSRM.GUI._onMainTransitionEnd, false);
}
// set default language
OSRM.Localization.setLanguage( OSRM.DEFAULTS.LANGUAGE );
//init units selector
OSRM.GUI.initDistanceFormatsSelector();
},
// set language dependent labels
setLabels: function() {
document.getElementById("open-josm").innerHTML = OSRM.loc("OPEN_JOSM");
document.getElementById("open-osmbugs").innerHTML = OSRM.loc("OPEN_OSMBUGS");
document.getElementById("open-osmbugs").innerHTML = OSRM.loc("OPEN_OSMBUGS");
document.getElementById("gui-reset").innerHTML = OSRM.loc("GUI_RESET");
document.getElementById("gui-reverse").innerHTML = OSRM.loc("GUI_REVERSE");
document.getElementById("gui-option-highlight-nonames-label").innerHTML = OSRM.loc("GUI_HIGHLIGHT_UNNAMED_ROADS");
document.getElementById("gui-options-toggle").innerHTML = OSRM.loc("GUI_OPTIONS");
document.getElementById("gui-option-highlight-nonames-label").lastChild.nodeValue = OSRM.loc("GUI_HIGHLIGHT_UNNAMED_ROADS");
document.getElementById("gui-option-show-previous-routes-label").lastChild.nodeValue = OSRM.loc("GUI_SHOW_PREVIOUS_ROUTES");
document.getElementById("gui-search-source").innerHTML = OSRM.loc("GUI_SEARCH");
document.getElementById("gui-search-target").innerHTML = OSRM.loc("GUI_SEARCH");
document.getElementById("gui-search-source-label").innerHTML = OSRM.loc("GUI_START")+":";
@@ -65,57 +60,85 @@ setLabels: function() {
document.getElementById("gui-input-source").title = OSRM.loc("GUI_START_TOOLTIP");
document.getElementById("gui-input-target").title = OSRM.loc("GUI_END_TOOLTIP");
document.getElementById("legal-notice").innerHTML = OSRM.loc("GUI_LEGAL_NOTICE");
document.getElementById("gui-mapping-label").innerHTML = OSRM.loc("GUI_MAPPING_TOOLS");
document.getElementById("gui-config-label").innerHTML = OSRM.loc("GUI_CONFIGURATION");
document.getElementById("gui-language-2-label").innerHTML = OSRM.loc("GUI_LANGUAGE")+":";
document.getElementById("gui-units-label").innerHTML = OSRM.loc("GUI_UNITS")+":";
document.getElementById('gui-data-timestamp-label').innerHTML = OSRM.loc("GUI_DATA_TIMESTAMP");
document.getElementById('gui-data-timestamp').innerHTML = OSRM.G.data_timestamp;
document.getElementById('gui-timestamp-label').innerHTML = OSRM.loc("GUI_VERSION");
document.getElementById('gui-timestamp').innerHTML = OSRM.DATE+"; v"+OSRM.VERSION;
document.getElementById('config-handle-icon').title = OSRM.loc("GUI_CONFIGURATION");
document.getElementById('mapping-handle-icon').title = OSRM.loc("GUI_MAPPING_TOOLS");
document.getElementById('main-handle-icon').title = OSRM.loc("GUI_MAIN_WINDOW");
OSRM.G.map.zoomControl.setTooltips( OSRM.loc("GUI_ZOOM_IN"), OSRM.loc("GUI_ZOOM_OUT") );
OSRM.G.map.locationsControl.setTooltips( OSRM.loc("GUI_ZOOM_ON_USER"), OSRM.loc("GUI_ZOOM_ON_ROUTE") );
OSRM.GUI.setDistanceFormatsLanguage();
OSRM.GUI.setRoutingEnginesLanguage();
},
//clear output area
// clear output area
clearResults: function() {
document.getElementById('information-box').innerHTML = "";
document.getElementById('information-box-header').innerHTML = "";
},
//show/hide small options bubble
toggleOptions: function() {
if(document.getElementById('options-box').style.visibility=="visible") {
document.getElementById('options-box').style.visibility="hidden";
} else {
document.getElementById('options-box').style.visibility="visible";
}
// reposition and hide zoom controls before main box animation
beforeMainTransition: function() {
OSRM.G.map.zoomControl.hide();
},
// show zoom controls after main box animation
afterMainTransition: function() {
OSRM.G.map.zoomControl.show();
},
// distance format routines
initDistanceFormatsSelector: function() {
var options = OSRM.GUI.getDistanceFormats();
OSRM.GUI.selectorInit( "gui-units-toggle", options, OSRM.DEFAULTS.DISTANCE_FORMAT, OSRM.GUI._onDistanceFormatChanged );
},
setDistanceFormat: function(type) {
if( OSRM.G.active_distance_format == type )
return;
OSRM.G.active_distance_format = type;
// show/hide main-gui
toggleMain: function() {
// show main-gui
if( OSRM.GUI.visible == false ) {
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.visibility="hidden";
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.left=(OSRM.GUI.width+10)+"px";;
document.getElementById('blob-wrapper').style.visibility="hidden";
document.getElementById('main-wrapper').style.left="5px";
// hide main-gui
} else {
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.visibility="hidden";
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.left="30px";
document.getElementById('main-wrapper').style.left=-OSRM.GUI.width+"px";
// change scale control
if(OSRM.G.map) {
OSRM.G.map.scaleControl.removeFrom(OSRM.G.map);
OSRM.G.map.scaleControl.options.metric = (type != 1);
OSRM.G.map.scaleControl.options.imperial = (type == 1);
OSRM.G.map.scaleControl.addTo(OSRM.G.map);
}
// execute after animation (old browser support)
if( OSRM.Browser.FF3!=-1 || OSRM.Browser.IE6_9!=-1 )
OSRM.GUI._onMainTransitionEnd();
// change converter
if( type == 1 )
OSRM.Utils.toHumanDistance = OSRM.Utils.toHumanDistanceMiles;
else
OSRM.Utils.toHumanDistance = OSRM.Utils.toHumanDistanceMeters;
},
_onDistanceFormatChanged: function(type) {
OSRM.GUI.setDistanceFormat(type);
OSRM.Routing.getRoute({keepAlternative:true});
},
setDistanceFormatsLanguage: function() {
var options = OSRM.GUI.getDistanceFormats();
OSRM.GUI.selectorRenameOptions("gui-units-toggle", options );
},
getDistanceFormats: function() {
return [{display:OSRM.loc("GUI_KILOMETERS"),value:0},{display:OSRM.loc("GUI_MILES"),value:1}];
},
// do stuff after main-gui animation finished
_onMainTransitionEnd: function() {
// after hiding main-gui
if( OSRM.GUI.visible == true ) {
document.getElementById('blob-wrapper').style.visibility="visible";
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.visibility="visible";
OSRM.GUI.visible = false;
// after showing main-gui
} else {
OSRM.Browser.getElementsByClassName(document,'leaflet-control-zoom')[0].style.visibility="visible";
OSRM.GUI.visible = true;
}
// data timestamp routines
queryDataTimestamp: function() {
OSRM.G.data_timestamp = "n/a";
OSRM.JSONP.call( OSRM.G.active_routing_timestamp_url+"?jsonp=%jsonp", OSRM.GUI.setDataTimestamp, OSRM.JSONP.empty, OSRM.DEFAULTS.JSONP_TIMEOUT, 'data_timestamp');
},
setDataTimestamp: function(response) {
if(!response)
return;
OSRM.G.data_timestamp = response.timestamp.slice(0,25).replace(/<\/?[^>]+(>|$)/g ,""); // discard tags
document.getElementById('gui-data-timestamp').innerHTML = OSRM.G.data_timestamp;
}
});
});
+191
View File
@@ -0,0 +1,191 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM Notifications
// [handles notifications: timed tooltips and exclusive notifications]
OSRM.GUI.extend( {
// tooltips
activeExclusive: undefined,
activeTooltip: undefined,
tooltips: {},
// LOCALIZATION: deactivation triggered in OSRM.Localization.setLanguageWrapper
// CLICKING: deactivation triggered in OSRM.Map.click
// DRAGGING: deactivation triggered in OSRM.Routing.getRoute_Dragging
// MAINTENANCE: deactivation only by config
// initialize notifications and tooltip timers
init: function() {
// exclusive notifications
var config = OSRM.DEFAULTS.NOTIFICATIONS;
if( config["MAINTENANCE"] == true ) {
var header = OSRM.DEFAULTS.OVERRIDE_MAINTENANCE_NOTIFICATION_HEADER || OSRM.loc("NOTIFICATION_MAINTENANCE_HEADER");
var body = OSRM.DEFAULTS.OVERRIDE_MAINTENANCE_NOTIFICATION_BODY || OSRM.loc("NOTIFICATION_MAINTENANCE_BODY");
OSRM.GUI.exclusiveNotify( header, body, false);
OSRM.GUI.activeExclusive = "MAINTENANCE";
return;
}
// tooltip timers
var config = OSRM.DEFAULTS.NOTIFICATIONS;
var tooltips = OSRM.GUI.tooltips;
for( id in config ) {
// skip notification?
if( !OSRM.Utils.isNumber( config[id] ) )
continue;
// create structure to hold timer data
tooltips[id] = {};
// start timer
tooltips[id]._timer = setTimeout(
function(_id){ return function(){OSRM.GUI._showTooltip(_id);}; }(id),
config[id]
);
// mark tooltip as pending
tooltips[id]._pending = true;
}
},
// deactivate pending tooltip
deactivateTooltip: function(id) {
var tooltips = OSRM.GUI.tooltips;
if(tooltips[id] == undefined)
return;
// mark tooltip as no longer pending
tooltips[id]._pending = false;
},
// show tooltip after timer expired
_showTooltip: function(id) {
var tooltips = OSRM.GUI.tooltips;
// only show tooltip if it exists
if(tooltips[id] == undefined)
return;
// only show tooltip if it is still pending
if( tooltips[id]._pending == false ) {
return;
}
// if a notification is currently shown, restart timer
var config = OSRM.DEFAULTS.NOTIFICATIONS;
if( OSRM.GUI.isTooltipVisible() ) {
tooltips[id]._timer = setTimeout(
function(_id){ return function(){OSRM.GUI._showTooltip(_id);}; }(id),
config[id]
);
return;
}
// show notification
OSRM.GUI.tooltipNotify( OSRM.loc("NOTIFICATION_"+id+"_HEADER"), OSRM.loc("NOTIFICATION_"+id+"_BODY") );
OSRM.GUI.activeTooltip = id;
// mark tooltip as no longer pending
tooltips[id]._pending = false;
},
// exclusive notification
exclusiveNotify: function( header, text, closable ){
document.getElementById('exclusive-notification-blanket').style.display = "block";
document.getElementById('exclusive-notification-label').innerHTML = header;
document.getElementById('exclusive-notification-box').innerHTML = text;
if( closable )
document.getElementById('exclusive-notification-toggle').onclick = OSRM.GUI.exclusiveDenotify;
else
document.getElementById('exclusive-notification-toggle').style.display = "none";
OSRM.GUI.exclusiveResize();
},
exclusiveDenotify: function() {
document.getElementById('exclusive-notification-blanket').style.display = "none";
OSRM.GUI.activeExclusive = undefined;
},
exclusiveUpdate: function() {
if( OSRM.GUI.activeExclusive == undefined )
return;
// override mainly intended for maintenance mode
var header = OSRM.DEFAULTS["OVERRIDE_"+OSRM.GUI.activeExclusive+"_HEADER"] || OSRM.loc("NOTIFICATION_MAINTENANCE_HEADER");
var body = OSRM.DEFAULTS["OVERRIDE_"+OSRM.GUI.activeExclusive+"_BODY"] || OSRM.loc("NOTIFICATION_MAINTENANCE_BODY");
document.getElementById('exclusive-notification-label').innerHTML = header;
document.getElementById('exclusive-notification-box').innerHTML = body;
OSRM.GUI.exclusiveResize();
},
exclusiveResize: function() {
var height = document.getElementById('exclusive-notification-box').clientHeight;
document.getElementById('exclusive-notification-content').style.height = (height + 28) + "px";
document.getElementById('exclusive-notification-wrapper').style.height = (height + 48) + "px";
},
inMaintenance: function() {
return OSRM.GUI.activeExclusive == "MAINTENANCE";
},
// tooltip notification
tooltipNotify: function( header, text ){
document.getElementById('tooltip-notification-wrapper').style.display = "block";
document.getElementById('tooltip-notification-label').innerHTML = header;
document.getElementById('tooltip-notification-box').innerHTML = text;
document.getElementById('tooltip-notification-box').style.display = "block"; // simple trick to always start with a minimized tooltip
OSRM.GUI.tooltipResize();
document.getElementById('tooltip-notification-toggle').onclick = OSRM.GUI.tooltipDenotify;
document.getElementById('tooltip-notification-resize').onclick = OSRM.GUI.tooltipResize;
},
tooltipDenotify: function() {
document.getElementById('tooltip-notification-wrapper').style.display = "none";
OSRM.GUI.activeTooltip = undefined;
},
tooltipUpdate: function() {
if( OSRM.GUI.activeTooltip == undefined )
return;
document.getElementById('tooltip-notification-label').innerHTML = OSRM.loc("NOTIFICATION_"+OSRM.GUI.activeTooltip+"_HEADER");
document.getElementById('tooltip-notification-box').innerHTML = OSRM.loc("NOTIFICATION_"+OSRM.GUI.activeTooltip+"_BODY");
OSRM.GUI.tooltipResize();
OSRM.GUI.tooltipResize(); // simple trick to retain opened/closed state of tooltip
},
tooltipResize: function() {
if( document.getElementById('tooltip-notification-box').style.display == "none" ) {
document.getElementById('tooltip-notification-box').style.display = "block";
var height = document.getElementById('tooltip-notification-box').clientHeight;
document.getElementById('tooltip-notification-content').style.height = (height + 28) + "px";
document.getElementById('tooltip-notification-wrapper').style.height = (height + 48) + "px";
document.getElementById('tooltip-notification-resize').className = "iconic-button up-marker top-right-button";
} else {
document.getElementById('tooltip-notification-box').style.display = "none";
document.getElementById('tooltip-notification-content').style.height = "18px";
document.getElementById('tooltip-notification-wrapper').style.height = "38px";
document.getElementById('tooltip-notification-resize').className = "iconic-button down-marker top-right-button";
}
},
isTooltipVisible: function() {
return document.getElementById('tooltip-notification-wrapper').style.display == "block";
},
// update language of any notification
updateNotifications: function() {
OSRM.GUI.exclusiveUpdate();
OSRM.GUI.tooltipUpdate();
}
});
+80
View File
@@ -0,0 +1,80 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM RoutingEngineGUI
// [handles all GUI aspects that deals with switching the routing engine]
OSRM.GUI.extend( {
// init
init: function() {
// gather routing engines
var options = OSRM.GUI.getRoutingEngines();
// generate selectors
OSRM.GUI.selectorInit("gui-engine-toggle", options, OSRM.DEFAULTS.ROUTING_ENGINE, OSRM.GUI._onRoutingEngineChanged);
},
// change active routing engine
setRoutingEngine: function(engine) {
if( engine == OSRM.G.active_routing_engine )
return;
OSRM.GUI.selectorChange( 'gui-engine-toggle', engine );
OSRM.G.active_routing_engine = engine;
OSRM.G.active_routing_metric = OSRM.DEFAULTS.ROUTING_ENGINES[ OSRM.G.active_routing_engine ].metric;;
OSRM.G.active_routing_server_url = OSRM.DEFAULTS.ROUTING_ENGINES[ OSRM.G.active_routing_engine ].url;
OSRM.G.active_routing_timestamp_url = OSRM.DEFAULTS.ROUTING_ENGINES[ OSRM.G.active_routing_engine ].timestamp;
// requery data timestamp
OSRM.GUI.queryDataTimestamp();
OSRM.JSONP.call( OSRM.DEFAULTS.ROUTING_ENGINES[ OSRM.G.active_routing_engine ].timestamp+"?jsonp=%jsonp", OSRM.GUI.setDataTimestamp, OSRM.GUI.setDataTimestampTimeout, OSRM.DEFAULTS.JSONP_TIMEOUT, 'data_timestamp');
},
_onRoutingEngineChanged: function(engine) {
if( engine == OSRM.G.active_routing_engine )
return;
OSRM.GUI.setRoutingEngine( engine );
// requery route
if( OSRM.G.markers.route.length > 1 )
OSRM.Routing.getRoute();
},
// change language of routing engine entries
setRoutingEnginesLanguage: function() {
// gather routing engines
var options = OSRM.GUI.getRoutingEngines();
// change dropdown menu names
OSRM.GUI.selectorRenameOptions( "gui-engine-toggle", options );
},
// gather routing engines
getRoutingEngines: function() {
var engines = OSRM.DEFAULTS.ROUTING_ENGINES;
var options = [];
for(var i=0, size=engines.length; i<size; i++) {
options.push( {display:OSRM.loc(engines[i].label), value:i} );
}
return options;
}
});
+49 -7
View File
@@ -23,6 +23,9 @@ OSRM.GUI.extend( {
// init
init: function() {
// init variables
OSRM.GUI.setDistanceFormat(OSRM.DEFAULTS.DISTANCE_FORMAT);
// init events
document.getElementById("gui-input-source").onchange = function() {OSRM.GUI.inputChanged(OSRM.C.SOURCE_LABEL);};
document.getElementById("gui-delete-source").onclick = function() {OSRM.GUI.deleteMarker(OSRM.C.SOURCE_LABEL);};
@@ -34,10 +37,22 @@ init: function() {
document.getElementById("gui-reset").onclick = OSRM.GUI.resetRouting;
document.getElementById("gui-reverse").onclick = OSRM.GUI.reverseRouting;
document.getElementById("gui-options-toggle").onclick = OSRM.GUI.toggleOptions;
document.getElementById("open-josm").onclick = OSRM.GUI.openJOSM;
document.getElementById("open-osmbugs").onclick = OSRM.GUI.openOSMBugs;
document.getElementById("option-highlight-nonames").onclick = OSRM.Routing.getZoomRoute;
document.getElementById("option-highlight-nonames").onclick = OSRM.GUI.hightlightNonames;
document.getElementById("option-show-previous-routes").onclick = OSRM.GUI.showPreviousRoutes;
},
// toggle GUI features that need a route to work
activateRouteFeatures: function() {
OSRM.Printing.activate();
OSRM.G.map.locationsControl.activateRoute();
OSRM.G.active_shortlink = null; // delete shortlink when new route is shown (RoutingDescription calls this method!)
},
deactivateRouteFeatures: function() {
OSRM.Printing.deactivate();
OSRM.G.map.locationsControl.deactivateRoute();
OSRM.G.active_shortlink = null; // delete shortlink when the route is hidden
},
// click: button "reset"
@@ -45,9 +60,8 @@ resetRouting: function() {
document.getElementById('gui-input-source').value = "";
document.getElementById('gui-input-target').value = "";
OSRM.G.route.hideAll();
OSRM.G.markers.removeAll();
OSRM.G.markers.highlight.hide();
OSRM.G.route.reset();
OSRM.G.markers.reset();
document.getElementById('information-box').innerHTML = "";
document.getElementById('information-box-header').innerHTML = "";
@@ -65,7 +79,7 @@ reverseRouting: function() {
// recompute route if needed
if( OSRM.G.route.isShown() ) {
OSRM.G.markers.route.reverse();
OSRM.Routing.getRoute(); // temporary route reversal for query, actual reversal done after receiving response
OSRM.Routing.getRoute_Reversed(); // temporary route reversal for query, actual reversal done after receiving response
OSRM.G.markers.route.reverse();
OSRM.G.markers.highlight.hide();
OSRM.RoutingDescription.showSimple( OSRM.G.response );
@@ -78,7 +92,7 @@ reverseRouting: function() {
// click: button "show"
showMarker: function(marker_id) {
if( OSRM.JSONP.fences["geocoder_source"] || OSRM.JSONP.fences["geocoder_target"] )
if( OSRM.JSONP.fences["geocoder_source"] || OSRM.JSONP.fences["geocoder_target"] ) // needed when focus was on input box and user clicked on button
return;
if( marker_id == OSRM.C.SOURCE_LABEL && OSRM.G.markers.hasSource() )
@@ -134,6 +148,34 @@ deleteMarker: function(marker_id) {
OSRM.G.markers.removeMarker( id );
OSRM.Routing.getRoute();
OSRM.G.markers.highlight.hide();
},
//click: checkbox "show previous routes"
showPreviousRoutes: function(value) {
if( document.getElementById('option-show-previous-routes').checked == false)
OSRM.G.route.deactivateHistoryRoutes();
else
OSRM.G.route.activateHistoryRoutes();
},
//click: button "zoom on route"
zoomOnRoute: function() {
if( OSRM.G.route.isShown() == false )
return;
var bounds = new L.LatLngBounds( OSRM.G.route._current_route.getPositions() );
OSRM.G.map.fitBoundsUI(bounds);
},
//click: button "zoom on user"
zoomOnUser: function() {
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(OSRM.Map.geolocationResponse);
},
//click: toggle highlighting unnamed streets
hightlightNonames: function() {
OSRM.Routing.getRoute_Redraw({keepAlternative:true});
}
});
+119
View File
@@ -0,0 +1,119 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM selector
// [create special selector elements]
OSRM.GUI.extend( {
// initialize selector with all options and our look&feel
selectorInit: function(id, options, selected, onchange_fct) {
// create dropdown menu
var select = document.getElementById(id);
select.className += " styled-select-helper base-font";
select.onchange = function() { OSRM.GUI._selectorOnChange(this); onchange_fct(this.value); };
// fill dropdown menu
for(var i=0, size=options.length; i<size; i++) {
var option=document.createElement("option");
option.innerHTML = options[i].display;
option.value = options[i].value;
select.appendChild(option);
}
select.value = options[selected].value;
// create visible dropdown menu
var textnode = document.createTextNode( options[selected].display );
var myspan = document.createElement("span");
myspan.className = "styled-select base-font";
myspan.id = "styled-select-" + select.id;
myspan.appendChild(textnode);
select.parentNode.insertBefore(myspan, select);
myspan.style.width = (select.offsetWidth-2)+"px";
myspan.style.height = (select.offsetHeight)+"px"; // clientHeight gives the height of the opened dropbox!
},
// required behaviour of selector on change to switch shown name
_selectorOnChange: function(select) {
var option = select.getElementsByTagName("option");
for(var i = 0; i < option.length; i++)
if(option[i].selected == true) {
document.getElementById("styled-select-" + select.id).childNodes[0].nodeValue = option[i].childNodes[0].nodeValue;
break;
}
},
// change selector value
selectorChange: function(id, value) {
var select = document.getElementById(id);
select.value = value;
OSRM.GUI._selectorOnChange(select);
},
// replace selector options with new names
selectorRenameOptions: function(id, options) {
var select = document.getElementById(id);
var styledSelect = document.getElementById("styled-select-"+id);
// create new dropdown menu
var new_select = document.createElement("select");
new_select.id = id;
new_select.className = select.className;
new_select.onchange = select.onchange;
// fill new dropdown menu
var selected_display = "";
for(var i=0, size=options.length; i<size; i++) {
var option=document.createElement("option");
option.innerHTML = options[i].display;
option.value = options[i].value;
new_select.appendChild(option);
if( options[i].value == select.value )
selected_display = options[i].display;
}
new_select.value = select.value;
// switch old with new dropdown menu
select.parentNode.insertBefore(new_select, select);
select.parentNode.removeChild(select);
// change styled dropdown menu size & language
styledSelect.childNodes[0].nodeValue = selected_display;
styledSelect.style.width = (new_select.offsetWidth-2)+"px";
styledSelect.style.height = (new_select.offsetHeight)+"px";
// // old variant without creating a new dropdown menu (works in current browsers, but not in older FF or IE)
// var select = document.getElementById(id);
// var select_options = select.getElementsByTagName("option");
// var styledSelect = document.getElementById("styled-select-"+id);
//
// // fill dropdown menu with new option names
// for(var i = 0; i < select_options.length; i++) {
// select_options[i].childNodes[0].nodeValue = options[i].display;
//
// if(select_options[i].selected == true)
// styledSelect.childNodes[0].nodeValue = options[i].display;
// }
//
// // resize visible dropdown menu as needed
// styledSelect.style.width = (select.offsetWidth-2)+"px";
// styledSelect.style.height = (select.offsetHeight)+"px"; // clientHeight gives the height of the opened dropbox!
}
});
Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 414 B

After

Width:  |  Height:  |  Size: 707 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 240 B

After

Width:  |  Height:  |  Size: 221 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 913 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 955 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

After

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

After

Width:  |  Height:  |  Size: 823 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 607 B

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 489 B

After

Width:  |  Height:  |  Size: 861 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

After

Width:  |  Height:  |  Size: 897 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 B

After

Width:  |  Height:  |  Size: 937 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 778 B

After

Width:  |  Height:  |  Size: 1018 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because it is too large Load Diff
+124 -68
View File
@@ -11,14 +11,13 @@
.leaflet-popup-pane,
.leaflet-overlay-pane svg,
.leaflet-zoom-box,
.leaflet-image-layer { /* TODO optimize classes */
.leaflet-image-layer,
.leaflet-layer { /* TODO optimize classes */
position: absolute;
}
.leaflet-container {
overflow: hidden;
}
.leaflet-tile-pane, .leaflet-container {
-webkit-transform: translate3d(0,0,0);
outline: 0;
}
.leaflet-tile,
.leaflet-marker-icon,
@@ -34,44 +33,50 @@
.leaflet-clickable {
cursor: pointer;
}
.leaflet-dragging, .leaflet-dragging .leaflet-clickable {
cursor: move;
}
.leaflet-container img {
/* map is broken in FF if you have max-width: 100% on tiles */
max-width: none !important;
}
.leaflet-container img.leaflet-image-layer {
/* stupid Android 2 doesn't understand "max-width: none" properly */
max-width: 15000px !important;
}
.leaflet-tile-pane { z-index: 2; }
.leaflet-objects-pane { z-index: 3; }
.leaflet-overlay-pane { z-index: 4; }
.leaflet-shadow-pane { z-index: 5; }
.leaflet-marker-pane { z-index: 6; }
.leaflet-popup-pane { z-index: 7; }
.leaflet-zoom-box {
width: 0;
height: 0;
}
.leaflet-tile {
visibility: hidden;
filter: inherit;
visibility: hidden;
}
.leaflet-tile-loaded {
visibility: inherit;
}
a.leaflet-active {
outline: 2px solid orange;
}
.leaflet-zoom-box {
width: 0;
height: 0;
}
/* Leaflet controls */
.leaflet-control {
position: relative;
z-index: 7;
pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
position: absolute;
z-index: 1000;
pointer-events: none;
}
.leaflet-top {
top: 0;
@@ -105,7 +110,7 @@ a.leaflet-active {
margin-right: 10px;
}
.leaflet-control-zoom, .leaflet-control-layers {
.leaflet-control-zoom {
-moz-border-radius: 7px;
-webkit-border-radius: 7px;
border-radius: 7px;
@@ -132,7 +137,7 @@ a.leaflet-active {
.leaflet-control-zoom a:hover {
background-color: #fff;
}
.leaflet-big-buttons .leaflet-control-zoom a {
.leaflet-touch .leaflet-control-zoom a {
width: 27px;
height: 27px;
}
@@ -145,18 +150,18 @@ a.leaflet-active {
}
.leaflet-control-layers {
-moz-box-shadow: 0 0 7px #999;
-webkit-box-shadow: 0 0 7px #999;
box-shadow: 0 0 7px #999;
box-shadow: 0 1px 7px #999;
background: #f8f8f9;
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
}
.leaflet-control-layers a {
background-image: url(images/layers.png);
width: 36px;
height: 36px;
}
.leaflet-big-buttons .leaflet-control-layers a {
.leaflet-touch .leaflet-control-layers a {
width: 44px;
height: 44px;
}
@@ -189,23 +194,60 @@ a.leaflet-active {
}
.leaflet-container .leaflet-control-attribution {
margin: 0;
padding: 0 5px;
font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
color: #333;
background-color: rgba(255, 255, 255, 0.7);
box-shadow: 0 0 5px #bbb;
margin: 0;
}
-moz-box-shadow: 0 0 7px #ccc;
-webkit-box-shadow: 0 0 7px #ccc;
box-shadow: 0 0 7px #ccc;
.leaflet-control-attribution,
.leaflet-control-scale-line {
padding: 0 5px;
color: #333;
}
.leaflet-container .leaflet-control-attribution,
.leaflet-container .leaflet-control-scale {
font: 11px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
}
.leaflet-left .leaflet-control-scale {
margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
margin-bottom: 5px;
}
.leaflet-control-scale-line {
border: 2px solid #777;
border-top: none;
color: black;
line-height: 1;
font-size: 10px;
padding-bottom: 2px;
text-shadow: 1px 1px 1px #fff;
background-color: rgba(255, 255, 255, 0.5);
}
.leaflet-control-scale-line:not(:first-child) {
border-top: 2px solid #777;
padding-top: 1px;
border-bottom: none;
margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution, .leaflet-touch .leaflet-control-layers {
box-shadow: none;
}
.leaflet-touch .leaflet-control-layers {
border: 5px solid #bbb;
}
/* Fade animations */
/* Zoom and fade animations */
.leaflet-fade-anim .leaflet-tile {
.leaflet-fade-anim .leaflet-tile, .leaflet-fade-anim .leaflet-popup {
opacity: 0;
-webkit-transition: opacity 0.2s linear;
@@ -213,30 +255,27 @@ a.leaflet-active {
-o-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-tile-loaded {
.leaflet-fade-anim .leaflet-tile-loaded, .leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
opacity: 1;
}
.leaflet-fade-anim .leaflet-popup {
opacity: 0;
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
-o-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
opacity: 1;
.leaflet-zoom-anim .leaflet-zoom-animated {
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0.25,0.1,0.25,0.75);
-moz-transition: -moz-transform 0.25s cubic-bezier(0.25,0.1,0.25,0.75);
-o-transition: -o-transform 0.25s cubic-bezier(0.25,0.1,0.25,0.75);
transition: transform 0.25s cubic-bezier(0.25,0.1,0.25,0.75);
}
.leaflet-zoom-anim .leaflet-tile {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile,
.leaflet-touching .leaflet-zoom-animated {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.leaflet-zoom-anim .leaflet-objects-pane {
.leaflet-zoom-anim .leaflet-zoom-hide {
visibility: hidden;
}
@@ -246,19 +285,18 @@ a.leaflet-active {
.leaflet-popup {
position: absolute;
text-align: center;
-webkit-transform: translate3d(0,0,0);
}
.leaflet-popup-content-wrapper {
padding: 1px;
text-align: left;
}
.leaflet-popup-content {
margin: 19px;
margin: 14px 20px;
}
.leaflet-popup-tip-container {
margin: 0 auto;
width: 40px;
height: 16px;
height: 20px;
position: relative;
overflow: hidden;
}
@@ -275,19 +313,30 @@ a.leaflet-active {
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
.leaflet-popup-close-button {
.leaflet-container a.leaflet-popup-close-button {
position: absolute;
top: 9px;
right: 9px;
width: 10px;
height: 10px;
overflow: hidden;
top: 0;
right: 0;
padding: 4px 5px 0 0;
text-align: center;
width: 18px;
height: 14px;
font: 16px/14px Tahoma, Verdana, sans-serif;
color: #c3c3c3;
text-decoration: none;
font-weight: bold;
}
.leaflet-container a.leaflet-popup-close-button:hover {
color: #999;
}
.leaflet-popup-content p {
margin: 18px 0;
}
.leaflet-popup-scrolled {
overflow: auto;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
}
/* Visual appearance */
@@ -298,17 +347,27 @@ a.leaflet-active {
.leaflet-container a {
color: #0078A8;
}
.leaflet-container a.leaflet-active {
outline: 2px solid orange;
}
.leaflet-zoom-box {
border: 2px dotted #05f;
background: white;
opacity: 0.5;
}
.leaflet-div-icon {
background: #fff;
border: 1px solid #666;
}
.leaflet-editing-icon {
border-radius: 2px;
}
.leaflet-popup-content-wrapper, .leaflet-popup-tip {
background: white;
box-shadow: 0 1px 10px #888;
-moz-box-shadow: 0 1px 10px #888;
-webkit-box-shadow: 0 1px 14px #999;
box-shadow: 0 3px 10px #888;
-moz-box-shadow: 0 3px 10px #888;
-webkit-box-shadow: 0 3px 14px #999;
}
.leaflet-popup-content-wrapper {
-moz-border-radius: 20px;
@@ -318,6 +377,3 @@ a.leaflet-active {
.leaflet-popup-content {
font: 12px/1.4 "Helvetica Neue", Arial, Helvetica, sans-serif;
}
.leaflet-popup-close-button {
background: white url(images/popup-close.png);
}
-4
View File
@@ -1,7 +1,3 @@
.leaflet-tile {
filter: inherit;
}
.leaflet-vml-shape {
width: 1px;
height: 1px;
File diff suppressed because one or more lines are too long
+111
View File
@@ -0,0 +1,111 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Bulgarian language support]
OSRM.Localization["bg"] = {
// own language
"CULTURE": "bg-BG",
"LANGUAGE": "Български",
// gui
"GUI_START": "Начало",
"GUI_END": "Край",
"GUI_RESET": "Изчисти",
"GUI_ZOOM_ON_ROUTE": "Приближи на маршрута",
"GUI_ZOOM_ON_USER": "Приближи на потребител",
"GUI_SEARCH": "Покажи",
"GUI_REVERSE": "Размени",
"GUI_START_TOOLTIP": "Въведи начало",
"GUI_END_TOOLTIP": "Въведи карйна цел",
"GUI_MAIN_WINDOW": "главния прозорец",
"GUI_ZOOM_IN": "Приближаване",
"GUI_ZOOM_OUT": "Oтдалечаване",
// config
"GUI_CONFIGURATION": "Конфигурация",
"GUI_LANGUAGE": "Език",
"GUI_UNITS": "единици",
"GUI_KILOMETERS": "Километри",
"GUI_MILES": "Мили",
// mapping
"GUI_MAPPING_TOOLS": "Инструменти за карта",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Подчертай неименувани улици",
"GUI_SHOW_PREVIOUS_ROUTES": "Покажи преднишни маршрути",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Грешки",
// geocoder
"SEARCH_RESULTS": "Резултати от търсене",
"FOUND_X_RESULTS": "намерени %i резултати",
"TIMED_OUT": "Прекъсване",
"NO_RESULTS_FOUND": "Няма резултати",
"NO_RESULTS_FOUND_SOURCE": "Няма резултати за начало",
"NO_RESULTS_FOUND_TARGET": "Няма резултати за край",
// routing
"ROUTE_DESCRIPTION": "Описание на маршрута",
"GET_LINK_TO_ROUTE": "Генерирай препратка",
"GENERATE_LINK_TO_ROUTE": "изчакване за препратка",
"LINK_TO_ROUTE_TIMEOUT": "не е наличен",
"GPX_FILE": "GPX файл",
"DISTANCE": "Разстояние",
"DURATION": "Продължителност",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Маршрутът се изчислява",
"NO_ROUTE_FOUND": "Не е възможен маршрут",
// printing
"OVERVIEW_MAP": "сбит изглед",
"NO_ROUTE_SELECTED": "Не е изберан маршрут",
// routing engines
"ENGINE_0": "Kола (най-бързо)",
// directions
"N": "север",
"E": "изток",
"S": "юг",
"W": "запад",
"NE": "североизток",
"SE": "югоизток",
"SW": "югозапад",
"NW": "североизток",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Невалидна инструкция[ по <b>%s</b>]",
"DIRECTION_1":"Продължи[ по <b>%s</b>]",
"DIRECTION_2":"Завий леко вдясно[ по <b>%s</b>]",
"DIRECTION_3":"Завий вдясно[ по <b>%s</b>]",
"DIRECTION_4":"Завий остро вдясно[ по <b>%s</b>]",
"DIRECTION_5":"Обратен завой[ по <b>%s</b>]",
"DIRECTION_6":"Завий остро вляво[ по <b>%s</b>]",
"DIRECTION_7":"Завий вляво[ по <b>%s</b>]",
"DIRECTION_8":"Завий леко вляво[ по <b>%s</b>]",
"DIRECTION_10":"Направо <b>%d</b>[ по <b>%s</b>]",
"DIRECTION_11-1":"Влез в кръговото и излез на първия изход[ по <b>%s</b>]",
"DIRECTION_11-2":"Влез в кръговото и излез на втория изход[ по <b>%s</b>]",
"DIRECTION_11-3":"Влез в кръговото и излез на третия изход[ по <b>%s</b>]",
"DIRECTION_11-4":"Влез в кръговото и излез на четвъртия изход[ по <b>%s</b>]",
"DIRECTION_11-5":"Влез в кръговото и излез на петия изход[ по <b>%s</b>]",
"DIRECTION_11-6":"Влез в кръговото и излез на шестия изход[ по <b>%s</b>]",
"DIRECTION_11-7":"Влез в кръговото и излез на седмия изход[ по <b>%s</b>]",
"DIRECTION_11-8":"Влез в кръговото и излез на осмия изход[ по <b>%s</b>]",
"DIRECTION_11-9":"Влез в кръговото и излез на деветия изход[ по <b>%s</b>]",
"DIRECTION_11-x":"Влез в кръговото и излез на един от многото изходи[ по <b>%s</b>]",
"DIRECTION_15":"Достигна крайната цел"
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("bg");
+109
View File
@@ -0,0 +1,109 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Czech language support]
OSRM.Localization["cs"] = {
// own language
"CULTURE": "cs-CZ",
"LANGUAGE": "česky",
// gui
"GUI_START": "Odkud",
"GUI_END": "Kam",
"GUI_RESET": "Vyčistit",
"GUI_ZOOM": "Zoom na trasu",
"GUI_SEARCH": "Ukázat",
"GUI_REVERSE": "Prohodit",
"GUI_START_TOOLTIP": "Zadejte začátek cesty",
"GUI_END_TOOLTIP": "Zadejte cíl cesty",
"GUI_ZOOM_IN": "Najíždět",
"GUI_ZOOM_OUT": "Oddálit",
// config
"GUI_CONFIGURATION": "Nastavení",
"GUI_LANGUAGE": "Jazyk",
"GUI_UNITS": "Jednotky",
"GUI_KILOMETERS": "kilometry",
"GUI_MILES": "míle",
// mapping
"GUI_MAPPING_TOOLS": "Mapovací nástroje",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Zvýraznit nepojmenované ulice",
"GUI_SHOW_PREVIOUS_ROUTES": "Zobrazit předchozí trasy",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Výsledky hledání",
"FOUND_X_RESULTS": "nalezeno %i výsledků",
"TIMED_OUT": "Časová lhůta uplynula",
"NO_RESULTS_FOUND": "Nejsou žádné výsledky",
"NO_RESULTS_FOUND_SOURCE": "Nejsou žádné výsledky pro začátek trasy",
"NO_RESULTS_FOUND_TARGET": "Nejsou žádné výsledky pro konec trasy",
//routing
"ROUTE_DESCRIPTION": "Popis trasy",
"GET_LINK_TO_ROUTE": "Generovat odkaz",
"GENERATE_LINK_TO_ROUTE": "čekání na odkaz",
"LINK_TO_ROUTE_TIMEOUT": "není k dispozici",
"GPX_FILE": "GPX soubor",
"DISTANCE": "Vzdálenost",
"DURATION": "Doba",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Vaše trasa byla vyznačena",
"NO_ROUTE_FOUND": "Trasu nelze vyznačit",
// printing
"OVERVIEW_MAP": "Přehledová mapka",
"NO_ROUTE_SELECTED": "Ne vybranou trasu",
// routing engines
"ENGINE_0": "Auto (nejrychlejší)",
// directions
"N": "sever",
"E": "východ",
"S": "jih",
"W": "západ",
"NE": "severovýchod",
"SE": "jihovýchod",
"SW": "jihozápad",
"NW": "severozápad",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Neznámý pokyn[ na <b>%s</b>]",
"DIRECTION_1":"Pokračujte[ silnicí <b>%s</b>]",
"DIRECTION_2":"Zahněte mírně vpravo[ na silnici <b>%s</b>]",
"DIRECTION_3":"Zahněte vpravo[ na silnici <b>%s</b>]",
"DIRECTION_4":"Zahněte ostře doprava[ na silnici <b>%s</b>]",
"DIRECTION_5":"Otočte se[ na silnici <b>%s</b>]",
"DIRECTION_6":"Zahněte ostře doleva[ na silnici <b>%s</b>]",
"DIRECTION_7":"Zahněte vlevo[ na silnici <b>%s</b>]",
"DIRECTION_8":"Zahněte mírně vlevo[ na silnici <b>%s</b>]",
"DIRECTION_10":"Jeďte na <b>%d</b>[ silnicí <b>%s</b>]",
"DIRECTION_11-1":"Najeďte na kruhový objezd a opusťte jej prvním výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-2":"Najeďte na kruhový objezd a opusťte jej druhým výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-3":"Najeďte na kruhový objezd a opusťte jej třetím výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-4":"Najeďte na kruhový objezd a opusťte jej čtvrtým výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-5":"Najeďte na kruhový objezd a opusťte jej pátým výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-6":"Najeďte na kruhový objezd a opusťte jej šestým výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-7":"Najeďte na kruhový objezd a opusťte jej sedmým výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-8":"Najeďte na kruhový objezd a opusťte jej osmým výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-9":"Najeďte na kruhový objezd a opusťte jej devátým výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_11-1":"Najeďte na kruhový objezd a opusťte jej vámi vybraným výjezdem[ na silnici <b>%s</b>]",
"DIRECTION_15":"Jste u cíle"
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("cs");
+26 -8
View File
@@ -20,19 +20,34 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Localization["de"] = {
//gui
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// own language
"CULTURE": "de-DE",
"LANGUAGE": "Deutsch",
// gui
"GUI_START": "Start",
"GUI_END": "Ziel",
"GUI_RESET": "Reset",
"GUI_ZOOM_ON_ROUTE": "Zoom auf Route",
"GUI_ZOOM_ON_USER": "Zoom auf Anwender",
"GUI_SEARCH": "Zeigen",
"GUI_REVERSE": "Umdrehen",
"GUI_OPTIONS": "Kartenwerkzeuge",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Unbenannte Straßen hervorheben",
"GUI_START_TOOLTIP": "Startposition eingeben",
"GUI_END_TOOLTIP": "Zielposition eingeben",
"GUI_LEGAL_NOTICE": "GUI2 v"+OSRM.VERSION+" "+OSRM.DATE+" - OSRM hosting by <a href='http://algo2.iti.kit.edu/'>KIT</a> - Geocoder by <a href='http://www.osm.org/'>OSM</a>",
"GUI_MAIN_WINDOW": "Hauptfenster",
"GUI_ZOOM_IN": "Vergrößern",
"GUI_ZOOM_OUT": "Verkleinern",
// config
"GUI_CONFIGURATION": "Einstellungen",
"GUI_LANGUAGE": "Sprache",
"GUI_UNITS": "Einheiten",
"GUI_KILOMETERS": "Kilometer",
"GUI_MILES": "Meilen",
// mapping
"GUI_MAPPING_TOOLS": "Kartenwerkzeuge",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Unbenannte Straßen hervorheben",
"GUI_SHOW_PREVIOUS_ROUTES": "Frühere Routen zeigen",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Suchergebnisse",
"FOUND_X_RESULTS": "%i Ergebnisse gefunden",
@@ -52,6 +67,9 @@ OSRM.Localization["de"] = {
"NO_ROUTE_FOUND": "Keine Route hierher möglich",
// printing
"OVERVIEW_MAP": "Übersichtskarte",
"NO_ROUTE_SELECTED": "Keine Route ausgewählt",
// routing engines
"ENGINE_0": "Auto (schnellste)",
// directions
"N": "Norden",
"E": "Ost",
@@ -71,9 +89,9 @@ OSRM.Localization["de"] = {
"DIRECTION_3":"Rechts abbiegen[ auf <b>%s</b>]",
"DIRECTION_4":"Scharf rechts abbiegen[ auf <b>%s</b>]",
"DIRECTION_5":"Wenden[ auf <b>%s</b>]",
"DIRECTION_6":"Leicht links abbiegen[ auf <b>%s</b>]",
"DIRECTION_6":"Scharf links abbiegen[ auf <b>%s</b>]",
"DIRECTION_7":"Links abbiegen[ auf <b>%s</b>]",
"DIRECTION_8":"Scharf links abbiegen[ auf <b>%s</b>]",
"DIRECTION_8":"Leicht links abbiegen[ auf <b>%s</b>]",
"DIRECTION_10":"Fahren Sie Richtung <b>%d</b>[ auf <b>%s</b>]",
"DIRECTION_11-1":"In den Kreisverkehr einfahren und bei erster Möglichkeit[ in Richtung <b>%s</b>] verlassen",
"DIRECTION_11-2":"In den Kreisverkehr einfahren und bei zweiter Möglichkeit[ in Richtung <b>%s</b>] verlassen",
@@ -19,20 +19,35 @@ or see http://www.gnu.org/licenses/agpl.txt.
// [Danish language support]
OSRM.Localization["da"] = {
//gui
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Fejl",
OSRM.Localization["dk"] = {
// own language
"CULTURE": "da-DK",
"LANGUAGE": "Dansk",
// gui
"GUI_START": "Start",
"GUI_END": "Destination",
"GUI_RESET": "&nbsp;&nbsp;Nulstil&nbsp;&nbsp;",
"GUI_SEARCH": "&nbsp;&nbsp;Vis&nbsp;&nbsp;",
"GUI_RESET": "Nulstil",
"GUI_ZOOM_ON_ROUTE": "Zoom på Rute",
"GUI_ZOOM_ON_USER": "Zoom på Bruger",
"GUI_SEARCH": "Vis",
"GUI_REVERSE": "Omvendt",
"GUI_OPTIONS": "Kortlægnings værktøjer",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Fremhæv unavngivne veje",
"GUI_START_TOOLTIP": "Indtast start",
"GUI_END_TOOLTIP": "Indtast destination",
"GUI_LEGAL_NOTICE": "GUI2 v"+OSRM.VERSION+" "+OSRM.DATE+" - OSRM hosting af <a href='http://algo2.iti.kit.edu/'>KIT</a> - Geocoder af <a href='http://www.osm.org/'>OSM</a>",
"GUI_MAIN_WINDOW": "Hovedvinduet",
"GUI_ZOOM_IN": "Zoome ind",
"GUI_ZOOM_OUT": "Zoome ud",
// config
"GUI_CONFIGURATION": "Konfiguration",
"GUI_LANGUAGE": "Sprog",
"GUI_UNITS": "Enheder",
"GUI_KILOMETERS": "Kilometer",
"GUI_MILES": "Miles",
// mapping
"GUI_MAPPING_TOOLS": "Kortlægnings værktøjer",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Fremhæv unavngivne veje",
"GUI_SHOW_PREVIOUS_ROUTES": "Vis tidligere ruter",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Søgeresultater",
"FOUND_X_RESULTS": "fandt %i resultater",
@@ -40,7 +55,7 @@ OSRM.Localization["da"] = {
"NO_RESULTS_FOUND": "Ingen resultater",
"NO_RESULTS_FOUND_SOURCE": "Ingen resultater for start",
"NO_RESULTS_FOUND_TARGET": "Ingen resultater for destination",
//routing
// routing
"ROUTE_DESCRIPTION": "Rutebeskrivelse",
"GET_LINK_TO_ROUTE": "Lav link",
"GENERATE_LINK_TO_ROUTE": "venter på link",
@@ -50,9 +65,11 @@ OSRM.Localization["da"] = {
"DURATION": "Varighed",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Din rute bliver beregnet",
"NO_ROUTE_FOUND": "Ingen mulig rute fundet",
//printing
// printing
"OVERVIEW_MAP": "Oversigtskort",
"NO_ROUTE_SELECTED": "Ikke valgte rute",
// routing engines
"ENGINE_0": "Bil (hurtigste)",
// directions
"N": "nord",
"E": "øst",
@@ -72,9 +89,9 @@ OSRM.Localization["da"] = {
"DIRECTION_3":"Drej til højre[ ad <b>%s</b>]",
"DIRECTION_4":"Drej skarpt til højre[ ad <b>%s</b>]",
"DIRECTION_5":"U-vending[ ad <b>%s</b>]",
"DIRECTION_6":"Drej svagt til venstre[ ad <b>%s</b>]",
"DIRECTION_6":"Drej skarpt til venstre[ ad <b>%s</b>]",
"DIRECTION_7":"Drej til venstre[ ad <b>%s</b>]",
"DIRECTION_8":"Drej skarpt til venstre[ ad <b>%s</b>]",
"DIRECTION_8":"Drej svagt til venstre[ ad <b>%s</b>]",
"DIRECTION_10":"Kør mod <b>%d</b>[ ad <b>%s</b>]",
"DIRECTION_11-1":"Kør ind i rundkørslen og tag første udkørsel[ ad <b>%s</b>]",
"DIRECTION_11-2":"Kør ind i rundkørslen og tag anden udkørsel[ ad <b>%s</b>]",
@@ -89,6 +106,6 @@ OSRM.Localization["da"] = {
"DIRECTION_15":"Du er ankommet til din destination"
};
//set GUI language on load
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("da");
OSRM.Localization.setLanguage("dk");
+78 -30
View File
@@ -20,19 +20,34 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Localization["en"] = {
//gui
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// own language
"CULTURE": "en-US",
"LANGUAGE": "English",
// gui
"GUI_START": "Start",
"GUI_END": "End",
"GUI_RESET": "&nbsp;&nbsp;Reset&nbsp;&nbsp;",
"GUI_ZOOM_ON_ROUTE": "Zoom onto Route",
"GUI_ZOOM_ON_USER": "Zoom onto User",
"GUI_SEARCH": "&nbsp;&nbsp;Show&nbsp;&nbsp;",
"GUI_REVERSE": "Reverse",
"GUI_OPTIONS": "Mapping Tools",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Highlight unnamed streets",
"GUI_START_TOOLTIP": "Enter start",
"GUI_END_TOOLTIP": "Enter destination",
"GUI_LEGAL_NOTICE": "GUI2 v"+OSRM.VERSION+" "+OSRM.DATE+" - OSRM hosting by <a href='http://algo2.iti.kit.edu/'>KIT</a> - Geocoder by <a href='http://www.osm.org/'>OSM</a>",
"GUI_MAIN_WINDOW": "Main window",
"GUI_ZOOM_IN": "Zoom in",
"GUI_ZOOM_OUT": "Zoom out",
// config
"GUI_CONFIGURATION": "Configuration",
"GUI_LANGUAGE": "Language",
"GUI_UNITS": "Units",
"GUI_KILOMETERS": "Kilometers",
"GUI_MILES": "Miles",
// mapping
"GUI_MAPPING_TOOLS": "Mapping Tools",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Highlight unnamed streets",
"GUI_SHOW_PREVIOUS_ROUTES": "Show previous routes",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Search Results",
"FOUND_X_RESULTS": "found %i results",
@@ -40,7 +55,7 @@ OSRM.Localization["en"] = {
"NO_RESULTS_FOUND": "No results found",
"NO_RESULTS_FOUND_SOURCE": "No results found for start",
"NO_RESULTS_FOUND_TARGET": "No results found for end",
//routing
// routing
"ROUTE_DESCRIPTION": "Route Description",
"GET_LINK_TO_ROUTE": "Generate Link",
"GENERATE_LINK_TO_ROUTE": "waiting for link",
@@ -50,8 +65,11 @@ OSRM.Localization["en"] = {
"DURATION": "Duration",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Your route is being computed",
"NO_ROUTE_FOUND": "No route possible",
//printing
// printing
"OVERVIEW_MAP": "Overview Map",
"NO_ROUTE_SELECTED": "No route selected",
// routing engines
"ENGINE_0": "Car (fastest)",
// directions
"N": "north",
"E": "east",
@@ -65,29 +83,59 @@ OSRM.Localization["en"] = {
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Unknown instruction[ on <b>%s</b>]",
"DIRECTION_1":"Continue[ on <b>%s</b>]",
"DIRECTION_2":"Turn slight right[ on <b>%s</b>]",
"DIRECTION_3":"Turn right[ on <b>%s</b>]",
"DIRECTION_4":"Turn sharp right[ on <b>%s</b>]",
"DIRECTION_5":"U-Turn[ on <b>%s</b>]",
"DIRECTION_6":"Turn slight left[ on <b>%s</b>]",
"DIRECTION_7":"Turn left[ on <b>%s</b>]",
"DIRECTION_8":"Turn sharp left[ on <b>%s</b>]",
"DIRECTION_10":"Head <b>%d</b>[ on <b>%s</b>]",
"DIRECTION_11-1":"Enter roundabout and leave at first exit[ on <b>%s</b>]",
"DIRECTION_11-2":"Enter roundabout and leave at second exit[ on <b>%s</b>]",
"DIRECTION_11-3":"Enter roundabout and leave at third exit[ on <b>%s</b>]",
"DIRECTION_11-4":"Enter roundabout and leave at fourth exit[ on <b>%s</b>]",
"DIRECTION_11-5":"Enter roundabout and leave at fifth exit[ on <b>%s</b>]",
"DIRECTION_11-6":"Enter roundabout and leave at sixth exit[ on <b>%s</b>]",
"DIRECTION_11-7":"Enter roundabout and leave at seventh exit[ on <b>%s</b>]",
"DIRECTION_11-8":"Enter roundabout and leave at eighth exit[ on <b>%s</b>]",
"DIRECTION_11-9":"Enter roundabout and leave at nineth exit[ on <b>%s</b>]",
"DIRECTION_11-x":"Enter roundabout and leave at one of the too many exits[ on <b>%s</b>]",
"DIRECTION_15":"You have reached your destination"
"DIRECTION_0":"Unknown instruction[ onto <b>%s</b>]",
"DIRECTION_1":"Continue[ onto <b>%s</b>]",
"DIRECTION_2":"Turn slight right[ onto <b>%s</b>]",
"DIRECTION_3":"Turn right[ onto <b>%s</b>]",
"DIRECTION_4":"Turn sharp right[ onto <b>%s</b>]",
"DIRECTION_5":"U-Turn[ onto <b>%s</b>]",
"DIRECTION_6":"Turn sharp left[ onto <b>%s</b>]",
"DIRECTION_7":"Turn left[ onto <b>%s</b>]",
"DIRECTION_8":"Turn slight left[ onto <b>%s</b>]",
"DIRECTION_10":"Head <b>%d</b>[ onto <b>%s</b>]",
"DIRECTION_11-1":"Enter roundabout and leave at first exit[ onto <b>%s</b>]",
"DIRECTION_11-2":"Enter roundabout and leave at second exit[ onto <b>%s</b>]",
"DIRECTION_11-3":"Enter roundabout and leave at third exit[ onto <b>%s</b>]",
"DIRECTION_11-4":"Enter roundabout and leave at fourth exit[ onto <b>%s</b>]",
"DIRECTION_11-5":"Enter roundabout and leave at fifth exit[ onto <b>%s</b>]",
"DIRECTION_11-6":"Enter roundabout and leave at sixth exit[ onto <b>%s</b>]",
"DIRECTION_11-7":"Enter roundabout and leave at seventh exit[ onto <b>%s</b>]",
"DIRECTION_11-8":"Enter roundabout and leave at eighth exit[ onto <b>%s</b>]",
"DIRECTION_11-9":"Enter roundabout and leave at nineth exit[ onto <b>%s</b>]",
"DIRECTION_11-x":"Enter roundabout and leave at one of the too many exits[ onto <b>%s</b>]",
"DIRECTION_15":"You have reached your destination",
// notifications
"NOTIFICATION_MAINTENANCE_HEADER": "Scheduled Maintenance",
"NOTIFICATION_MAINTENANCE_BODY": "The OSRM Website is down for a scheduled maintenance. " +
"Please be patient while required updates are performed. " +
"The site will be back online shortly." +
"<br/><br/>" +
"In the meantime you may want to go out an map a friendly neighborhood near you..." +
"<br/><br/><br/>[OSRM]",
"NOTIFICATION_LOCALIZATION_HEADER": "Did you know? You can change the display language.",
"NOTIFICATION_LOCALIZATION_BODY": "You can use the pulldown menu in the upper left corner to select your favorite language. " +
"<br/><br/>" +
"Don't despair if you cannot find your language of choice. " +
"If you want, you can help to provide additional translations! " +
"Visit <a href='https://github.com/DennisSchiefer/Project-OSRM-Web'>here</a> for more information.",
"NOTIFICATION_CLICKING_HEADER": "Did you know? You can click on the map to set route markers.",
"NOTIFICATION_CLICKING_BODY": "You can click on the map with the left mouse button to set a source marker (green) or a target marker (red), " +
"if the source marker already exists. " +
"The address of the selected location will be displayed in the boxes to the left. " +
"<br/><br/>" +
"You can delete a marker by clicking on it again with the left mouse button.",
"NOTIFICATION_DRAGGING_HEADER": "Did you know? You can drag each route marker on the map.",
"NOTIFICATION_DRAGGING_BODY": "You can drag a marker by clicking on it with the left mouse button and holding the button pressed. " +
"Then you can move the marker around the map and the route will be updated instantaneously. " +
"<br/><br/>" +
"You can even create intermediate markers by dragging them off of the main route! ",
// do not translate below this line
"GUI_LEGAL_NOTICE": "Routing by <a href='http://project-osrm.org/'>Project OSRM</a> - Geocoder by <a href='http://wiki.openstreetmap.org/wiki/Nominatim'>Nominatim</a> - OSRM hosting by <a href='http://algo2.iti.kit.edu/'>KIT</a>",
"GUI_DATA_TIMESTAMP": "data: ",
"GUI_VERSION": "gui: ",
"QR": "QR"
};
//set GUI language on load
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("en");
+136
View File
@@ -0,0 +1,136 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Spanish language support]
OSRM.Localization["es"] = {
// own language
"CULTURE": "es-ES",
"LANGUAGE": "Español",
// gui
"GUI_START": "Inicio",
"GUI_END": "Destino",
"GUI_RESET": "Borrar",
"GUI_ZOOM_ON_ROUTE": "Zoom en la Ruta",
"GUI_ZOOM_ON_USER": "Zoom en Usuario",
"GUI_SEARCH": "Mostrar",
"GUI_REVERSE": "Invertir",
"GUI_START_TOOLTIP": "Escriba la dirección de origen",
"GUI_END_TOOLTIP": "Escriba la dirección de destino",
"GUI_MAIN_WINDOW": "Ventana principal",
"GUI_ZOOM_IN": "Ampliar",
"GUI_ZOOM_OUT": "Alejar",
// config
"GUI_CONFIGURATION": "Configuración",
"GUI_LANGUAGE": "Idioma",
"GUI_UNITS": "Unidades",
"GUI_KILOMETERS": "Kilometros",
"GUI_MILES": "Millas",
// mapping
"GUI_MAPPING_TOOLS": "Herramientas del mapa",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Resaltar calles sin nombre",
"GUI_SHOW_PREVIOUS_ROUTES": "Mostrar rutas anteriores",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Resultados de la búsqueda",
"FOUND_X_RESULTS": "%i resultado(s)",
"TIMED_OUT": "Se superó el tiempo máximo de espera",
"NO_RESULTS_FOUND": "No se han encontrado resultados",
"NO_RESULTS_FOUND_SOURCE": "Ningún resultado para el inicio",
"NO_RESULTS_FOUND_TARGET": "Ningún resultado para el destino",
// routing
"ROUTE_DESCRIPTION": "Descripción de la ruta",
"GET_LINK_TO_ROUTE": "Generar enlace",
"GENERATE_LINK_TO_ROUTE": "esperando el enlace",
"LINK_TO_ROUTE_TIMEOUT": "no disponible",
"GPX_FILE": "Archivo GPX",
"DISTANCE": "Distancia",
"DURATION": "Duración",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Estamos calculando su ruta",
"NO_ROUTE_FOUND": "No hay ninguna ruta posible",
// printing
"OVERVIEW_MAP": "Mapa de referencia",
"NO_ROUTE_SELECTED": "Ninguna ruta seleccionada",
// routing engines
"ENGINE_0": "Coche (el más rápido)",
// directions
"N": "norte",
"E": "este",
"S": "sur",
"W": "oeste",
"NE": "noreste",
"SE": "sureste",
"SW": "suroeste",
"NW": "noroeste",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Instrucción desconocida[ en <b>%s</b>]",
"DIRECTION_1":"Continúe[ por <b>%s</b>]",
"DIRECTION_2":"Gire ligeramente a la derecha[ hacia <b>%s</b>]",
"DIRECTION_3":"Gire a la derecha [ hacia <b>%s</b>]",
"DIRECTION_4":"Gire pronunciadamente a la derecha[ hacia <b>%s</b>]",
"DIRECTION_5":"Realice un cambio de sentido[ en <b>%s</b>]",
"DIRECTION_6":"Gire pronunciadamente a la izquierda[ hacia <b>%s</b>]",
"DIRECTION_7":"Gire a la izquierda [ hacia <b>%s</b>]",
"DIRECTION_8":"Gire ligeramente a la izquierda[ hacia <b>%s</b>]",
"DIRECTION_10":"Diríjase hacia el <b>%d</b>[ por <b>%s</b>]",
"DIRECTION_11-1":"En la rotonda, tome la primera salida[ en dirección <b>%s</b>]",
"DIRECTION_11-2":"En la rotonda, tome la segunda salida[ en dirección <b>%s</b>]",
"DIRECTION_11-3":"En la rotonda, tome la tercera salida[ en dirección <b>%s</b>]",
"DIRECTION_11-4":"En la rotonda, tome la cuarta salida[ en dirección <b>%s</b>]",
"DIRECTION_11-5":"En la rotonda, tome la quinta salida[ en dirección <b>%s</b>]",
"DIRECTION_11-6":"En la rotonda, tome la sexta salida[ en dirección <b>%s</b>]",
"DIRECTION_11-7":"En la rotonda, tome la séptima salida[ en dirección <b>%s</b>]",
"DIRECTION_11-8":"En la rotonda, tome la octava salida[ en dirección <b>%s</b>]",
"DIRECTION_11-9":"En la rotonda, tome la novena salida[ en dirección <b>%s</b>]",
"DIRECTION_11-x":"En la rotonda, tome una de sus muchas salidas [ en dirección <b>%s</b>]",
"DIRECTION_15":"Ha llegado a su destino",
// notifications
"NOTIFICATION_MAINTENANCE_HEADER": "Mantenimiento programado",
"NOTIFICATION_MAINTENANCE_BODY": "La web de OSRM está desactivada debido a una interrupción de mantenimiento programado. " +
"Sea paciente mientra se realizan las actualizaciones requeridas. " +
"La web volverá a estar online pronto." +
"<br/><br/>" +
"Mientras, quizá quiera salir y mapear un barrio cercano..." +
"<br/><br/><br/>[OSRM]",
"NOTIFICATION_LOCALIZATION_HEADER": "¿Lo sabía? Puede cambiar el idioma de la web.",
"NOTIFICATION_LOCALIZATION_BODY": "Use el menú desplegable en la esquina superior izquierda para seleccionar su idioma favorito. " +
"<br/><br/>" +
"No desespere si no encuentre el idioma que busca. " +
"Si lo desea, ¡puede ayudar proporcionando traducciones adicionales! " +
"Visite <a href='https://github.com/DennisSchiefer/Project-OSRM-Web'>esta página</a> para más detalles.",
"NOTIFICATION_CLICKING_HEADER": "¿Lo sabía? Puede hacer click en el mapa para añadir los marcadores de ruta.",
"NOTIFICATION_CLICKING_BODY": "Puede hacer click en el mapa con el botón izquierdo del ratón para añadir el marcador origen (verde) o el destino (rojo) " +
"si el marcador origen ya existe. " +
"La dirección de la posición seleccionada se mostrará en los campos de texto de la izquierda. " +
"<br/><br/>" +
"Puede borrar un marcador haciendo click de nuevo en él con el botón izquierdo del ratón.",
"NOTIFICATION_DRAGGING_HEADER": "¿Lo sabía? Puede arrastrar los marcadores por el mapa.",
"NOTIFICATION_DRAGGING_BODY": "Puede arrastrar un marcador haciendo clic en él con el botón izquierdo del ratón y manteniéndolo pulsado. " +
"A continuación mueva el ratón por el mapa y la ruta se actualizará instantáneamente. " +
"<br/><br/>" +
"¡Puede incluso crear marcadores intermedios arrastrando un punto de la ruta! "
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("es");
+33 -15
View File
@@ -20,19 +20,34 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Localization["fi"] = {
//gui
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// own language
"CULTURE": "fi-FI",
"LANGUAGE": "Suomi",
// gui
"GUI_START": "Lähtöpaikka",
"GUI_END": "Määränpää",
"GUI_RESET": "&nbsp;&nbsp;Tyhjennä&nbsp;&nbsp;",
"GUI_SEARCH": "&nbsp;&nbsp;Etsi&nbsp;&nbsp;",
"GUI_REVERSE": "Käänteinen reitti",
"GUI_OPTIONS": "Kartoitustyökalut",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Korosta nimettömät tiet",
"GUI_RESET": "Tyhjennä",
"GUI_ZOOM_ON_ROUTE": "Zoom reitillä",
"GUI_ZOOM_ON_USER": "Zoom käyttäjä",
"GUI_SEARCH": "Etsi",
"GUI_REVERSE": "Käänteinen&nbsp;reitti",
"GUI_START_TOOLTIP": "Syötä lähtöpaikka",
"GUI_END_TOOLTIP": "Syötä määränpää",
"GUI_LEGAL_NOTICE": "GUI2 v"+OSRM.VERSION+" "+OSRM.DATE+" - OSRM hosting by <a href='http://algo2.iti.kit.edu/'>KIT</a> - Geocoder by <a href='http://www.osm.org/'>OSM</a>",
"GUI_MAIN_WINDOW": "Pääikkuna",
"GUI_ZOOM_IN": "Lähennä",
"GUI_ZOOM_OUT": "Loitonna",
// config
"GUI_CONFIGURATION": "Kokoonpano",
"GUI_LANGUAGE": "Kieli",
"GUI_UNITS": "Yksiköt",
"GUI_KILOMETERS": "Kilometri",
"GUI_MILES": "Miles",
// mapping
"GUI_MAPPING_TOOLS": "Kartoitustyökalut",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Korosta nimettömät tiet",
"GUI_SHOW_PREVIOUS_ROUTES": "Näytä edelliset reitit",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Haun tulokset",
"FOUND_X_RESULTS": "Löytyi %i vaihtoehtoa",
@@ -40,7 +55,7 @@ OSRM.Localization["fi"] = {
"NO_RESULTS_FOUND": "Ei hakutuloksia",
"NO_RESULTS_FOUND_SOURCE": "Ei hakutuloksia lähtöpaikka",
"NO_RESULTS_FOUND_TARGET": "Ei hakutuloksia määränpäälle",
//routing
// routing
"ROUTE_DESCRIPTION": "Reittiohjeet",
"GET_LINK_TO_ROUTE": "Luo linkki",
"GENERATE_LINK_TO_ROUTE": "odotetaan linkkiä",
@@ -50,8 +65,11 @@ OSRM.Localization["fi"] = {
"DURATION": "Aika",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Reittiä lasketaan",
"NO_ROUTE_FOUND": "Reittiä ei löytynyt",
//printing
// printing
"OVERVIEW_MAP": "Yleiskuvakartta",
"NO_ROUTE_SELECTED": "Ei reitti valittu",
// routing engines
"ENGINE_0": "Auton (nopein)",
// directions
"N": "pohjoiseen",
"E": "itään",
@@ -71,9 +89,9 @@ OSRM.Localization["fi"] = {
"DIRECTION_3":"Käänny oikealle[ tielle <b>%s</b>]",
"DIRECTION_4":"Käänny jyrkästi oikealle[ tielle <b>%s</b>]",
"DIRECTION_5":"Tee U-käännös[ tiellä <b>%s</b>]",
"DIRECTION_6":"Käänny loivasti vasemmalle[ tielle <b>%s</b>]",
"DIRECTION_6":"Käänny jyrkästi vasemmalle [ tielle <b>%s</b>]",
"DIRECTION_7":"Käänny vasemmalle[ tielle <b>%s</b>]",
"DIRECTION_8":"Käänny jyrkästi vasemmalle [ tielle <b>%s</b>]",
"DIRECTION_8":"Käänny loivasti vasemmalle[ tielle <b>%s</b>]",
"DIRECTION_10":"Aja <b>%d</b> [ tielle <b>%s</b>]",
"DIRECTION_11-1":"Aja liikenneympyrään ja poistu ensimmäisestä haarasta[ tielle <b>%s</b>]",
"DIRECTION_11-2":"Aja liikenneympyrään ja poistu toisesta haarasta[ tielle <b>%s</b>]",
@@ -88,6 +106,6 @@ OSRM.Localization["fi"] = {
"DIRECTION_15":"Saavuit määränpäähän"
};
//set GUI language tielle load
// set GUI language tielle load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("fi");
OSRM.Localization.setLanguage("fi");
+29 -11
View File
@@ -20,19 +20,34 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Localization["fr"] = {
// own language
"CULTURE": "fr-FR",
"LANGUAGE": "Français",
//gui
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "Bugs OSM",
"GUI_START": "Départ",
"GUI_END": "Arrivée",
"GUI_RESET": "Réinitialiser",
"GUI_ZOOM_ON_ROUTE": "Zoom sur la Route",
"GUI_ZOOM_ON_USER": "Zoom sur le Utilisateur",
"GUI_SEARCH": "Montrer",
"GUI_REVERSE": "Inverser",
"GUI_OPTIONS": "Outils de cartographie",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Surligner les rues sans nom",
"GUI_START_TOOLTIP": "Entrez le lieu de départ",
"GUI_END_TOOLTIP": "Entrez le lieu darrivée",
"GUI_LEGAL_NOTICE": "GUI2 v"+OSRM.VERSION+" "+OSRM.DATE+" - hébergement par <a href='http://algo2.iti.kit.edu/'>KIT</a> - géocodage par <a href='http://www.osm.org/'>OSM</a>",
"GUI_MAIN_WINDOW": "Fenêtre principale",
"GUI_ZOOM_IN": "Zoomer",
"GUI_ZOOM_OUT": "Rétrécir",
// config
"GUI_CONFIGURATION": "Configuration",
"GUI_LANGUAGE": "Langue",
"GUI_UNITS": "Unités",
"GUI_KILOMETERS": "Kilomètres",
"GUI_MILES": "Miles",
// mapping
"GUI_MAPPING_TOOLS": "Outils de cartographie",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Surligner les rues sans nom",
"GUI_SHOW_PREVIOUS_ROUTES": "Afficher itinéraires précédents",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Résultats de recherche",
"FOUND_X_RESULTS": "%i résultat(s)",
@@ -40,7 +55,7 @@ OSRM.Localization["fr"] = {
"NO_RESULTS_FOUND": "Aucun résultat trouvé",
"NO_RESULTS_FOUND_SOURCE": "Aucun résultat pour le départ",
"NO_RESULTS_FOUND_TARGET": "Aucun résultat pour l'arrivée",
//routing
// routing
"ROUTE_DESCRIPTION": "Description de litinéraire",
"GET_LINK_TO_ROUTE": "Générer un lien",
"GENERATE_LINK_TO_ROUTE": "en attente du lien",
@@ -50,8 +65,11 @@ OSRM.Localization["fr"] = {
"DURATION": "Durée",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Votre itinéraire est en cours de calcul",
"NO_ROUTE_FOUND": "Pas ditinéraire possible",
//printing
"OVERVIEW_MAP": "Overview Map",
// printing
"OVERVIEW_MAP": "Carte",
"NO_ROUTE_SELECTED": "Pas ditinéraire choisi",
// routing engines
"ENGINE_0": "voiture (le plus rapide)",
// directions
"N": "nord",
"E": "est",
@@ -70,9 +88,9 @@ OSRM.Localization["fr"] = {
"DIRECTION_3":"Tournez à droite[ sur <b>%s</b>]",
"DIRECTION_4":"Tournez fortement à droite[ sur <b>%s</b>]",
"DIRECTION_5":"Faites demi-tour[ sur <b>%s</b>]",
"DIRECTION_6":"Tournez légèrement à gauche[ sur <b>%s</b>]",
"DIRECTION_6":"Tournez fortement à gauche[ sur <b>%s</b>]",
"DIRECTION_7":"Tournez à gauche[ sur <b>%s</b>]",
"DIRECTION_8":"Tournez fortement à gauche[ sur <b>%s</b>]",
"DIRECTION_8":"Tournez légèrement à gauche[ sur <b>%s</b>]",
"DIRECTION_10":"Direction <b>%d</b>[ sur <b>%s</b>]",
"DIRECTION_11-1":"Au rond-point, prenez la première sortie[ sur <b>%s</b>]",
"DIRECTION_11-2":"Au rond-point, prenez la deuxième sortie[ sur <b>%s</b>]",
@@ -87,6 +105,6 @@ OSRM.Localization["fr"] = {
"DIRECTION_15":"Vous êtes arrivé"
};
//set GUI language on load
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("fr");
+110
View File
@@ -0,0 +1,110 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Italian language support]
OSRM.Localization["it"] = {
// own language
"CULTURE": "it-IT",
"LANGUAGE": "Italiano",
// gui
"GUI_START": "Partenza",
"GUI_END": "Destinazione",
"GUI_RESET": "Reset",
"GUI_ZOOM_ON_ROUTE": "Zoom su Percorso",
"GUI_ZOOM_ON_USER": "Zoom su Utente",
"GUI_SEARCH": "Mostra",
"GUI_REVERSE": "Inverti",
"GUI_START_TOOLTIP": "Inserire la Partenza",
"GUI_END_TOOLTIP": "Inserire la destinazione",
"GUI_MAIN_WINDOW": "Finestra principale",
"GUI_ZOOM_IN": "Ingrandire",
"GUI_ZOOM_OUT": "Diminuire",
// config
"GUI_CONFIGURATION": "Configurazione",
"GUI_LANGUAGE": "Lingua",
"GUI_UNITS": "Unità",
"GUI_KILOMETERS": "Chilometri",
"GUI_MILES": "Miles",
// mapping
"GUI_MAPPING_TOOLS": "Strumenti per la Mappatura",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Evidenzia strade senza nome",
"GUI_SHOW_PREVIOUS_ROUTES": "Mostra le percorsi precedenti",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Risultati della ricerca",
"FOUND_X_RESULTS": "trovati %i risultati",
"TIMED_OUT": "Timeout",
"NO_RESULTS_FOUND": "Nessun risultato trovato",
"NO_RESULTS_FOUND_SOURCE": "Nessun risultato trovato per la partenza",
"NO_RESULTS_FOUND_TARGET": "Nessun risultato trovato per la destinazione",
// routing
"ROUTE_DESCRIPTION": "Descrizione del percorso",
"GET_LINK_TO_ROUTE": "Genera un Link",
"GENERATE_LINK_TO_ROUTE": "in attesa del link",
"LINK_TO_ROUTE_TIMEOUT": "non disponibile",
"GPX_FILE": "File GPX",
"DISTANCE": "Distanza",
"DURATION": "Durata",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Sto calcolando il tuo percorso",
"NO_ROUTE_FOUND": "Nessun percorso possibile",
// printing
"OVERVIEW_MAP": "Mappa d'insieme",
// routing engines
"ENGINE_0": "Macchina (più veloce)",
// directions
"N": "nord",
"E": "est",
"S": "sud",
"W": "ovest",
"NE": "nordest",
"SE": "sudest",
"SW": "sudovest",
"NW": "nordovest",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Istruzione sconosciuta[ su <b>%s</b>]",
"DIRECTION_1":"Continuare[ su <b>%s</b>]",
"DIRECTION_2":"Girare leggermente a destra[ su <b>%s</b>]",
"DIRECTION_3":"Girare a destra[ su <b>%s</b>]",
"DIRECTION_4":"Girare decisamente a destra[ su <b>%s</b>]",
"DIRECTION_5":"Compire una inversione ad U[ su <b>%s</b>]",
"DIRECTION_6":"Girare decisamente a sinistra[ su <b>%s</b>]",
"DIRECTION_7":"Girare a sinistra[ su <b>%s</b>]",
"DIRECTION_8":"Girare leggermente a sinistra[ su <b>%s</b>]",
"DIRECTION_10":"Dirigersi a <b>%d</b>[ su <b>%s</b>]",
"DIRECTION_11-1":"Immettersi nella rotonda ed abbandonarla alla prima uscita[ su <b>%s</b>]",
"DIRECTION_11-2":"Immettersi nella rotonda ed abbandonarla alla seconda uscita[ su <b>%s</b>]",
"DIRECTION_11-3":"Immettersi nella rotonda ed abbandonarla alla terza uscita[ su <b>%s</b>]",
"DIRECTION_11-4":"Immettersi nella rotonda ed abbandonarla alla quarta uscita[ su <b>%s</b>]",
"DIRECTION_11-5":"Immettersi nella rotonda ed abbandonarla alla quinta uscita[ su <b>%s</b>]",
"DIRECTION_11-6":"Immettersi nella rotonda ed abbandonarla alla sesta uscita[ su <b>%s</b>]",
"DIRECTION_11-7":"Immettersi nella rotonda ed abbandonarla alla settima uscita[ su <b>%s</b>]",
"DIRECTION_11-8":"Immettersi nella rotonda ed abbandonarla alla ottava uscita[ su <b>%s</b>]",
"DIRECTION_11-9":"Immettersi nella rotonda ed abbandonarla alla nona uscita[ su <b>%s</b>]",
"DIRECTION_11-x":"Immettersi nella rotonda ed abbandonarla ad una delle tante uscite[ su <b>%s</b>]",
"DIRECTION_15":"Hai raggiunto la tua destinazione"
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("it");
+111
View File
@@ -0,0 +1,111 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Japanese language support]
OSRM.Localization["ja"] = {
// own language
"CULTURE": "ja-JP",
"LANGUAGE": "日本人",
// gui
"GUI_START": "開&nbsp;始",
"GUI_END": "終&nbsp;了",
"GUI_RESET": "リセット",
"GUI_ZOOM_ON_ROUTE": "ルートにズーム",
"GUI_ZOOM_ON_USER": "ユーザーへのズーム",
"GUI_SEARCH": "表&nbsp;示",
"GUI_REVERSE": "逆にする",
"GUI_START_TOOLTIP": "出発地を入力",
"GUI_END_TOOLTIP": "目的地を入力",
"GUI_MAIN_WINDOW": "メインウインドウ",
"GUI_ZOOM_IN": "拡大する",
"GUI_ZOOM_OUT": "減らす",
// config
"GUI_CONFIGURATION": "設定",
"GUI_LANGUAGE": "言語",
"GUI_UNITS": "単位",
"GUI_KILOMETERS": "キロメートル",
"GUI_MILES": "マイル",
// mapping
"GUI_MAPPING_TOOLS": "マッピングツール",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "名前の無い道路をハイライト",
"GUI_SHOW_PREVIOUS_ROUTES": "以前のルートを表示",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM バグ",
// geocoder
"SEARCH_RESULTS": "検索結果",
"FOUND_X_RESULTS": "%i 件が見つかりました",
"TIMED_OUT": "タイムアウト",
"NO_RESULTS_FOUND": "見つかりませんでした",
"NO_RESULTS_FOUND_SOURCE": "出発地が見つかりませんでした",
"NO_RESULTS_FOUND_TARGET": "目的地見つかりませんでした",
// routing
"ROUTE_DESCRIPTION": "ルートの説明",
"GET_LINK_TO_ROUTE": "リンクを生成",
"GENERATE_LINK_TO_ROUTE": "リンクを作成",
"LINK_TO_ROUTE_TIMEOUT": "利用できません",
"GPX_FILE": "GPX ファイル",
"DISTANCE": "距&nbsp;離",
"DURATION": "期&nbsp;間",
"YOUR_ROUTE_IS_BEING_COMPUTED": "ルートを計算しています",
"NO_ROUTE_FOUND": "ルートが見つかりませんでした",
// printing
"OVERVIEW_MAP": "概観図",
"NO_ROUTE_SELECTED": "ルートが選択されていません",
//routing engines
"ENGINE_0": "カー(最速)",
// directionsVergrößern
"N": "北",
"E": "東",
"S": "南",
"W": "西",
"NE": "北東",
"SE": "南東",
"SW": "南西",
"NW": "北西",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"[<b>%s</b> に]不明な指示",
"DIRECTION_1":"[<b>%s</b> 上を]進む",
"DIRECTION_2":"[<b>%s</b> 上を]右に緩く曲がる",
"DIRECTION_3":"[<b>%s</b> 上を]右に曲がる",
"DIRECTION_4":"[<b>%s</b> 上を]右に鋭く曲がる",
"DIRECTION_5":"[<b>%s</b> 上を]Uターンする",
"DIRECTION_6":"[<b>%s</b> 上を]左に鋭く曲がる",
"DIRECTION_7":"[<b>%s</b> 上を]左に曲がる",
"DIRECTION_8":"[<b>%s</b> 上を]左に緩く曲がる",
"DIRECTION_10":"[<b>%s</b> 上の] <b>%d</b> に向かう",
"DIRECTION_11-1":"[<b>%s</b> 上の]円形交差点に入り、1つ目の出口で出る",
"DIRECTION_11-2":"[<b>%s</b> 上の]円形交差点に入り、2つ目の出口で出る",
"DIRECTION_11-3":"[<b>%s</b> 上の]円形交差点に入り、3つ目の出口で出る",
"DIRECTION_11-4":"[<b>%s</b> 上の]円形交差点に入り、4つ目の出口で出る",
"DIRECTION_11-5":"[<b>%s</b> 上の]円形交差点に入り、5つ目の出口で出る",
"DIRECTION_11-6":"[<b>%s</b> 上の]円形交差点に入り、6つ目の出口で出る",
"DIRECTION_11-7":"[<b>%s</b> 上の]円形交差点に入り、7つ目の出口で出る",
"DIRECTION_11-8":"[<b>%s</b> 上の]円形交差点に入り、8つ目の出口で出る",
"DIRECTION_11-9":"[<b>%s</b> 上の]円形交差点に入り、9つ目の出口で出る",
"DIRECTION_11-x":"[<b>%s</b> 上の]円形交差点に入り、多くの出口のいずれかで出る",
"DIRECTION_15":"目的地に到着しました"
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("ja");
+111
View File
@@ -0,0 +1,111 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Latvian language support]
OSRM.Localization["lv"] = {
// own language
"CULTURE": "lv-LV",
"LANGUAGE": "Latviešu",
// gui
"GUI_START": "Sākums",
"GUI_END": "Galamērķis",
"GUI_RESET": "&nbsp;&nbsp;Reset&nbsp;&nbsp;",
"GUI_ZOOM_ON_ROUTE": "Padidinti ant Route",
"GUI_ZOOM_ON_USER": "Padidinti ant Lietotājs",
"GUI_SEARCH": "&nbsp;&nbsp;Rādīt&nbsp;&nbsp;",
"GUI_REVERSE": "Pretējā&nbsp;virzienā",
"GUI_START_TOOLTIP": "Izvēlieties sākumu",
"GUI_END_TOOLTIP": "Izvēlieties galamērķi",
"GUI_MAIN_WINDOW": "Galvenais logs",
"GUI_ZOOM_IN": "Palielinātu",
"GUI_ZOOM_OUT": "Attālinātu",
// config
"GUI_CONFIGURATION": "Konfigurācija",
"GUI_LANGUAGE": "Valoda",
"GUI_UNITS": "Mērvienība",
"GUI_KILOMETERS": "Kilometri",
"GUI_MILES": "Jūdzes",
// mapping
"GUI_MAPPING_TOOLS": "Kartēšanas rīki",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Izcelt ielas bez nosaukumiem",
"GUI_SHOW_PREVIOUS_ROUTES": "Rādīt vēsturiskos maršrutus",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Meklēšanas rezultāti",
"FOUND_X_RESULTS": "atrasti %i ieraksti",
"TIMED_OUT": "Iestājās noildze",
"NO_RESULTS_FOUND": "Neizdevās atrast šādu maršrutu",
"NO_RESULTS_FOUND_SOURCE": "Šāds sākuma punkts netika atrasts",
"NO_RESULTS_FOUND_TARGET": "Šāds galamērķis netika atrasts",
// routing
"ROUTE_DESCRIPTION": "Maršruta apraksts",
"GET_LINK_TO_ROUTE": "Izveidot saiti",
"GENERATE_LINK_TO_ROUTE": "notiek saites veidošana",
"LINK_TO_ROUTE_TIMEOUT": "saite nav pieejama",
"GPX_FILE": "GPX fails",
"DISTANCE": "Attālums",
"DURATION": "Ilgums",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Tiek veikta maršruta aprēķināšana",
"NO_ROUTE_FOUND": "Maršrutu nav iespējams aprēķināt",
// printing
"OVERVIEW_MAP": "Kartes pārskats",
"NO_ROUTE_SELECTED": "Nav norādīts maršruts",
// routing engines
"ENGINE_0": "Auto (ātrākais)",
// directions
"N": "ziemeļu",
"E": "austrumu",
"S": "dienvidu",
"W": "rietumu",
"NE": "ziemeļaustrumu",
"SE": "dienvidaustrumu",
"SW": "dienvidrietumu",
"NW": "ziemeļrietumu",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Nezinama instrukcija[ uz <b>%s</b>]",
"DIRECTION_1":"Turpiniet ceļu[ pa <b>%s</b>]",
"DIRECTION_2":"Pagriezieties nedaudz pa labi [ uz <b>%s</b>]",
"DIRECTION_3":"Pagriezieties pa labi[ uz <b>%s</b>]",
"DIRECTION_4":"Pagriezieties strauji pa labi[ uz <b>%s</b>]",
"DIRECTION_5":"U-veida pagrieziens[ uz <b>%s</b>]",
"DIRECTION_6":"Pagriezieties strauji pa kreisi[ uz <b>%s</b>]",
"DIRECTION_7":"Pagriezieties pa kreisi[ uz <b>%s</b>]",
"DIRECTION_8":"Pagriezieties nedaudz pa kreisi[ uz <b>%s</b>]",
"DIRECTION_10":"Dotieties <b>%d</b> virzienā[ uz <b>%s</b>]",
"DIRECTION_11-1":"Iebrauciet aplī, brauciet pa pirmo izeju[ uz <b>%s</b>]",
"DIRECTION_11-2":"Iebrauciet aplī, brauciet pa otro izeju[ uz <b>%s</b>]",
"DIRECTION_11-3":"Iebrauciet aplī, brauciet pa trešo izeju[ uz <b>%s</b>]",
"DIRECTION_11-4":"Iebrauciet aplī, brauciet pa ceturto izeju[ uz <b>%s</b>]",
"DIRECTION_11-5":"Iebrauciet aplī, brauciet pa piekto izeju[ uz <b>%s</b>]",
"DIRECTION_11-6":"Iebrauciet aplī, brauciet pa sesto izeju[ uz <b>%s</b>]",
"DIRECTION_11-7":"Iebrauciet aplī, brauciet pa septīto izeju[ uz <b>%s</b>]",
"DIRECTION_11-8":"Iebrauciet aplī, brauciet pa astoto izeju[ uz <b>%s</b>]",
"DIRECTION_11-9":"Iebrauciet aplī, brauciet pa devīto izeju[ uz <b>%s</b>]",
"DIRECTION_11-x":"Ieprauciet aplī, brauciet pa vienu no pārāk daudzajām izejām[ uz <b>%s</b>]",
"DIRECTION_15":"Sasniegts galamērķis"
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("lv");
+32 -15
View File
@@ -20,19 +20,34 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Localization["pl"] = {
//gui
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// own language
"CULTURE": "pl-PL",
"LANGUAGE": "Polski",
// gui
"GUI_START": "Początek",
"GUI_END": "Koniec",
"GUI_RESET": "&nbsp;&nbsp;Reset&nbsp;&nbsp;",
"GUI_SEARCH": "&nbsp;&nbsp;Pokaż&nbsp;&nbsp;",
"GUI_RESET": "Reset",
"GUI_ZOOM_ON_ROUTE": "Zoom na Trasy",
"GUI_ZOOM_ON_USER": "Zoom na Użytkownik",
"GUI_SEARCH": "Pokaż",
"GUI_REVERSE": "Odwróć",
"GUI_OPTIONS": "Narzędzia",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Zaznacz ulice bez nazwy",
"GUI_START_TOOLTIP": "Wprowadź początek",
"GUI_END_TOOLTIP": "Wprowadź koniec",
"GUI_LEGAL_NOTICE": "GUI2 v"+OSRM.VERSION+" "+OSRM.DATE+" - OSRM hosting: <a href='http://algo2.iti.kit.edu/'>KIT</a> - Geocoder: <a href='http://www.osm.org/'>OSM</a>",
"GUI_MAIN_WINDOW": "Główne okno",
"GUI_ZOOM_IN": "Powiększyć",
"GUI_ZOOM_OUT": "Pomniejszyć",
// config
"GUI_CONFIGURATION": "Konfiguracja",
"GUI_LANGUAGE": "Język",
"GUI_UNITS": "Jednostki",
"GUI_KILOMETERS": "Kilometrów",
"GUI_MILES": "Miles",
// mapping
"GUI_MAPPING_TOOLS": "Narzędzia mapowania",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Zaznacz ulice bez nazwy",
"GUI_SHOW_PREVIOUS_ROUTES": "Pokaż poprzednie trasy",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Wyniki wyszukiwania",
"FOUND_X_RESULTS": "znaleziono %i wyników",
@@ -40,7 +55,7 @@ OSRM.Localization["pl"] = {
"NO_RESULTS_FOUND": "Brak wyników",
"NO_RESULTS_FOUND_SOURCE": "Brak wyników dla początku trasy",
"NO_RESULTS_FOUND_TARGET": "Brak wyników dla końca trasy",
//routing
// routing
"ROUTE_DESCRIPTION": "Opis trasy",
"GET_LINK_TO_ROUTE": "Generuj link",
"GENERATE_LINK_TO_ROUTE": "oczekiwanie na link",
@@ -50,8 +65,10 @@ OSRM.Localization["pl"] = {
"DURATION": "Czas",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Twoja trasa została wyznaczona",
"NO_ROUTE_FOUND": "Nie można wyznaczyć trasy",
//printing
// printing
"OVERVIEW_MAP": "Mapa poglądowa",
// routing engines
"ENGINE_0": "samochód (najszybciej)",
// directions
"N": "północ",
"E": "wschód",
@@ -66,15 +83,15 @@ OSRM.Localization["pl"] = {
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Nieznana instrukcja[ na <b>%s</b>]",
"DIRECTION_1":"Podążaj[ drogą <b>%s</b>]",
"DIRECTION_1":"Kontynuuj[ drogą <b>%s</b>]",
"DIRECTION_2":"Skręć lekko w prawo[ na drogę <b>%s</b>]",
"DIRECTION_3":"Skręć w prawo[ na drogę <b>%s</b>]",
"DIRECTION_4":"Skręć ostro w prawo[ na drogę <b>%s</b>]",
"DIRECTION_5":"Zawróć[ na drogę <b>%s</b>]",
"DIRECTION_6":"Skręć lekko w lewo[ na drogę <b>%s</b>]",
"DIRECTION_6":"Skręć ostro w lewo[ na drogę <b>%s</b>]",
"DIRECTION_7":"Skręć w lewo[ na drogę <b>%s</b>]",
"DIRECTION_8":"Skręć ostro w lewo[ na drogę <b>%s</b>]",
"DIRECTION_10":"Podążaj <b>%d</b>[ drogą <b>%s</b>]",
"DIRECTION_8":"Skręć lekko w lewo[ na drogę <b>%s</b>]",
"DIRECTION_10":"Podążaj na <b>%d</b>[ drogą <b>%s</b>]",
"DIRECTION_11-1":"Wjedź na rondo, zjedź pierwszym zjazdem[ na drogę <b>%s</b>]",
"DIRECTION_11-2":"Wjedź na rondo, zjedź drugim zjazdem[ na drogę <b>%s</b>]",
"DIRECTION_11-3":"Wjedź na rondo, zjedź trzecim zjazdem[ na drogę <b>%s</b>]",
@@ -88,6 +105,6 @@ OSRM.Localization["pl"] = {
"DIRECTION_15":"Cel został osiągnięty"
};
//set GUI language on load
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("pl");
+136
View File
@@ -0,0 +1,136 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Portugese language support]
OSRM.Localization["pt"] = {
// own language
"CULTURE": "pt-PT",
"LANGUAGE": "Portugues",
// gui
"GUI_START": "Iniciar",
"GUI_END": "Terminar",
"GUI_RESET": "Restabelecer",
"GUI_ZOOM_ON_ROUTE": "Ampliar para Rota",
"GUI_ZOOM_ON_USER": "Ampliar para Utilizador",
"GUI_SEARCH": "Mostrar",
"GUI_REVERSE": "Inverso",
"GUI_START_TOOLTIP": "Indique início",
"GUI_END_TOOLTIP": "Indique destino",
"GUI_MAIN_WINDOW": "Janela principal",
"GUI_ZOOM_IN": "Aumentar",
"GUI_ZOOM_OUT": "Reduzir",
// config
"GUI_CONFIGURATION": "Configuração",
"GUI_LANGUAGE": "Idioma",
"GUI_UNITS": "Unidades",
"GUI_KILOMETERS": "Quilometros",
"GUI_MILES": "Milhas",
// mapping
"GUI_MAPPING_TOOLS": "Ferramentas de Mapear",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Destaque ruas sem nome",
"GUI_SHOW_PREVIOUS_ROUTES": "Mostrar rotas anteriores",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Pesquisar resultados",
"FOUND_X_RESULTS": "encontrados %i resultados",
"TIMED_OUT": "Esgotado o tempo limite",
"NO_RESULTS_FOUND": "Não foram encontrados resultados",
"NO_RESULTS_FOUND_SOURCE": "Não foram encontrados resultados para o início",
"NO_RESULTS_FOUND_TARGET": "Não foram encontrados resultados para o final",
// routing
"ROUTE_DESCRIPTION": "Descrição da rota",
"GET_LINK_TO_ROUTE": "gerar ligação",
"GENERATE_LINK_TO_ROUTE": "à espera de ligação",
"LINK_TO_ROUTE_TIMEOUT": "não disponível",
"GPX_FILE": "Ficheiro GPX",
"DISTANCE": "Distância",
"DURATION": "Duração",
"YOUR_ROUTE_IS_BEING_COMPUTED": "A sua rota está a ser calculada",
"NO_ROUTE_FOUND": "A rota não é possivel",
// printing
"OVERVIEW_MAP": "Mapa de visão global",
"NO_ROUTE_SELECTED": "Sem rota selecionada",
// routing engines
"ENGINE_0": "Carro (mais rápido)",
// directions
"N": "norte",
"E": "este",
"S": "sul",
"W": "oeste",
"NE": "nordeste",
"SE": "sudeste",
"SW": "sudoeste",
"NW": "noroeste",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Instrução desconhecida[ para <b>%s</b>]",
"DIRECTION_1":"Continuar[ para <b>%s</b>]",
"DIRECTION_2":"Virar ligeiramente à direita[ para <b>%s</b>]",
"DIRECTION_3":"Virar à direita[ para <b>%s</b>]",
"DIRECTION_4":"Virar à direita apertada[ para <b>%s</b>]",
"DIRECTION_5":"Inversão de marcha[ para <b>%s</b>]",
"DIRECTION_6":"Virar à esquerda apertada[ para <b>%s</b>]",
"DIRECTION_7":"Virar à esquerda[ para <b>%s</b>]",
"DIRECTION_8":"Virar ligeiramente à esquerda[ para <b>%s</b>]",
"DIRECTION_10":"Em direção a <b>%d</b>[ para <b>%s</b>]",
"DIRECTION_11-1":"Entrar na rotunda e sair na primeira saída[ para <b>%s</b>]",
"DIRECTION_11-2":"Entrar na rotunda e sair na segunda saída[ para <b>%s</b>]",
"DIRECTION_11-3":"Entrar na rotunda e sair na terceira saída[ para <b>%s</b>]",
"DIRECTION_11-4":"Entrar na rotunda e sair na quarta saída[ para <b>%s</b>]",
"DIRECTION_11-5":"Entrar na rotunda e sair na quinta saída[ para <b>%s</b>]",
"DIRECTION_11-6":"Entrar na rotunda e sair na sexta saída[ para <b>%s</b>]",
"DIRECTION_11-7":"Entrar na rotunda e sair na sétima saída[ para <b>%s</b>]",
"DIRECTION_11-8":"Entrar na rotunda e sair na oitava saída[ para <b>%s</b>]",
"DIRECTION_11-9":"Entrar na rotunda e sair na nona saída[ para <b>%s</b>]",
"DIRECTION_11-x":"Entrar na rotunda e sair numa das saídas[ para <b>%s</b>]",
"DIRECTION_15":"Você chegou ao seu destino",
// notifications
"NOTIFICATION_MAINTENANCE_HEADER": "Manutenção Programada",
"NOTIFICATION_MAINTENANCE_BODY": "O Site do OSRM é desligado devido a uma manutenção programada. " +
"Por favor, seja paciente enquanto as atualizações necessárias são realizadas. " +
"O site estará de volta online em breve." +
"<br/><br/>" +
"Entretanto poderá sair e mapear um bairro neighborhood perto de si..." +
"<br/><br/><br/>[OSRM]",
"NOTIFICATION_LOCALIZATION_HEADER": "Você sabe? Pode alterar o idioma do ecran de exibição.",
"NOTIFICATION_LOCALIZATION_BODY": "Pode usar o menu suspenso no canto superior esquerdo para selecionar o seu idioma preferido. " +
"<br/><br/>" +
"Não desespere se não consegue encontrar o idioma de sua escolha. " +
"Se quiser, você pode ajudar a fornecer traduções adicionais! " +
"Visite <a href='https://github.com/DennisSchiefer/Project-OSRM-Web'>aqui</a> para mais informações.",
"NOTIFICATION_CLICKING_HEADER": "Você sabe? Pode clicar no mapa para definir marcadores de rota.",
"NOTIFICATION_CLICKING_BODY": "Clique no mapa com o botão esquerdo do rato para definir um marcador fonte (verde) ou um marcador de destino (vermelho), " +
"se o marcador de origem já existe. " +
"O endereço do local selecionado será exibido nas caixas à esquerda. " +
"<br/><br/>" +
"Pode excluir um marcador, com um clique sobre ele novamente com o botão esquerdo do rato.",
"NOTIFICATION_DRAGGING_HEADER": "Você sabe? Pode arrastar cada marcador de rota no mapa.",
"NOTIFICATION_DRAGGING_BODY": "Pode arrastar um marcador, com um clique sobre ele com o botão esquerdo do rato e mantendo o botão pressionado. " +
"Então pode mover o marcador ao redor do mapa e a rota será atualizada instantaneamente. " +
"<br/><br/>" +
"Até pode criar marcadores intermédios, arrastando-os para fora da rota principal! "
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("pt");
+111
View File
@@ -0,0 +1,111 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [English language support]
OSRM.Localization["ro"] = {
// own language
"CULTURE": "ro-RO",
"LANGUAGE": "Română",
// gui
"GUI_START": "începe",
"GUI_END": "țintă",
"GUI_RESET": "Resetare",
"GUI_ZOOM_ON_ROUTE": "Zoom pe ruta",
"GUI_ZOOM_ON_USER": "Zoom pe utilizator",
"GUI_SEARCH": "Arata",
"GUI_REVERSE": "Inverseaza",
"GUI_START_TOOLTIP": "Introduceti punctul de pornire",
"GUI_END_TOOLTIP": "Introduceti destinatia",
"GUI_MAIN_WINDOW": "Fereastra principală",
"GUI_ZOOM_IN": "zoom in",
"GUI_ZOOM_OUT": "zoom out",
// config
"GUI_CONFIGURATION": "Configurare",
"GUI_LANGUAGE": "Limba",
"GUI_UNITS": "Unitati",
"GUI_KILOMETERS": "Kilometri",
"GUI_MILES": "Mile",
// mapping
"GUI_MAPPING_TOOLS": "Instrumente de cartografiere",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Evidentiaza strazile fara nume",
"GUI_SHOW_PREVIOUS_ROUTES": "Arata trasee anterioare",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Rezultatele cautarii",
"FOUND_X_RESULTS": "Rezultatele gasite",
"TIMED_OUT": "Timpul a expirat",
"NO_RESULTS_FOUND": "Nu s-au gasit rezultate",
"NO_RESULTS_FOUND_SOURCE": "Nu s-au gasit rezultate pentru punctul de plecare",
"NO_RESULTS_FOUND_TARGET": "Nu s-au gasit rezultate pentru punctul de sosire",
// routing
"ROUTE_DESCRIPTION": "Descrierea rutei",
"GET_LINK_TO_ROUTE": "Genereaza link",
"GENERATE_LINK_TO_ROUTE": "in asteptare pentru link",
"LINK_TO_ROUTE_TIMEOUT": "nu este disponibil",
"GPX_FILE": "GPX File",
"DISTANCE": "Distanta",
"DURATION": "Durata",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Ruta dumneavoastra se calculeaza",
"NO_ROUTE_FOUND": "Nicio ruta nu este posibila",
// printing
"OVERVIEW_MAP": "Overview Map",
"NO_ROUTE_SELECTED": "Nu este selectata nicio ruta",
// routing engines
"ENGINE_0": "Masina (cel mai rapid)",
// directions
"N": "nord",
"E": "est",
"S": "sud",
"W": "vest",
"NE": "nordest",
"SE": "sudest",
"SW": "sudvest",
"NW": "nordvest",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":" Instructiuni necunoscute[ spre <b>%s</b>]",
"DIRECTION_1":"Continuati[ spre <b>%s</b>]",
"DIRECTION_2":"Faceti usor dreapta[ spre <b>%s</b>]",
"DIRECTION_3":"Faceti dreapta[ spre <b>%s</b>]",
"DIRECTION_4":"Faceti brusc dreapta[ spre <b>%s</b>]",
"DIRECTION_5":"Intoarcere in U[ spre <b>%s</b>]",
"DIRECTION_6":"Faceti brusc stanga[ spre <b>%s</b>]",
"DIRECTION_7":"Faceti stanga[ spre <b>%s</b>]",
"DIRECTION_8":"Faceti usor stanga[ spre <b>%s</b>]",
"DIRECTION_10":"Indreptati-va <b>%d</b>[ spre <b>%s</b>]",
"DIRECTION_11-1":"Intrati in sensul giratoriu si alegeti prima iesire[ spre <b>%s</b>]",
"DIRECTION_11-2":"Intrati in sensul giratoriu si alegeti a doua iesire[ spre <b>%s</b>]",
"DIRECTION_11-3":"Intrati in sensul giratoriu si alegeti a treia iesire[ spre <b>%s</b>]",
"DIRECTION_11-4":"Intrati in sensul giratoriu si alegeti a patra iesire[ spre <b>%s</b>]",
"DIRECTION_11-5":"Intrati in sensul giratoriu si alegeti a cincea iesire[ spre <b>%s</b>]",
"DIRECTION_11-6":"Intrati in sensul giratoriu si alegeti a sasea iesire[ spre <b>%s</b>]",
"DIRECTION_11-7":"Intrati in sensul giratoriu si alegeti a saptea iesire[ spre <b>%s</b>]",
"DIRECTION_11-8":"Intrati in sensul giratoriu si alegeti a opta iesire[ spre <b>%s</b>]",
"DIRECTION_11-9":"Intrati in sensul giratoriu si alegeti a noua iesire[ spre <b>%s</b>]",
"DIRECTION_11-x":"Intrati in sensul giratoriu si alegeti una din multele iesiri[ spre <b>%s</b>]",
"DIRECTION_15":"Ati ajuns la destinatie"
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING==true )
OSRM.Localization.setLanguage("ro");
+111
View File
@@ -0,0 +1,111 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [English language support]
OSRM.Localization["ru"] = {
// own language
"CULTURE": "ru-RU",
"LANGUAGE": "Русский",
// gui
"GUI_START": "Начало",
"GUI_END": "Конец",
"GUI_RESET": "Сброс",
"GUI_ZOOM_ON_ROUTE": "зум на маршрут",
"GUI_ZOOM_ON_USER": "зум на Пользователь",
"GUI_SEARCH": "Показать",
"GUI_REVERSE": "Обратно",
"GUI_START_TOOLTIP": "Укажите начальную точку",
"GUI_END_TOOLTIP": "Укажите пункт назначения",
"GUI_MAIN_WINDOW": "Главное окно",
"GUI_ZOOM_IN": "Yвеличить",
"GUI_ZOOM_OUT": "Mасштаб",
// config
"GUI_CONFIGURATION": "Настройки",
"GUI_LANGUAGE": "Язык",
"GUI_UNITS": "Единицы",
"GUI_KILOMETERS": "Километры",
"GUI_MILES": "Мили",
// mapping
"GUI_MAPPING_TOOLS": "Настройки карты",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Выделить безымянные улицы",
"GUI_SHOW_PREVIOUS_ROUTES": "Отображать предыдущий маршрут",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Результаты поиска",
"FOUND_X_RESULTS": "найдено %i результатов",
"TIMED_OUT": "Превышен интервал ожидания",
"NO_RESULTS_FOUND": "Ничего не найдено",
"NO_RESULTS_FOUND_SOURCE": "Начальная точка не найдена",
"NO_RESULTS_FOUND_TARGET": "Пункт назначения не найден",
// routing
"ROUTE_DESCRIPTION": "Описание маршрута",
"GET_LINK_TO_ROUTE": "Постоянная ссылка",
"GENERATE_LINK_TO_ROUTE": "создание ссылки",
"LINK_TO_ROUTE_TIMEOUT": "недоступно",
"GPX_FILE": "GPX Файл",
"DISTANCE": "Расстояние",
"DURATION": "Время",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Вычисление маршрута",
"NO_ROUTE_FOUND": "Маршрут не возможен",
// printing
"OVERVIEW_MAP": "Обзорная карта",
"NO_ROUTE_SELECTED": "Маршрут не выбран",
// routing engines
"ENGINE_0": "Aвтомобиля (быстрый)",
// directions
"N": "север",
"E": "восток",
"S": "юг",
"W": "запад",
"NE": "северо-восток",
"SE": "юго-восток",
"SW": "юго-запад",
"NW": "северо-запад",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Неизвестная инструкция[ по <b>%s</b>]",
"DIRECTION_1":"Продолжайте движение[ по <b>%s</b>]",
"DIRECTION_2":"Примите вправо[ на <b>%s</b>]",
"DIRECTION_3":"Поверните направо[ на <b>%s</b>]",
"DIRECTION_4":"Поверните резко направо[ на <b>%s</b>]",
"DIRECTION_5":"U-образный разворот[ на <b>%s</b>]",
"DIRECTION_6":"Поверните резко налево[ на <b>%s</b>]",
"DIRECTION_7":"Поверните налево[ на <b>%s</b>]",
"DIRECTION_8":"Примите влево[ на <b>%s</b>]",
"DIRECTION_10":"Направляйтесь на <b>%d</b>[ по <b>%s</b>]",
"DIRECTION_11-1":"На кольцевой дороге выполните 1-ый съезд[ на <b>%s</b>]",
"DIRECTION_11-2":"На кольцевой дороге выполните 2-ой съезд[ на <b>%s</b>]",
"DIRECTION_11-3":"На кольцевой дороге выполните 3-ий съезд[ на <b>%s</b>]",
"DIRECTION_11-4":"На кольцевой дороге выполните 4-ый съезд[ на <b>%s</b>]",
"DIRECTION_11-5":"На кольцевой дороге выполните 5-ый съезд[ на <b>%s</b>]",
"DIRECTION_11-6":"На кольцевой дороге выполните 6-ой съезд[ на <b>%s</b>]",
"DIRECTION_11-7":"На кольцевой дороге выполните 7-ой съезд[ на <b>%s</b>]",
"DIRECTION_11-8":"На кольцевой дороге выполните 8-ой съезд[ на <b>%s</b>]",
"DIRECTION_11-9":"На кольцевой дороге выполните 9-ый съезд[ на <b>%s</b>]",
"DIRECTION_11-x":"На кольцевой дороге выполните съезд[ на <b>%s</b>]",
"DIRECTION_15":"Вы прибыли в пункт назначения"
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("ru");
+136
View File
@@ -0,0 +1,136 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Swedish language support]
OSRM.Localization["sv"] = {
// own language
"CULTURE": "sv-SE",
"LANGUAGE": "Svenska",
// gui
"GUI_START": "Start",
"GUI_END": "Mål",
"GUI_RESET": "Nollställ",
"GUI_ZOOM_ON_ROUTE": "Zooma in rutt",
"GUI_ZOOM_ON_USER": "Zooma in användare",
"GUI_SEARCH": "Sök",
"GUI_REVERSE": "Omvänt",
"GUI_START_TOOLTIP": "Lägg in start",
"GUI_END_TOOLTIP": "Lägg in destination",
"GUI_MAIN_WINDOW": "Huvudfönstret",
"GUI_ZOOM_IN": "Zooma in",
"GUI_ZOOM_OUT": "Zooma ut",
// config
"GUI_CONFIGURATION": "Konfiguration",
"GUI_LANGUAGE": "Språk",
"GUI_UNITS": "Enheter",
"GUI_KILOMETERS": "Kilometer",
"GUI_MILES": "Miles",
// mapping
"GUI_MAPPING_TOOLS": "Kortläggnings verktyg",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Framhäv icke namngedda vägar",
"GUI_SHOW_PREVIOUS_ROUTES": "Visa tidigare rutter",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Sökresultat",
"FOUND_X_RESULTS": "fann %i resultat",
"TIMED_OUT": "Inget svar",
"NO_RESULTS_FOUND": "Inga resultat",
"NO_RESULTS_FOUND_SOURCE": "Inga resultat för start",
"NO_RESULTS_FOUND_TARGET": "Inga resultat för destination",
// routing
"ROUTE_DESCRIPTION": "Ruttbeskrivelse",
"GET_LINK_TO_ROUTE": "Skapa länk",
"GENERATE_LINK_TO_ROUTE": "väntar på länk",
"LINK_TO_ROUTE_TIMEOUT": "icke tillgänglig",
"GPX_FILE": "GPX Fil",
"DISTANCE": "Distans",
"DURATION": "Tid",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Din rutt beräknas",
"NO_ROUTE_FOUND": "Ingen möjlig rutt funnen",
// printing
"OVERVIEW_MAP": "Översiktskarta",
"NO_ROUTE_SELECTED": "Ingen rutt vald",
// routing engines
"ENGINE_0": "Bil (snabbaste)",
// directions
"N": "nord",
"E": "öst",
"S": "syd",
"W": "väst",
"NE": "nordost",
"SE": "sydost",
"SW": "sydväst",
"NW": "nordväst",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Okänd instruktion[ på <b>%s</b>]",
"DIRECTION_1":"Fortsätt[ på <b>%s</b>]",
"DIRECTION_2":"Sväng svagt till höger[ in på <b>%s</b>]",
"DIRECTION_3":"Sväng till höger[ in på <b>%s</b>]",
"DIRECTION_4":"Sväng skarpt till höger[ in på <b>%s</b>]",
"DIRECTION_5":"U-sväng[ på <b>%s</b>]",
"DIRECTION_6":"Sväng skarpt till vänster[ in på <b>%s</b>]",
"DIRECTION_7":"Sväng till vänster[ in på <b>%s</b>]",
"DIRECTION_8":"Sväng svagt till vänster[ in på <b>%s</b>]",
"DIRECTION_10":"Kör mot <b>%d</b>[ på <b>%s</b>]",
"DIRECTION_11-1":"Kör in i rondellen och tag första avfarten[ in på <b>%s</b>]",
"DIRECTION_11-2":"Kör in i rondellen och tag andra avfarten[ in på <b>%s</b>]",
"DIRECTION_11-3":"Kör in i rondellen och tag tredje avfarten[ in på <b>%s</b>]",
"DIRECTION_11-4":"Kör in i rondellen och tag fjärde avfarten[ in på <b>%s</b>]",
"DIRECTION_11-5":"Kör in i rondellen och tag femte avfarten[ in på <b>%s</b>]",
"DIRECTION_11-6":"Kör in i rondellen och tag sjätte avfarten[ in på <b>%s</b>]",
"DIRECTION_11-7":"Kör in i rondellen och tag sjunde avfarten[ in på <b>%s</b>]",
"DIRECTION_11-8":"Kör in i rondellen och tag åttonde avfarten[ in på <b>%s</b>]",
"DIRECTION_11-9":"Kör in i rondellen och tag nionde avfarten[ in på <b>%s</b>]",
"DIRECTION_11-x":"Kör in i rondellen och tag en av de allt för många avfarterna[ in på <b>%s</b>]",
"DIRECTION_15":"Du är framme",
// notifications
"NOTIFICATION_MAINTENANCE_HEADER": "Schemalagt underhåll",
"NOTIFICATION_MAINTENANCE_BODY": "OSRM Websida ligger nere pga. schemalagt underhåll. " +
"Var god djöj till de nödvändiga uppdateringarna är slutförda. " +
"Sidan kommer vara upp snart." +
"<br/><br/>" +
"Under tiden kanske du vill kartlägga ditt närområde..." +
"<br/><br/><br/>[OSRM]",
"NOTIFICATION_LOCALIZATION_HEADER": "Visste du att? Du kan ändra språk.",
"NOTIFICATION_LOCALIZATION_BODY": "Du kan använda menyn uppe till vänster för att välja ditt språk. " +
"<br/><br/>" +
"Frukta inte, om ditt språk inte finns. " +
"Du kan då hjälpa till och översätta OSRM till ditt språk! " +
"Visit <a href='https://github.com/DennisSchiefer/Project-OSRM-Web'>here</a> for more information.",
"NOTIFICATION_CLICKING_HEADER": "Visste du att? Du kan klicka på kartan för att lägga till ruttmarkörer.",
"NOTIFICATION_CLICKING_BODY": "Du kan klicka på kartan med vänster musknapp för att sätta startpunkt (grön) eller målpunkt (röd), " +
"om det redan finns en startpunkt. " +
"Addressen för den tillagda punkten kommer finnas i sökfälter till vänster. " +
"<br/><br/>" +
"Du kan ta bort en markör genom att återigen klicka på den.",
"NOTIFICATION_DRAGGING_HEADER": "Visste du att? Du kan dra i varje ruttmarkör på kartan.",
"NOTIFICATION_DRAGGING_BODY": "Du kan dra i varje ruttmarkör genom att klicka och hålla nere vänster musknapp på den och sedan dra densamma. " +
"Då kan du flytta ruttmarkören på kartan och rutten uppdateras automatiskt. " +
"<br/><br/>" +
"Du kan även skappa mellanpunktsmarkörer genom att dra någonstans på rutten! "
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING == true )
OSRM.Localization.setLanguage("sv");
+136
View File
@@ -0,0 +1,136 @@
/*
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU AFFERO General Public License as published by
the Free Software Foundation; either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
or see http://www.gnu.org/licenses/agpl.txt.
*/
// OSRM localization
// [Turkish language support]
OSRM.Localization["tr"] = {
// own language
"CULTURE": "tr-TR",
"LANGUAGE": "Türkçe",
// gui
"GUI_START": "Başlangıç",
"GUI_END": "Bitiş",
"GUI_RESET": "Reset",
"GUI_ZOOM_ON_ROUTE": "Güzergah Üzerinde Yakınlaştırma",
"GUI_ZOOM_ON_USER": "Kullanıcının Yakınlaştırma",
"GUI_SEARCH": "Göstermek",
"GUI_REVERSE": "Çevir",
"GUI_START_TOOLTIP": "Nereden",
"GUI_END_TOOLTIP": "Nereye",
"GUI_MAIN_WINDOW": "Ana Pencere",
"GUI_ZOOM_IN": "büyütmek",
"GUI_ZOOM_OUT": "azaltmak",
// config
"GUI_CONFIGURATION": "Konfigürasyon",
"GUI_LANGUAGE": "Dil",
"GUI_UNITS": "Units",
"GUI_KILOMETERS": "Kilometre",
"GUI_MILES": "Mil",
// mapping
"GUI_MAPPING_TOOLS": "Harita Araçları",
"GUI_HIGHLIGHT_UNNAMED_ROADS": "Önemli İsimlendirilmemiş Sokaklar",
"GUI_SHOW_PREVIOUS_ROUTES": "Önceki Rotaları Göster",
"OPEN_JOSM": "JOSM",
"OPEN_OSMBUGS": "OSM Bugs",
// geocoder
"SEARCH_RESULTS": "Sonuçları Göster",
"FOUND_X_RESULTS": "found %i results",
"TIMED_OUT": "Timed Out",
"NO_RESULTS_FOUND": "Hiçbir Sonuç Bulunamadı",
"NO_RESULTS_FOUND_SOURCE": "Başlangıç için hiç sonuç bulunmadı",
"NO_RESULTS_FOUND_TARGET": "Bitiş için hiç sonuç bulunamadı",
// routing
"ROUTE_DESCRIPTION": "Rota Açıklaması",
"GET_LINK_TO_ROUTE": "Link Oluştur",
"GENERATE_LINK_TO_ROUTE": "Link bekleniyor",
"LINK_TO_ROUTE_TIMEOUT": "uygun değil",
"GPX_FILE": "GPX Dosyası",
"DISTANCE": "Mesafe",
"DURATION": "Süre",
"YOUR_ROUTE_IS_BEING_COMPUTED": "Rotanız Hesaplandı",
"NO_ROUTE_FOUND": "Hiç uygun rota yok",
// printing
"OVERVIEW_MAP": "Haritaya genel bakış",
"NO_ROUTE_SELECTED": "Hiç rota seçilmedi",
// routing engines
"ENGINE_0": "Araba (en hızlı)",
// directions
"N": "kuzey",
"E": "doğu",
"S": "güney",
"W": "batı",
"NE": "kuzeydoğu",
"SE": "güneydoğu",
"SW": "güneybatı",
"NW": "kuzeybatı",
// driving directions
// %s: road name
// %d: direction
// [*]: will only be printed when there actually is a road name
"DIRECTION_0":"Bilinmeyen açıklama[ onto <b>%s</b>]",
"DIRECTION_1":"Devam[ onto <b>%s</b>]",
"DIRECTION_2":"Hafif sağa dönün[ onto <b>%s</b>]",
"DIRECTION_3":"Sağa dönün[ onto <b>%s</b>]",
"DIRECTION_4":"Sağa keskin dönün[ onto <b>%s</b>]",
"DIRECTION_5":"U-Dönüşü[ onto <b>%s</b>]",
"DIRECTION_6":"Sola keskin dönün[ onto <b>%s</b>]",
"DIRECTION_7":"Sola dönün[ onto <b>%s</b>]",
"DIRECTION_8":"Hafif sola dönün[ onto <b>%s</b>]",
"DIRECTION_10":"Yön <b>%d</b>[ onto <b>%s</b>]",
"DIRECTION_11-1":"Kavşağa girin ve ilk çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-2":"Kavşağa girin ve ikinci çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-3":"Kavşağa girin ve üçüncü çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-4":"Kavşağa girin ve dördüncü çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-5":"Kavşağa girin ve beşinci çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-6":"Kavşağa girin ve altıncı çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-7":"Kavşağa girin ve yedinci çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-8":"Kavşağa girin ve sekizinci çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-9":"Kavşağa girin ve dokuzuncu çıkıştan çıkın[ onto <b>%s</b>]",
"DIRECTION_11-x":"Kavşağa girin ve birçok çıkışın birinden çıkın[ onto <b>%s</b>]",
"DIRECTION_15":"Hedefinize ulaştınız",
// notifications
"NOTIFICATION_MAINTENANCE_HEADER": "Programlı Bakım",
"NOTIFICATION_MAINTENANCE_BODY": "OSRM Web sayfası planlı bakımla yazılmıştır. " +
"Lütfen güncellenmeler yapılırken sabırlı olun. " +
"Site kısa bir süre sonra çevrimiçi olacaktır." +
"<br/><br/>" +
"Aynı zamanda dışarıya çıkıp komşunuzu haritalamayı isteyebilirsiniz..." +
"<br/><br/><br/>[OSRM]",
"NOTIFICATION_LOCALIZATION_HEADER": "Biliyor muydunuz? Dil görünümünü değiştirebilirsiniz.",
"NOTIFICATION_LOCALIZATION_BODY": "Favori dilinizi seçmek için üst sol köşedeki aşağı açılna menüye tıklayabilirsiniz. " +
"<br/><br/>" +
"İstediğiniz dili bulamazsanız umutsuzluğa düşmeyin. " +
"Eğer isterseniz, fazladan çeviriler elde etmek için yardım edebilirsiniz! " +
"Ziyaret edin <a href='https://github.com/DennisSchiefer/Project-OSRM-Web'>here</a> daha fazla bilgi için.",
"NOTIFICATION_CLICKING_HEADER": "Biliyor muydunuz? Rota işaretleyicilerini ayarlamak için haritaya tıklayabilirsiniz.",
"NOTIFICATION_CLICKING_BODY": "İşaretleyici kaynağını (yeşil) yada hedef işaretleyici (kırmızı)ayarlamak için farenin sol tarafıyla haritanın üzerine tıklayabilirsiniz. " +
"Eğer kaynak işaretleyici zaten varsa. " +
"Seçilen bölgenin adresi sola doğru kutularda gözükecek. " +
"<br/><br/>" +
"Farenin sol tarafına tıklayarak işaretleyiciyi silebilirsiniz.",
"NOTIFICATION_DRAGGING_HEADER": "Biliyor muydunuz? Rota işaretleyicisini harita üzerinde sürükleyebilirsiniz.",
"NOTIFICATION_DRAGGING_BODY": "İşaretleyiciyi farenin sol tarafına tıklayarak veya basılı tutarak sürükleyebilirsiniz. " +
"Sonra işaretleyiciyi haritanın çevresinde hareket ettirebilirsiniz ve rota kendini otomatik olarak yeniler. " +
"<br/><br/>" +
"Asıl rotalarına sürükleyerek orta dereceli bir işaretleyici oluşturabilirsiniz ! "
};
// set GUI language on load
if( OSRM.DEFAULTS.LANUGAGE_ONDEMAND_RELOADING==true )
OSRM.Localization.setLanguage("tr");
+36 -41
View File
@@ -21,62 +21,57 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Localization = {
// default directory for localization files
DIRECTORY: "localization/",
// holds currently active language
current_language: OSRM.DEFAULTS.LANGUAGE,
// initialize localization
//initialize localization
init: function() {
// create dropdown menu
var select = document.createElement('select');
select.id = "gui-language-toggle";
select.className = "top-left-button";
select.onchange = function() { OSRM.Localization.setLanguage(this.value); };
// fill dropdown menu
// fill option list and find default entry
var options = [];
var options_2 = [];
var selected = 0;
var supported_languages = OSRM.DEFAULTS.LANGUAGE_SUPPORTED;
for(var i=0, size=supported_languages.length; i<size; i++) {
var option=document.createElement("option");
option.innerHTML = supported_languages[i].display_name;
option.value = supported_languages[i].encoding;
select.appendChild(option);
options.push( {display:supported_languages[i].encoding, value:supported_languages[i].encoding} );
options_2.push( {display:supported_languages[i].name, value:supported_languages[i].encoding} );
if( supported_languages[i].encoding == OSRM.DEFAULTS.LANGUAGE )
selected=i;
}
select.value = OSRM.DEFAULTS.LANGUAGE;
// add element to DOM
var input_mask_header = document.getElementById('input-mask-header');
input_mask_header.insertBefore(select,input_mask_header.firstChild);
// generate selectors
OSRM.GUI.selectorInit("gui-language-toggle", options, selected, OSRM.Localization.setLanguageWrapper);
OSRM.GUI.selectorInit("gui-language-2-toggle", options_2, selected, OSRM.Localization.setLanguageWrapper);
// create visible dropdown menu
var textnode = document.createTextNode(OSRM.DEFAULTS.LANGUAGE);
var myspan = document.createElement("span");
myspan.className = "styled-select";
myspan.id = "styled-select" + select.id;
myspan.appendChild(textnode);
select.parentNode.insertBefore(myspan, select);
myspan.style.width = (select.clientWidth-2)+"px";
myspan.style.height = (select.clientHeight)+"px";
// set default language
OSRM.Localization.setLanguage( OSRM.DEFAULTS.LANGUAGE );
},
setLanguageWrapper: function(language) { // wrapping required to correctly prevent localization tooltip from showing
OSRM.GUI.deactivateTooltip( "LOCALIZATION" );
OSRM.Localization.setLanguage(language);
},
// perform language change
setLanguage: function(language) {
// change value of both language selectors
OSRM.GUI.selectorChange( 'gui-language-toggle', language );
OSRM.GUI.selectorChange( 'gui-language-2-toggle', language );
if( OSRM.Localization[language]) {
OSRM.Localization.current_language = language;
// update selector
if( select = document.getElementById('gui-language-toggle') ) { // yes, = not == !
var option = select.getElementsByTagName("option");
select.value = language;
for(var i = 0; i < option.length; i++)
if(option[i].selected == true) {
document.getElementById("styled-select" + select.id).childNodes[0].nodeValue = option[i].childNodes[0].nodeValue;
break;
}
}
// change gui language
OSRM.GUI.setLabels();
// change map language
for(var i=0, size=OSRM.G.localizable_maps.length; i<size; i++) {
OSRM.G.localizable_maps[i].options.culture = OSRM.loc("CULTURE");
}
if(OSRM.G.map.layerControl.getActiveLayer().redraw)
OSRM.G.map.layerControl.getActiveLayer().redraw();
// requery data
if( OSRM.G.markers == null )
return;
if( OSRM.G.markers.route.length > 1)
OSRM.Routing.getRoute();
OSRM.Routing.getRoute({keepAlternative:true});
else if(OSRM.G.markers.route.length > 0 && document.getElementById('information-box').innerHTML != "" ) {
OSRM.Geocoder.call( OSRM.C.SOURCE_LABEL, document.getElementById("gui-input-source").value );
OSRM.Geocoder.call( OSRM.C.TARGET_LABEL, document.getElementById("gui-input-target").value );
@@ -92,7 +87,7 @@ setLanguage: function(language) {
if( supported_languages[i].encoding == language) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = OSRM.DEFAULTS.LANGUAGE_FILES_DIRECTORY + "OSRM.Locale."+language+".js";
script.src = OSRM.Localization.DIRECTORY+"OSRM.Locale."+language+".js";
document.head.appendChild(script);
break;
}
@@ -112,4 +107,4 @@ translate: function(text) {
};
// shorter call to translate function
OSRM.loc = OSRM.Localization.translate;
OSRM.loc = OSRM.Localization.translate;
+457 -196
View File
@@ -17,70 +17,96 @@ or see http://www.gnu.org/licenses/agpl.txt.
/* OSRM CSS styles */
/* ------------------------------------------------------------------------ */
/* fullscreen map */
html, body {
html, body
{
padding: 0;
margin: 0;
height: 100%;
overflow:hidden;
}
#map {
#map
{
height: 100%;
z-index: 0;
}
/* ------------------------------------------------------------------------ */
/* changes/additions to leaflet styles */
.via-counter
{
position:absolute;
top:-3px;
right:-6px;
width:16px;
border-radius:5px;
-moz-border-radius:5px;
-webkit-border-radius:5px;
background-color:#FFFFFF;
text-align:center;
vertical-align:middle;
font-size:9px;
display:none;
}
/* ------------------------------------------------------------------------ */
/* general styles for gui boxes */
.gui-wrapper
.box-wrapper
{
position:absolute;
border-radius:10px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
background-color:#666666;
background-color:rgba(0, 0, 0, 0.25);
transition:left 1s;
-moz-transition:left 1s;
-webkit-transition:left 1s;
-o-transition:left 1s;
-ms-transition:left 1s;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3f000000, endColorstr=#3f000000);
}
.gui-box
.box-animated
{
transition:left 1s, right 1s;
-moz-transition:left 1s,right 1s;
-webkit-transition:left 1s,right 1s;
-o-transition:left 1s,right 1s;
-ms-transition:left 1s,right 1s;
}
.box-content
{
position:absolute;
background-color:#ffffff;
background-color:rgba(255,255,255,1);
border-radius:10px;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:8px;
-moz-border-radius:8px;
-webkit-border-radius:8px;
margin:5px;
padding:5px;
}
/* styles for specific gui boxes */
#main-wrapper
.box-handle-wrapper-right
{
width:410px;
top:5px;
bottom:25px;
left:5px;
width:36px;
height:36px;
border-top-right-radius:0px;
border-bottom-right-radius:0px;
-moz-border-radius-topright:0px;
-moz-border-radius-bottomright:0px;
-webkit-border-top-right-radius:0px;
-webkit-border-bottom-right-radius:0px;
}
#main-input
.box-handle-content-right
{
width:390px;
height:200px;
width:16px;
height:16px;
border-top-right-radius:0px;
border-bottom-right-radius:0px;
-moz-border-radius-topright:0px;
-moz-border-radius-bottomright:0px;
-webkit-border-top-right-radius:0px;
-webkit-border-bottom-right-radius:0px;
}
#main-output
.box-handle-wrapper-left
{
width:390px;
top:220px; /* main-input.height+2*gui-box.margin+2*gui-box.padding */
bottom:0px;
}
#blob-wrapper
{
left:-5px;
top:5px;
width:36px;
height:36px;
border-top-left-radius:0px;
@@ -89,9 +115,8 @@ html, body {
-moz-border-radius-bottomleft:0px;
-webkit-border-top-left-radius:0px;
-webkit-border-bottom-left-radius:0px;
visibility:hidden;
}
#blob-content
.box-handle-content-left
{
width:16px;
height:16px;
@@ -104,6 +129,41 @@ html, body {
}
/* general styles for gui box headers */
.top-left-button
{
float:left;
vertical-align:top;
}
.top-right-button
{
float:right;
vertical-align:top;
}
/* ------------------------------------------------------------------------ */
/* styles for main gui boxes */
#main-wrapper
{
width:410px;
top:5px;
bottom:25px;
left:5px;
}
#main-input
{
width:390px;
height:140px;
}
#main-output
{
width:390px;
top:160px; /* main-input.height+2*gui-box.margin+2*gui-box.padding */
bottom:0px;
}
/* styles for main-input areas */
#input-mask-header
{
@@ -113,7 +173,6 @@ html, body {
height:50px;
background-repeat:no-repeat;
background-position:center;
background-image:url("images/osrm-logo.png");
}
#input-mask
{
@@ -129,30 +188,6 @@ html, body {
#gui-language-toggle
{
position:absolute;
border: 0px;
text-decoration:none;
opacity: 0;
filter: alpha(opacity=0);
z-index: 5;
}
.styled-select
{
position:absolute;
background: url("images/selector.png");
background-repeat:no-repeat;
background-position: top right;
padding: 1px 1px 1px 1px;
overflow: hidden;
}
.top-left-button
{
float:left;
}
.top-right-button
{
float:right;
}
@@ -181,18 +216,9 @@ html, body {
/* styles for main-input input-mask-options */
#gui-options-toggle
#gui-engine-toggle
{
cursor:pointer;
color:#0000ff
}
#gui-options-toggle:hover
{
color:#ff0000
}
#options-box
{
visibility:hidden;
max-width: 200px;
}
@@ -220,29 +246,7 @@ html, body {
}
/* workaround for invisible scrollbars in Chrome */
#information-box::-webkit-scrollbar {
height: 10px;
width: 10px;
}
#information-box::-webkit-scrollbar-track {
background: #FFFFFF;
}
#information-box::-webkit-scrollbar-thumb {
min-height: 30px;
background: #EEEEEE;
border: 1px solid #999999;
-webkit-border-radius: 5ex;
}
#information-box::-webkit-scrollbar-thumb:hover {
background: #F9F9F9;
}
#information-box::-webkit-scrollbar-thumb:active {
background: #F4F4F4;
}
/* styles for information-box-header */
/* styles for main-output information-box-header */
.header-title
{
font-weight:bold;
@@ -269,7 +273,34 @@ html, body {
}
/* style for information-box table (general) */
/* styles for main-output information-box -> workaround for invisible scrollbars in Chrome */
#information-box::-webkit-scrollbar
{
height: 10px;
width: 10px;
}
#information-box::-webkit-scrollbar-track
{
background: #FFFFFF;
}
#information-box::-webkit-scrollbar-thumb
{
min-height: 30px;
background: #EEEEEE;
border: 1px solid #999999;
-webkit-border-radius: 5ex;
}
#information-box::-webkit-scrollbar-thumb:hover
{
background: #F9F9F9;
}
#information-box::-webkit-scrollbar-thumb:active
{
background: #F4F4F4;
}
/* style for main-output information-box -> table (general) */
.no-results
{
text-align:center;
@@ -277,7 +308,7 @@ html, body {
}
/* style for information-box table (search results) */
/* style for main-output information-box -> table (search results) */
.results
{
border-spacing:0px;
@@ -294,14 +325,14 @@ html, body {
.results-body-counter
{
text-align:right;
vertical-align:top;
vertical-align:middle;
font-weight:bold;
padding:1px 5px 1px 5px;
}
.results-body-items
{
text-align:left;
vertical-align: middle;
vertical-align:top;
width:100%;
padding:1px;
}
@@ -314,9 +345,13 @@ html, body {
{
color:#ff0000
}
.results-body-item-remark
{
color:#999999
}
/* style for information-box table (driving directions) */
/* style for main-output information-box -> table (driving directions) */
.description
{
border-spacing:0px;
@@ -358,13 +393,249 @@ html, body {
.description-body-item
{
cursor:pointer;
color:#000000
color:#000000;
}
.description-body-item:hover
{
color:#ff0000
color:#ff0000;
}
.description-body-item-selected
{
cursor:pointer;
color:#ff00ff;
}
/* ------------------------------------------------------------------------ */
/* styles for other gui boxes */
#mapping-wrapper
{
width:410px;
height:100px;
bottom:25px;
right:5px;
}
#mapping-content
{
width:390px;
height:80px;
}
#config-wrapper
{
width:410px;
height:100px;
bottom:25px;
right:5px;
}
#config-content
{
width:390px;
height:80px;
}
#exclusive-notification-wrapper
{
width:600px;
height:170px;
top: 50%;
left: 50%;
margin-top:-85px;
margin-left:-300px;
}
#exclusive-notification-content
{
width:580px;
height:150px;
}
#exclusive-notification-blanket
{
position:absolute;
top:0px;
left:0px;
width:100%;
height:100%;
background-color:rgba(0, 0, 0, 0.25);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3f000000, endColorstr=#3f000000);
z-index:100;
display:none;
}
#tooltip-notification-wrapper
{
width:700px;
height:38px;
top: 20px;
left: 50%;
margin-left:-350px;
z-index:98;
display: none;
}
#tooltip-notification-content
{
width:680px;
height:18px;
}
/* styles for content of other gui boxes */
#gui-language-2-toggle
{
position:relative;
}
#gui-units-toggle
{
position:relative;
}
.box-label
{
font-weight:bold;
margin-bottom:10px;
}
.config-label
{
margin: 0px 0px 0px 5px;
}
.config-select
{
width:100px;
}
#config-timestamps
{
display:table;
position:absolute;
right: 5px; /* equal to box-content padding */
bottom: 5px;
}
#mapping-checkboxes
{
margin-top: -2px;
}
#mapping-checkboxes input
{
cursor:pointer;
position: relative;
margin: 0px 5px 5px 5px;
padding: 0px;
top: 3px;
}
#mapping-checkboxes label
{
display: block;
vertical-align:middle;
}
.mapping-button
{
float: right;
}
#notification-box
{
margin:5px 5px 5px 5px;
}
/* ------------------------------------------------------------------------ */
/* map buttons */
.gui-control-wrapper
{
position:relative;
}
.gui-control
{
cursor:pointer;
position:relative;
background-position: 50% 50%;
background-repeat: no-repeat;
display: block;
}
.gui-control-inactive {
cursor:default;
position:relative;
background-position: 50% 50%;
background-repeat: no-repeat;
display: block;
}
/* zoom buttons */
.gui-zoom-in,
.gui-zoom-out
{
width: 15px;
height: 15px;
}
.leaflet-touch .gui-zoom-in,
.leaflet-touch .gui-zoom-out
{
width: 23px;
height: 23px;
}
/* locations buttons */
.gui-locations-user,
.gui-locations-route,
.gui-locations-user-inactive,
.gui-locations-route-inactive
{
float:left;
width: 26px;
height: 26px;
}
.leaflet-touch .gui-locations-user,
.leaflet-touch .gui-locations-route,
.leaflet-touch .gui-locations-user-inactive,
.leaflet-touch .gui-locations-route-inactive
{
width: 32px;
height: 32px;
}
/* layer selection */
.gui-layers
{
width: 26px;
height: 26px;
}
.leaflet-touch .gui-layers
{
width: 32px;
height: 32px;
}
.gui-layers-expanded .gui-layers
{
display: none;
}
.gui-layers-list
{
display: none;
}
.gui-layers-expanded .gui-layers-list
{
display: block;
position: relative;
}
.gui-layers-list input
{
cursor:pointer;
margin-top: 2px;
position: relative;
top: 2px;
}
.gui-layers-list label
{
cursor:pointer;
display: block;
vertical-align:middle;
}
.gui-layers-separator
{
height: 0;
border-top: 1px solid #ddd;
margin: 5px -10px 5px -6px;
}
/* ------------------------------------------------------------------------ */
/* buttons */
.button
@@ -392,6 +663,36 @@ html, body {
background-color:#F4F4F4;
color:#FF0000;
}
.button-inactive
{
cursor:default;
padding:2px 10px 2px 10px;
border-radius:5px;
-moz-border-radius:5px;
-webkit-border-radius:5px;
background-color:#F9F9F9;
border:1px solid #CCCCCC;
color:#999999;
text-decoration:none;
font-size:9px;
outline-style:none;
vertical-align:1px;
}
.button-pressed
{
cursor:pointer;
padding:2px 10px 2px 10px;
border-radius:5px;
-moz-border-radius:5px;
-webkit-border-radius:5px;
background-color:#AAAAAA;
border:1px solid #999999;
color:#000000;
text-decoration:none;
font-size:9px;
outline-style:none;
vertical-align:1px;
}
/* iconic buttons */
@@ -404,117 +705,45 @@ html, body {
background-position:center;
}
#gui-toggle-out
{
background-image:url("images/cancel.png");
}
#gui-toggle-out:hover
{
background-image:url("images/cancel_hover.png");
}
#gui-toggle-out:active
{
background-image:url("images/cancel_active.png");
}
#gui-toggle-in
{
background-image:url("images/restore.png");
}
#gui-toggle-in:hover
{
background-image:url("images/restore_hover.png");
}
#gui-toggle-in:active
{
background-image:url("images/restore_active.png");
}
#gui-printer
{
background-image:url("images/printer.png");
}
#gui-printer-inactive
{
cursor:default;
background-image:url("images/printer_inactive.png");
}
#gui-printer:hover
{
background-image:url("images/printer_hover.png");
}
#gui-printer:active
{
background-image:url("images/printer_active.png");
}
.delete-marker
{
background-image:url("images/cancel.png");
}
.delete-marker:hover
{
background-image:url("images/cancel_hover.png");
}
.delete-marker:active
{
background-image:url("images/cancel_active.png");
}
/* fonts */
.base-font {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: normal;
/* styled select */
.styled-select-helper
{
position:relative;
border: 0px;
text-decoration:none;
opacity: 0;
filter: alpha(opacity=0);
z-index: 5;
cursor:pointer;
}
.big-font {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
}
.medium-font {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10.5px;
font-weight: normal;
}
.small-font {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
font-weight: normal;
.styled-select
{
text-align:left;
position:absolute;
background-repeat:no-repeat;
background-position: top right;
padding: 1px 1px 1px 1px;
overflow: hidden;
}
/* ------------------------------------------------------------------------ */
/* utility styles (defined above buttons, so that buttons retain cursor:pointer)*/
/* utility styles */
.quad
{
min-width:10px;
min-height:10px;
}
.not-selectable
{
cursor:default;
-moz-user-select: -moz-none;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
}
.text-selectable
{
cursor:default;
-moz-user-select: text;
-webkit-user-select: text;
-ms-user-select: text;
user-select: text;
}
.checkbox-label
{
vertical-align:2px;
}
/* ------------------------------------------------------------------------ */
/* table styles */
.full
{
display:table;
@@ -545,4 +774,36 @@ html, body {
.stretch
{
width:100%;
}
}
.fixed
{
min-width:100px;
}
/* ------------------------------------------------------------------------ */
/* fonts */
.base-font
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: normal;
}
.big-font
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
}
.medium-font
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10.5px;
font-weight: normal;
}
.small-font
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9px;
font-weight: normal;
}
+112 -39
View File
@@ -37,10 +37,9 @@ or see http://www.gnu.org/licenses/agpl.txt.
<!-- scripts -->
<script src="leaflet/leaflet-src.js" type="text/javascript"></script>
<script src="base/leaflet/L.Bugfixes.js" type="text/javascript"></script>
<script src="base/leaflet/L.Control.QueryableLayers.js" type="text/javascript"></script>
<script src="base/leaflet/L.DashedPolyline.js" type="text/javascript"></script>
<script src="base/leaflet/L.MouseMarker.js" type="text/javascript"></script>
<script src="base/leaflet/L.SwitchableIcon.js" type="text/javascript"></script>
<script src="base/leaflet/L.LabelMarker.js" type="text/javascript"></script>
<script src="base/leaflet/L.LabelMarkerIcon.js" type="text/javascript"></script>
<script src="base/leaflet/L.BingLayer.js" type="text/javascript"></script>
<script src="OSRM.base.js" type="text/javascript"></script>
<script src="OSRM.config.js" type="text/javascript"></script>
@@ -50,23 +49,34 @@ or see http://www.gnu.org/licenses/agpl.txt.
<script src="main.js" type="text/javascript"></script>
<!-- <script defer="defer" src="OSRM.debug.js" type="text/javascript"></script> -->
<script src="base/osrm/OSRM.MapView.js" type="text/javascript"></script>
<script src="base/osrm/OSRM.Control.Layers.js" type="text/javascript"></script>
<script src="base/osrm/OSRM.Control.Locations.js" type="text/javascript"></script>
<script src="base/osrm/OSRM.Control.Zoom.js" type="text/javascript"></script>
<script src="base/osrm/OSRM.Control.Map.js" type="text/javascript"></script>
<script src="base/osrm/OSRM.Marker.js" type="text/javascript"></script>
<script src="base/osrm/OSRM.Route.js" type="text/javascript"></script>
<script src="base/OSRM.Map.js" type="text/javascript"></script>
<script src="base/OSRM.Markers.js" type="text/javascript"></script>
<script src="base/OSRM.Routes.js" type="text/javascript"></script>
<script src="base/OSRM.HistoryRoutes.js" type="text/javascript"></script>
<script src="gui/OSRM.GUI.js" type="text/javascript"></script>
<script src="gui/OSRM.GUIBoxGroup.js" type="text/javascript"></script>
<script src="gui/OSRM.GUIBoxHandle.js" type="text/javascript"></script>
<script src="gui/OSRM.Selector.js" type="text/javascript"></script>
<script src="gui/OSRM.MainGUI.js" type="text/javascript"></script>
<script src="gui/OSRM.Notifications.js" type="text/javascript"></script>
<script src="routing/OSRM.Routing.js" type="text/javascript"></script>
<script src="routing/OSRM.RoutingAlternatives.js" type="text/javascript"></script>
<script src="routing/OSRM.RoutingDescription.js" type="text/javascript"></script>
<script src="routing/OSRM.RoutingGeometry.js" type="text/javascript"></script>
<script src="gui/OSRM.RoutingGUI.js" type="text/javascript"></script>
<script src="gui/OSRM.RoutingEngineGUI.js" type="text/javascript"></script>
<script src="routing/OSRM.RoutingNoNames.js" type="text/javascript"></script>
<script src="base/OSRM.Via.js" type="text/javascript"></script>
<script src="base/OSRM.Geocoder.js" type="text/javascript"></script>
<script src="utils/OSRM.CSS.js" type="text/javascript"></script>
<script src="utils/OSRM.JSONP.js" type="text/javascript"></script>
<script src="localization/OSRM.Localization.js" type="text/javascript"></script>
<script src="printing/OSRM.Printing.js" type="text/javascript"></script>
@@ -75,26 +85,107 @@ or see http://www.gnu.org/licenses/agpl.txt.
<!-- body -->
<body class="base-font not-selectable">
<body class="base-font">
<!--map-->
<!-- map -->
<div id="map"></div>
<!-- show ui blob -->
<div id="blob-wrapper" class="gui-wrapper">
<div id="blob-content" class="gui-box">
<div id="gui-toggle-in" class="iconic-button"></div>
<!-- exclusive notification -->
<div id="exclusive-notification-blanket">
<div id="exclusive-notification-wrapper" class="box-wrapper not-selectable">
<div id="exclusive-notification-content" class="box-content">
<!-- header -->
<div id="exclusive-notification-toggle" class="iconic-button cancel-marker top-right-button"></div>
<div id="exclusive-notification-label" class="box-label">Notification</div>
<!-- notification text -->
<div id="exclusive-notification-box"></div>
</div>
</div>
</div>
<!-- show main gui -->
<div id="main-wrapper" class="gui-wrapper not-selectable">
<!-- tooltip notification -->
<div id="tooltip-notification-wrapper" class="box-wrapper not-selectable">
<div id="tooltip-notification-content" class="box-content">
<!-- header -->
<div id="tooltip-notification-toggle" class="iconic-button cancel-marker top-right-button"></div>
<div class="quad top-right-button"></div>
<div id="tooltip-notification-resize" class="iconic-button cancel-marker top-right-button"></div>
<div id="tooltip-notification-label" class="box-label">Notification</div>
<!-- notification text -->
<div id="tooltip-notification-box"></div>
</div>
</div>
<!-- config gui -->
<div id="config-wrapper" class="box-wrapper">
<div id="config-content" class="box-content">
<!-- header -->
<div id="config-toggle" class="iconic-button cancel-marker top-right-button"></div>
<div id="gui-config-label" class="box-label">Configuraion</div>
<!-- config options -->
<div class="full">
<div class="row">
<div class="left fixed"><span id="gui-language-2-label" class="config-label">Language:</span></div>
<div class="left stretch"><select id="gui-language-2-toggle" class="config-select"></select></div>
</div>
<div class="row">
<div class="left fixed"><span id="gui-units-label" class="config-label">Units:</span></div>
<div class="left stretch"><select id="gui-units-toggle" class="config-select"></select></div>
</div>
</div>
<!-- gui & data timestamps -->
<div id="config-timestamps">
<div class="row">
<div class="right small-font"><span id="gui-timestamp-label">gui:</span></div>
<div class="right small-font"><span id="gui-timestamp">v0.0.0 010180</span></div>
</div>
<div class="row">
<div class="right small-font"><span id="gui-data-timestamp-label">data:</span></div>
<div class="right small-font"><span id="gui-data-timestamp">n/a</span></div>
</div>
</div>
</div>
</div>
<!-- mapping gui -->
<div id="mapping-wrapper" class="box-wrapper">
<div id="mapping-content" class="box-content">
<!-- header -->
<div id="mapping-toggle" class="iconic-button cancel-marker top-right-button"></div>
<div id="gui-mapping-label" class="box-label">Mapping Tools</div>
<!-- mapping options -->
<form id="mapping-checkboxes" class="small-font">
<div>
<label id="gui-option-highlight-nonames-label">
<input type="checkbox" id="option-highlight-nonames" value="show-previous-routes"/>
Highlight unnamed streets
</label>
<label id="gui-option-show-previous-routes-label">
<input type="checkbox" id="option-show-previous-routes" value="show-previous-routes"/>
Show previous routes
</label>
</div>
</form>
<!-- off-site links -->
<a class="button mapping-button" id="open-osmbugs">OSM Bugs</a><span class="quad mapping-button"></span><a class="button mapping-button" id="open-josm">JOSM</a>
</div>
</div>
<!-- main gui -->
<div id="main-wrapper" class="box-wrapper">
<!-- input box -->
<div id="main-input" class="gui-box">
<div id="main-input" class="box-content">
<!-- header -->
<div id="input-mask-header">
<div id="gui-toggle-out" class="iconic-button top-right-button"></div>
<select id="gui-language-toggle" class="top-left-button"></select>
<div id="main-toggle" class="iconic-button cancel-marker top-right-button"></div>
</div>
<!-- input mask -->
@@ -105,13 +196,13 @@ or see http://www.gnu.org/licenses/agpl.txt.
<div id="input-source" class="input-marker">
<div class="left"><span id="gui-search-source-label" class="input-label">Start:</span></div>
<div class="center input-box"><input id="gui-input-source" class="input-box" type="text" maxlength="200" value="" title="Enter start" /></div>
<div class="left"><div id="gui-delete-source" class="iconic-button delete-marker input-delete"></div></div>
<div class="left"><div id="gui-delete-source" class="iconic-button cancel-marker input-delete"></div></div>
<div class="right"><a class="button" id="gui-search-source">Show</a></div>
</div>
<div id="input-target" class="input-marker">
<div class="left"><span id="gui-search-target-label" class="input-label">End:</span></div>
<div class="center input-box"><input id="gui-input-target" class="input-box" type="text" maxlength="200" value="" title="Enter destination" /></div>
<div class="left"><div id="gui-delete-target" class="iconic-button delete-marker input-delete"></div></div>
<div class="left"><div id="gui-delete-target" class="iconic-button cancel-marker input-delete"></div></div>
<div class="right"><a class="button" id="gui-search-target">Show</a></div>
</div>
</div>
@@ -120,35 +211,17 @@ or see http://www.gnu.org/licenses/agpl.txt.
<!-- action buttons -->
<div class="full">
<div class="row">
<div class="left"><a class="button" id="gui-reset">Reset</a></div>
<div class="center"><select id="gui-engine-toggle" class="engine-select"></select></div>
<div class="right"><a class="button" id="gui-reverse">Reverse</a></div>
</div>
</div>
<div class="quad"></div>
<!-- options -->
<div id="input-mask-options">
<!-- option toggle -->
<span id="gui-options-toggle" class="small-font">Mapping Tools</span>
<!-- actual options -->
<div id="options-box" class="full">
<div class="left">
<input type="checkbox" id="option-highlight-nonames" value="highlight-nonames" />
<span id="gui-option-highlight-nonames-label" class="checkbox-label small-font">Highlight unnamed streets</span>
</div>
<div class="right">
<a class="button" id="open-josm">JOSM</a>
<a class="button" id="open-osmbugs">OSM Bugs</a>
</div>
</div>
</div>
</div>
</div>
<!-- output box -->
<div id="main-output" class="gui-box">
<div id="main-output" class="box-content">
<div id="information-box-header"></div>
<div id="information-box"></div>
<div id="legal-notice" class="small-font">GUI2 - OSRM hosting by <a href='http://algo2.iti.kit.edu/'>KIT</a> - Geocoder by <a href='http://www.osm.org/'>OSM</a></div>
+147 -18
View File
@@ -23,12 +23,18 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.init = function() {
OSRM.prefetchImages();
OSRM.prefetchIcons();
OSRM.prefetchCSSIcons();
OSRM.Localization.init();
OSRM.GUI.init();
OSRM.Map.init();
OSRM.Printing.init();
OSRM.Routing.init();
OSRM.RoutingAlternatives.init();
OSRM.Localization.init();
// stop if in maintenance mode
if( OSRM.GUI.inMaintenance() == true )
return;
// check if the URL contains some GET parameter, e.g. for showing a route
OSRM.parseParameters();
@@ -36,13 +42,16 @@ OSRM.init = function() {
// only init default position / geolocation position if GET parameters do not specify a different one
if( OSRM.G.initial_position_override == false )
OSRM.Map.initPosition();
// finalize initialization of map
OSRM.Map.initFinally();
};
// prefetch images
OSRM.GLOBALS.images = {};
OSRM.prefetchImages = function() {
var image_list = [ {id:'marker-shadow', url:L.RELATIVE_ROOT_URL + 'images/marker-shadow.png'},
var image_list = [ {id:'marker-shadow', url:'leaflet/images/marker-shadow.png'},
{id:'marker-source', url:'images/marker-source.png'},
{id:'marker-target', url:'images/marker-target.png'},
{id:'marker-via', url:'images/marker-via.png'},
@@ -58,22 +67,51 @@ OSRM.prefetchImages = function() {
{id:'restore', url:'images/restore.png'},
{id:'restore_active', url:'images/restore_active.png'},
{id:'restore_hover', url:'images/restore_hover.png'},
{id:'up', url:'images/up.png'},
{id:'up_active', url:'images/up_active.png'},
{id:'up_hover', url:'images/up_hover.png'},
{id:'down', url:'images/down.png'},
{id:'down_active', url:'images/down_active.png'},
{id:'down_hover', url:'images/down_hover.png'},
{id:'config', url:'images/config.png'},
{id:'config_active', url:'images/config_active.png'},
{id:'config_hover', url:'images/config_hover.png'},
{id:'mapping', url:'images/mapping.png'},
{id:'mapping_active', url:'images/mapping_active.png'},
{id:'mapping_hover', url:'images/mapping_hover.png'},
{id:'printer', url:'images/printer.png'},
{id:'printer_active', url:'images/printer_active.png'},
{id:'printer_hover', url:'images/printer_hover.png'},
{id:'printer_inactive', url:'images/printer_inactive.png'},
{id:'zoom_in', url:'images/zoom_in.png'},
{id:'zoom_in_active', url:'images/zoom_in_active.png'},
{id:'zoom_in_hover', url:'images/zoom_in_hover.png'},
{id:'zoom_out', url:'images/zoom_out.png'},
{id:'zoom_out_active', url:'images/zoom_out_active.png'},
{id:'zoom_out_hover', url:'images/zoom_out_hover.png'},
{id:'locations_user', url:'images/locations_user.png'},
{id:'locations_user_active', url:'images/locations_user_active.png'},
{id:'locations_user_hover', url:'images/locations_user_hover.png'},
{id:'locations_user_inactive', url:'images/locations_user_inactive.png'},
{id:'locations_route', url:'images/locations_route.png'},
{id:'locations_route_active', url:'images/locations_route_active.png'},
{id:'locations_route_hover', url:'images/locations_route_hover.png'},
{id:'locations_route_inactive', url:'images/locations_route_inactive.png'},
{id:'layers', url:'images/layers.png'},
{id:'direction_0', url:'images/default.png'},
{id:'direction_1', url:'images/continue.png'},
{id:'direction_2', url:'images/slight-right.png'},
{id:'direction_3', url:'images/turn-right.png'},
{id:'direction_4', url:'images/sharp-right.png'},
{id:'direction_5', url:'images/u-turn.png'},
{id:'direction_6', url:'images/slight-left.png'},
{id:'direction_6', url:'images/sharp-left.png'},
{id:'direction_7', url:'images/turn-left.png'},
{id:'direction_8', url:'images/sharp-left.png'},
{id:'direction_8', url:'images/slight-left.png'},
{id:'direction_10', url:'images/head.png'},
{id:'direction_11', url:'images/round-about.png'},
{id:'direction_15', url:'images/target.png'}
{id:'direction_15', url:'images/target.png'},
{id:'osrm-logo', url:'images/osrm-logo.png'},
{id:'selector', url:'images/selector.png'}
];
for(var i=0; i<image_list.length; i++) {
@@ -96,18 +134,85 @@ OSRM.prefetchIcons = function() {
{id:'marker-highlight-drag', image_id:'marker-highlight-drag'}
//{id:'marker-drag', image_id:'marker-drag'} // special treatment because of size
];
var LabelMarkerIcon = L.LabelMarkerIcon.extend({
options: {
shadowUrl: OSRM.G.images["marker-shadow"].getAttribute("src"),
iconSize: [25, 41],
shadowSize: [41, 41],
iconAnchor: [13, 41],
shadowAnchor: [13, 41],
popupAnchor: [0, -33]
} });
for(var i=0; i<icon_list.length; i++) {
var icon = {
iconUrl: OSRM.G.images[icon_list[i].image_id].getAttribute("src"), iconSize: new L.Point(25, 41), iconAnchor: new L.Point(13, 41),
shadowUrl: OSRM.G.images["marker-shadow"].getAttribute("src"), shadowSize: new L.Point(41, 41),
popupAnchor: new L.Point(0, -33)
};
OSRM.G.icons[icon_list[i].id] = new L.SwitchableIcon(icon);
OSRM.G.icons[icon_list[i].id] = new LabelMarkerIcon({iconUrl: OSRM.G.images[icon_list[i].image_id].getAttribute("src")});
}
// special values for drag marker
OSRM.G.icons['marker-drag'] = new L.SwitchableIcon( {iconUrl: OSRM.G.images["marker-drag"].getAttribute("src"), iconSize: new L.Point(18, 18) } );
OSRM.G.icons['marker-drag'] = new L.LabelMarkerIcon( {iconUrl: OSRM.G.images["marker-drag"].getAttribute("src"), iconSize: new L.Point(18, 18) } );
};
// set css styles for images
OSRM.prefetchCSSIcons = function() {
var css_list = [
{ id:'#gui-printer-inactive', image_id:'printer_inactive'},
{ id:'#gui-printer', image_id:'printer'},
{ id:'#gui-printer:hover', image_id:'printer_hover'},
{ id:'#gui-printer:active', image_id:'printer_active'},
{ id:'.gui-zoom-in', image_id:'zoom_in'},
{ id:'.gui-zoom-in:hover', image_id:'zoom_in_hover'},
{ id:'.gui-zoom-in:active', image_id:'zoom_in_active'},
{ id:'.gui-zoom-out', image_id:'zoom_out'},
{ id:'.gui-zoom-out:hover', image_id:'zoom_out_hover'},
{ id:'.gui-zoom-out:active', image_id:'zoom_out_active'},
{ id:'.gui-locations-user-inactive', image_id:'locations_user_inactive'},
{ id:'.gui-locations-user', image_id:'locations_user'},
{ id:'.gui-locations-user:hover', image_id:'locations_user_hover'},
{ id:'.gui-locations-user:active', image_id:'locations_user_active'},
{ id:'.gui-locations-route-inactive', image_id:'locations_route_inactive'},
{ id:'.gui-locations-route', image_id:'locations_route'},
{ id:'.gui-locations-route:hover', image_id:'locations_route_hover'},
{ id:'.gui-locations-route:active', image_id:'locations_route_active'},
{ id:'.gui-layers', image_id:'layers'},
{ id:'.cancel-marker', image_id:'cancel'},
{ id:'.cancel-marker:hover', image_id:'cancel_hover'},
{ id:'.cancel-marker:active', image_id:'cancel_active'},
{ id:'.up-marker', image_id:'up'},
{ id:'.up-marker:hover', image_id:'up_hover'},
{ id:'.up-marker:active', image_id:'up_active'},
{ id:'.down-marker', image_id:'down'},
{ id:'.down-marker:hover', image_id:'down_hover'},
{ id:'.down-marker:active', image_id:'down_active'},
{ id:'#input-mask-header', image_id:'osrm-logo'},
{ id:'.styled-select', image_id:'selector'},
{ id:'#config-handle-icon', image_id:'config'},
{ id:'#config-handle-icon:hover', image_id:'config_hover'},
{ id:'#config-handle-icon:active', image_id:'config_active'},
{ id:'#mapping-handle-icon', image_id:'mapping'},
{ id:'#mapping-handle-icon:hover', image_id:'mapping_hover'},
{ id:'#mapping-handle-icon:active', image_id:'mapping_active'},
{ id:'#main-handle-icon', image_id:'restore'},
{ id:'#main-handle-icon:hover', image_id:'restore_hover'},
{ id:'#main-handle-icon:active', image_id:'restore_active'}
];
var stylesheet = OSRM.CSS.getStylesheet("main.css");
for(var i=0; i<css_list.length; i++) {
OSRM.CSS.insert( stylesheet, css_list[i].id, "background-image:url("+ OSRM.G.images[css_list[i].image_id].getAttribute("src") + ");" );
}
};
@@ -135,6 +240,12 @@ OSRM.parseParameters = function(){
if(name_val[0] == 'hl') {
OSRM.Localization.setLanguage(name_val[1]);
}
else if(name_val[0] == 'df') {
var type = parseInt(name_val[1]);
if(type != 0 && type != 1)
return;
OSRM.GUI.setDistanceFormat(type);
}
else if(name_val[0] == 'loc') {
var coordinates = unescape(name_val[1]).split(',');
if(coordinates.length!=2 || !OSRM.Utils.isLatitude(coordinates[0]) || !OSRM.Utils.isLongitude(coordinates[1]) )
@@ -146,7 +257,7 @@ OSRM.parseParameters = function(){
var coordinates = unescape(name_val[1]).split(',');
if(coordinates.length!=2 || !OSRM.Utils.isLatitude(coordinates[0]) || !OSRM.Utils.isLongitude(coordinates[1]) )
return;
params.destination = new L.LatLng( coordinates[0], coordinates[1]);
params.destination = new L.LatLng( coordinates[0], coordinates[1] );
}
else if(name_val[0] == 'destname') {
params.destination_name = decodeURI(name_val[1]).replace(/<\/?[^>]+(>|$)/g ,""); // discard tags
@@ -162,12 +273,24 @@ OSRM.parseParameters = function(){
if(coordinates.length!=2 || !OSRM.Utils.isLatitude(coordinates[0]) || !OSRM.Utils.isLongitude(coordinates[1]) )
return;
params.center = new L.LatLng( coordinates[0], coordinates[1]);
}
}
else if(name_val[0] == 'alt') {
var active_alternative = Number(name_val[1]);
if( active_alternative<0 || active_alternative>OSRM.RoutingAlternatives>10) // using 10 as arbitrary upper limit
return;
params.active_alternative = active_alternative;
}
else if(name_val[0] == 're') {
var active_routing_engine = Number(name_val[1]);
if( active_routing_engine<0 || active_routing_engine>=OSRM.DEFAULTS.ROUTING_ENGINES.length)
return;
params.active_routing_engine = active_routing_engine;
}
}
// case 1: destination given
if( params.destination ) {
var index = OSRM.G.markers.setTarget( params.destination.latlng );
var index = OSRM.G.markers.setTarget( params.destination );
if( params.destination_name )
document.getElementById("gui-input-target").value = params.destination_name;
else
@@ -201,9 +324,15 @@ OSRM.parseParameters = function(){
} else {
OSRM.G.map.setView(params.center, params.zoom);
}
// set active alternative (if via points are set or alternative does not exists: automatic fallback to shortest route)
OSRM.G.active_alternative = params.active_alternative || 0;
// set routing server
OSRM.GUI.setRoutingEngine( params.active_routing_engine || OSRM.DEFAULTS.ROUTING_ENGINE );
// compute route
OSRM.Routing.getRoute();
OSRM.Routing.getRoute({keepAlternative:true});
OSRM.G.initial_position_override = true;
return;
}
@@ -214,4 +343,4 @@ OSRM.parseParameters = function(){
// onload event
OSRM.Browser.onLoadHandler( OSRM.init );
OSRM.Browser.onLoadHandler( OSRM.init );
+99 -22
View File
@@ -21,6 +21,10 @@ or see http://www.gnu.org/licenses/agpl.txt.
OSRM.Printing = {
// directory with printing code, and base OSRM directory relative to this directory
DIRECTORY: 'printing/',
BASE_DIRECTORY: '../',
// create UI for printing in mainwindow
init: function() {
var icon = document.createElement('div');
@@ -35,6 +39,12 @@ init: function() {
input_mask_header.appendChild(icon,input_mask_header.lastChild);
document.getElementById("gui-printer-inactive").onclick = OSRM.Printing.openPrintWindow;
OSRM.Browser.onUnloadHandler( OSRM.Printing.uninit );
},
uninit: function() {
if(OSRM.G.printwindow)
OSRM.G.printwindow.close();
},
@@ -52,7 +62,47 @@ deactivate: function() { // use hide route as trigger
// create UI in printwindow
show: function(response) {
// create header
var header =
var header;
if( OSRM.Browser.IE6_8 ) { // tables used for compatibility with legacy IE (quirks mode)
header =
'<thead class="description-header"><tr><td colspan="3">' +
'<table class="full">' +
'<tr class="row">' +
'<td class="left stretch">' +
'<table class="full">' +
'<tr class="row">' +
'<td class="left description-header-label">' + OSRM.loc("GUI_START")+ ': </td>' +
'<td class="left description-header-content stretch">' + document.getElementById("gui-input-source").value + '</td>' +
'</tr>' +
'<tr class="row">' +
'<td class="left description-header-label">' + OSRM.loc("GUI_END")+ ': </td>' +
'<td class="left description-header-content stretch">' + document.getElementById("gui-input-target").value + '</td>' +
'</tr>' +
'</table>' +
'</td>' +
'<td class="left">' +
'<table class="full">' +
'<tr class="row">' +
'<td class="left description-header-label">' + OSRM.loc("DISTANCE")+': </td>' +
'<td class="left description-header-content">' + OSRM.Utils.toHumanDistance(response.route_summary.total_distance) + '</td>' +
'</tr>' +
'<tr class="row">' +
'<td class="left description-header-label">' + OSRM.loc("DURATION")+': </td>' +
'<td class="left description-header-content">' + OSRM.Utils.toHumanTime(response.route_summary.total_time) + '</td>' +
'</tr>' +
'</table>' +
'</td>' +
'</tr>' +
'</table>' +
'<div class="quad"></div>' +
'</td></tr></thead>';
} else {
header =
'<thead class="description-header"><tr><td colspan="3">' +
'<div class="full">' +
@@ -75,11 +125,11 @@ show: function(response) {
'<div class="full">' +
'<div class="row">' +
'<div class="left description-header-label">' + OSRM.loc("DISTANCE")+': </div>' +
'<div class="left description-header-content">' + OSRM.Utils.metersToDistance(response.route_summary.total_distance) + '</div>' +
'<div class="left description-header-content">' + OSRM.Utils.toHumanDistance(response.route_summary.total_distance) + '</div>' +
'</div>' +
'<div class="row">' +
'<div class="left description-header-label">' + OSRM.loc("DURATION")+': </div>' +
'<div class="left description-header-content">' + OSRM.Utils.secondsToTime(response.route_summary.total_time) + '</div>' +
'<div class="left description-header-content">' + OSRM.Utils.toHumanTime(response.route_summary.total_time) + '</div>' +
'</div>' +
'</div>' +
'</div>' +
@@ -88,7 +138,8 @@ show: function(response) {
'</div>' +
'<div class="quad"></div>' +
'</td></tr></thead>';
'</td></tr></thead>';
}
// create route description
var body = '<tbody class="description-body">';
@@ -100,7 +151,7 @@ show: function(response) {
body += '<tr class="'+rowstyle+'">';
body += '<td class="description-body-directions">';
body += '<img class="description-body-direction" src="../'+OSRM.RoutingDescription._getDrivingInstructionIcon(response.route_instructions[i][0])+'" alt="" />';
body += '<img class="description-body-direction" src="'+OSRM.Printing.BASE_DIRECTORY+OSRM.RoutingDescription._getDrivingInstructionIcon(response.route_instructions[i][0])+'" alt="" />';
body += "</td>";
// build route description
@@ -112,8 +163,7 @@ show: function(response) {
body += "</td>";
body += '<td class="description-body-distance">';
if( i != response.route_instructions.length-1 )
body += '<b>'+OSRM.Utils.metersToDistance(response.route_instructions[i][2])+'</b>';
body += (i == response.route_instructions.length-1) ? '&nbsp;' : '<b>'+OSRM.Utils.toHumanDistance(response.route_instructions[i][2])+'</b>'; // fill last entry with a space
body += "</td>";
body += "</tr>";
@@ -126,30 +176,36 @@ show: function(response) {
print_window.document.getElementById('overview-map-description').innerHTML = '<table class="description medium-font">' + header + '</table>';
// draw map
var positions = OSRM.G.route.getPositions();
var tile_server_id = OSRM.G.map.getActiveLayerId();
var zoom = print_window.drawMap( OSRM.DEFAULTS.TILE_SERVERS[tile_server_id], new L.LatLngBounds( positions ) );
var positions = OSRM.G.route.getPositions();
var bounds = new L.LatLngBounds( positions );
var zoom = print_window.OSRM.drawMap( OSRM.DEFAULTS.TILE_SERVERS[tile_server_id], bounds );
// draw markers
print_window.prefetchIcons( OSRM.G.images );
print_window.drawMarkers( OSRM.G.markers.route );
print_window.OSRM.prefetchIcons( OSRM.G.images );
print_window.OSRM.drawMarkers( OSRM.G.markers.route );
// draw route & query for better geometry
print_window.drawRoute( positions );
// draw route & query for better geometry
print_window.OSRM.drawRoute( positions );
OSRM.JSONP.call(OSRM.Routing._buildCall()+'&z='+zoom+'&instructions=false', OSRM.Printing.drawRoute, OSRM.Printing.timeoutRoute, OSRM.DEFAULTS.JSONP_TIMEOUT, 'print');
// NOTE: correct zoom level was appended as second zoom parameter to JSONP call -> OSRM API only considers the last one!
},
timeoutRoute: function() {},
drawRoute: function(response) {
if(!response)
return;
var positions = OSRM.RoutingGeometry._decode(response.route_geometry, 5);
OSRM.G.printwindow.drawRoute( positions );
response.alternative_geometries.unshift( response.route_geometry );
if( OSRM.G.active_alternative >= response.alternative_geometries.length ) // no redraw if the selected alternative cannot be found
return;
positions = OSRM.RoutingGeometry._decode( response.alternative_geometries[ OSRM.G.active_alternative ], 5 );
OSRM.G.printwindow.OSRM.drawRoute( positions );
},
// opens the print window and closes old instances
openPrintWindow: function() {
// do not open window if there is no route to draw
// do not open window if there is no route to draw (should never trigger!)
if( !OSRM.G.route.isRoute() || !OSRM.G.route.isShown() )
return;
@@ -158,7 +214,7 @@ openPrintWindow: function() {
OSRM.G.printwindow.close();
// generate a new window and wait till it has finished loading
OSRM.G.printwindow = window.open("printing/printing.html","","width=540,height=500,left=100,top=100,dependent=yes,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,resizable=yes");
OSRM.G.printwindow = window.open( OSRM.Printing.DIRECTORY + "printing.html","","width=540,height=500,left=100,top=100,dependent=yes,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,resizable=yes");
},
@@ -167,16 +223,37 @@ printWindowLoaded: function(){
var print_window = OSRM.G.printwindow;
var print_document = print_window.document;
// add events
print_document.getElementById('gui-printer').onclick = print_window.printWindow;
// add css images
var css_list = [
{ id:'#gui-printer-inactive', image_id:'printer_inactive'},
{ id:'#gui-printer', image_id:'printer'},
{ id:'#gui-printer:hover', image_id:'printer_hover'},
{ id:'#gui-printer:active', image_id:'printer_active'}
];
var stylesheet = OSRM.CSS.getStylesheet("printing.css", print_document);
for(var i=0; i<css_list.length; i++) {
OSRM.CSS.insert( stylesheet, css_list[i].id, "background-image:url("+ OSRM.Printing.BASE_DIRECTORY + OSRM.G.images[css_list[i].image_id].getAttribute("src") + ");" );
}
// scale control
print_window.OSRM.G.active_distance_format = OSRM.G.active_distance_format;
// localization
print_window.OSRM.G.Localization.culture = OSRM.loc("CULTURE");
print_document.getElementById('description-label').innerHTML = OSRM.loc( "ROUTE_DESCRIPTION" );
print_document.getElementById('overview-map-label').innerHTML = OSRM.loc( "OVERVIEW_MAP" );
print_document.getElementById('overview-map-label').innerHTML = OSRM.loc( "OVERVIEW_MAP" );
if( !OSRM.G.route.isRoute() || !OSRM.G.route.isShown() ) { // error message if no route available (can trigger if user refreshes print-window)
print_document.getElementById("description").innerHTML = OSRM.loc("NO_ROUTE_SELECTED");
return;
}
// add routing content
OSRM.Printing.show( OSRM.G.response );
// add events
print_document.getElementById("gui-printer-inactive").id = "gui-printer";
print_document.getElementById('gui-printer').onclick = print_window.printWindow;
// finally, focus on printwindow
print_window.focus();
}

Some files were not shown because too many files have changed in this diff Show More