5
5
*/
6
6
var tmpArgs = parseUrlWithHisto ( ) ;
7
7
var host = tmpArgs [ "host" ] ;
8
- //var host = "http://graphhopper.com/api/1";
8
+ // var host = "http://graphhopper.com/api/1";
9
9
if ( ! host ) {
10
10
if ( location . port === '' ) {
11
11
host = location . protocol + '//' + location . hostname ;
@@ -24,7 +24,6 @@ var nominatim_reverse = "http://nominatim.openstreetmap.org/reverse";
24
24
var routingLayer ;
25
25
var map ;
26
26
var browserTitle = "GraphHopper Maps - Driving Directions" ;
27
- var firstClickToRoute ;
28
27
var defaultTranslationMap = null ;
29
28
var enTranslationMap = null ;
30
29
var routeSegmentPopup = null ;
@@ -258,7 +257,29 @@ function initMap() {
258
257
259
258
// default
260
259
map = L . map ( 'map' , {
261
- layers : [ lyrk ]
260
+ layers : [ lyrk ] ,
261
+ contextmenu : true ,
262
+ contextmenuWidth : 140 ,
263
+ contextmenuItems : [ {
264
+ text : 'Set as start' ,
265
+ callback : setStartCoord
266
+ } , {
267
+ text : 'Set as end' ,
268
+ callback : setEndCoord
269
+ } , {
270
+ separator : true ,
271
+ index : 1
272
+ } , {
273
+ text : 'Show coordinates' ,
274
+ callback : function ( e ) {
275
+ alert ( e . latlng . lat + "," + e . latlng . lng ) ;
276
+ }
277
+ } , {
278
+ text : 'Center map here' ,
279
+ callback : function ( e ) {
280
+ map . panTo ( e . latlng ) ;
281
+ }
282
+ } ]
262
283
} ) ;
263
284
264
285
var baseMaps = {
@@ -272,20 +293,15 @@ function initMap() {
272
293
"OpenStreetMap" : osm ,
273
294
"OpenStreetMap.de" : osmde
274
295
} ;
275
-
276
- // var overlays = {
277
- // "MapQuest Hybrid": mapquest
278
- // };
279
-
280
- // no layers for small browser windows
281
- if ( $ ( window ) . width ( ) > 400 ) {
282
- L . control . layers ( baseMaps /*, overlays*/ ) . addTo ( map ) ;
283
- }
296
+
297
+ L . control . layers ( baseMaps /*, overlays*/ ) . addTo ( map ) ;
284
298
285
299
L . control . scale ( ) . addTo ( map ) ;
286
300
287
301
map . fitBounds ( new L . LatLngBounds ( new L . LatLng ( bounds . minLat , bounds . minLon ) ,
288
302
new L . LatLng ( bounds . maxLat , bounds . maxLon ) ) ) ;
303
+ if ( isProduction ( ) )
304
+ map . setView ( new L . LatLng ( 0 , 0 ) , 2 ) ;
289
305
290
306
map . attributionControl . setPrefix ( '' ) ;
291
307
@@ -314,28 +330,26 @@ function initMap() {
314
330
315
331
routingLayer = L . geoJson ( ) . addTo ( map ) ;
316
332
routingLayer . options = { style : { color : "#00cc33" , "weight" : 5 , "opacity" : 0.6 } } ;
333
+ }
317
334
318
- firstClickToRoute = true ;
319
- function onMapClick ( e ) {
320
- var latlng = e . latlng ;
321
- latlng . lng = makeValidLng ( latlng . lng ) ;
322
- if ( firstClickToRoute ) {
323
- // set start point
324
- routingLayer . clearLayers ( ) ;
325
- firstClickToRoute = false ;
326
- ghRequest . from . setCoord ( latlng . lat , latlng . lng ) ;
327
- resolveFrom ( ) ;
328
- } else {
329
- // set end point
330
- ghRequest . to . setCoord ( latlng . lat , latlng . lng ) ;
331
- resolveTo ( ) ;
332
- // do not wait for resolving
333
- routeLatLng ( ghRequest ) ;
334
- firstClickToRoute = true ;
335
- }
336
- }
335
+ function setStartCoord ( e ) {
336
+ ghRequest . from . setCoord ( e . latlng . lat , e . latlng . lng ) ;
337
+ resolveFrom ( ) ;
338
+ routeIfAllResolved ( ) ;
339
+ }
337
340
338
- map . on ( 'click' , onMapClick ) ;
341
+ function setEndCoord ( e ) {
342
+ ghRequest . to . setCoord ( e . latlng . lat , e . latlng . lng ) ;
343
+ resolveTo ( ) ;
344
+ routeIfAllResolved ( ) ;
345
+ }
346
+
347
+ function routeIfAllResolved ( ) {
348
+ if ( ghRequest . from . isResolved ( ) && ghRequest . to . isResolved ( ) ) {
349
+ routeLatLng ( ghRequest ) ;
350
+ return true ;
351
+ }
352
+ return false ;
339
353
}
340
354
341
355
function makeValidLng ( lon ) {
@@ -1090,17 +1104,15 @@ function setAutoCompleteList(fromOrTo) {
1090
1104
req . setCoord ( point . lat , point . lng ) ;
1091
1105
1092
1106
req . input = suggestion . value ;
1093
- if ( ghRequest . from . isResolved ( ) && ghRequest . to . isResolved ( ) )
1094
- routeLatLng ( ghRequest ) ;
1095
- else
1107
+ if ( ! routeIfAllResolved ( ) )
1096
1108
focus ( req , 15 , isFrom ) ;
1097
1109
1098
1110
myAutoDiv . autocomplete ( ) . enable ( ) ;
1099
1111
}
1100
1112
} ;
1101
1113
1102
1114
myAutoDiv . autocomplete ( options ) ;
1103
-
1115
+
1104
1116
// with the following more stable code we cannot click on suggestions anylonger
1105
1117
// $("#" + fromOrTo + "Input").focusout(function() {
1106
1118
// myAutoDiv.autocomplete().disable();
0 commit comments