From 780ac8ceaf205b186f311de40f0c4324a7c7240b Mon Sep 17 00:00:00 2001 From: rug Date: Thu, 14 Nov 2024 13:00:48 +0100 Subject: [PATCH 1/3] Adding files that were in OML --- .../Google/Google.MarkerClusterer.min.js | 1 + src/Files/Google/README.MD | 14 + src/Files/Internal/Images.css | 11 + src/Files/Internal/Map.css | 680 + src/Files/Internal/README.MD | 9 + src/Files/Leaflet/Directions/GraphHopper.js | 535 + src/Files/Leaflet/Directions/README.MD | 28 + src/Files/Leaflet/Directions/TomTom.js | 446 + src/Files/Leaflet/Leaflet.Draw.min.js | 10 + src/Files/Leaflet/Leaflet.Editable.js | 2089 ++ src/Files/Leaflet/Leaflet.Routing.Machine.js | 18642 ++++++++++++++++ src/Files/Leaflet/Leaflet.css | 739 + src/Files/Leaflet/Leaflet.min.js | 6 + src/Files/Leaflet/LeafletDraw.css | 326 + src/Files/Leaflet/LeafletRouting.css | 258 + src/Files/Leaflet/README.MD | 33 + 16 files changed, 23827 insertions(+) create mode 100644 src/Files/Google/Google.MarkerClusterer.min.js create mode 100644 src/Files/Google/README.MD create mode 100644 src/Files/Internal/Images.css create mode 100644 src/Files/Internal/Map.css create mode 100644 src/Files/Internal/README.MD create mode 100644 src/Files/Leaflet/Directions/GraphHopper.js create mode 100644 src/Files/Leaflet/Directions/README.MD create mode 100644 src/Files/Leaflet/Directions/TomTom.js create mode 100644 src/Files/Leaflet/Leaflet.Draw.min.js create mode 100644 src/Files/Leaflet/Leaflet.Editable.js create mode 100644 src/Files/Leaflet/Leaflet.Routing.Machine.js create mode 100644 src/Files/Leaflet/Leaflet.css create mode 100644 src/Files/Leaflet/Leaflet.min.js create mode 100644 src/Files/Leaflet/LeafletDraw.css create mode 100644 src/Files/Leaflet/LeafletRouting.css create mode 100644 src/Files/Leaflet/README.MD diff --git a/src/Files/Google/Google.MarkerClusterer.min.js b/src/Files/Google/Google.MarkerClusterer.min.js new file mode 100644 index 0000000..8dde213 --- /dev/null +++ b/src/Files/Google/Google.MarkerClusterer.min.js @@ -0,0 +1 @@ +var markerClusterer=function(t){"use strict";function e(t,e){var s={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(s[r]=t[r]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(t);os.getVisible(t))).length}push(t){this.markers.push(t)}delete(){this.marker&&(s.setMap(this.marker,null),this.marker=void 0),this.markers.length=0}}const o=(t,e,r,o)=>{const n=i(t.getBounds(),e,o);return r.filter((t=>n.contains(s.getPosition(t))))},i=(t,e,s)=>{const{northEast:r,southWest:o}=h(t,e),i=l({northEast:r,southWest:o},s);return c(i,e)},n=(t,e,s)=>{const r=i(t,e,s),o=r.getNorthEast(),n=r.getSouthWest();return[n.lng(),n.lat(),o.lng(),o.lat()]},a=(t,e)=>{const s=(e.lat-t.lat)*Math.PI/180,r=(e.lng-t.lng)*Math.PI/180,o=Math.sin(s/2),i=Math.sin(r/2),n=o*o+Math.cos(t.lat*Math.PI/180)*Math.cos(e.lat*Math.PI/180)*i*i;return 6371*(2*Math.atan2(Math.sqrt(n),Math.sqrt(1-n)))},h=(t,e)=>({northEast:e.fromLatLngToDivPixel(t.getNorthEast()),southWest:e.fromLatLngToDivPixel(t.getSouthWest())}),l=(t,e)=>{let{northEast:s,southWest:r}=t;return s.x+=e,s.y-=e,r.x-=e,r.y+=e,{northEast:s,southWest:r}},c=(t,e)=>{let{northEast:s,southWest:r}=t;const o=e.fromDivPixelToLatLng(r),i=e.fromDivPixelToLatLng(s);return new google.maps.LatLngBounds(o,i)};class u{constructor(t){let{maxZoom:e=16}=t;this.maxZoom=e}noop(t){let{markers:e}=t;return m(e)}}class p extends u{constructor(t){var{viewportPadding:s=60}=t;super(e(t,["viewportPadding"])),this.viewportPadding=60,this.viewportPadding=s}calculate(t){let{markers:e,map:s,mapCanvasProjection:r}=t;return s.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:!1}:{clusters:this.cluster({markers:o(s,r,e,this.viewportPadding),map:s,mapCanvasProjection:r})}}}const m=t=>t.map((t=>new r({position:s.getPosition(t),markers:[t]})));function d(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var g=function t(e,s){if(e===s)return!0;if(e&&s&&"object"==typeof e&&"object"==typeof s){if(e.constructor!==s.constructor)return!1;var r,o,i;if(Array.isArray(e)){if((r=e.length)!=s.length)return!1;for(o=r;0!=o--;)if(!t(e[o],s[o]))return!1;return!0}if(e.constructor===RegExp)return e.source===s.source&&e.flags===s.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===s.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===s.toString();if((r=(i=Object.keys(e)).length)!==Object.keys(s).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(s,i[o]))return!1;for(o=r;0!=o--;){var n=i[o];if(!t(e[n],s[n]))return!1}return!0}return e!=e&&s!=s},f=d(g);const k=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class w{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");const[e,s]=new Uint8Array(t,0,2);if(219!==e)throw new Error("Data does not appear to be in a KDBush format.");const r=s>>4;if(1!==r)throw new Error(`Got v${r} data when expected v1.`);const o=k[15&s];if(!o)throw new Error("Unrecognized array type.");const[i]=new Uint16Array(t,2,1),[n]=new Uint32Array(t,4,1);return new w(n,i,o,t)}constructor(t,e=64,s=Float64Array,r){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+e,2),65535),this.ArrayType=s,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;const o=k.indexOf(this.ArrayType),i=2*t*this.ArrayType.BYTES_PER_ELEMENT,n=t*this.IndexArrayType.BYTES_PER_ELEMENT,a=(8-n%8)%8;if(o<0)throw new Error(`Unexpected typed array class: ${s}.`);r&&r instanceof ArrayBuffer?(this.data=r,this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+n+a,2*t),this._pos=2*t,this._finished=!0):(this.data=new ArrayBuffer(8+i+n+a),this.ids=new this.IndexArrayType(this.data,8,t),this.coords=new this.ArrayType(this.data,8+n+a,2*t),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+o]),new Uint16Array(this.data,2,1)[0]=e,new Uint32Array(this.data,4,1)[0]=t)}add(t,e){const s=this._pos>>1;return this.ids[s]=s,this.coords[this._pos++]=t,this.coords[this._pos++]=e,s}finish(){const t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return y(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,e,s,r){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:o,coords:i,nodeSize:n}=this,a=[0,o.length-1,0],h=[];for(;a.length;){const l=a.pop()||0,c=a.pop()||0,u=a.pop()||0;if(c-u<=n){for(let n=u;n<=c;n++){const a=i[2*n],l=i[2*n+1];a>=t&&a<=s&&l>=e&&l<=r&&h.push(o[n])}continue}const p=u+c>>1,m=i[2*p],d=i[2*p+1];m>=t&&m<=s&&d>=e&&d<=r&&h.push(o[p]),(0===l?t<=m:e<=d)&&(a.push(u),a.push(p-1),a.push(1-l)),(0===l?s>=m:r>=d)&&(a.push(p+1),a.push(c),a.push(1-l))}return h}within(t,e,s){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:r,coords:o,nodeSize:i}=this,n=[0,r.length-1,0],a=[],h=s*s;for(;n.length;){const l=n.pop()||0,c=n.pop()||0,u=n.pop()||0;if(c-u<=i){for(let s=u;s<=c;s++)C(o[2*s],o[2*s+1],t,e)<=h&&a.push(r[s]);continue}const p=u+c>>1,m=o[2*p],d=o[2*p+1];C(m,d,t,e)<=h&&a.push(r[p]),(0===l?t-s<=m:e-s<=d)&&(n.push(u),n.push(p-1),n.push(1-l)),(0===l?t+s>=m:e+s>=d)&&(n.push(p+1),n.push(c),n.push(1-l))}return a}}function y(t,e,s,r,o,i){if(o-r<=s)return;const n=r+o>>1;M(t,e,n,r,o,i),y(t,e,s,r,n-1,1-i),y(t,e,s,n+1,o,1-i)}function M(t,e,s,r,o,i){for(;o>r;){if(o-r>600){const n=o-r+1,a=s-r+1,h=Math.log(n),l=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*l*(n-l)/n)*(a-n/2<0?-1:1);M(t,e,s,Math.max(r,Math.floor(s-a*l/n+c)),Math.min(o,Math.floor(s+(n-a)*l/n+c)),i)}const n=e[2*s+i];let a=r,h=o;for(v(t,e,r,s),e[2*o+i]>n&&v(t,e,r,o);an;)h--}e[2*r+i]===n?v(t,e,r,h):(h++,v(t,e,h,o)),h<=s&&(r=h+1),s<=h&&(o=h-1)}}function v(t,e,s,r){x(t,s,r),x(e,2*s,2*r),x(e,2*s+1,2*r+1)}function x(t,e,s){const r=t[e];t[e]=t[s],t[s]=r}function C(t,e,s,r){const o=t-s,i=e-r;return o*o+i*i}const P={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:t=>t},_=Math.fround||(E=new Float32Array(1),t=>(E[0]=+t,E[0]));var E;const A=3,b=5,L=6;class O{constructor(t){this.options=Object.assign(Object.create(P),t),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(t){const{log:e,minZoom:s,maxZoom:r}=this.options;e&&console.time("total time");const o=`prepare ${t.length} points`;e&&console.time(o),this.points=t;const i=[];for(let e=0;e=s;t--){const s=+Date.now();n=this.trees[t]=this._createTree(this._cluster(n,t)),e&&console.log("z%d: %d clusters in %dms",t,n.numItems,+Date.now()-s)}return e&&console.timeEnd("total time"),this}getClusters(t,e){let s=((t[0]+180)%360+360)%360-180;const r=Math.max(-90,Math.min(90,t[1]));let o=180===t[2]?180:((t[2]+180)%360+360)%360-180;const i=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)s=-180,o=180;else if(s>o){const t=this.getClusters([s,r,180,i],e),n=this.getClusters([-180,r,o,i],e);return t.concat(n)}const n=this.trees[this._limitZoom(e)],a=n.range(T(s),j(i),T(o),j(r)),h=n.data,l=[];for(const t of a){const e=this.stride*t;l.push(h[e+b]>1?Z(h,e,this.clusterProps):this.points[h[e+A]])}return l}getChildren(t){const e=this._getOriginId(t),s=this._getOriginZoom(t),r="No cluster with the specified id.",o=this.trees[s];if(!o)throw new Error(r);const i=o.data;if(e*this.stride>=i.length)throw new Error(r);const n=this.options.radius/(this.options.extent*Math.pow(2,s-1)),a=i[e*this.stride],h=i[e*this.stride+1],l=o.within(a,h,n),c=[];for(const e of l){const s=e*this.stride;i[s+4]===t&&c.push(i[s+b]>1?Z(i,s,this.clusterProps):this.points[i[s+A]])}if(0===c.length)throw new Error(r);return c}getLeaves(t,e,s){e=e||10,s=s||0;const r=[];return this._appendLeaves(r,t,e,s,0),r}getTile(t,e,s){const r=this.trees[this._limitZoom(t)],o=Math.pow(2,t),{extent:i,radius:n}=this.options,a=n/i,h=(s-a)/o,l=(s+1+a)/o,c={features:[]};return this._addTileFeatures(r.range((e-a)/o,h,(e+1+a)/o,l),r.data,e,s,o,c),0===e&&this._addTileFeatures(r.range(1-a/o,h,1,l),r.data,o,s,o,c),e===o-1&&this._addTileFeatures(r.range(0,h,a/o,l),r.data,-1,s,o,c),c.features.length?c:null}getClusterExpansionZoom(t){let e=this._getOriginZoom(t)-1;for(;e<=this.options.maxZoom;){const s=this.getChildren(t);if(e++,1!==s.length)break;t=s[0].properties.cluster_id}return e}_appendLeaves(t,e,s,r,o){const i=this.getChildren(e);for(const e of i){const i=e.properties;if(i&&i.cluster?o+i.point_count<=r?o+=i.point_count:o=this._appendLeaves(t,i.cluster_id,s,r,o):o1;let h,l,c;if(a)h=I(e,t,this.clusterProps),l=e[t],c=e[t+1];else{const s=this.points[e[t+A]];h=s.properties;const[r,o]=s.geometry.coordinates;l=T(r),c=j(o)}const u={type:1,geometry:[[Math.round(this.options.extent*(l*o-s)),Math.round(this.options.extent*(c*o-r))]],tags:h};let p;p=a||this.options.generateId?e[t+A]:this.points[e[t+A]].id,void 0!==p&&(u.id=p),i.features.push(u)}}_limitZoom(t){return Math.max(this.options.minZoom,Math.min(Math.floor(+t),this.options.maxZoom+1))}_cluster(t,e){const{radius:s,extent:r,reduce:o,minPoints:i}=this.options,n=s/(r*Math.pow(2,e)),a=t.data,h=[],l=this.stride;for(let s=0;se&&(m+=a[s+b])}if(m>p&&m>=i){let t,i=r*p,n=c*p,d=-1;const g=((s/l|0)<<5)+(e+1)+this.points.length;for(const r of u){const h=r*l;if(a[h+2]<=e)continue;a[h+2]=e;const c=a[h+b];i+=a[h]*c,n+=a[h+1]*c,a[h+4]=g,o&&(t||(t=this._map(a,s,!0),d=this.clusterProps.length,this.clusterProps.push(t)),o(t,this._map(a,h)))}a[s+4]=g,h.push(i/m,n/m,1/0,g,-1,m),o&&h.push(d)}else{for(let t=0;t1)for(const t of u){const s=t*l;if(!(a[s+2]<=e)){a[s+2]=e;for(let t=0;t>5}_getOriginZoom(t){return(t-this.points.length)%32}_map(t,e,s){if(t[e+b]>1){const r=this.clusterProps[t[e+L]];return s?Object.assign({},r):r}const r=this.points[t[e+A]].properties,o=this.options.map(r);return s&&o===r?Object.assign({},o):o}}function Z(t,e,s){return{type:"Feature",id:t[e+A],properties:I(t,e,s),geometry:{type:"Point",coordinates:[(r=t[e],360*(r-.5)),S(t[e+1])]}};var r}function I(t,e,s){const r=t[e+b],o=r>=1e4?`${Math.round(r/1e3)}k`:r>=1e3?Math.round(r/100)/10+"k":r,i=t[e+L],n=-1===i?{}:Object.assign({},s[i]);return Object.assign(n,{cluster:!0,cluster_id:t[e+A],point_count:r,point_count_abbreviated:o})}function T(t){return t/360+.5}function j(t){const e=Math.sin(t*Math.PI/180),s=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return s<0?0:s>1?1:s}function S(t){const e=(180-360*t)*Math.PI/180;return 360*Math.atan(Math.exp(e))/Math.PI-90}class z extends u{constructor(t){var{maxZoom:s,radius:r=60}=t,o=e(t,["maxZoom","radius"]);super({maxZoom:s}),this.state={zoom:-1},this.superCluster=new O(Object.assign({maxZoom:this.maxZoom,radius:r},o))}calculate(t){let e=!1;const r={zoom:t.map.getZoom()};if(!f(t.markers,this.markers)){e=!0,this.markers=[...t.markers];const r=this.markers.map((t=>{const e=s.getPosition(t);return{type:"Feature",geometry:{type:"Point",coordinates:[e.lng(),e.lat()]},properties:{marker:t}}}));this.superCluster.load(r)}return e||(this.state.zoom<=this.maxZoom||r.zoom<=this.maxZoom)&&(e=!f(this.state,r)),this.state=r,e&&(this.clusters=this.cluster(t)),{clusters:this.clusters,changed:e}}cluster(t){let{map:e}=t;return this.superCluster.getClusters([-180,-90,180,90],Math.round(e.getZoom())).map((t=>this.transformCluster(t)))}transformCluster(t){let{geometry:{coordinates:[e,o]},properties:i}=t;if(i.cluster)return new r({markers:this.superCluster.getLeaves(i.cluster_id,1/0).map((t=>t.properties.marker)),position:{lat:o,lng:e}});const n=i.marker;return new r({markers:[n],position:s.getPosition(n)})}}class U{constructor(t,e){this.markers={sum:t.length};const s=e.map((t=>t.count)),r=s.reduce(((t,e)=>t+e),0);this.clusters={count:e.length,markers:{mean:r/e.length,sum:r,min:Math.min(...s),max:Math.max(...s)}}}}class B{render(t,e,r){let{count:o,position:i}=t;const n=`\n\n\n\n${o}\n`,a=`Cluster of ${o} markers`,h=Number(google.maps.Marker.MAX_ZINDEX)+o;if(s.isAdvancedMarkerAvailable(r)){const t=(new DOMParser).parseFromString(n,"image/svg+xml").documentElement;t.setAttribute("transform","translate(0 25)");const e={map:r,position:i,zIndex:h,title:a,content:t};return new google.maps.marker.AdvancedMarkerElement(e)}const l={position:i,zIndex:h,title:a,icon:{url:`data:image/svg+xml;base64,${btoa(n)}`,anchor:new google.maps.Point(25,25)}};return new google.maps.Marker(l)}}class D{constructor(){!function(t,e){for(let s in e.prototype)t.prototype[s]=e.prototype[s]}(D,google.maps.OverlayView)}}var N;t.MarkerClustererEvents=void 0,(N=t.MarkerClustererEvents||(t.MarkerClustererEvents={})).CLUSTERING_BEGIN="clusteringbegin",N.CLUSTERING_END="clusteringend",N.CLUSTER_CLICK="click";const F=(t,e,s)=>{s.fitBounds(e.bounds)};return t.AbstractAlgorithm=u,t.AbstractViewportAlgorithm=p,t.Cluster=r,t.ClusterStats=U,t.DefaultRenderer=B,t.GridAlgorithm=class extends p{constructor(t){var{maxDistance:s=4e4,gridSize:r=40}=t;super(e(t,["maxDistance","gridSize"])),this.clusters=[],this.state={zoom:-1},this.maxDistance=s,this.gridSize=r}calculate(t){let{markers:e,map:s,mapCanvasProjection:r}=t;const i={zoom:s.getZoom()};let n=!1;return this.state.zoom>=this.maxZoom&&i.zoom>=this.maxZoom||(n=!f(this.state,i)),this.state=i,s.getZoom()>=this.maxZoom?{clusters:this.noop({markers:e}),changed:n}:{clusters:this.cluster({markers:o(s,r,e,this.viewportPadding),map:s,mapCanvasProjection:r})}}cluster(t){let{markers:e,map:s,mapCanvasProjection:r}=t;return this.clusters=[],e.forEach((t=>{this.addToClosestCluster(t,s,r)})),this.clusters}addToClosestCluster(t,e,o){let n=this.maxDistance,h=null;for(let e=0;e{this.addMarker(t,!0)})),e||this.render()}removeMarker(t,e){const r=this.markers.indexOf(t);return-1!==r&&(s.setMap(t,null),this.markers.splice(r,1),e||this.render(),!0)}removeMarkers(t,e){let s=!1;return t.forEach((t=>{s=this.removeMarker(t,!0)||s})),s&&!e&&this.render(),s}clearMarkers(t){this.markers.length=0,t||this.render()}render(){const e=this.getMap();if(e instanceof google.maps.Map&&e.getProjection()){google.maps.event.trigger(this,t.MarkerClustererEvents.CLUSTERING_BEGIN,this);const{clusters:r,changed:o}=this.algorithm.calculate({markers:this.markers,map:e,mapCanvasProjection:this.getProjection()});if(o||null==o){const t=new Set;for(const e of r)1==e.markers.length&&t.add(e.markers[0]);const e=[];for(const r of this.clusters)null!=r.marker&&(1==r.markers.length?t.has(r.marker)||s.setMap(r.marker,null):e.push(r.marker));this.clusters=r,this.renderClusters(),requestAnimationFrame((()=>e.forEach((t=>s.setMap(t,null)))))}google.maps.event.trigger(this,t.MarkerClustererEvents.CLUSTERING_END,this)}}onAdd(){this.idleListener=this.getMap().addListener("idle",this.render.bind(this)),this.render()}onRemove(){google.maps.event.removeListener(this.idleListener),this.reset()}reset(){this.markers.forEach((t=>s.setMap(t,null))),this.clusters.forEach((t=>t.delete())),this.clusters=[]}renderClusters(){const e=new U(this.markers,this.clusters),r=this.getMap();this.clusters.forEach((o=>{1===o.markers.length?o.marker=o.markers[0]:(o.marker=this.renderer.render(o,e,r),o.markers.forEach((t=>s.setMap(t,null))),this.onClusterClick&&o.marker.addListener("click",(e=>{google.maps.event.trigger(this,t.MarkerClustererEvents.CLUSTER_CLICK,o),this.onClusterClick(e,o,r)}))),s.setMap(o.marker,r)}))}},t.MarkerUtils=s,t.NoopAlgorithm=class extends u{constructor(t){super(e(t,[]))}calculate(t){let{markers:e,map:s,mapCanvasProjection:r}=t;return{clusters:this.cluster({markers:e,map:s,mapCanvasProjection:r}),changed:!1}}cluster(t){return this.noop(t)}},t.SuperClusterAlgorithm=z,t.SuperClusterViewportAlgorithm=class extends p{constructor(t){var{maxZoom:s,radius:r=60,viewportPadding:o=60}=t,i=e(t,["maxZoom","radius","viewportPadding"]);super({maxZoom:s,viewportPadding:o}),this.superCluster=new O(Object.assign({maxZoom:this.maxZoom,radius:r},i)),this.state={zoom:-1,view:[0,0,0,0]}}calculate(t){const e={zoom:Math.round(t.map.getZoom()),view:n(t.map.getBounds(),t.mapCanvasProjection,this.viewportPadding)};let r=!f(this.state,e);if(!f(t.markers,this.markers)){r=!0,this.markers=[...t.markers];const e=this.markers.map((t=>{const e=s.getPosition(t);return{type:"Feature",geometry:{type:"Point",coordinates:[e.lng(),e.lat()]},properties:{marker:t}}}));this.superCluster.load(e)}return r&&(this.clusters=this.cluster(t),this.state=e),{clusters:this.clusters,changed:r}}cluster(t){let{map:e,mapCanvasProjection:s}=t;const r={zoom:Math.round(e.getZoom()),view:n(e.getBounds(),s,this.viewportPadding)};return this.superCluster.getClusters(r.view,r.zoom).map((t=>this.transformCluster(t)))}transformCluster(t){let{geometry:{coordinates:[e,o]},properties:i}=t;if(i.cluster)return new r({markers:this.superCluster.getLeaves(i.cluster_id,1/0).map((t=>t.properties.marker)),position:{lat:o,lng:e}});const n=i.marker;return new r({markers:[n],position:s.getPosition(n)})}},t.defaultOnClusterClickHandler=F,t.distanceBetweenPoints=a,t.extendBoundsToPaddedViewport=i,t.extendPixelBounds=l,t.filterMarkersToPaddedViewport=o,t.getPaddedViewport=n,t.noop=m,t.pixelBoundsToLatLngBounds=c,Object.defineProperty(t,"__esModule",{value:!0}),t}({}); diff --git a/src/Files/Google/README.MD b/src/Files/Google/README.MD new file mode 100644 index 0000000..69a0373 --- /dev/null +++ b/src/Files/Google/README.MD @@ -0,0 +1,14 @@ +# Google Maps files + +## Purpose +Store the files/addons that are not distributed by Google Maps by default. + +Note that **no other** files can be stored or distributed outside of Google servers. + +## Files +- **MarkerClusterer.min.js**: Script to create markers clusters. + - Version: v2.5.3 + - Date: 29.01.2024 + - Source: https://unpkg.com/browse/@googlemaps/markerclusterer@2.5.3/dist/ + - Github: https://github.com/googlemaps/js-markerclusterer + - NPM: https://www.npmjs.com/package/@googlemaps/markerclusterer \ No newline at end of file diff --git a/src/Files/Internal/Images.css b/src/Files/Internal/Images.css new file mode 100644 index 0000000..c67f47b --- /dev/null +++ b/src/Files/Internal/Images.css @@ -0,0 +1,11 @@ +:root { + --drawingtools-sprite-leaflet: url('data:image/png;base64,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'); + --popup-default-image: url('data:image/jpeg;base64,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'); + --map-container-image-google: url('data:image/jpeg;base64,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'); + --map-container-image-leaflet: url('data:image/png;base64,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'); + --cluster-default-image-1: url('data:image/png;base64,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'); + --cluster-default-image-2: url('data:image/png;base64,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'); + --cluster-default-image-3: url('data:image/png;base64,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'); + --marker-leaflet-icon: url('data:image/png;base64,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'); + --marker-leaflet-icon-wp: url('data:image/png;base64,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'); +} \ No newline at end of file diff --git a/src/Files/Internal/Map.css b/src/Files/Internal/Map.css new file mode 100644 index 0000000..4368da2 --- /dev/null +++ b/src/Files/Internal/Map.css @@ -0,0 +1,680 @@ +.map-wrapper { + -webkit-transition: opacity linear 150ms; + transition: opacity linear 150ms; + height: 100%; + width: 100%; +} + +/* +* This pseudo element, will force the .map-wrapper to occupy all the possibly width. +* This is specially important when insidethe map is inside an if and an inline map +* key is passed. +*/ +.map-wrapper:before { + -servicestudio-content: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; + -servicestudio-display: block; + -servicestudio-height: 0; + -servicestudio-overflow: hidden; + -servicestudio-word-break: break-all; +} + +.map-wrapper.is--hidden { + opacity: 0; + -servicestudio-opacity: 1; +} + +.runtime-map-container { + -servicestudio-display: none !important; + height: 100%; + z-index: 0; +} + +.map-wrapper .staticMap-image { + width: 100%; + height: 100%; + object-fit: cover; +} + +/* +* This will be applied to a container that in runtime will only serve +* to import a block which brings the map css. +*/ +.runtime-staticMap-container-hide { + display: none; + height: 0; +} + +html[data-uieditorversion^='1'] .map-wrapper .staticMap-image { + -servicestudio-height: auto; +} + +.map-container { + -servicestudio-background: var(--map-container-image-google); + -servicestudio-background-repeat: no-repeat; + -servicestudio-background-size: cover; + -servicestudio-display: table; + height: var(--map-height); + max-width: 100%; + width: 100%; +} + +.map-container.provider-leaflet { + -servicestudio-background: var(--map-container-image-leaflet) center; + -servicestudio-background-repeat: no-repeat; + -servicestudio-background-size: cover; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ +.map-wrapper .license-message { + -servicestudio-background: #e9ecef; + -servicestudio-color: #938e8e; + -servicestudio-font-family: 'Verdana'; + -servicestudio-font-size: 12px; + -servicestudio-padding: 15px 15px; +} + +.map-wrapper .license-message:before { + -servicestudio-content: '🛈 The Map component requires a valid API key to display the map correctly and remove the "development purpose" watermark. You can get an API key for Google Maps here: '; +} + +.map-wrapper .license-message > .license-link { + -servicestudio-color: #4d5c66; + -servicestudio-font-weight: bold; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.event-preview { + -servicestudio-background-color: white; + -servicestudio-border: 1px solid darkgray; + -servicestudio-border-radius: 5px; + -servicestudio-display: flex; + -servicestudio-flex-direction: row; + -servicestudio-flex-wrap: nowrap; + -servicestudio-font-family: Arial; + -servicestudio-margin: 5px; + -servicestudio-padding: 5px 10px; + -servicestudio-position: relative; + -servicestudio-z-index: 2; +} + +.event-preview > img { + -servicestudio-width: 24px; +} + +.event-preview > div { + -servicestudio-display: flex; + -servicestudio-flex-direction: row; +} + +.event-preview-origin { + -servicestudio-color: darkgray; +} + +.event-preview-name { + -servicestudio-font-weight: bold; +} + +.event-preview-name, +.event-preview-origin { + -servicestudio-align-self: center; + -servicestudio-font-size: 12px; + -servicestudio-margin-left: 5px; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ +.map-preview { + -servicestudio-display: flex; + -servicestudio-justify-content: center; + -servicestudio-position: relative; +} + +.map-preview:not(.map-container) { + -servicestudio-height: 100%; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ +.map-preview-ss { + -servicestudio-height: 100%; + -servicestudio-position: absolute; + -servicestudio-width: 100%; +} + +.map-preview-ss > .control-type { + -servicestudio-left: 10px; + -servicestudio-top: 10px; +} + +.map-preview-ss > .control-zoom { + -servicestudio-right: 10px; + -servicestudio-bottom: 10px; +} + +.map-preview-ss > .control-full { + -servicestudio-right: 10px; + -servicestudio-top: 10px; +} + +.map-preview-ss > .control-type, +.map-preview-ss > .control-zoom, +.map-preview-ss > .control-full { + -servicestudio-position: absolute; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.map-preview-message-container { + -servicestudio-left: 0%; + -servicestudio-top: 8px; + -servicestudio-position: absolute; + -servicestudio-right: 0%; + -servicestudio-text-align: center; +} + +.map-preview-height { + -servicestudio-background: #dcecfdbb; + -servicestudio-color: #000000; +} + +.map-preview-location { + -servicestudio-background: #00aad8bb; + -servicestudio-color: #fff; + -servicestudio-margin: 0 10px; + position: relative; + z-index: 3; +} + +.map-preview-location, +.map-preview-height { + -servicestudio-border-radius: 5px; + -servicestudio-display: inline-block; + -servicestudio-margin-top: 5px; + -servicestudio-padding: 5px 25px; + -servicestudio-text-align: center; +} + +.map-preview-location:empty, +.map-preview-height:empty { + -servicestudio-display: none; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ +.map-preview > span { + -servicestudio-width: 100%; +} + +.map-preview-addons { + -servicestudio-align-items: flex-start; + -servicestudio-position: relative; + -servicestudio-width: calc(100% - 73px); + -servicestudio-margin: 60px 60px 0px 13px; + -servicestudio-min-height: calc(var(--map-height) - 80px); +} + +.map-preview-addons:empty:after { + -servicestudio-align-self: center; + -servicestudio-background: #ffffffa0; + -servicestudio-border-radius: 5px; + -servicestudio-content: 'Drag AddOns here'; + -servicestudio-padding: 15px 25px; +} + +.map-preview-addons > * { + -servicestudio-align-self: flex-start; +} + +.map-preview-events { + -servicestudio-align-items: center; + -servicestudio-border-radius: 0 0 3px 3px; + -servicestudio-min-height: 42px; +} + +.map-preview-events:empty:after { + -servicestudio-content: 'Drag map events here'; +} + +.map-preview-addons, +.map-preview-events { + display: none; + -servicestudio-background-color: rgba(200, 200, 200, 0.3); + -servicestudio-border: 1px dashed rgba(1, 1, 1, 0.2); + -servicestudio-border-radius: 3px; + -servicestudio-display: flex; + -servicestudio-flex-wrap: wrap; + -servicestudio-position: relative; +} + +.map-preview-addons:after, +.map-preview-events:after { + -servicestudio-color: grey; + -servicestudio-font-family: Arial; + -servicestudio-left: 50%; + -servicestudio-position: absolute; + -servicestudio-transform: translateX(-50%); + -servicestudio-text-align: center; + -servicestudio-z-index: 0; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.ss-marker { + -servicestudio-background: white; + -servicestudio-border-radius: 3px; + -servicestudio-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), + 0 1px 2px 0 rgba(0, 0, 0, 0.06); + -servicestudio-margin: 3px; + -servicestudio-max-width: 200px; + -servicestudio-min-width: 200px; +} + +.ss-marker-icon { + -servicestudio-display: flex; + -servicestudio-justify-content: center; + -servicestudio-padding: 10px 10px 0 10px; +} + +.ss-marker-location { + -servicestudio-display: block; + -servicestudio-font-family: Arial; + -servicestudio-font-size: 14px; + -servicestudio-font-weight: 600; + -servicestudio-margin: 10px; + -servicestudio-text-align: center; +} + +.ss-marker-location:empty { + -servicestudio-display: none; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.ss-marker-events { + -servicestudio-background-color: rgba(200, 200, 200, 0.3); + -servicestudio-box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.03); + -servicestudio-margin: 10px; + -servicestudio-min-height: 20px; + -servicestudio-position: relative; + -servicestudio-padding-bottom: 10px; +} + +.ss-marker-events:empty:after { + -servicestudio-color: lightgrey; + -servicestudio-content: 'Drag marker events to here'; + -servicestudio-font-family: Arial; + -servicestudio-font-size: 11px; + -servicestudio-left: 50%; + -servicestudio-position: absolute; + -servicestudio-top: 50%; + -servicestudio-transform: translate(-50%, -50%); + -servicestudio-white-space: nowrap; + -servicestudio-z-index: 0; +} + +.ss-marker-events .event-preview { + margin-top: 0; +} + +.ss-marker-events .event-preview > div { + -servicestudio-flex-direction: column; + -servicestudio-margin-left: 10px; +} + +.ss-marker-events .event-preview > img { + -servicestudio-align-self: center; + -servicestudio-width: 20px; +} + +.ss-marker-events .event-preview-origin { + -servicestudio-font-size: 11px; + -servicestudio-font-weight: normal; + -servicestudio-margin-bottom: 2px; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.os-marker-icon { + position: relative; + text-align: center; + white-space: nowrap; +} + +.os-marker-icon-label { + left: 0; + position: absolute; + right: 0; + top: calc(50% - 6px); +} + +.marker-popup-layout { + display: flex; + flex-direction: column; + max-width: 200px; +} + +body.safari .marker-popup-layout, +body.chrome .marker-popup-layout { + margin-left: 6px; +} + +@supports (-webkit-touch-callout: none) { + body.safari .marker-popup-layout, + body.chrome .marker-popup-layout { + margin-left: 0px; + padding: 6px 18px 6px 6px; + } +} + +.marker-popup-placeholder { + -servicestudio-background: white; + -servicestudio-border: 1px dashed #efefef; + -servicestudio-margin: 15px 15px 0 15px; + -servicestudio-min-height: 60px; + -servicestudio-position: relative; +} + +.marker-popup-placeholder::empty { + -servicestudio-background-color: rgba(200, 200, 200, 0.3); + -servicestudio-box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.03); +} + +.marker-popup-placeholder::before { + -servicestudio-color: lightgray; + -servicestudio-content: 'x'; + -servicestudio-position: absolute; + -servicestudio-right: -10px; + -servicestudio-top: -18px; + -servicestudio-z-index: 2; +} + +.marker-layout-image { + height: 100px; + width: 100%; +} + +.marker-layout-image-default, +.marker-layout-image img { + border-radius: 8px; + height: 100%; + object-fit: cover; + width: 100%; +} + +.marker-layout-image-default:empty { + width: 100%; + content: var(--popup-default-image); +} + +.marker-layout-header { + margin: 10px 0 5px; +} + +.marker-layout-description { + color: var(--color-neutral-7); +} + +.marker-layout-header:empty + .marker-layout-description { + margin-top: 10px; +} + +.marker-layout-header:empty, +.marker-layout-description:empty { + display: none; + -servicestudio-display: block; +} + +.marker-layout-link { + padding: 10px 0 5px; + text-align: center; +} + +.marker-layout-link a { + display: block; +} + +.marker-layout-link a:hover, +.marker-layout-link a:focus { + text-decoration: none; +} + +.marker-leaflet-icon { + background: var(--marker-leaflet-icon); + text-align: center; +} + +.marker-leaflet-icon-wp { + background: var(--marker-leaflet-icon-wp); + text-align: center; +} + +.leaflet-tooltip.marker-leaflet-transparent-tooltip, +.leaflet-tooltip.marker-leaflet-transparent-tooltip-wp, +.leaflet-tooltip.marker-leaflet-transparent-tooltip::before, +.leaflet-tooltip.marker-leaflet-transparent-tooltip-wp::before { + background: transparent; + border: none; + box-shadow: none; +} + +.leaflet-tooltip.marker-leaflet-transparent-tooltip-wp, +.leaflet-tooltip.marker-leaflet-transparent-tooltip-wp::before { + color: white; + margin-top: -10px; +} + +/***********************************************************************/ +/* SS Hybrid version */ +/***********************************************************************/ + +/* MAKE IF FULLWIDTH +This is to make the first and only if, directly inside the +map-preview block to be fullwidth. We rather not apply this +to all IFs in the page or even in the map placeholder due +to the potential side effect. +*/ +html[data-uieditorversion^='1'] .map-preview > .uieditor-if-widget-container { + -servicestudio-width: 100% !important; +} + +/* MAKE THE IF's TRUE BRANCH HIDDEN +This condition enable us to completely hide the true branch +in development time, to improve the code readability. +*/ +html[data-uieditorversion^='1'] + .hide-true-branch + > .uieditor-if-widget-container + > :first-child { + -servicestudio-display: none !important; +} + +/* MAKE THE IF's FALSE BRANCH HIDDEN +This condition enable us to completely hide the true .hide-true-branch +in development time, to improve the code readability. +*/ +html[data-uieditorversion^='1'] + .hide-false-branch + > .uieditor-if-widget-container + > :last-child { + -servicestudio-display: none !important; +} + +/* MAKE THE CUSTOM PLACEHOLDER MESSAGES DISAPPEAR ON MOUSE HOVER +We are using custom placeholders messages, set by CSS - in +order to improve the developer experience, however in SS hybrid +is actually overlapping with the default placeholder message, that +appears once the mouse is over the drawing canvas. +This rule, will make our custom messages disappear once the developer +has the mouse over the canvas. +*/ +html[data-uieditorversion^='1']:hover .ss-marker-events:empty:after, +html[data-uieditorversion^='1']:hover .map-preview-addons:empty:after, +html[data-uieditorversion^='1']:hover .map-preview-events:empty:after { + -servicestudio-display: none !important; +} + +.map-wrapper .force-hide { + -servicestudio-display: none !important; +} +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.ss-shape { + -servicestudio-background: white; + -servicestudio-border-radius: 3px; + -servicestudio-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), + 0 1px 2px 0 rgba(0, 0, 0, 0.06); + -servicestudio-margin: 3px; + -servicestudio-max-width: 200px; + -servicestudio-min-width: 200px; +} + +.ss-shape-icon { + -servicestudio-display: flex; + -servicestudio-justify-content: center; + -servicestudio-padding: 10px 10px 0 10px; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.ss-shape-events { + -servicestudio-background-color: rgba(200, 200, 200, 0.3); + -servicestudio-box-shadow: inset 0 1px 1px 0 rgba(0, 0, 0, 0.03); + -servicestudio-margin: 10px; + -servicestudio-min-height: 20px; + -servicestudio-position: relative; + -servicestudio-padding-bottom: 10px; +} + +.ss-shape-events:empty:after { + -servicestudio-color: lightgrey; + -servicestudio-content: 'Drag shape events here'; + -servicestudio-font-family: Arial; + -servicestudio-font-size: 11px; + -servicestudio-left: 50%; + -servicestudio-position: absolute; + -servicestudio-top: 50%; + -servicestudio-transform: translate(-50%, -50%); + -servicestudio-white-space: nowrap; + -servicestudio-z-index: 0; +} + +.ss-shape-events .event-preview { + margin-top: 0; +} + +.ss-shape-events .event-preview > div { + -servicestudio-flex-direction: column; + -servicestudio-margin-left: 10px; +} + +.ss-shape-events .event-preview > img { + -servicestudio-align-self: center; + -servicestudio-width: 20px; +} + +.ss-shape-events .event-preview-origin { + -servicestudio-font-size: 11px; + -servicestudio-font-weight: normal; + -servicestudio-margin-bottom: 2px; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.ss-drawingTools { + -servicestudio-background: white; + -servicestudio-border-radius: 3px; + -servicestudio-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), + 0 1px 2px 0 rgba(0, 0, 0, 0.06); + -servicestudio-margin: 3px; + -servicestudio-max-width: 200px; + -servicestudio-min-height: 50px; + -servicestudio-min-width: 200px; +} + +.ss-drawingTools-hand { + -servicestudio-margin-top: 1px; +} + +.ss-drawingTools-hand, +.ss-drawingTools-icon { + -servicestudio-height: 27px; + -servicestudio-width: 27px; +} + +.ss-drawingTools-icon img { + -servicestudio-height: 27px; +} + +.ss-drawingTools-tools { + -servicestudio-display: flex; + -servicestudio-padding: 10px 10px 10px 10px; +} + +.ss-drawingTools-placeholder { + -servicestudio-border: 1px dashed #efefef; + -servicestudio-flex: 1; + -servicestudio-min-height: 30px; + -servicestudio-position: relative; +} + +.ss-drawingTools-placeholder * { + -servicestudio-display: inline-block; +} + +.ss-drawingTools-placeholder:empty:after { + -servicestudio-color: lightgrey; + -servicestudio-content: 'Drag draw blocks here'; + -servicestudio-font-family: Arial; + -servicestudio-font-size: 11px; + -servicestudio-left: 50%; + -servicestudio-position: absolute; + -servicestudio-top: 50%; + -servicestudio-transform: translate(-50%, -50%); + -servicestudio-white-space: nowrap; + -servicestudio-z-index: 0; +} + +/***********************************************************************/ +/**/ +/***********************************************************************/ + +.ss-fileLayer, +.ss-heatmapLayer { + -servicestudio-background: white; + -servicestudio-border-radius: 3px; + -servicestudio-box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), + 0 1px 2px 0 rgba(0, 0, 0, 0.06); + -servicestudio-margin: 3px; + -servicestudio-max-width: 200px; + -servicestudio-min-width: 200px; + -servicestudio-padding-bottom: 10px; +} + +.ss-fileLayer-icon, +.ss-heatmapLayer-icon { + -servicestudio-display: flex; + -servicestudio-justify-content: center; + -servicestudio-padding: 10px 10px 0 10px; +} diff --git a/src/Files/Internal/README.MD b/src/Files/Internal/README.MD new file mode 100644 index 0000000..5b55a4a --- /dev/null +++ b/src/Files/Internal/README.MD @@ -0,0 +1,9 @@ +# Internal files + +## Purpose +Store internal files generated editied externally but used directly in the OutSystems Maps library. + +## Files +- **Images.css**: css variables containing the base64 of the different images used in the map (i.e.: Leaflet marker). + +- **Map.css**: styles required for preview in Service Studio / ODC Studio, in addition base runtime styles for the map blocks. \ No newline at end of file diff --git a/src/Files/Leaflet/Directions/GraphHopper.js b/src/Files/Leaflet/Directions/GraphHopper.js new file mode 100644 index 0000000..8905540 --- /dev/null +++ b/src/Files/Leaflet/Directions/GraphHopper.js @@ -0,0 +1,535 @@ +(function e(t, n, r) { + function s(o, u) { + if (!n[o]) { + if (!t[o]) { + var a = typeof require == 'function' && require; + if (!u && a) return a(o, !0); + if (i) return i(o, !0); + var f = new Error("Cannot find module '" + o + "'"); + throw ((f.code = 'MODULE_NOT_FOUND'), f); + } + var l = (n[o] = { exports: {} }); + t[o][0].call( + l.exports, + function (e) { + var n = t[o][1][e]; + return s(n ? n : e); + }, + l, + l.exports, + e, + t, + n, + r + ); + } + return n[o].exports; + } + var i = typeof require == 'function' && require; + for (var o = 0; o < r.length; o++) s(r[o]); + return s; +})( + { + 1: [ + function (require, module, exports) { + function corslite(url, callback, cors) { + var sent = false; + + if (typeof window.XMLHttpRequest === 'undefined') { + return callback(Error('Browser not supported')); + } + + if (typeof cors === 'undefined') { + var m = url.match(/^\s*https?:\/\/[^\/]*/); + cors = + m && + m[0] !== + location.protocol + '//' + location.domain + (location.port ? ':' + location.port : ''); + } + + var x = new window.XMLHttpRequest(); + + function isSuccessful(status) { + return (status >= 200 && status < 300) || status === 304; + } + + if (cors && !('withCredentials' in x)) { + // IE8-9 + x = new window.XDomainRequest(); + + // Ensure callback is never called synchronously, i.e., before + // x.send() returns (this has been observed in the wild). + // See https://github.com/mapbox/mapbox.js/issues/472 + var original = callback; + callback = function () { + if (sent) { + original.apply(this, arguments); + } else { + var that = this, + args = arguments; + setTimeout(function () { + original.apply(that, args); + }, 0); + } + }; + } + + function loaded() { + if ( + // XDomainRequest + x.status === undefined || + // modern browsers + isSuccessful(x.status) + ) + callback.call(x, null, x); + else callback.call(x, x, null); + } + + // Both `onreadystatechange` and `onload` can fire. `onreadystatechange` + // has [been supported for longer](http://stackoverflow.com/a/9181508/229001). + if ('onload' in x) { + x.onload = loaded; + } else { + x.onreadystatechange = function readystate() { + if (x.readyState === 4) { + loaded(); + } + }; + } + + // Call the callback with the XMLHttpRequest object as an error and prevent + // it from ever being called again by reassigning it to `noop` + x.onerror = function error(evt) { + // XDomainRequest provides no evt parameter + callback.call(this, evt || true, null); + callback = function () {}; + }; + + // IE9 must have onprogress be set to a unique function. + x.onprogress = function () {}; + + x.ontimeout = function (evt) { + callback.call(this, evt, null); + callback = function () {}; + }; + + x.onabort = function (evt) { + callback.call(this, evt, null); + callback = function () {}; + }; + + // GET is the only supported HTTP Verb by XDomainRequest and is the + // only one supported here. + x.open('GET', url, true); + + // Send the request. Sending data is not supported. + x.send(null); + sent = true; + + return x; + } + + if (typeof module !== 'undefined') module.exports = corslite; + }, + {}, + ], + 2: [ + function (require, module, exports) { + var polyline = {}; + + // Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm) + // + // Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js) + // by [Mark McClure](http://facstaff.unca.edu/mcmcclur/) + + function encode(coordinate, factor) { + coordinate = Math.round(coordinate * factor); + coordinate <<= 1; + if (coordinate < 0) { + coordinate = ~coordinate; + } + var output = ''; + while (coordinate >= 0x20) { + output += String.fromCharCode((0x20 | (coordinate & 0x1f)) + 63); + coordinate >>= 5; + } + output += String.fromCharCode(coordinate + 63); + return output; + } + + // This is adapted from the implementation in Project-OSRM + // https://github.com/DennisOSRM/Project-OSRM-Web/blob/master/WebContent/routing/OSRM.RoutingGeometry.js + polyline.decode = function (str, precision) { + var index = 0, + lat = 0, + lng = 0, + coordinates = [], + shift = 0, + result = 0, + byte = null, + latitude_change, + longitude_change, + factor = Math.pow(10, precision || 5); + + // Coordinates have variable length when encoded, so just keep + // track of whether we've hit the end of the string. In each + // loop iteration, a single coordinate is decoded. + while (index < str.length) { + // Reset shift, result, and byte + byte = null; + shift = 0; + result = 0; + + do { + byte = str.charCodeAt(index++) - 63; + result |= (byte & 0x1f) << shift; + shift += 5; + } while (byte >= 0x20); + + latitude_change = result & 1 ? ~(result >> 1) : result >> 1; + + shift = result = 0; + + do { + byte = str.charCodeAt(index++) - 63; + result |= (byte & 0x1f) << shift; + shift += 5; + } while (byte >= 0x20); + + longitude_change = result & 1 ? ~(result >> 1) : result >> 1; + + lat += latitude_change; + lng += longitude_change; + + coordinates.push([lat / factor, lng / factor]); + } + + return coordinates; + }; + + polyline.encode = function (coordinates, precision) { + if (!coordinates.length) return ''; + + var factor = Math.pow(10, precision || 5), + output = encode(coordinates[0][0], factor) + encode(coordinates[0][1], factor); + + for (var i = 1; i < coordinates.length; i++) { + var a = coordinates[i], + b = coordinates[i - 1]; + output += encode(a[0] - b[0], factor); + output += encode(a[1] - b[1], factor); + } + + return output; + }; + + if (typeof module !== undefined) module.exports = polyline; + }, + {}, + ], + 3: [ + function (require, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + var corslite = require('corslite'); + var polyline = require('polyline'); + + L.Routing = L.Routing || {}; + + L.Routing.GraphHopper = L.Evented.extend({ + options: { + serviceUrl: 'https://graphhopper.com/api/1/route', + timeout: 30 * 1000, + urlParameters: {}, + }, + + initialize: function (apiKey, options) { + this._apiKey = apiKey; + L.Util.setOptions(this, options); + }, + + route: function (waypoints, callback, context, options) { + var timedOut = false, + wps = [], + url, + timer, + wp, + i; + + options = options || {}; + url = this.buildRouteUrl(waypoints, options); + + timer = setTimeout(function () { + timedOut = true; + callback.call(context || callback, { + status: -1, + message: 'GraphHopper request timed out.', + }); + }, this.options.timeout); + + // Create a copy of the waypoints, since they + // might otherwise be asynchronously modified while + // the request is being processed. + for (i = 0; i < waypoints.length; i++) { + wp = waypoints[i]; + wps.push({ + latLng: wp.latLng, + name: wp.name, + options: wp.options, + }); + } + + corslite( + url, + L.bind(function (err, resp) { + var data; + + clearTimeout(timer); + if (!timedOut) { + var fired = err ? err : resp; + this.fire('response', { + status: fired.status, + limit: Number(fired.getResponseHeader('X-RateLimit-Limit')), + remaining: Number(fired.getResponseHeader('X-RateLimit-Remaining')), + reset: Number(fired.getResponseHeader('X-RateLimit-Reset')), + credits: Number(fired.getResponseHeader('X-RateLimit-Credits')), + }); + if (!err) { + data = JSON.parse(resp.responseText); + this._routeDone(data, wps, callback, context); + } else { + var finalResponse; + var responseText = err && err.responseText; + try { + finalResponse = JSON.parse(responseText); + } catch (e) { + finalResponse = responseText; + } + + callback.call(context || callback, { + status: -1, + message: 'HTTP request failed: ' + err, + response: finalResponse, + }); + } + } + }, this) + ); + + return this; + }, + + _routeDone: function (response, inputWaypoints, callback, context) { + var alts = [], + mappedWaypoints, + coordinates, + i, + path; + + context = context || callback; + if (response.info && response.info.errors && response.info.errors.length) { + callback.call(context, { + // TODO: include all errors + status: response.info.errors[0].details, + message: response.info.errors[0].message, + }); + return; + } + + for (i = 0; i < response.paths.length; i++) { + path = response.paths[i]; + coordinates = this._decodePolyline(path.points); + if (path.points_order) { + var tempWaypoints = []; + for (i = 0; i < path.points_order.length; i++) { + tempWaypoints.push(inputWaypoints[path.points_order[i]]); + } + inputWaypoints = tempWaypoints; + } + mappedWaypoints = this._mapWaypointIndices( + inputWaypoints, + path.instructions, + coordinates + ); + + alts.push({ + name: '', + coordinates: coordinates, + instructions: this._convertInstructions(path.instructions), + summary: { + totalDistance: path.distance, + totalTime: path.time / 1000, + totalAscend: path.ascend, + }, + inputWaypoints: inputWaypoints, + actualWaypoints: mappedWaypoints.waypoints, + waypointIndices: mappedWaypoints.waypointIndices, + }); + } + + callback.call(context, null, alts); + }, + + _decodePolyline: function (geometry) { + var coords = polyline.decode(geometry, 5), + latlngs = new Array(coords.length), + i; + for (i = 0; i < coords.length; i++) { + latlngs[i] = new L.LatLng(coords[i][0], coords[i][1]); + } + + return latlngs; + }, + + _toWaypoints: function (inputWaypoints, vias) { + var wps = [], + i; + for (i = 0; i < vias.length; i++) { + wps.push({ + latLng: L.latLng(vias[i]), + name: inputWaypoints[i].name, + options: inputWaypoints[i].options, + }); + } + + return wps; + }, + + buildRouteUrl: function (waypoints, options) { + var computeInstructions = + /* Instructions are always needed, + since we do not have waypoint indices otherwise */ + true, + //!(options && options.geometryOnly), + locs = [], + i, + baseUrl; + + for (i = 0; i < waypoints.length; i++) { + locs.push('point=' + waypoints[i].latLng.lat + ',' + waypoints[i].latLng.lng); + } + + baseUrl = this.options.serviceUrl + '?' + locs.join('&'); + + return ( + baseUrl + + L.Util.getParamString( + L.extend( + { + instructions: computeInstructions, + type: 'json', + key: this._apiKey, + }, + this.options.urlParameters + ), + baseUrl + ) + ); + }, + + _convertInstructions: function (instructions) { + var signToType = { + '-7': 'SlightLeft', + '-3': 'SharpLeft', + '-2': 'Left', + '-1': 'SlightLeft', + 0: 'Straight', + 1: 'SlightRight', + 2: 'Right', + 3: 'SharpRight', + 4: 'DestinationReached', + 5: 'WaypointReached', + 6: 'Roundabout', + 7: 'SlightRight', + }, + result = [], + type, + i, + instr; + + for (i = 0; instructions && i < instructions.length; i++) { + instr = instructions[i]; + if (i === 0) { + type = 'Head'; + } else { + type = signToType[instr.sign]; + } + result.push({ + type: type, + modifier: type, + text: instr.text, + distance: instr.distance, + time: instr.time / 1000, + index: instr.interval[0], + exit: instr.exit_number, + }); + } + + return result; + }, + + _mapWaypointIndices: function (waypoints, instructions, coordinates) { + var wps = [], + wpIndices = [], + i, + idx; + + wpIndices.push(0); + wps.push(new L.Routing.Waypoint(coordinates[0], waypoints[0].name)); + + for (i = 0; instructions && i < instructions.length; i++) { + if (instructions[i].sign === 5) { + // VIA_REACHED + idx = instructions[i].interval[0]; + wpIndices.push(idx); + wps.push({ + latLng: coordinates[idx], + name: waypoints[wps.length + 1].name, + }); + } + } + + wpIndices.push(coordinates.length - 1); + wps.push({ + latLng: coordinates[coordinates.length - 1], + name: waypoints[waypoints.length - 1].name, + }); + + return { + waypointIndices: wpIndices, + waypoints: wps, + }; + }, + }); + + L.Routing.graphHopper = function (apiKey, options) { + return new L.Routing.GraphHopper(apiKey, options); + }; + + module.exports = L.Routing.GraphHopper; + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { corslite: 1, polyline: 2 }, + ], + }, + {}, + [3] +); diff --git a/src/Files/Leaflet/Directions/README.MD b/src/Files/Leaflet/Directions/README.MD new file mode 100644 index 0000000..37fdb1f --- /dev/null +++ b/src/Files/Leaflet/Directions/README.MD @@ -0,0 +1,28 @@ +# Leaflet Maps Direction files + +## Purpose +Store the files/addons to be used for test purposes. + +## Notice +These files are not distributed together with OutSystems Maps, and are not subject to maintenance. Therefor it is recommended that developers should go to the repositories below and compile their own versions. + +## Routing Engines +Visit the webside: https://www.liedman.net/leaflet-routing-machine/ +- OSRM: builtin (leaflet) +- Mapbox: builtin (leaflet) +- GraphHopper: https://github.com/perliedman/lrm-graphhopper +- Mapzen Valhalla: https://github.com/valhalla/lrm-valhalla +- TomTom: https://github.com/mrohnstock/lrm-tomtom +- Esri: https://github.com/jgravois/lrm-esri + + +## Files +- **GraphHopper.js**: Extends Leaflet Routing Machine with support for GraphHopper. + - Version: 1.3.0 + - Date: 07.12.2018 + - Github: https://github.com/perliedman/lrm-graphhopper/ + +- **TomTom.js**: Extends Leaflet Routing Machine with support for TomTom. + - Version: 1.0.4 + - Date: 07.02.2018 + - Github: https://github.com/mrohnstock/lrm-tomtom diff --git a/src/Files/Leaflet/Directions/TomTom.js b/src/Files/Leaflet/Directions/TomTom.js new file mode 100644 index 0000000..3e03a9b --- /dev/null +++ b/src/Files/Leaflet/Directions/TomTom.js @@ -0,0 +1,446 @@ +(function e(t, n, r) { + function s(o, u) { + if (!n[o]) { + if (!t[o]) { + var a = typeof require == 'function' && require; + if (!u && a) return a(o, !0); + if (i) return i(o, !0); + var f = new Error("Cannot find module '" + o + "'"); + throw ((f.code = 'MODULE_NOT_FOUND'), f); + } + var l = (n[o] = { exports: {} }); + t[o][0].call( + l.exports, + function (e) { + var n = t[o][1][e]; + return s(n ? n : e); + }, + l, + l.exports, + e, + t, + n, + r + ); + } + return n[o].exports; + } + var i = typeof require == 'function' && require; + for (var o = 0; o < r.length; o++) s(r[o]); + return s; +})( + { + 1: [ + function (require, module, exports) { + function corslite(url, callback, cors) { + var sent = false; + + if (typeof window.XMLHttpRequest === 'undefined') { + return callback(Error('Browser not supported')); + } + + if (typeof cors === 'undefined') { + var m = url.match(/^\s*https?:\/\/[^\/]*/); + cors = + m && + m[0] !== + location.protocol + '//' + location.domain + (location.port ? ':' + location.port : ''); + } + + var x = new window.XMLHttpRequest(); + + function isSuccessful(status) { + return (status >= 200 && status < 300) || status === 304; + } + + if (cors && !('withCredentials' in x)) { + // IE8-9 + x = new window.XDomainRequest(); + + // Ensure callback is never called synchronously, i.e., before + // x.send() returns (this has been observed in the wild). + // See https://github.com/mapbox/mapbox.js/issues/472 + var original = callback; + callback = function () { + if (sent) { + original.apply(this, arguments); + } else { + var that = this, + args = arguments; + setTimeout(function () { + original.apply(that, args); + }, 0); + } + }; + } + + function loaded() { + if ( + // XDomainRequest + x.status === undefined || + // modern browsers + isSuccessful(x.status) + ) + callback.call(x, null, x); + else callback.call(x, x, null); + } + + // Both `onreadystatechange` and `onload` can fire. `onreadystatechange` + // has [been supported for longer](http://stackoverflow.com/a/9181508/229001). + if ('onload' in x) { + x.onload = loaded; + } else { + x.onreadystatechange = function readystate() { + if (x.readyState === 4) { + loaded(); + } + }; + } + + // Call the callback with the XMLHttpRequest object as an error and prevent + // it from ever being called again by reassigning it to `noop` + x.onerror = function error(evt) { + // XDomainRequest provides no evt parameter + callback.call(this, evt || true, null); + callback = function () {}; + }; + + // IE9 must have onprogress be set to a unique function. + x.onprogress = function () {}; + + x.ontimeout = function (evt) { + callback.call(this, evt, null); + callback = function () {}; + }; + + x.onabort = function (evt) { + callback.call(this, evt, null); + callback = function () {}; + }; + + // GET is the only supported HTTP Verb by XDomainRequest and is the + // only one supported here. + x.open('GET', url, true); + + // Send the request. Sending data is not supported. + x.send(null); + sent = true; + + return x; + } + + if (typeof module !== 'undefined') module.exports = corslite; + }, + {}, + ], + 2: [ + function (require, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + var corslite = require('corslite'); + + L.Routing = L.Routing || {}; + + L.Routing.TomTom = L.Class.extend({ + options: { + serviceUrl: 'https://api.tomtom.com/routing/1/calculateRoute', + timeout: 30 * 1000, + routeType: 'fastest', // fastest, shortest, eco, thrilling + language: '', // en-GB + instructionsType: '', // coded, text, tagged + traffic: true, + avoid: '', // [tollRoads, motorways, ferries, unpavedRoads, carpools, alreadyUsedRoads] + travelMode: 'car', // car, truck, taxi, bus, van, motorcycle, bicycle, pedestrian + vehicleMaxSpeed: 0, // km/h + vehicleWeight: 0, // kg + vehicleAxleWeight: 0, // kg + vehicleLength: 0, // m + vehicleWidth: 0, // m + vehicleHeight: 0, // m + departAt: '', // YYYY-MM-DD\THH:mm:ss + arriveAt: '', // YYYY-MM-DD\THH:mm:ss + vehicleCommercial: false, + }, + + initialize: function (apiKey, options) { + this._apiKey = apiKey; + L.Util.setOptions(this, options); + }, + + route: function (waypoints, callback, context, options) { + var timedOut = false, + wps = [], + url, + timer, + wp, + i; + + options = options || {}; + url = this.buildRouteUrl(waypoints, options); + + timer = setTimeout(function () { + timedOut = true; + callback.call(context || callback, { + status: -1, + message: 'TomTom request timed out.', + }); + }, this.options.timeout); + + // Create a copy of the waypoints, since they + // might otherwise be asynchronously modified while + // the request is being processed. + for (i = 0; i < waypoints.length; i++) { + wp = waypoints[i]; + wps.push({ + latLng: wp.latLng, + name: wp.name, + options: wp.options, + }); + } + + corslite( + url, + L.bind(function (err, resp) { + var data; + + clearTimeout(timer); + if (!timedOut) { + if (!err) { + data = JSON.parse(resp.responseText); + this._routeDone(data, wps, callback, context); + } else { + callback.call(context || callback, { + status: -1, + message: + 'HTTP request failed: ' + + JSON.parse(err.responseText).error.description, + }); + } + } + }, this) + ); + + return this; + }, + + _routeDone: function (response, inputWaypoints, callback, context) { + var alts = [], + mappedWaypoints, + coordinates = [], + i, + path, + summary = [], + instructions, + index = 0; + + context = context || callback; + if (response.error && response.error.description) { + callback.call(context, { + status: -1, + message: response.error.description, + }); + return; + } + + for (i = 0; i < response.routes[0].legs.length; i++) { + path = response.routes[0].legs[i]; + coordinates = coordinates.concat(this._decodePolyline(path.points)); + index += path.points.length - 1; + summary.push({ summary: path.summary, index: index }); + } + + instructions = this._convertInstructions(summary); + mappedWaypoints = this._mapWaypointIndices(inputWaypoints, instructions, coordinates); + + alts = [ + { + name: '', + coordinates: coordinates, + instructions: instructions, + summary: this._convertSummary(summary), + inputWaypoints: inputWaypoints, + actualWaypoints: mappedWaypoints.waypoints, + waypointIndices: mappedWaypoints.waypointIndices, + }, + ]; + + callback.call(context, null, alts); + }, + + _decodePolyline: function (geometry) { + var coords = geometry, + latlngs = new Array(coords.length), + i; + + for (i = 0; i < coords.length; i++) { + latlngs[i] = new L.LatLng(coords[i].latitude, coords[i].longitude); + } + + return latlngs; + }, + + _toWaypoints: function (inputWaypoints, vias) { + var wps = [], + i; + for (i = 0; i < vias.length; i++) { + wps.push({ + latLng: L.latLng(vias[i]), + name: inputWaypoints[i].name, + options: inputWaypoints[i].options, + }); + } + + return wps; + }, + + buildRouteUrl: function (waypoints, options) { + var locs = [], + i, + url = '', + _options = { + routeType: this.options.routeType, + language: this.options.language, + instructionsType: this.options.instructionsType, + traffic: this.options.traffic, + avoid: this.options.avoid, + travelMode: this.options.travelMode, + vehicleMaxSpeed: this.options.vehicleMaxSpeed, + vehicleWeight: this.options.vehicleWeight, + vehicleAxleWeight: this.options.vehicleAxleWeight, + vehicleLength: this.options.vehicleLength, + vehicleWidth: this.options.vehicleWidth, + vehicleHeight: this.options.vehicleHeight, + departAt: this.options.departAt, + arriveAt: this.options.arriveAt, + vehicleCommercial: this.options.vehicleCommercial, + }; + + if (_options.avoid == '' || _options.avoid == []) delete _options.avoid; + + if (_options.instructionsType == '') delete _options.instructionsType; + + if (_options.language == '') delete _options.language; + + if ( + _options.departAt.match(/^(\d{4})\-(\d{2})\-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/) === + null + ) + delete _options.departAt; + + if ( + _options.arriveAt.match(/^(\d{4})\-(\d{2})\-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/) === + null + ) + delete _options.arriveAt; + + for (i = 0; i < waypoints.length; i++) + locs.push(waypoints[i].latLng.lat + ',' + waypoints[i].latLng.lng); + + return ( + this.options.serviceUrl + + '/' + + locs.join(':') + + '/json?key=' + + this._apiKey + + '&' + + Object.keys(_options) + .map(function (k) { + return encodeURIComponent(k) + '=' + encodeURIComponent(_options[k]); + }) + .join('&') + ); + }, + + _convertInstructions: function (summaries) { + var result = [], + i; + + // tomtom don't provide any instructions, but we will create instructions from summary + for (i = 0; i < summaries.length; i++) { + result.push({ + distance: summaries[i].summary.lengthInMeters, + time: summaries[i].summary.travelTimeInSeconds, + type: i == summaries.length - 1 ? 'DestinationReached' : 'WaypointReached', + index: summaries[i].index, + }); + } + + return result; + }, + + _convertSummary: function (summaries) { + var result = { totalDistance: 0, totalTime: 0 }, + i; + + for (i = 0; i < summaries.length; i++) { + result.totalDistance += summaries[i].summary.lengthInMeters; + result.totalTime += summaries[i].summary.travelTimeInSeconds; + } + + return result; + }, + + _mapWaypointIndices: function (waypoints, instructions, coordinates) { + var wps = [], + wpIndices = [], + i, + idx; + + wpIndices.push(0); + wps.push({ latLng: coordinates[0], name: waypoints[0].name }); + + for (i = 0; i < instructions.length; i++) { + if (instructions[i].type === 'WaypointReached') { + idx = instructions[i].index; + wpIndices.push(idx); + wps.push({ + latLng: coordinates[idx], + name: waypoints[wps.length + 1].name, + }); + } + } + + wpIndices.push(coordinates.length - 1); + wps.push({ + latLng: coordinates[coordinates.length - 1], + name: waypoints[waypoints.length - 1].name, + }); + + return { + waypointIndices: wpIndices, + waypoints: wps, + }; + }, + }); + + L.Routing.tomTom = function (apiKey, options) { + return new L.Routing.TomTom(apiKey, options); + }; + + module.exports = L.Routing.TomTom; + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { corslite: 1 }, + ], + }, + {}, + [2] +); diff --git a/src/Files/Leaflet/Leaflet.Draw.min.js b/src/Files/Leaflet/Leaflet.Draw.min.js new file mode 100644 index 0000000..71aeb33 --- /dev/null +++ b/src/Files/Leaflet/Leaflet.Draw.min.js @@ -0,0 +1,10 @@ +/* + Leaflet.draw 1.0.4, a plugin that adds drawing and editing tools to Leaflet powered maps. + (c) 2012-2017, Jacob Toye, Jon West, Smartrak, Leaflet + + https://github.com/Leaflet/Leaflet.draw + http://leafletjs.com + */ +!function(t,e,i){function o(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}L.drawVersion="1.0.4",L.Draw={},L.drawLocal={draw:{toolbar:{actions:{title:"Cancel drawing",text:"Cancel"},finish:{title:"Finish drawing",text:"Finish"},undo:{title:"Delete last point drawn",text:"Delete last point"},buttons:{polyline:"Draw a polyline",polygon:"Draw a polygon",rectangle:"Draw a rectangle",circle:"Draw a circle",marker:"Draw a marker",circlemarker:"Draw a circlemarker"}},handlers:{circle:{tooltip:{start:"Click and drag to draw circle."},radius:"Radius"},circlemarker:{tooltip:{start:"Click map to place circle marker."}},marker:{tooltip:{start:"Click map to place marker."}},polygon:{tooltip:{start:"Click to start drawing shape.",cont:"Click to continue drawing shape.",end:"Click first point to close this shape."}},polyline:{error:"Error: shape edges cannot cross!",tooltip:{start:"Click to start drawing line.",cont:"Click to continue drawing line.",end:"Click last point to finish line."}},rectangle:{tooltip:{start:"Click and drag to draw rectangle."}},simpleshape:{tooltip:{end:"Release mouse to finish drawing."}}}},edit:{toolbar:{actions:{save:{title:"Save changes",text:"Save"},cancel:{title:"Cancel editing, discards all changes",text:"Cancel"},clearAll:{title:"Clear all layers",text:"Clear All"}},buttons:{edit:"Edit layers",editDisabled:"No layers to edit",remove:"Delete layers",removeDisabled:"No layers to delete"}},handlers:{edit:{tooltip:{text:"Drag handles or markers to edit features.",subtext:"Click cancel to undo changes."}},remove:{tooltip:{text:"Click on a feature to remove."}}}}},L.Draw.Event={},L.Draw.Event.CREATED="draw:created",L.Draw.Event.EDITED="draw:edited",L.Draw.Event.DELETED="draw:deleted",L.Draw.Event.DRAWSTART="draw:drawstart",L.Draw.Event.DRAWSTOP="draw:drawstop",L.Draw.Event.DRAWVERTEX="draw:drawvertex",L.Draw.Event.EDITSTART="draw:editstart",L.Draw.Event.EDITMOVE="draw:editmove",L.Draw.Event.EDITRESIZE="draw:editresize",L.Draw.Event.EDITVERTEX="draw:editvertex",L.Draw.Event.EDITSTOP="draw:editstop",L.Draw.Event.DELETESTART="draw:deletestart",L.Draw.Event.DELETESTOP="draw:deletestop",L.Draw.Event.TOOLBAROPENED="draw:toolbaropened",L.Draw.Event.TOOLBARCLOSED="draw:toolbarclosed",L.Draw.Event.MARKERCONTEXT="draw:markercontext",L.Draw=L.Draw||{},L.Draw.Feature=L.Handler.extend({initialize:function(t,e){this._map=t,this._container=t._container,this._overlayPane=t._panes.overlayPane,this._popupPane=t._panes.popupPane,e&&e.shapeOptions&&(e.shapeOptions=L.Util.extend({},this.options.shapeOptions,e.shapeOptions)),L.setOptions(this,e);var i=L.version.split(".");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.Draw.Feature.include(L.Evented.prototype):L.Draw.Feature.include(L.Mixin.Events)},enable:function(){this._enabled||(L.Handler.prototype.enable.call(this),this.fire("enabled",{handler:this.type}),this._map.fire(L.Draw.Event.DRAWSTART,{layerType:this.type}))},disable:function(){this._enabled&&(L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.DRAWSTOP,{layerType:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(L.DomUtil.disableTextSelection(),t.getContainer().focus(),this._tooltip=new L.Draw.Tooltip(this._map),L.DomEvent.on(this._container,"keyup",this._cancelDrawing,this))},removeHooks:function(){this._map&&(L.DomUtil.enableTextSelection(),this._tooltip.dispose(),this._tooltip=null,L.DomEvent.off(this._container,"keyup",this._cancelDrawing,this))},setOptions:function(t){L.setOptions(this,t)},_fireCreatedEvent:function(t){this._map.fire(L.Draw.Event.CREATED,{layer:t,layerType:this.type})},_cancelDrawing:function(t){27===t.keyCode&&(this._map.fire("draw:canceled",{layerType:this.type}),this.disable())}}),L.Draw.Polyline=L.Draw.Feature.extend({statics:{TYPE:"polyline"},Poly:L.Polyline,options:{allowIntersection:!0,repeatMode:!1,drawError:{color:"#b00b00",timeout:2500},icon:new L.DivIcon({iconSize:new L.Point(8,8),className:"leaflet-div-icon leaflet-editing-icon"}),touchIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon"}),guidelineDistance:20,maxGuideLineLength:4e3,shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!1,clickable:!0},metric:!0,feet:!0,nautic:!1,showLength:!0,zIndexOffset:2e3,factor:1,maxPoints:0},initialize:function(t,e){L.Browser.touch&&(this.options.icon=this.options.touchIcon),this.options.drawError.message=L.drawLocal.draw.handlers.polyline.error,e&&e.drawError&&(e.drawError=L.Util.extend({},this.options.drawError,e.drawError)),this.type=L.Draw.Polyline.TYPE,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._markers=[],this._markerGroup=new L.LayerGroup,this._map.addLayer(this._markerGroup),this._poly=new L.Polyline([],this.options.shapeOptions),this._tooltip.updateContent(this._getTooltipText()),this._mouseMarker||(this._mouseMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:"leaflet-mouse-marker",iconAnchor:[20,20],iconSize:[40,40]}),opacity:0,zIndexOffset:this.options.zIndexOffset})),this._mouseMarker.on("mouseout",this._onMouseOut,this).on("mousemove",this._onMouseMove,this).on("mousedown",this._onMouseDown,this).on("mouseup",this._onMouseUp,this).addTo(this._map),this._map.on("mouseup",this._onMouseUp,this).on("mousemove",this._onMouseMove,this).on("zoomlevelschange",this._onZoomEnd,this).on("touchstart",this._onTouch,this).on("zoomend",this._onZoomEnd,this))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._clearHideErrorTimeout(),this._cleanUpShape(),this._map.removeLayer(this._markerGroup),delete this._markerGroup,delete this._markers,this._map.removeLayer(this._poly),delete this._poly,this._mouseMarker.off("mousedown",this._onMouseDown,this).off("mouseout",this._onMouseOut,this).off("mouseup",this._onMouseUp,this).off("mousemove",this._onMouseMove,this),this._map.removeLayer(this._mouseMarker),delete this._mouseMarker,this._clearGuides(),this._map.off("mouseup",this._onMouseUp,this).off("mousemove",this._onMouseMove,this).off("zoomlevelschange",this._onZoomEnd,this).off("zoomend",this._onZoomEnd,this).off("touchstart",this._onTouch,this).off("click",this._onTouch,this)},deleteLastVertex:function(){if(!(this._markers.length<=1)){var t=this._markers.pop(),e=this._poly,i=e.getLatLngs(),o=i.splice(-1,1)[0];this._poly.setLatLngs(i),this._markerGroup.removeLayer(t),e.getLatLngs().length<2&&this._map.removeLayer(e),this._vertexChanged(o,!1)}},addVertex:function(t){if(this._markers.length>=2&&!this.options.allowIntersection&&this._poly.newLatLngIntersects(t))return void this._showErrorTooltip();this._errorShown&&this._hideErrorTooltip(),this._markers.push(this._createMarker(t)),this._poly.addLatLng(t),2===this._poly.getLatLngs().length&&this._map.addLayer(this._poly),this._vertexChanged(t,!0)},completeShape:function(){this._markers.length<=1||!this._shapeIsValid()||(this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable())},_finishShape:function(){var t=this._poly._defaultShape?this._poly._defaultShape():this._poly.getLatLngs(),e=this._poly.newLatLngIntersects(t[t.length-1]);if(!this.options.allowIntersection&&e||!this._shapeIsValid())return void this._showErrorTooltip();this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()},_shapeIsValid:function(){return!0},_onZoomEnd:function(){null!==this._markers&&this._updateGuide()},_onMouseMove:function(t){var e=this._map.mouseEventToLayerPoint(t.originalEvent),i=this._map.layerPointToLatLng(e);this._currentLatLng=i,this._updateTooltip(i),this._updateGuide(e),this._mouseMarker.setLatLng(i),L.DomEvent.preventDefault(t.originalEvent)},_vertexChanged:function(t,e){this._map.fire(L.Draw.Event.DRAWVERTEX,{layers:this._markerGroup}),this._updateFinishHandler(),this._updateRunningMeasure(t,e),this._clearGuides(),this._updateTooltip()},_onMouseDown:function(t){if(!this._clickHandled&&!this._touchHandled&&!this._disableMarkers){this._onMouseMove(t),this._clickHandled=!0,this._disableNewMarkers();var e=t.originalEvent,i=e.clientX,o=e.clientY;this._startPoint.call(this,i,o)}},_startPoint:function(t,e){this._mouseDownOrigin=L.point(t,e)},_onMouseUp:function(t){var e=t.originalEvent,i=e.clientX,o=e.clientY;this._endPoint.call(this,i,o,t),this._clickHandled=null},_endPoint:function(e,i,o){if(this._mouseDownOrigin){var a=L.point(e,i).distanceTo(this._mouseDownOrigin),n=this._calculateFinishDistance(o.latlng);this.options.maxPoints>1&&this.options.maxPoints==this._markers.length+1?(this.addVertex(o.latlng),this._finishShape()):n<10&&L.Browser.touch?this._finishShape():Math.abs(a)<9*(t.devicePixelRatio||1)&&this.addVertex(o.latlng),this._enableNewMarkers()}this._mouseDownOrigin=null},_onTouch:function(t){var e,i,o=t.originalEvent;!o.touches||!o.touches[0]||this._clickHandled||this._touchHandled||this._disableMarkers||(e=o.touches[0].clientX,i=o.touches[0].clientY,this._disableNewMarkers(),this._touchHandled=!0,this._startPoint.call(this,e,i),this._endPoint.call(this,e,i,t),this._touchHandled=null),this._clickHandled=null},_onMouseOut:function(){this._tooltip&&this._tooltip._onMouseOut.call(this._tooltip)},_calculateFinishDistance:function(t){var e;if(this._markers.length>0){var i;if(this.type===L.Draw.Polyline.TYPE)i=this._markers[this._markers.length-1];else{if(this.type!==L.Draw.Polygon.TYPE)return 1/0;i=this._markers[0]}var o=this._map.latLngToContainerPoint(i.getLatLng()),a=new L.Marker(t,{icon:this.options.icon,zIndexOffset:2*this.options.zIndexOffset}),n=this._map.latLngToContainerPoint(a.getLatLng());e=o.distanceTo(n)}else e=1/0;return e},_updateFinishHandler:function(){var t=this._markers.length;t>1&&this._markers[t-1].on("click",this._finishShape,this),t>2&&this._markers[t-2].off("click",this._finishShape,this)},_createMarker:function(t){var e=new L.Marker(t,{icon:this.options.icon,zIndexOffset:2*this.options.zIndexOffset});return this._markerGroup.addLayer(e),e},_updateGuide:function(t){var e=this._markers?this._markers.length:0;e>0&&(t=t||this._map.latLngToLayerPoint(this._currentLatLng),this._clearGuides(),this._drawGuide(this._map.latLngToLayerPoint(this._markers[e-1].getLatLng()),t))},_updateTooltip:function(t){var e=this._getTooltipText();t&&this._tooltip.updatePosition(t),this._errorShown||this._tooltip.updateContent(e)},_drawGuide:function(t,e){var i,o,a,n=Math.floor(Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))),s=this.options.guidelineDistance,r=this.options.maxGuideLineLength,l=n>r?n-r:s;for(this._guidesContainer||(this._guidesContainer=L.DomUtil.create("div","leaflet-draw-guides",this._overlayPane));l1&&this._markers[this._markers.length-1].off("click",this._finishShape,this)},_fireCreatedEvent:function(){var t=new this.Poly(this._poly.getLatLngs(),this.options.shapeOptions);L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)}}),L.Draw.Polygon=L.Draw.Polyline.extend({statics:{TYPE:"polygon"},Poly:L.Polygon,options:{showArea:!1,showLength:!1,shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},metric:!0,feet:!0,nautic:!1,precision:{}},initialize:function(t,e){L.Draw.Polyline.prototype.initialize.call(this,t,e),this.type=L.Draw.Polygon.TYPE},_updateFinishHandler:function(){var t=this._markers.length;1===t&&this._markers[0].on("click",this._finishShape,this),t>2&&(this._markers[t-1].on("dblclick",this._finishShape,this),t>3&&this._markers[t-2].off("dblclick",this._finishShape,this))},_getTooltipText:function(){var t,e;return 0===this._markers.length?t=L.drawLocal.draw.handlers.polygon.tooltip.start:this._markers.length<3?(t=L.drawLocal.draw.handlers.polygon.tooltip.cont,e=this._getMeasurementString()):(t=L.drawLocal.draw.handlers.polygon.tooltip.end,e=this._getMeasurementString()),{text:t,subtext:e}},_getMeasurementString:function(){var t=this._area,e="";return t||this.options.showLength?(this.options.showLength&&(e=L.Draw.Polyline.prototype._getMeasurementString.call(this)),t&&(e+="
"+L.GeometryUtil.readableArea(t,this.options.metric,this.options.precision)),e):null},_shapeIsValid:function(){return this._markers.length>=3},_vertexChanged:function(t,e){var i;!this.options.allowIntersection&&this.options.showArea&&(i=this._poly.getLatLngs(),this._area=L.GeometryUtil.geodesicArea(i)),L.Draw.Polyline.prototype._vertexChanged.call(this,t,e)},_cleanUpShape:function(){var t=this._markers.length;t>0&&(this._markers[0].off("click",this._finishShape,this),t>2&&this._markers[t-1].off("dblclick",this._finishShape,this))}}),L.SimpleShape={},L.Draw.SimpleShape=L.Draw.Feature.extend({options:{repeatMode:!1},initialize:function(t,e){this._endLabelText=L.drawLocal.draw.handlers.simpleshape.tooltip.end,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._mapDraggable=this._map.dragging.enabled(),this._mapDraggable&&this._map.dragging.disable(),this._container.style.cursor="crosshair",this._tooltip.updateContent({text:this._initialLabelText}),this._map.on("mousedown",this._onMouseDown,this).on("mousemove",this._onMouseMove,this).on("touchstart",this._onMouseDown,this).on("touchmove",this._onMouseMove,this),e.addEventListener("touchstart",L.DomEvent.preventDefault,{passive:!1}))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._map&&(this._mapDraggable&&this._map.dragging.enable(),this._container.style.cursor="",this._map.off("mousedown",this._onMouseDown,this).off("mousemove",this._onMouseMove,this).off("touchstart",this._onMouseDown,this).off("touchmove",this._onMouseMove,this),L.DomEvent.off(e,"mouseup",this._onMouseUp,this),L.DomEvent.off(e,"touchend",this._onMouseUp,this),e.removeEventListener("touchstart",L.DomEvent.preventDefault),this._shape&&(this._map.removeLayer(this._shape),delete this._shape)),this._isDrawing=!1},_getTooltipText:function(){return{text:this._endLabelText}},_onMouseDown:function(t){this._isDrawing=!0,this._startLatLng=t.latlng,L.DomEvent.on(e,"mouseup",this._onMouseUp,this).on(e,"touchend",this._onMouseUp,this).preventDefault(t.originalEvent)},_onMouseMove:function(t){var e=t.latlng;this._tooltip.updatePosition(e),this._isDrawing&&(this._tooltip.updateContent(this._getTooltipText()),this._drawShape(e))},_onMouseUp:function(){this._shape&&this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()}}),L.Draw.Rectangle=L.Draw.SimpleShape.extend({statics:{TYPE:"rectangle"},options:{shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},showArea:!0,metric:!0},initialize:function(t,e){this.type=L.Draw.Rectangle.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.rectangle.tooltip.start,L.Draw.SimpleShape.prototype.initialize.call(this,t,e)},disable:function(){this._enabled&&(this._isCurrentlyTwoClickDrawing=!1,L.Draw.SimpleShape.prototype.disable.call(this))},_onMouseUp:function(t){if(!this._shape&&!this._isCurrentlyTwoClickDrawing)return void(this._isCurrentlyTwoClickDrawing=!0);this._isCurrentlyTwoClickDrawing&&!o(t.target,"leaflet-pane")||L.Draw.SimpleShape.prototype._onMouseUp.call(this)},_drawShape:function(t){this._shape?this._shape.setBounds(new L.LatLngBounds(this._startLatLng,t)):(this._shape=new L.Rectangle(new L.LatLngBounds(this._startLatLng,t),this.options.shapeOptions),this._map.addLayer(this._shape))},_fireCreatedEvent:function(){var t=new L.Rectangle(this._shape.getBounds(),this.options.shapeOptions);L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this,t)},_getTooltipText:function(){var t,e,i,o=L.Draw.SimpleShape.prototype._getTooltipText.call(this),a=this._shape,n=this.options.showArea;return a&&(t=this._shape._defaultShape?this._shape._defaultShape():this._shape.getLatLngs(),e=L.GeometryUtil.geodesicArea(t),i=n?L.GeometryUtil.readableArea(e,this.options.metric):""),{text:o.text,subtext:i}}}),L.Draw.Marker=L.Draw.Feature.extend({statics:{TYPE:"marker"},options:{icon:new L.Icon.Default,repeatMode:!1,zIndexOffset:2e3},initialize:function(t,e){this.type=L.Draw.Marker.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.marker.tooltip.start,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._tooltip.updateContent({text:this._initialLabelText}),this._mouseMarker||(this._mouseMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:"leaflet-mouse-marker",iconAnchor:[20,20],iconSize:[40,40]}),opacity:0,zIndexOffset:this.options.zIndexOffset})),this._mouseMarker.on("click",this._onClick,this).addTo(this._map),this._map.on("mousemove",this._onMouseMove,this),this._map.on("click",this._onTouch,this))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._map&&(this._map.off("click",this._onClick,this).off("click",this._onTouch,this),this._marker&&(this._marker.off("click",this._onClick,this),this._map.removeLayer(this._marker),delete this._marker),this._mouseMarker.off("click",this._onClick,this),this._map.removeLayer(this._mouseMarker),delete this._mouseMarker,this._map.off("mousemove",this._onMouseMove,this))},_onMouseMove:function(t){var e=t.latlng;this._tooltip.updatePosition(e),this._mouseMarker.setLatLng(e),this._marker?(e=this._mouseMarker.getLatLng(),this._marker.setLatLng(e)):(this._marker=this._createMarker(e),this._marker.on("click",this._onClick,this),this._map.on("click",this._onClick,this).addLayer(this._marker))},_createMarker:function(t){return new L.Marker(t,{icon:this.options.icon,zIndexOffset:this.options.zIndexOffset})},_onClick:function(){this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()},_onTouch:function(t){this._onMouseMove(t),this._onClick()},_fireCreatedEvent:function(){var t=new L.Marker.Touch(this._marker.getLatLng(),{icon:this.options.icon});L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)}}),L.Draw.CircleMarker=L.Draw.Marker.extend({statics:{TYPE:"circlemarker"},options:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0,zIndexOffset:2e3},initialize:function(t,e){this.type=L.Draw.CircleMarker.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.circlemarker.tooltip.start,L.Draw.Feature.prototype.initialize.call(this,t,e)},_fireCreatedEvent:function(){var t=new L.CircleMarker(this._marker.getLatLng(),this.options);L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)},_createMarker:function(t){return new L.CircleMarker(t,this.options)}}),L.Draw.Circle=L.Draw.SimpleShape.extend({statics:{TYPE:"circle"},options:{shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},showRadius:!0,metric:!0,feet:!0,nautic:!1},initialize:function(t,e){this.type=L.Draw.Circle.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.circle.tooltip.start,L.Draw.SimpleShape.prototype.initialize.call(this,t,e)},_drawShape:function(t){if(L.GeometryUtil.isVersion07x())var e=this._startLatLng.distanceTo(t);else var e=this._map.distance(this._startLatLng,t);this._shape?this._shape.setRadius(e):(this._shape=new L.Circle(this._startLatLng,e,this.options.shapeOptions),this._map.addLayer(this._shape))},_fireCreatedEvent:function(){var t=new L.Circle(this._startLatLng,this._shape.getRadius(),this.options.shapeOptions);L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this,t)},_onMouseMove:function(t){var e,i=t.latlng,o=this.options.showRadius,a=this.options.metric;if(this._tooltip.updatePosition(i),this._isDrawing){this._drawShape(i),e=this._shape.getRadius().toFixed(1);var n="";o&&(n=L.drawLocal.draw.handlers.circle.radius+": "+L.GeometryUtil.readableDistance(e,a,this.options.feet,this.options.nautic)),this._tooltip.updateContent({text:this._endLabelText,subtext:n})}}}),L.Edit=L.Edit||{},L.Edit.Marker=L.Handler.extend({initialize:function(t,e){this._marker=t,L.setOptions(this,e)},addHooks:function(){var t=this._marker;t.dragging.enable(),t.on("dragend",this._onDragEnd,t),this._toggleMarkerHighlight()},removeHooks:function(){var t=this._marker;t.dragging.disable(),t.off("dragend",this._onDragEnd,t),this._toggleMarkerHighlight()},_onDragEnd:function(t){var e=t.target;e.edited=!0,this._map.fire(L.Draw.Event.EDITMOVE,{layer:e})},_toggleMarkerHighlight:function(){var t=this._marker._icon;t&&(t.style.display="none",L.DomUtil.hasClass(t,"leaflet-edit-marker-selected")?(L.DomUtil.removeClass(t,"leaflet-edit-marker-selected"),this._offsetMarker(t,-4)):(L.DomUtil.addClass(t,"leaflet-edit-marker-selected"),this._offsetMarker(t,4)),t.style.display="")},_offsetMarker:function(t,e){var i=parseInt(t.style.marginTop,10)-e,o=parseInt(t.style.marginLeft,10)-e;t.style.marginTop=i+"px",t.style.marginLeft=o+"px"}}),L.Marker.addInitHook(function(){L.Edit.Marker&&(this.editing=new L.Edit.Marker(this),this.options.editable&&this.editing.enable())}),L.Edit=L.Edit||{},L.Edit.Poly=L.Handler.extend({initialize:function(t){this.latlngs=[t._latlngs],t._holes&&(this.latlngs=this.latlngs.concat(t._holes)),this._poly=t,this._poly.on("revert-edited",this._updateLatLngs,this)},_defaultShape:function(){return L.Polyline._flat?L.Polyline._flat(this._poly._latlngs)?this._poly._latlngs:this._poly._latlngs[0]:this._poly._latlngs},_eachVertexHandler:function(t){for(var e=0;et&&(i._index+=e)})},_createMiddleMarker:function(t,e){var i,o,a,n=this._getMiddleLatLng(t,e),s=this._createMarker(n);s.setOpacity(.6),t._middleRight=e._middleLeft=s,o=function(){s.off("touchmove",o,this);var a=e._index;s._index=a,s.off("click",i,this).on("click",this._onMarkerClick,this),n.lat=s.getLatLng().lat,n.lng=s.getLatLng().lng,this._spliceLatLngs(a,0,n),this._markers.splice(a,0,s),s.setOpacity(1),this._updateIndexes(a,1),e._index++,this._updatePrevNext(t,s),this._updatePrevNext(s,e),this._poly.fire("editstart")},a=function(){s.off("dragstart",o,this),s.off("dragend",a,this),s.off("touchmove",o,this),this._createMiddleMarker(t,s),this._createMiddleMarker(s,e)},i=function(){o.call(this),a.call(this),this._fireEdit()},s.on("click",i,this).on("dragstart",o,this).on("dragend",a,this).on("touchmove",o,this),this._markerGroup.addLayer(s)},_updatePrevNext:function(t,e){t&&(t._next=e),e&&(e._prev=t)},_getMiddleLatLng:function(t,e){var i=this._poly._map,o=i.project(t.getLatLng()),a=i.project(e.getLatLng());return i.unproject(o._add(a)._divideBy(2))}}),L.Polyline.addInitHook(function(){this.editing||(L.Edit.Poly&&(this.editing=new L.Edit.Poly(this),this.options.editable&&this.editing.enable()),this.on("add",function(){this.editing&&this.editing.enabled()&&this.editing.addHooks()}),this.on("remove",function(){this.editing&&this.editing.enabled()&&this.editing.removeHooks()}))}),L.Edit=L.Edit||{},L.Edit.SimpleShape=L.Handler.extend({options:{moveIcon:new L.DivIcon({iconSize:new L.Point(8,8),className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-move"}),resizeIcon:new L.DivIcon({iconSize:new L.Point(8,8), +className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize"}),touchMoveIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-move leaflet-touch-icon"}),touchResizeIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize leaflet-touch-icon"})},initialize:function(t,e){L.Browser.touch&&(this.options.moveIcon=this.options.touchMoveIcon,this.options.resizeIcon=this.options.touchResizeIcon),this._shape=t,L.Util.setOptions(this,e)},addHooks:function(){var t=this._shape;this._shape._map&&(this._map=this._shape._map,t.setStyle(t.options.editing),t._map&&(this._map=t._map,this._markerGroup||this._initMarkers(),this._map.addLayer(this._markerGroup)))},removeHooks:function(){var t=this._shape;if(t.setStyle(t.options.original),t._map){this._unbindMarker(this._moveMarker);for(var e=0,i=this._resizeMarkers.length;e"+L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.draw.handlers.circle.radius+": "+L.GeometryUtil.readableDistance(radius,!0,this.options.feet,this.options.nautic)}),this._shape.setRadius(radius),this._map.fire(L.Draw.Event.EDITRESIZE,{layer:this._shape})}}),L.Circle.addInitHook(function(){L.Edit.Circle&&(this.editing=new L.Edit.Circle(this),this.options.editable&&this.editing.enable())}),L.Map.mergeOptions({touchExtend:!0}),L.Map.TouchExtend=L.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane},addHooks:function(){L.DomEvent.on(this._container,"touchstart",this._onTouchStart,this),L.DomEvent.on(this._container,"touchend",this._onTouchEnd,this),L.DomEvent.on(this._container,"touchmove",this._onTouchMove,this),this._detectIE()?(L.DomEvent.on(this._container,"MSPointerDown",this._onTouchStart,this),L.DomEvent.on(this._container,"MSPointerUp",this._onTouchEnd,this),L.DomEvent.on(this._container,"MSPointerMove",this._onTouchMove,this),L.DomEvent.on(this._container,"MSPointerCancel",this._onTouchCancel,this)):(L.DomEvent.on(this._container,"touchcancel",this._onTouchCancel,this),L.DomEvent.on(this._container,"touchleave",this._onTouchLeave,this))},removeHooks:function(){L.DomEvent.off(this._container,"touchstart",this._onTouchStart,this),L.DomEvent.off(this._container,"touchend",this._onTouchEnd,this),L.DomEvent.off(this._container,"touchmove",this._onTouchMove,this),this._detectIE()?(L.DomEvent.off(this._container,"MSPointerDown",this._onTouchStart,this),L.DomEvent.off(this._container,"MSPointerUp",this._onTouchEnd,this),L.DomEvent.off(this._container,"MSPointerMove",this._onTouchMove,this),L.DomEvent.off(this._container,"MSPointerCancel",this._onTouchCancel,this)):(L.DomEvent.off(this._container,"touchcancel",this._onTouchCancel,this),L.DomEvent.off(this._container,"touchleave",this._onTouchLeave,this))},_touchEvent:function(t,e){var i={};if(void 0!==t.touches){if(!t.touches.length)return;i=t.touches[0]}else{if("touch"!==t.pointerType)return;if(i=t,!this._filterClick(t))return}var o=this._map.mouseEventToContainerPoint(i),a=this._map.mouseEventToLayerPoint(i),n=this._map.layerPointToLatLng(a);this._map.fire(e,{latlng:n,layerPoint:a,containerPoint:o,pageX:i.pageX,pageY:i.pageY,originalEvent:t})},_filterClick:function(t){var e=t.timeStamp||t.originalEvent.timeStamp,i=L.DomEvent._lastClick&&e-L.DomEvent._lastClick;return i&&i>100&&i<500||t.target._simulatedClick&&!t._simulated?(L.DomEvent.stop(t),!1):(L.DomEvent._lastClick=e,!0)},_onTouchStart:function(t){if(this._map._loaded){this._touchEvent(t,"touchstart")}},_onTouchEnd:function(t){if(this._map._loaded){this._touchEvent(t,"touchend")}},_onTouchCancel:function(t){if(this._map._loaded){var e="touchcancel";this._detectIE()&&(e="pointercancel"),this._touchEvent(t,e)}},_onTouchLeave:function(t){if(this._map._loaded){this._touchEvent(t,"touchleave")}},_onTouchMove:function(t){if(this._map._loaded){this._touchEvent(t,"touchmove")}},_detectIE:function(){var e=t.navigator.userAgent,i=e.indexOf("MSIE ");if(i>0)return parseInt(e.substring(i+5,e.indexOf(".",i)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var a=e.indexOf("Edge/");return a>0&&parseInt(e.substring(a+5,e.indexOf(".",a)),10)}}),L.Map.addInitHook("addHandler","touchExtend",L.Map.TouchExtend),L.Marker.Touch=L.Marker.extend({_initInteraction:function(){return this.addInteractiveTarget?L.Marker.prototype._initInteraction.apply(this):this._initInteractionLegacy()},_initInteractionLegacy:function(){if(this.options.clickable){var t=this._icon,e=["dblclick","mousedown","mouseover","mouseout","contextmenu","touchstart","touchend","touchmove"];this._detectIE?e.concat(["MSPointerDown","MSPointerUp","MSPointerMove","MSPointerCancel"]):e.concat(["touchcancel"]),L.DomUtil.addClass(t,"leaflet-clickable"),L.DomEvent.on(t,"click",this._onMouseClick,this),L.DomEvent.on(t,"keypress",this._onKeyPress,this);for(var i=0;i0)return parseInt(e.substring(i+5,e.indexOf(".",i)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var a=e.indexOf("Edge/");return a>0&&parseInt(e.substring(a+5,e.indexOf(".",a)),10)}}),L.LatLngUtil={cloneLatLngs:function(t){for(var e=[],i=0,o=t.length;i2){for(var s=0;s1&&(i=i+s+r[1])}return i},readableArea:function(e,i,o){var a,n,o=L.Util.extend({},t,o);return i?(n=["ha","m"],type=typeof i,"string"===type?n=[i]:"boolean"!==type&&(n=i),a=e>=1e6&&-1!==n.indexOf("km")?L.GeometryUtil.formattedNumber(1e-6*e,o.km)+" km²":e>=1e4&&-1!==n.indexOf("ha")?L.GeometryUtil.formattedNumber(1e-4*e,o.ha)+" ha":L.GeometryUtil.formattedNumber(e,o.m)+" m²"):(e/=.836127,a=e>=3097600?L.GeometryUtil.formattedNumber(e/3097600,o.mi)+" mi²":e>=4840?L.GeometryUtil.formattedNumber(e/4840,o.ac)+" acres":L.GeometryUtil.formattedNumber(e,o.yd)+" yd²"),a},readableDistance:function(e,i,o,a,n){var s,n=L.Util.extend({},t,n);switch(i?"string"==typeof i?i:"metric":o?"feet":a?"nauticalMile":"yards"){case"metric":s=e>1e3?L.GeometryUtil.formattedNumber(e/1e3,n.km)+" km":L.GeometryUtil.formattedNumber(e,n.m)+" m";break;case"feet":e*=3.28083,s=L.GeometryUtil.formattedNumber(e,n.ft)+" ft";break;case"nauticalMile":e*=.53996,s=L.GeometryUtil.formattedNumber(e/1e3,n.nm)+" nm";break;case"yards":default:e*=1.09361,s=e>1760?L.GeometryUtil.formattedNumber(e/1760,n.mi)+" miles":L.GeometryUtil.formattedNumber(e,n.yd)+" yd"}return s},isVersion07x:function(){var t=L.version.split(".");return 0===parseInt(t[0],10)&&7===parseInt(t[1],10)}})}(),L.Util.extend(L.LineUtil,{segmentsIntersect:function(t,e,i,o){return this._checkCounterclockwise(t,i,o)!==this._checkCounterclockwise(e,i,o)&&this._checkCounterclockwise(t,e,i)!==this._checkCounterclockwise(t,e,o)},_checkCounterclockwise:function(t,e,i){return(i.y-t.y)*(e.x-t.x)>(e.y-t.y)*(i.x-t.x)}}),L.Polyline.include({intersects:function(){var t,e,i,o=this._getProjectedPoints(),a=o?o.length:0;if(this._tooFewPointsForIntersection())return!1;for(t=a-1;t>=3;t--)if(e=o[t-1],i=o[t],this._lineSegmentsIntersectsRange(e,i,t-2))return!0;return!1},newLatLngIntersects:function(t,e){return!!this._map&&this.newPointIntersects(this._map.latLngToLayerPoint(t),e)},newPointIntersects:function(t,e){var i=this._getProjectedPoints(),o=i?i.length:0,a=i?i[o-1]:null,n=o-2;return!this._tooFewPointsForIntersection(1)&&this._lineSegmentsIntersectsRange(a,t,n,e?1:0)},_tooFewPointsForIntersection:function(t){var e=this._getProjectedPoints(),i=e?e.length:0;return i+=t||0,!e||i<=3},_lineSegmentsIntersectsRange:function(t,e,i,o){var a,n,s=this._getProjectedPoints();o=o||0;for(var r=i;r>o;r--)if(a=s[r-1],n=s[r],L.LineUtil.segmentsIntersect(t,e,a,n))return!0;return!1},_getProjectedPoints:function(){if(!this._defaultShape)return this._originalPoints;for(var t=[],e=this._defaultShape(),i=0;i=2?L.Toolbar.include(L.Evented.prototype):L.Toolbar.include(L.Mixin.Events)},enabled:function(){return null!==this._activeMode},disable:function(){this.enabled()&&this._activeMode.handler.disable()},addToolbar:function(t){var e,i=L.DomUtil.create("div","leaflet-draw-section"),o=0,a=this._toolbarClass||"",n=this.getModeHandlers(t);for(this._toolbarContainer=L.DomUtil.create("div","leaflet-draw-toolbar leaflet-bar"),this._map=t,e=0;e0&&this._singleLineLabel&&(L.DomUtil.removeClass(this._container,"leaflet-draw-tooltip-single"),this._singleLineLabel=!1):(L.DomUtil.addClass(this._container,"leaflet-draw-tooltip-single"),this._singleLineLabel=!0),this._container.innerHTML=(t.subtext.length>0?''+t.subtext+"
":"")+""+t.text+"",t.text||t.subtext?(this._visible=!0,this._container.style.visibility="inherit"):(this._visible=!1,this._container.style.visibility="hidden"),this):this},updatePosition:function(t){var e=this._map.latLngToLayerPoint(t),i=this._container;return this._container&&(this._visible&&(i.style.visibility="inherit"),L.DomUtil.setPosition(i,e)),this},showAsError:function(){return this._container&&L.DomUtil.addClass(this._container,"leaflet-error-draw-tooltip"),this},removeError:function(){return this._container&&L.DomUtil.removeClass(this._container,"leaflet-error-draw-tooltip"),this},_onMouseOut:function(){this._container&&(this._container.style.visibility="hidden")}}),L.DrawToolbar=L.Toolbar.extend({statics:{TYPE:"draw"},options:{polyline:{},polygon:{},rectangle:{},circle:{},marker:{},circlemarker:{}},initialize:function(t){for(var e in this.options)this.options.hasOwnProperty(e)&&t[e]&&(t[e]=L.extend({},this.options[e],t[e]));this._toolbarClass="leaflet-draw-draw",L.Toolbar.prototype.initialize.call(this,t)},getModeHandlers:function(t){return[{enabled:this.options.polyline,handler:new L.Draw.Polyline(t,this.options.polyline),title:L.drawLocal.draw.toolbar.buttons.polyline},{enabled:this.options.polygon,handler:new L.Draw.Polygon(t,this.options.polygon),title:L.drawLocal.draw.toolbar.buttons.polygon},{enabled:this.options.rectangle,handler:new L.Draw.Rectangle(t,this.options.rectangle),title:L.drawLocal.draw.toolbar.buttons.rectangle},{enabled:this.options.circle,handler:new L.Draw.Circle(t,this.options.circle),title:L.drawLocal.draw.toolbar.buttons.circle},{enabled:this.options.marker,handler:new L.Draw.Marker(t,this.options.marker),title:L.drawLocal.draw.toolbar.buttons.marker},{enabled:this.options.circlemarker,handler:new L.Draw.CircleMarker(t,this.options.circlemarker),title:L.drawLocal.draw.toolbar.buttons.circlemarker}]},getActions:function(t){return[{enabled:t.completeShape,title:L.drawLocal.draw.toolbar.finish.title,text:L.drawLocal.draw.toolbar.finish.text,callback:t.completeShape,context:t},{enabled:t.deleteLastVertex,title:L.drawLocal.draw.toolbar.undo.title,text:L.drawLocal.draw.toolbar.undo.text,callback:t.deleteLastVertex,context:t},{title:L.drawLocal.draw.toolbar.actions.title,text:L.drawLocal.draw.toolbar.actions.text,callback:this.disable,context:this}]},setOptions:function(t){L.setOptions(this,t);for(var e in this._modes)this._modes.hasOwnProperty(e)&&t.hasOwnProperty(e)&&this._modes[e].handler.setOptions(t[e])}}),L.EditToolbar=L.Toolbar.extend({statics:{TYPE:"edit"},options:{edit:{selectedPathOptions:{dashArray:"10, 10",fill:!0,fillColor:"#fe57a1",fillOpacity:.1,maintainColor:!1}},remove:{},poly:null,featureGroup:null},initialize:function(t){t.edit&&(void 0===t.edit.selectedPathOptions&&(t.edit.selectedPathOptions=this.options.edit.selectedPathOptions),t.edit.selectedPathOptions=L.extend({},this.options.edit.selectedPathOptions,t.edit.selectedPathOptions)),t.remove&&(t.remove=L.extend({},this.options.remove,t.remove)),t.poly&&(t.poly=L.extend({},this.options.poly,t.poly)),this._toolbarClass="leaflet-draw-edit",L.Toolbar.prototype.initialize.call(this,t),this._selectedFeatureCount=0},getModeHandlers:function(t){var e=this.options.featureGroup;return[{enabled:this.options.edit,handler:new L.EditToolbar.Edit(t,{featureGroup:e,selectedPathOptions:this.options.edit.selectedPathOptions,poly:this.options.poly}),title:L.drawLocal.edit.toolbar.buttons.edit},{enabled:this.options.remove,handler:new L.EditToolbar.Delete(t,{featureGroup:e}),title:L.drawLocal.edit.toolbar.buttons.remove}]},getActions:function(t){var e=[{title:L.drawLocal.edit.toolbar.actions.save.title,text:L.drawLocal.edit.toolbar.actions.save.text,callback:this._save,context:this},{title:L.drawLocal.edit.toolbar.actions.cancel.title,text:L.drawLocal.edit.toolbar.actions.cancel.text,callback:this.disable,context:this}];return t.removeAllLayers&&e.push({title:L.drawLocal.edit.toolbar.actions.clearAll.title,text:L.drawLocal.edit.toolbar.actions.clearAll.text,callback:this._clearAllLayers,context:this}),e},addToolbar:function(t){var e=L.Toolbar.prototype.addToolbar.call(this,t);return this._checkDisabled(),this.options.featureGroup.on("layeradd layerremove",this._checkDisabled,this),e},removeToolbar:function(){this.options.featureGroup.off("layeradd layerremove",this._checkDisabled,this),L.Toolbar.prototype.removeToolbar.call(this)},disable:function(){this.enabled()&&(this._activeMode.handler.revertLayers(),L.Toolbar.prototype.disable.call(this))},_save:function(){this._activeMode.handler.save(),this._activeMode&&this._activeMode.handler.disable()},_clearAllLayers:function(){this._activeMode.handler.removeAllLayers(),this._activeMode&&this._activeMode.handler.disable()},_checkDisabled:function(){var t,e=this.options.featureGroup,i=0!==e.getLayers().length;this.options.edit&&(t=this._modes[L.EditToolbar.Edit.TYPE].button,i?L.DomUtil.removeClass(t,"leaflet-disabled"):L.DomUtil.addClass(t,"leaflet-disabled"),t.setAttribute("title",i?L.drawLocal.edit.toolbar.buttons.edit:L.drawLocal.edit.toolbar.buttons.editDisabled)),this.options.remove&&(t=this._modes[L.EditToolbar.Delete.TYPE].button,i?L.DomUtil.removeClass(t,"leaflet-disabled"):L.DomUtil.addClass(t,"leaflet-disabled"),t.setAttribute("title",i?L.drawLocal.edit.toolbar.buttons.remove:L.drawLocal.edit.toolbar.buttons.removeDisabled))}}),L.EditToolbar.Edit=L.Handler.extend({statics:{TYPE:"edit"},initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.setOptions(this,e),this._featureGroup=e.featureGroup,!(this._featureGroup instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this._uneditedLayerProps={},this.type=L.EditToolbar.Edit.TYPE;var i=L.version.split(".");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.EditToolbar.Edit.include(L.Evented.prototype):L.EditToolbar.Edit.include(L.Mixin.Events)},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire(L.Draw.Event.EDITSTART,{handler:this.type}),L.Handler.prototype.enable.call(this),this._featureGroup.on("layeradd",this._enableLayerEdit,this).on("layerremove",this._disableLayerEdit,this))},disable:function(){this._enabled&&(this._featureGroup.off("layeradd",this._enableLayerEdit,this).off("layerremove",this._disableLayerEdit,this),L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.EDITSTOP,{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._featureGroup.eachLayer(this._enableLayerEdit,this),this._tooltip=new L.Draw.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext}),t._editTooltip=this._tooltip,this._updateTooltip(),this._map.on("mousemove",this._onMouseMove,this).on("touchmove",this._onMouseMove,this).on("MSPointerMove",this._onMouseMove,this).on(L.Draw.Event.EDITVERTEX,this._updateTooltip,this))},removeHooks:function(){this._map&&(this._featureGroup.eachLayer(this._disableLayerEdit,this),this._uneditedLayerProps={},this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this).off("touchmove",this._onMouseMove,this).off("MSPointerMove",this._onMouseMove,this).off(L.Draw.Event.EDITVERTEX,this._updateTooltip,this))},revertLayers:function(){this._featureGroup.eachLayer(function(t){this._revertLayer(t)},this)},save:function(){var t=new L.LayerGroup;this._featureGroup.eachLayer(function(e){e.edited&&(t.addLayer(e),e.edited=!1)}),this._map.fire(L.Draw.Event.EDITED,{layers:t})},_backupLayer:function(t){var e=L.Util.stamp(t);this._uneditedLayerProps[e]||(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?this._uneditedLayerProps[e]={latlngs:L.LatLngUtil.cloneLatLngs(t.getLatLngs())}:t instanceof L.Circle?this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng()),radius:t.getRadius()}:(t instanceof L.Marker||t instanceof L.CircleMarker)&&(this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng())}))},_getTooltipText:function(){return{text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext}},_updateTooltip:function(){this._tooltip.updateContent(this._getTooltipText())},_revertLayer:function(t){var e=L.Util.stamp(t);t.edited=!1,this._uneditedLayerProps.hasOwnProperty(e)&&(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?t.setLatLngs(this._uneditedLayerProps[e].latlngs):t instanceof L.Circle?(t.setLatLng(this._uneditedLayerProps[e].latlng),t.setRadius(this._uneditedLayerProps[e].radius)):(t instanceof L.Marker||t instanceof L.CircleMarker)&&t.setLatLng(this._uneditedLayerProps[e].latlng),t.fire("revert-edited",{layer:t}))},_enableLayerEdit:function(t){var e,i,o=t.layer||t.target||t;this._backupLayer(o),this.options.poly&&(i=L.Util.extend({},this.options.poly),o.options.poly=i),this.options.selectedPathOptions&&(e=L.Util.extend({},this.options.selectedPathOptions),e.maintainColor&&(e.color=o.options.color,e.fillColor=o.options.fillColor),o.options.original=L.extend({},o.options),o.options.editing=e),o instanceof L.Marker?(o.editing&&o.editing.enable(),o.dragging.enable(),o.on("dragend",this._onMarkerDragEnd).on("touchmove",this._onTouchMove,this).on("MSPointerMove",this._onTouchMove,this).on("touchend",this._onMarkerDragEnd,this).on("MSPointerUp",this._onMarkerDragEnd,this)):o.editing.enable()},_disableLayerEdit:function(t){var e=t.layer||t.target||t;e.edited=!1,e.editing&&e.editing.disable(),delete e.options.editing,delete e.options.original, +this._selectedPathOptions&&(e instanceof L.Marker?this._toggleMarkerHighlight(e):(e.setStyle(e.options.previousOptions),delete e.options.previousOptions)),e instanceof L.Marker?(e.dragging.disable(),e.off("dragend",this._onMarkerDragEnd,this).off("touchmove",this._onTouchMove,this).off("MSPointerMove",this._onTouchMove,this).off("touchend",this._onMarkerDragEnd,this).off("MSPointerUp",this._onMarkerDragEnd,this)):e.editing.disable()},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_onMarkerDragEnd:function(t){var e=t.target;e.edited=!0,this._map.fire(L.Draw.Event.EDITMOVE,{layer:e})},_onTouchMove:function(t){var e=t.originalEvent.changedTouches[0],i=this._map.mouseEventToLayerPoint(e),o=this._map.layerPointToLatLng(i);t.target.setLatLng(o)},_hasAvailableLayers:function(){return 0!==this._featureGroup.getLayers().length}}),L.EditToolbar.Delete=L.Handler.extend({statics:{TYPE:"remove"},initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.Util.setOptions(this,e),this._deletableLayers=this.options.featureGroup,!(this._deletableLayers instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this.type=L.EditToolbar.Delete.TYPE;var i=L.version.split(".");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.EditToolbar.Delete.include(L.Evented.prototype):L.EditToolbar.Delete.include(L.Mixin.Events)},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire(L.Draw.Event.DELETESTART,{handler:this.type}),L.Handler.prototype.enable.call(this),this._deletableLayers.on("layeradd",this._enableLayerDelete,this).on("layerremove",this._disableLayerDelete,this))},disable:function(){this._enabled&&(this._deletableLayers.off("layeradd",this._enableLayerDelete,this).off("layerremove",this._disableLayerDelete,this),L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.DELETESTOP,{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._deletableLayers.eachLayer(this._enableLayerDelete,this),this._deletedLayers=new L.LayerGroup,this._tooltip=new L.Draw.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.remove.tooltip.text}),this._map.on("mousemove",this._onMouseMove,this))},removeHooks:function(){this._map&&(this._deletableLayers.eachLayer(this._disableLayerDelete,this),this._deletedLayers=null,this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this))},revertLayers:function(){this._deletedLayers.eachLayer(function(t){this._deletableLayers.addLayer(t),t.fire("revert-deleted",{layer:t})},this)},save:function(){this._map.fire(L.Draw.Event.DELETED,{layers:this._deletedLayers})},removeAllLayers:function(){this._deletableLayers.eachLayer(function(t){this._removeLayer({layer:t})},this),this.save()},_enableLayerDelete:function(t){(t.layer||t.target||t).on("click",this._removeLayer,this)},_disableLayerDelete:function(t){var e=t.layer||t.target||t;e.off("click",this._removeLayer,this),this._deletedLayers.removeLayer(e)},_removeLayer:function(t){var e=t.layer||t.target||t;this._deletableLayers.removeLayer(e),this._deletedLayers.addLayer(e),e.fire("deleted")},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_hasAvailableLayers:function(){return 0!==this._deletableLayers.getLayers().length}})}(window,document); \ No newline at end of file diff --git a/src/Files/Leaflet/Leaflet.Editable.js b/src/Files/Leaflet/Leaflet.Editable.js new file mode 100644 index 0000000..2ef57f2 --- /dev/null +++ b/src/Files/Leaflet/Leaflet.Editable.js @@ -0,0 +1,2089 @@ +'use strict'; +((factory, window) => { + /*globals define, module, require*/ + + // define an AMD module that relies on 'leaflet' + if (typeof define === 'function' && define.amd) { + define(['leaflet'], factory) + + // define a Common JS module that relies on 'leaflet' + } else if (typeof exports === 'object') { + module.exports = factory(require('leaflet')) + } + + // attach your plugin to the global 'L' variable + if (typeof window !== 'undefined' && window.L) { + factory(window.L) + } +})((L) => { + // 🍂miniclass CancelableEvent (Event objects) + // 🍂method cancel() + // Cancel any subsequent action. + + // 🍂miniclass VertexEvent (Event objects) + // 🍂property vertex: VertexMarker + // The vertex that fires the event. + + // 🍂miniclass ShapeEvent (Event objects) + // 🍂property shape: Array + // The shape (LatLngs array) subject of the action. + + // 🍂miniclass CancelableVertexEvent (Event objects) + // 🍂inherits VertexEvent + // 🍂inherits CancelableEvent + + // 🍂miniclass CancelableShapeEvent (Event objects) + // 🍂inherits ShapeEvent + // 🍂inherits CancelableEvent + + // 🍂miniclass LayerEvent (Event objects) + // 🍂property layer: object + // The Layer (Marker, Polyline…) subject of the action. + + // 🍂namespace Editable; 🍂class Editable; 🍂aka L.Editable + // Main edition handler. By default, it is attached to the map + // as `map.editTools` property. + // Leaflet.Editable is made to be fully extendable. You have three ways to customize + // the behaviour: using options, listening to events, or extending. + L.Editable = L.Evented.extend({ + statics: { + FORWARD: 1, + BACKWARD: -1, + }, + + options: { + // You can pass them when creating a map using the `editOptions` key. + // 🍂option zIndex: int = 1000 + // The default zIndex of the editing tools. + zIndex: 1000, + + // 🍂option polygonClass: class = L.Polygon + // Class to be used when creating a new Polygon. + polygonClass: L.Polygon, + + // 🍂option polylineClass: class = L.Polyline + // Class to be used when creating a new Polyline. + polylineClass: L.Polyline, + + // 🍂option markerClass: class = L.Marker + // Class to be used when creating a new Marker. + markerClass: L.Marker, + + // 🍂option circleMarkerClass: class = L.CircleMarker + // Class to be used when creating a new CircleMarker. + circleMarkerClass: L.CircleMarker, + + // 🍂option rectangleClass: class = L.Rectangle + // Class to be used when creating a new Rectangle. + rectangleClass: L.Rectangle, + + // 🍂option circleClass: class = L.Circle + // Class to be used when creating a new Circle. + circleClass: L.Circle, + + // 🍂option drawingCSSClass: string = 'leaflet-editable-drawing' + // CSS class to be added to the map container while drawing. + drawingCSSClass: 'leaflet-editable-drawing', + + // 🍂option drawingCursor: const = 'crosshair' + // Cursor mode set to the map while drawing. + drawingCursor: 'crosshair', + + // 🍂option editLayer: Layer = new L.LayerGroup() + // Layer used to store edit tools (vertex, line guide…). + editLayer: undefined, + + // 🍂option featuresLayer: Layer = new L.LayerGroup() + // Default layer used to store drawn features (Marker, Polyline…). + featuresLayer: undefined, + + // 🍂option polylineEditorClass: class = PolylineEditor + // Class to be used as Polyline editor. + polylineEditorClass: undefined, + + // 🍂option polygonEditorClass: class = PolygonEditor + // Class to be used as Polygon editor. + polygonEditorClass: undefined, + + // 🍂option markerEditorClass: class = MarkerEditor + // Class to be used as Marker editor. + markerEditorClass: undefined, + + // 🍂option circleMarkerEditorClass: class = CircleMarkerEditor + // Class to be used as CircleMarker editor. + circleMarkerEditorClass: undefined, + + // 🍂option rectangleEditorClass: class = RectangleEditor + // Class to be used as Rectangle editor. + rectangleEditorClass: undefined, + + // 🍂option circleEditorClass: class = CircleEditor + // Class to be used as Circle editor. + circleEditorClass: undefined, + + // 🍂option lineGuideOptions: hash = {} + // Options to be passed to the line guides. + lineGuideOptions: {}, + + // 🍂option skipMiddleMarkers: boolean = false + // Set this to true if you don't want middle markers. + skipMiddleMarkers: false, + }, + + initialize: function (map, options) { + L.setOptions(this, options) + this._lastZIndex = this.options.zIndex + this.map = map + this.editLayer = this.createEditLayer() + this.featuresLayer = this.createFeaturesLayer() + this.forwardLineGuide = this.createLineGuide() + this.backwardLineGuide = this.createLineGuide() + }, + + fireAndForward: function (type, e) { + e = e || {} + e.editTools = this + this.fire(type, e) + this.map.fire(type, e) + }, + + createLineGuide: function () { + const options = L.extend( + { dashArray: '5,10', weight: 1, interactive: false }, + this.options.lineGuideOptions + ) + return L.polyline([], options) + }, + + createVertexIcon: (options) => + L.Browser.mobile && L.Browser.touch + ? new L.Editable.TouchVertexIcon(options) + : new L.Editable.VertexIcon(options), + + createEditLayer: function () { + return this.options.editLayer || new L.LayerGroup().addTo(this.map) + }, + + createFeaturesLayer: function () { + return this.options.featuresLayer || new L.LayerGroup().addTo(this.map) + }, + + moveForwardLineGuide: function (latlng) { + if (this.forwardLineGuide._latlngs.length) { + this.forwardLineGuide._latlngs[1] = latlng + this.forwardLineGuide._bounds.extend(latlng) + this.forwardLineGuide.redraw() + } + }, + + moveBackwardLineGuide: function (latlng) { + if (this.backwardLineGuide._latlngs.length) { + this.backwardLineGuide._latlngs[1] = latlng + this.backwardLineGuide._bounds.extend(latlng) + this.backwardLineGuide.redraw() + } + }, + + anchorForwardLineGuide: function (latlng) { + this.forwardLineGuide._latlngs[0] = latlng + this.forwardLineGuide._bounds.extend(latlng) + this.forwardLineGuide.redraw() + }, + + anchorBackwardLineGuide: function (latlng) { + this.backwardLineGuide._latlngs[0] = latlng + this.backwardLineGuide._bounds.extend(latlng) + this.backwardLineGuide.redraw() + }, + + attachForwardLineGuide: function () { + this.editLayer.addLayer(this.forwardLineGuide) + }, + + attachBackwardLineGuide: function () { + this.editLayer.addLayer(this.backwardLineGuide) + }, + + detachForwardLineGuide: function () { + this.forwardLineGuide.setLatLngs([]) + this.editLayer.removeLayer(this.forwardLineGuide) + }, + + detachBackwardLineGuide: function () { + this.backwardLineGuide.setLatLngs([]) + this.editLayer.removeLayer(this.backwardLineGuide) + }, + + blockEvents: function () { + // Hack: force map not to listen to other layers events while drawing. + if (!this._oldTargets) { + this._oldTargets = this.map._targets + this.map._targets = {} + } + }, + + unblockEvents: function () { + if (this._oldTargets) { + // Reset, but keep targets created while drawing. + this.map._targets = L.extend(this.map._targets, this._oldTargets) + delete this._oldTargets + } + }, + + registerForDrawing: function (editor) { + if (this._drawingEditor) this.unregisterForDrawing(this._drawingEditor) + this.blockEvents() + editor.reset() // Make sure editor tools still receive events. + this._drawingEditor = editor + this.map.on('mousemove touchmove', editor.onDrawingMouseMove, editor) + this.map.on('mousedown', this.onMousedown, this) + this.map.on('mouseup', this.onMouseup, this) + L.DomUtil.addClass(this.map._container, this.options.drawingCSSClass) + this.defaultMapCursor = this.map._container.style.cursor + this.map._container.style.cursor = this.options.drawingCursor + }, + + unregisterForDrawing: function (editor) { + this.unblockEvents() + L.DomUtil.removeClass(this.map._container, this.options.drawingCSSClass) + this.map._container.style.cursor = this.defaultMapCursor + editor = editor || this._drawingEditor + if (!editor) return + this.map.off('mousemove touchmove', editor.onDrawingMouseMove, editor) + this.map.off('mousedown', this.onMousedown, this) + this.map.off('mouseup', this.onMouseup, this) + if (editor !== this._drawingEditor) return + delete this._drawingEditor + if (editor._drawing) editor.cancelDrawing() + }, + + onMousedown: function (e) { + if (e.originalEvent.which != 1) return + this._mouseDown = e + this._drawingEditor.onDrawingMouseDown(e) + }, + + onMouseup: function (e) { + if (this._mouseDown) { + const editor = this._drawingEditor + const mouseDown = this._mouseDown + this._mouseDown = null + editor.onDrawingMouseUp(e) + if (this._drawingEditor !== editor) return // onDrawingMouseUp may call unregisterFromDrawing. + const origin = L.point( + mouseDown.originalEvent.clientX, + mouseDown.originalEvent.clientY + ) + const distance = L.point( + e.originalEvent.clientX, + e.originalEvent.clientY + ).distanceTo(origin) + if (Math.abs(distance) < 9 * (window.devicePixelRatio || 1)) + this._drawingEditor.onDrawingClick(e) + } + }, + + // 🍂section Public methods + // You will generally access them by the `map.editTools` + // instance: + // + // `map.editTools.startPolyline();` + + // 🍂method drawing(): boolean + // Return true if any drawing action is ongoing. + drawing: function () { + return this._drawingEditor?.drawing() + }, + + // 🍂method stopDrawing() + // When you need to stop any ongoing drawing, without needing to know which editor is active. + stopDrawing: function () { + this.unregisterForDrawing() + }, + + // 🍂method commitDrawing() + // When you need to commit any ongoing drawing, without needing to know which editor is active. + commitDrawing: function (e) { + if (!this._drawingEditor) return + this._drawingEditor.commitDrawing(e) + }, + + connectCreatedToMap: function (layer) { + return this.featuresLayer.addLayer(layer) + }, + + // 🍂method startPolyline(latlng: L.LatLng, options: hash): L.Polyline + // Start drawing a Polyline. If `latlng` is given, a first point will be added. In any case, continuing on user click. + // If `options` is given, it will be passed to the Polyline class constructor. + startPolyline: function (latlng, options) { + const line = this.createPolyline([], options) + line.enableEdit(this.map).newShape(latlng) + return line + }, + + // 🍂method startPolygon(latlng: L.LatLng, options: hash): L.Polygon + // Start drawing a Polygon. If `latlng` is given, a first point will be added. In any case, continuing on user click. + // If `options` is given, it will be passed to the Polygon class constructor. + startPolygon: function (latlng, options) { + const polygon = this.createPolygon([], options) + polygon.enableEdit(this.map).newShape(latlng) + return polygon + }, + + // 🍂method startMarker(latlng: L.LatLng, options: hash): L.Marker + // Start adding a Marker. If `latlng` is given, the Marker will be shown first at this point. + // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch). + // If `options` is given, it will be passed to the Marker class constructor. + startMarker: function (latlng, options) { + latlng = latlng || this.map.getCenter().clone() + const marker = this.createMarker(latlng, options) + marker.enableEdit(this.map).startDrawing() + return marker + }, + + // 🍂method startCircleMarker(latlng: L.LatLng, options: hash): L.CircleMarker + // Start adding a CircleMarker. If `latlng` is given, the CircleMarker will be shown first at this point. + // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch). + // If `options` is given, it will be passed to the CircleMarker class constructor. + startCircleMarker: function (latlng, options) { + latlng = latlng || this.map.getCenter().clone() + const marker = this.createCircleMarker(latlng, options) + marker.enableEdit(this.map).startDrawing() + return marker + }, + + // 🍂method startRectangle(latlng: L.LatLng, options: hash): L.Rectangle + // Start drawing a Rectangle. If `latlng` is given, the Rectangle anchor will be added. In any case, continuing on user drag. + // If `options` is given, it will be passed to the Rectangle class constructor. + startRectangle: function (latlng, options) { + const corner = latlng || L.latLng([0, 0]) + const bounds = new L.LatLngBounds(corner, corner) + const rectangle = this.createRectangle(bounds, options) + rectangle.enableEdit(this.map).startDrawing() + return rectangle + }, + + // 🍂method startCircle(latlng: L.LatLng, options: hash): L.Circle + // Start drawing a Circle. If `latlng` is given, the Circle anchor will be added. In any case, continuing on user drag. + // If `options` is given, it will be passed to the Circle class constructor. + startCircle: function (latlng, options) { + latlng = latlng || this.map.getCenter().clone() + const circle = this.createCircle(latlng, options) + circle.enableEdit(this.map).startDrawing() + return circle + }, + + startHole: (editor, latlng) => { + editor.newHole(latlng) + }, + + createLayer: function (klass, latlngs, options) { + options = L.Util.extend({ editOptions: { editTools: this } }, options) + const layer = new klass(latlngs, options) + // 🍂namespace Editable + // 🍂event editable:created: LayerEvent + // Fired when a new feature (Marker, Polyline…) is created. + this.fireAndForward('editable:created', { layer: layer }) + return layer + }, + + createPolyline: function (latlngs, options) { + return this.createLayer( + options?.polylineClass || this.options.polylineClass, + latlngs, + options + ) + }, + + createPolygon: function (latlngs, options) { + return this.createLayer( + options?.polygonClass || this.options.polygonClass, + latlngs, + options + ) + }, + + createMarker: function (latlng, options) { + return this.createLayer( + options?.markerClass || this.options.markerClass, + latlng, + options + ) + }, + + createCircleMarker: function (latlng, options) { + return this.createLayer( + options?.circleMarkerClass || this.options.circleMarkerClass, + latlng, + options + ) + }, + + createRectangle: function (bounds, options) { + return this.createLayer( + options?.rectangleClass || this.options.rectangleClass, + bounds, + options + ) + }, + + createCircle: function (latlng, options) { + return this.createLayer( + options?.circleClass || this.options.circleClass, + latlng, + options + ) + }, + }) + + L.extend(L.Editable, { + makeCancellable: (e) => { + e.cancel = () => { + e._cancelled = true + } + }, + }) + + // 🍂namespace Map; 🍂class Map + // Leaflet.Editable add options and events to the `L.Map` object. + // See `Editable` events for the list of events fired on the Map. + // 🍂example + // + // ```js + // var map = L.map('map', { + // editable: true, + // editOptions: { + // … + // } + // }); + // ``` + // 🍂section Editable Map Options + L.Map.mergeOptions({ + // 🍂namespace Map + // 🍂section Map Options + // 🍂option editToolsClass: class = L.Editable + // Class to be used as vertex, for path editing. + editToolsClass: L.Editable, + + // 🍂option editable: boolean = false + // Whether to create a L.Editable instance at map init. + editable: false, + + // 🍂option editOptions: hash = {} + // Options to pass to L.Editable when instantiating. + editOptions: {}, + }) + + L.Map.addInitHook(function () { + this.whenReady(function () { + if (this.options.editable) { + this.editTools = new this.options.editToolsClass(this, this.options.editOptions) + } + }) + }) + + L.Editable.VertexIcon = L.DivIcon.extend({ + options: { + iconSize: new L.Point(8, 8), + }, + }) + + L.Editable.TouchVertexIcon = L.Editable.VertexIcon.extend({ + options: { + iconSize: new L.Point(20, 20), + }, + }) + + // 🍂namespace Editable; 🍂class VertexMarker; Handler for dragging path vertices. + L.Editable.VertexMarker = L.Marker.extend({ + options: { + draggable: true, + className: 'leaflet-div-icon leaflet-vertex-icon', + }, + + // 🍂section Public methods + // The marker used to handle path vertex. You will usually interact with a `VertexMarker` + // instance when listening for events like `editable:vertex:ctrlclick`. + + initialize: function (latlng, latlngs, editor, options) { + // We don't use this._latlng, because on drag Leaflet replace it while + // we want to keep reference. + this.latlng = latlng + this.latlngs = latlngs + this.editor = editor + L.Marker.prototype.initialize.call(this, latlng, options) + this.options.icon = this.editor.tools.createVertexIcon({ + className: this.options.className, + }) + this.latlng.__vertex = this + this.connect() + this.setZIndexOffset(editor.tools._lastZIndex + 1) + }, + + connect: function () { + this.editor.editLayer.addLayer(this) + }, + + onAdd: function (map) { + L.Marker.prototype.onAdd.call(this, map) + this.on('drag', this.onDrag) + this.on('dragstart', this.onDragStart) + this.on('dragend', this.onDragEnd) + this.on('mouseup', this.onMouseup) + this.on('click', this.onClick) + this.on('contextmenu', this.onContextMenu) + this.on('mousedown touchstart', this.onMouseDown) + this.on('mouseover', this.onMouseOver) + this.on('mouseout', this.onMouseOut) + this.addMiddleMarkers() + }, + + onRemove: function (map) { + if (this.middleMarker) this.middleMarker.delete() + delete this.latlng.__vertex + this.off('drag', this.onDrag) + this.off('dragstart', this.onDragStart) + this.off('dragend', this.onDragEnd) + this.off('mouseup', this.onMouseup) + this.off('click', this.onClick) + this.off('contextmenu', this.onContextMenu) + this.off('mousedown touchstart', this.onMouseDown) + this.off('mouseover', this.onMouseOver) + this.off('mouseout', this.onMouseOut) + L.Marker.prototype.onRemove.call(this, map) + }, + + onDrag: function (e) { + e.vertex = this + this.editor.onVertexMarkerDrag(e) + const iconPos = L.DomUtil.getPosition(this._icon) + const latlng = this._map.layerPointToLatLng(iconPos) + this.latlng.update(latlng) + this._latlng = this.latlng // Push back to Leaflet our reference. + this.editor.refresh() + if (this.middleMarker) this.middleMarker.updateLatLng() + const next = this.getNext() + if (next?.middleMarker) next.middleMarker.updateLatLng() + }, + + onDragStart: function (e) { + e.vertex = this + this.editor.onVertexMarkerDragStart(e) + }, + + onDragEnd: function (e) { + e.vertex = this + this.editor.onVertexMarkerDragEnd(e) + }, + + onClick: function (e) { + e.vertex = this + this.editor.onVertexMarkerClick(e) + }, + + onMouseup: function (e) { + L.DomEvent.stop(e) + e.vertex = this + this.editor.map.fire('mouseup', e) + }, + + onContextMenu: function (e) { + e.vertex = this + this.editor.onVertexMarkerContextMenu(e) + }, + + onMouseDown: function (e) { + e.vertex = this + this.editor.onVertexMarkerMouseDown(e) + }, + + onMouseOver: function (e) { + e.vertex = this + this.editor.onVertexMarkerMouseOver(e) + }, + + onMouseOut: function (e) { + e.vertex = this + this.editor.onVertexMarkerMouseOut(e) + }, + + // 🍂method delete() + // Delete a vertex and the related LatLng. + delete: function () { + const next = this.getNext() // Compute before changing latlng + this.latlngs.splice(this.getIndex(), 1) + this.editor.editLayer.removeLayer(this) + this.editor.onVertexDeleted({ latlng: this.latlng, vertex: this }) + if (!this.latlngs.length) this.editor.deleteShape(this.latlngs) + if (next) next.resetMiddleMarker() + this.editor.refresh() + }, + + // 🍂method getIndex(): int + // Get the index of the current vertex among others of the same LatLngs group. + getIndex: function () { + return this.latlngs.indexOf(this.latlng) + }, + + // 🍂method getLastIndex(): int + // Get last vertex index of the LatLngs group of the current vertex. + getLastIndex: function () { + return this.latlngs.length - 1 + }, + + // 🍂method getPrevious(): VertexMarker + // Get the previous VertexMarker in the same LatLngs group. + getPrevious: function () { + if (this.latlngs.length < 2) return + const index = this.getIndex() + let previousIndex = index - 1 + if (index === 0 && this.editor.CLOSED) previousIndex = this.getLastIndex() + const previous = this.latlngs[previousIndex] + if (previous) return previous.__vertex + }, + + // 🍂method getNext(): VertexMarker + // Get the next VertexMarker in the same LatLngs group. + getNext: function () { + if (this.latlngs.length < 2) return + const index = this.getIndex() + let nextIndex = index + 1 + if (index === this.getLastIndex() && this.editor.CLOSED) nextIndex = 0 + const next = this.latlngs[nextIndex] + if (next) return next.__vertex + }, + + addMiddleMarker: function (previous) { + if (!this.editor.hasMiddleMarkers()) return + previous = previous || this.getPrevious() + if (previous && !this.middleMarker) + this.middleMarker = this.editor.addMiddleMarker( + previous, + this, + this.latlngs, + this.editor + ) + }, + + addMiddleMarkers: function () { + if (!this.editor.hasMiddleMarkers()) return + const previous = this.getPrevious() + if (previous) this.addMiddleMarker(previous) + const next = this.getNext() + if (next) next.resetMiddleMarker() + }, + + resetMiddleMarker: function () { + if (this.middleMarker) this.middleMarker.delete() + this.addMiddleMarker() + }, + + // 🍂method split() + // Split the vertex LatLngs group at its index, if possible. + split: function () { + if (!this.editor.splitShape) return // Only for PolylineEditor + this.editor.splitShape(this.latlngs, this.getIndex()) + }, + + // 🍂method continue() + // Continue the vertex LatLngs from this vertex. Only active for first and last vertices of a Polyline. + continue: function () { + if (!this.editor.continueBackward) return // Only for PolylineEditor + const index = this.getIndex() + if (index === 0) this.editor.continueBackward(this.latlngs) + else if (index === this.getLastIndex()) this.editor.continueForward(this.latlngs) + }, + }) + + L.Editable.mergeOptions({ + // 🍂namespace Editable + // 🍂option vertexMarkerClass: class = VertexMarker + // Class to be used as vertex, for path editing. + vertexMarkerClass: L.Editable.VertexMarker, + }) + + L.Editable.MiddleMarker = L.Marker.extend({ + options: { + opacity: 0.5, + className: 'leaflet-div-icon leaflet-middle-icon', + draggable: true, + }, + + initialize: function (left, right, latlngs, editor, options) { + this.left = left + this.right = right + this.editor = editor + this.latlngs = latlngs + L.Marker.prototype.initialize.call(this, this.computeLatLng(), options) + this._opacity = this.options.opacity + this.options.icon = this.editor.tools.createVertexIcon({ + className: this.options.className, + }) + this.editor.editLayer.addLayer(this) + this.setVisibility() + }, + + setVisibility: function () { + const leftPoint = this._map.latLngToContainerPoint(this.left.latlng) + const rightPoint = this._map.latLngToContainerPoint(this.right.latlng) + const size = L.point(this.options.icon.options.iconSize) + if (leftPoint.distanceTo(rightPoint) < size.x * 3) this.hide() + else this.show() + }, + + show: function () { + this.setOpacity(this._opacity) + }, + + hide: function () { + this.setOpacity(0) + }, + + updateLatLng: function () { + this.setLatLng(this.computeLatLng()) + this.setVisibility() + }, + + computeLatLng: function () { + const leftPoint = this.editor.map.latLngToContainerPoint(this.left.latlng) + const rightPoint = this.editor.map.latLngToContainerPoint(this.right.latlng) + const y = (leftPoint.y + rightPoint.y) / 2 + const x = (leftPoint.x + rightPoint.x) / 2 + return this.editor.map.containerPointToLatLng([x, y]) + }, + + onAdd: function (map) { + L.Marker.prototype.onAdd.call(this, map) + L.DomEvent.on(this._icon, 'mousedown touchstart', this.onMouseDown, this) + map.on('zoomend', this.setVisibility, this) + }, + + onRemove: function (map) { + delete this.right.middleMarker + L.DomEvent.off(this._icon, 'mousedown touchstart', this.onMouseDown, this) + map.off('zoomend', this.setVisibility, this) + L.Marker.prototype.onRemove.call(this, map) + }, + + onMouseDown: function (e) { + const iconPos = L.DomUtil.getPosition(this._icon) + const latlng = this.editor.map.layerPointToLatLng(iconPos) + e = { + originalEvent: e, + latlng: latlng, + } + if (this.options.opacity === 0) return + L.Editable.makeCancellable(e) + this.editor.onMiddleMarkerMouseDown(e) + if (e._cancelled) return + this.latlngs.splice(this.index(), 0, e.latlng) + this.editor.refresh() + const icon = this._icon + const marker = this.editor.addVertexMarker(e.latlng, this.latlngs) + this.editor.onNewVertex(marker) + /* Hack to workaround browser not firing touchend when element is no more on DOM */ + const parent = marker._icon.parentNode + parent.removeChild(marker._icon) + marker._icon = icon + parent.appendChild(marker._icon) + marker._initIcon() + marker._initInteraction() + marker.setOpacity(1) + /* End hack */ + // Transfer ongoing dragging to real marker + L.Draggable._dragging = false + marker.dragging._draggable._onDown(e.originalEvent) + this.delete() + }, + + delete: function () { + this.editor.editLayer.removeLayer(this) + }, + + index: function () { + return this.latlngs.indexOf(this.right.latlng) + }, + }) + + L.Editable.mergeOptions({ + // 🍂namespace Editable + // 🍂option middleMarkerClass: class = VertexMarker + // Class to be used as middle vertex, pulled by the user to create a new point in the middle of a path. + middleMarkerClass: L.Editable.MiddleMarker, + }) + + // 🍂namespace Editable; 🍂class BaseEditor; 🍂aka L.Editable.BaseEditor + // When editing a feature (Marker, Polyline…), an editor is attached to it. This + // editor basically knows how to handle the edition. + L.Editable.BaseEditor = L.Handler.extend({ + initialize: function (map, feature, options) { + L.setOptions(this, options) + this.map = map + this.feature = feature + this.feature.editor = this + this.editLayer = new L.LayerGroup() + this.tools = this.options.editTools || map.editTools + }, + + // 🍂method enable(): this + // Set up the drawing tools for the feature to be editable. + addHooks: function () { + if (this.isConnected()) this.onFeatureAdd() + else this.feature.once('add', this.onFeatureAdd, this) + this.onEnable() + this.feature.on(this._getEvents(), this) + }, + + // 🍂method disable(): this + // Remove the drawing tools for the feature. + removeHooks: function () { + this.feature.off(this._getEvents(), this) + if (this.feature.dragging) this.feature.dragging.disable() + this.editLayer.clearLayers() + this.tools.editLayer.removeLayer(this.editLayer) + this.onDisable() + if (this._drawing) this.cancelDrawing() + }, + + // 🍂method drawing(): boolean + // Return true if any drawing action is ongoing with this editor. + drawing: function () { + return !!this._drawing + }, + + reset: () => {}, + + onFeatureAdd: function () { + this.tools.editLayer.addLayer(this.editLayer) + if (this.feature.dragging) this.feature.dragging.enable() + }, + + hasMiddleMarkers: function () { + return !this.options.skipMiddleMarkers && !this.tools.options.skipMiddleMarkers + }, + + fireAndForward: function (type, e) { + e = e || {} + e.layer = this.feature + this.feature.fire(type, e) + this.tools.fireAndForward(type, e) + }, + + onEnable: function () { + // 🍂namespace Editable + // 🍂event editable:enable: Event + // Fired when an existing feature is ready to be edited. + this.fireAndForward('editable:enable') + }, + + onDisable: function () { + // 🍂namespace Editable + // 🍂event editable:disable: Event + // Fired when an existing feature is not ready anymore to be edited. + this.fireAndForward('editable:disable') + }, + + onEditing: function () { + // 🍂namespace Editable + // 🍂event editable:editing: Event + // Fired as soon as any change is made to the feature geometry. + this.fireAndForward('editable:editing') + }, + + onEdited: function () { + // 🍂namespace Editable + // 🍂event editable:edited: Event + // Fired after any change is made to the feature geometry. + this.fireAndForward('editable:edited') + }, + + onStartDrawing: function () { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:start: Event + // Fired when a feature is to be drawn. + this.fireAndForward('editable:drawing:start') + }, + + onEndDrawing: function () { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:end: Event + // Fired when a feature is not drawn anymore. + this.fireAndForward('editable:drawing:end') + }, + + onCancelDrawing: function () { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:cancel: Event + // Fired when user cancel drawing while a feature is being drawn. + this.fireAndForward('editable:drawing:cancel') + }, + + onCommitDrawing: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:commit: Event + // Fired when user finish drawing a feature. + this.fireAndForward('editable:drawing:commit', e) + this.onEdited() + }, + + onDrawingMouseDown: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:mousedown: Event + // Fired when user `mousedown` while drawing. + this.fireAndForward('editable:drawing:mousedown', e) + }, + + onDrawingMouseUp: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:mouseup: Event + // Fired when user `mouseup` while drawing. + this.fireAndForward('editable:drawing:mouseup', e) + }, + + startDrawing: function () { + if (!this._drawing) this._drawing = L.Editable.FORWARD + this.tools.registerForDrawing(this) + this.onStartDrawing() + }, + + commitDrawing: function (e) { + this.onCommitDrawing(e) + this.endDrawing() + }, + + cancelDrawing: function () { + // If called during a vertex drag, the vertex will be removed before + // the mouseup fires on it. This is a workaround. Maybe better fix is + // To have L.Draggable reset it's status on disable (Leaflet side). + L.Draggable._dragging = false + this.onCancelDrawing() + this.endDrawing() + }, + + endDrawing: function () { + this._drawing = false + this.tools.unregisterForDrawing(this) + this.onEndDrawing() + }, + + onDrawingClick: function (e) { + if (!this.drawing()) return + L.Editable.makeCancellable(e) + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:click: CancelableEvent + // Fired when user `click` while drawing, before any internal action is being processed. + this.fireAndForward('editable:drawing:click', e) + if (e._cancelled) return + if (!this.isConnected()) this.connect(e) + this.processDrawingClick(e) + }, + + isConnected: function () { + return this.map.hasLayer(this.feature) + }, + + connect: function () { + this.tools.connectCreatedToMap(this.feature) + this.tools.editLayer.addLayer(this.editLayer) + }, + + onMove: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:move: Event + // Fired when `move` mouse while drawing, while dragging a marker, and while dragging a vertex. + this.fireAndForward('editable:drawing:move', e) + }, + + onDrawingMouseMove: function (e) { + this.onMove(e) + }, + + _getEvents: function () { + return { + dragstart: this.onDragStart, + drag: this.onDrag, + dragend: this.onDragEnd, + remove: this.disable, + } + }, + + onDragStart: function (e) { + this.onEditing() + // 🍂namespace Editable + // 🍂event editable:dragstart: Event + // Fired before a path feature is dragged. + this.fireAndForward('editable:dragstart', e) + }, + + onDrag: function (e) { + this.onMove(e) + // 🍂namespace Editable + // 🍂event editable:drag: Event + // Fired when a path feature is being dragged. + this.fireAndForward('editable:drag', e) + }, + + onDragEnd: function (e) { + // 🍂namespace Editable + // 🍂event editable:dragend: Event + // Fired after a path feature has been dragged. + this.fireAndForward('editable:dragend', e) + this.onEdited() + }, + }) + + // 🍂namespace Editable; 🍂class MarkerEditor; 🍂aka L.Editable.MarkerEditor + // 🍂inherits BaseEditor + // Editor for Marker. + L.Editable.MarkerEditor = L.Editable.BaseEditor.extend({ + onDrawingMouseMove: function (e) { + L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e) + if (this._drawing) this.feature.setLatLng(e.latlng) + }, + + processDrawingClick: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:clicked: Event + // Fired when user `click` while drawing, after all internal actions. + this.fireAndForward('editable:drawing:clicked', e) + this.commitDrawing(e) + }, + + connect: function (e) { + // On touch, the latlng has not been updated because there is + // no mousemove. + if (e) this.feature._latlng = e.latlng + L.Editable.BaseEditor.prototype.connect.call(this, e) + }, + }) + + // 🍂namespace Editable; 🍂class CircleMarkerEditor; 🍂aka L.Editable.CircleMarkerEditor + // 🍂inherits BaseEditor + // Editor for CircleMarker. + L.Editable.CircleMarkerEditor = L.Editable.BaseEditor.extend({ + onDrawingMouseMove: function (e) { + L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e) + if (this._drawing) this.feature.setLatLng(e.latlng) + }, + + processDrawingClick: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:clicked: Event + // Fired when user `click` while drawing, after all internal actions. + this.fireAndForward('editable:drawing:clicked', e) + this.commitDrawing(e) + }, + + connect: function (e) { + // On touch, the latlng has not been updated because there is + // no mousemove. + if (e) this.feature._latlng = e.latlng + L.Editable.BaseEditor.prototype.connect.call(this, e) + }, + }) + + // 🍂namespace Editable; 🍂class PathEditor; 🍂aka L.Editable.PathEditor + // 🍂inherits BaseEditor + // Base class for all path editors. + L.Editable.PathEditor = L.Editable.BaseEditor.extend({ + CLOSED: false, + MIN_VERTEX: 2, + + addHooks: function () { + L.Editable.BaseEditor.prototype.addHooks.call(this) + if (this.feature) { + this.initVertexMarkers() + this.map.on('moveend', this.onMoveEnd, this) + } + return this + }, + + removeHooks: function () { + L.Editable.BaseEditor.prototype.removeHooks.call(this) + if (this.feature) { + this.map.off('moveend', this.onMoveEnd, this) + } + }, + + onMoveEnd: function () { + this.initVertexMarkers() + }, + + initVertexMarkers: function (latlngs) { + if (!this.enabled()) return + latlngs = latlngs || this.getLatLngs() + if (isFlat(latlngs)) { + this.addVertexMarkers(latlngs) + } else { + for (const member of latlngs) { + this.initVertexMarkers(member) + } + } + }, + + getLatLngs: function () { + return this.feature.getLatLngs() + }, + + // 🍂method reset() + // Rebuild edit elements (Vertex, MiddleMarker, etc.). + reset: function () { + this.editLayer.clearLayers() + this.initVertexMarkers() + }, + + addVertexMarker: function (latlng, latlngs) { + if (latlng.__vertex) { + latlng.__vertex.connect() + return latlng.__vertex + } + return new this.tools.options.vertexMarkerClass(latlng, latlngs, this) + }, + + onNewVertex: function (vertex) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:new: VertexEvent + // Fired when a new vertex is created. + this.fireAndForward('editable:vertex:new', { + latlng: vertex.latlng, + vertex: vertex, + }) + }, + + addVertexMarkers: function (latlngs) { + const bounds = this.map.getBounds() + for (const latlng of latlngs) { + if (!bounds.contains(latlng)) continue + this.addVertexMarker(latlng, latlngs) + } + }, + + refreshVertexMarkers: function (latlngs) { + latlngs = latlngs || this.getDefaultLatLngs() + for (const latlng of latlngs) { + latlng.__vertex.update() + } + }, + + addMiddleMarker: function (left, right, latlngs) { + return new this.tools.options.middleMarkerClass(left, right, latlngs, this) + }, + + onVertexMarkerClick: function (e) { + L.Editable.makeCancellable(e) + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:click: CancelableVertexEvent + // Fired when a `click` is issued on a vertex, before any internal action is being processed. + this.fireAndForward('editable:vertex:click', e) + if (e._cancelled) return + if (this.tools.drawing() && this.tools._drawingEditor !== this) return + const index = e.vertex.getIndex() + let commit + if (e.originalEvent.ctrlKey) { + this.onVertexMarkerCtrlClick(e) + } else if (e.originalEvent.altKey) { + this.onVertexMarkerAltClick(e) + } else if (e.originalEvent.shiftKey) { + this.onVertexMarkerShiftClick(e) + } else if (e.originalEvent.metaKey) { + this.onVertexMarkerMetaKeyClick(e) + } else if ( + index === e.vertex.getLastIndex() && + this._drawing === L.Editable.FORWARD + ) { + if (index >= this.MIN_VERTEX - 1) commit = true + } else if ( + index === 0 && + this._drawing === L.Editable.BACKWARD && + this._drawnLatLngs.length >= this.MIN_VERTEX + ) { + commit = true + } else if ( + index === 0 && + this._drawing === L.Editable.FORWARD && + this._drawnLatLngs.length >= this.MIN_VERTEX && + this.CLOSED + ) { + commit = true // Allow to close on first point also for polygons + } else { + this.onVertexRawMarkerClick(e) + } + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:clicked: VertexEvent + // Fired when a `click` is issued on a vertex, after all internal actions. + this.fireAndForward('editable:vertex:clicked', e) + if (commit) this.commitDrawing(e) + }, + + onVertexRawMarkerClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:rawclick: CancelableVertexEvent + // Fired when a `click` is issued on a vertex without any special key and without being in drawing mode. + this.fireAndForward('editable:vertex:rawclick', e) + if (e._cancelled) return + if (!this.vertexCanBeDeleted(e.vertex)) return + e.vertex.delete() + }, + + vertexCanBeDeleted: function (vertex) { + return vertex.latlngs.length > this.MIN_VERTEX + }, + + onVertexDeleted: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:deleted: VertexEvent + // Fired after a vertex has been deleted by user. + this.fireAndForward('editable:vertex:deleted', e) + }, + + onVertexMarkerCtrlClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:ctrlclick: VertexEvent + // Fired when a `click` with `ctrlKey` is issued on a vertex. + this.fireAndForward('editable:vertex:ctrlclick', e) + }, + + onVertexMarkerShiftClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:shiftclick: VertexEvent + // Fired when a `click` with `shiftKey` is issued on a vertex. + this.fireAndForward('editable:vertex:shiftclick', e) + }, + + onVertexMarkerMetaKeyClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:metakeyclick: VertexEvent + // Fired when a `click` with `metaKey` is issued on a vertex. + this.fireAndForward('editable:vertex:metakeyclick', e) + }, + + onVertexMarkerAltClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:altclick: VertexEvent + // Fired when a `click` with `altKey` is issued on a vertex. + this.fireAndForward('editable:vertex:altclick', e) + }, + + onVertexMarkerContextMenu: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:contextmenu: VertexEvent + // Fired when a `contextmenu` is issued on a vertex. + this.fireAndForward('editable:vertex:contextmenu', e) + }, + + onVertexMarkerMouseDown: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:mousedown: VertexEvent + // Fired when user `mousedown` a vertex. + this.fireAndForward('editable:vertex:mousedown', e) + }, + + onVertexMarkerMouseOver: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:mouseover: VertexEvent + // Fired when a user's mouse enters the vertex + this.fireAndForward('editable:vertex:mouseover', e) + }, + + onVertexMarkerMouseOut: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:mouseout: VertexEvent + // Fired when a user's mouse leaves the vertex + this.fireAndForward('editable:vertex:mouseout', e) + }, + + onMiddleMarkerMouseDown: function (e) { + // 🍂namespace Editable + // 🍂section MiddleMarker events + // 🍂event editable:middlemarker:mousedown: VertexEvent + // Fired when user `mousedown` a middle marker. + this.fireAndForward('editable:middlemarker:mousedown', e) + }, + + onVertexMarkerDrag: function (e) { + this.onMove(e) + if (this.feature._bounds) this.extendBounds(e) + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:drag: VertexEvent + // Fired when a vertex is dragged by user. + this.fireAndForward('editable:vertex:drag', e) + }, + + onVertexMarkerDragStart: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:dragstart: VertexEvent + // Fired before a vertex is dragged by user. + this.fireAndForward('editable:vertex:dragstart', e) + }, + + onVertexMarkerDragEnd: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:dragend: VertexEvent + // Fired after a vertex is dragged by user. + this.fireAndForward('editable:vertex:dragend', e) + this.onEdited() + }, + + setDrawnLatLngs: function (latlngs) { + this._drawnLatLngs = latlngs || this.getDefaultLatLngs() + }, + + startDrawing: function () { + if (!this._drawnLatLngs) this.setDrawnLatLngs() + L.Editable.BaseEditor.prototype.startDrawing.call(this) + }, + + startDrawingForward: function () { + this.startDrawing() + }, + + endDrawing: function () { + this.tools.detachForwardLineGuide() + this.tools.detachBackwardLineGuide() + if (this._drawnLatLngs && this._drawnLatLngs.length < this.MIN_VERTEX) + this.deleteShape(this._drawnLatLngs) + L.Editable.BaseEditor.prototype.endDrawing.call(this) + delete this._drawnLatLngs + }, + + addLatLng: function (latlng) { + if (this._drawing === L.Editable.FORWARD) this._drawnLatLngs.push(latlng) + else this._drawnLatLngs.unshift(latlng) + this.feature._bounds.extend(latlng) + const vertex = this.addVertexMarker(latlng, this._drawnLatLngs) + this.onNewVertex(vertex) + this.refresh() + }, + + newPointForward: function (latlng) { + this.addLatLng(latlng) + this.tools.attachForwardLineGuide() + this.tools.anchorForwardLineGuide(latlng) + }, + + newPointBackward: function (latlng) { + this.addLatLng(latlng) + this.tools.anchorBackwardLineGuide(latlng) + }, + + // 🍂namespace PathEditor + // 🍂method push() + // Programmatically add a point while drawing. + push: function (latlng) { + if (!latlng) + return console.error( + 'L.Editable.PathEditor.push expect a valid latlng as parameter' + ) + if (this._drawing === L.Editable.FORWARD) this.newPointForward(latlng) + else this.newPointBackward(latlng) + }, + + removeLatLng: function (latlng) { + latlng.__vertex.delete() + this.refresh() + }, + + // 🍂method pop(): L.LatLng or null + // Programmatically remove last point (if any) while drawing. + pop: function () { + if (this._drawnLatLngs.length <= 1) return + let latlng + if (this._drawing === L.Editable.FORWARD) { + latlng = this._drawnLatLngs[this._drawnLatLngs.length - 1] + } else { + latlng = this._drawnLatLngs[0] + } + this.removeLatLng(latlng) + if (this._drawing === L.Editable.FORWARD) { + this.tools.anchorForwardLineGuide( + this._drawnLatLngs[this._drawnLatLngs.length - 1] + ) + } else { + this.tools.anchorForwardLineGuide(this._drawnLatLngs[0]) + } + return latlng + }, + + processDrawingClick: function (e) { + if (e.vertex && e.vertex.editor === this) return + if (this._drawing === L.Editable.FORWARD) this.newPointForward(e.latlng) + else this.newPointBackward(e.latlng) + this.fireAndForward('editable:drawing:clicked', e) + }, + + onDrawingMouseMove: function (e) { + L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e) + if (this._drawing) { + this.tools.moveForwardLineGuide(e.latlng) + this.tools.moveBackwardLineGuide(e.latlng) + } + }, + + refresh: function () { + this.feature.redraw() + this.onEditing() + }, + + // 🍂namespace PathEditor + // 🍂method newShape(latlng?: L.LatLng) + // Add a new shape (Polyline, Polygon) in a multi, and setup up drawing tools to draw it; + // if optional `latlng` is given, start a path at this point. + newShape: function (latlng) { + const shape = this.addNewEmptyShape() + if (!shape) return + this.setDrawnLatLngs(shape[0] || shape) // Polygon or polyline + this.startDrawingForward() + // 🍂namespace Editable + // 🍂section Shape events + // 🍂event editable:shape:new: ShapeEvent + // Fired when a new shape is created in a multi (Polygon or Polyline). + this.fireAndForward('editable:shape:new', { shape: shape }) + if (latlng) this.newPointForward(latlng) + }, + + deleteShape: function (shape, latlngs) { + const e = { shape: shape } + L.Editable.makeCancellable(e) + // 🍂namespace Editable + // 🍂section Shape events + // 🍂event editable:shape:delete: CancelableShapeEvent + // Fired before a new shape is deleted in a multi (Polygon or Polyline). + this.fireAndForward('editable:shape:delete', e) + if (e._cancelled) return + shape = this._deleteShape(shape, latlngs) + if (this.ensureNotFlat) this.ensureNotFlat() // Polygon. + this.feature.setLatLngs(this.getLatLngs()) // Force bounds reset. + this.refresh() + this.reset() + // 🍂namespace Editable + // 🍂section Shape events + // 🍂event editable:shape:deleted: ShapeEvent + // Fired after a new shape is deleted in a multi (Polygon or Polyline). + this.fireAndForward('editable:shape:deleted', { shape: shape }) + this.onEdited() + return shape + }, + + _deleteShape: function (shape, latlngs) { + latlngs = latlngs || this.getLatLngs() + if (!latlngs.length) return + const inplaceDelete = (latlngs, shape) => { + // Called when deleting a flat latlngs + return latlngs.splice(0, Number.MAX_VALUE) + } + const spliceDelete = (latlngs, shape) => { + // Called when removing a latlngs inside an array + latlngs.splice(latlngs.indexOf(shape), 1) + if (!latlngs.length) this._deleteShape(latlngs) + return shape + } + if (latlngs === shape) return inplaceDelete(latlngs, shape) + for (const member of latlngs) { + if (member === shape) return spliceDelete(latlngs, shape) + if (member.indexOf(shape) !== -1) return spliceDelete(member, shape) + } + }, + + // 🍂namespace PathEditor + // 🍂method deleteShapeAt(latlng: L.LatLng): Array + // Remove a path shape at the given `latlng`. + deleteShapeAt: function (latlng) { + const shape = this.feature.shapeAt(latlng) + if (shape) return this.deleteShape(shape) + }, + + // 🍂method appendShape(shape: Array) + // Append a new shape to the Polygon or Polyline. + appendShape: function (shape) { + this.insertShape(shape) + }, + + // 🍂method prependShape(shape: Array) + // Prepend a new shape to the Polygon or Polyline. + prependShape: function (shape) { + this.insertShape(shape, 0) + }, + + // 🍂method insertShape(shape: Array, index: int) + // Insert a new shape to the Polygon or Polyline at given index (default is to append). + insertShape: function (shape, index) { + this.ensureMulti() + shape = this.formatShape(shape) + if (index === undefined) index = this.feature._latlngs.length + this.feature._latlngs.splice(index, 0, shape) + this.feature.redraw() + if (this._enabled) this.reset() + }, + + extendBounds: function (e) { + this.feature._bounds.extend(e.vertex.latlng) + }, + + onDragStart: function (e) { + this.editLayer.clearLayers() + L.Editable.BaseEditor.prototype.onDragStart.call(this, e) + }, + + onDragEnd: function (e) { + this.initVertexMarkers() + L.Editable.BaseEditor.prototype.onDragEnd.call(this, e) + }, + }) + + // 🍂namespace Editable; 🍂class PolylineEditor; 🍂aka L.Editable.PolylineEditor + // 🍂inherits PathEditor + L.Editable.PolylineEditor = L.Editable.PathEditor.extend({ + startDrawingBackward: function () { + this._drawing = L.Editable.BACKWARD + this.startDrawing() + }, + + // 🍂method continueBackward(latlngs?: Array) + // Set up drawing tools to continue the line backward. + continueBackward: function (latlngs) { + if (this.drawing()) return + latlngs = latlngs || this.getDefaultLatLngs() + this.setDrawnLatLngs(latlngs) + if (latlngs.length > 0) { + this.tools.attachBackwardLineGuide() + this.tools.anchorBackwardLineGuide(latlngs[0]) + } + this.startDrawingBackward() + }, + + // 🍂method continueForward(latlngs?: Array) + // Set up drawing tools to continue the line forward. + continueForward: function (latlngs) { + if (this.drawing()) return + latlngs = latlngs || this.getDefaultLatLngs() + this.setDrawnLatLngs(latlngs) + if (latlngs.length > 0) { + this.tools.attachForwardLineGuide() + this.tools.anchorForwardLineGuide(latlngs[latlngs.length - 1]) + } + this.startDrawingForward() + }, + + getDefaultLatLngs: function (latlngs) { + latlngs = latlngs || this.feature._latlngs + if (!latlngs.length || latlngs[0] instanceof L.LatLng) return latlngs + return this.getDefaultLatLngs(latlngs[0]) + }, + + ensureMulti: function () { + if (this.feature._latlngs.length && isFlat(this.feature._latlngs)) { + this.feature._latlngs = [this.feature._latlngs] + } + }, + + addNewEmptyShape: function () { + if (this.feature._latlngs.length) { + const shape = [] + this.appendShape(shape) + return shape + } + return this.feature._latlngs + }, + + formatShape: function (shape) { + if (isFlat(shape)) return shape + if (shape[0]) return this.formatShape(shape[0]) + }, + + // 🍂method splitShape(latlngs?: Array, index: int) + // Split the given `latlngs` shape at index `index` and integrate new shape in instance `latlngs`. + splitShape: function (shape, index) { + if (!index || index >= shape.length - 1) return + this.ensureMulti() + const shapeIndex = this.feature._latlngs.indexOf(shape) + if (shapeIndex === -1) return + const first = shape.slice(0, index + 1) + const second = shape.slice(index) + // We deal with reference, we don't want twice the same latlng around. + second[0] = L.latLng(second[0].lat, second[0].lng, second[0].alt) + this.feature._latlngs.splice(shapeIndex, 1, first, second) + this.refresh() + this.reset() + this.onEdited() + }, + }) + + // 🍂namespace Editable; 🍂class PolygonEditor; 🍂aka L.Editable.PolygonEditor + // 🍂inherits PathEditor + L.Editable.PolygonEditor = L.Editable.PathEditor.extend({ + CLOSED: true, + MIN_VERTEX: 3, + + newPointForward: function (latlng) { + L.Editable.PathEditor.prototype.newPointForward.call(this, latlng) + if (!this.tools.backwardLineGuide._latlngs.length) + this.tools.anchorBackwardLineGuide(latlng) + if (this._drawnLatLngs.length === 2) this.tools.attachBackwardLineGuide() + }, + + addNewEmptyHole: function (latlng) { + this.ensureNotFlat() + const latlngs = this.feature.shapeAt(latlng) + if (!latlngs) return + const holes = [] + latlngs.push(holes) + return holes + }, + + // 🍂method newHole(latlng?: L.LatLng, index: int) + // Set up drawing tools for creating a new hole on the Polygon. If the `latlng` param is given, a first point is created. + newHole: function (latlng) { + const holes = this.addNewEmptyHole(latlng) + if (!holes) return + this.setDrawnLatLngs(holes) + this.startDrawingForward() + if (latlng) this.newPointForward(latlng) + }, + + addNewEmptyShape: function () { + if (this.feature._latlngs.length && this.feature._latlngs[0].length) { + const shape = [] + this.appendShape(shape) + return shape + } + return this.feature._latlngs + }, + + ensureMulti: function () { + if (this.feature._latlngs.length && isFlat(this.feature._latlngs[0])) { + this.feature._latlngs = [this.feature._latlngs] + } + }, + + ensureNotFlat: function () { + if (!this.feature._latlngs.length || isFlat(this.feature._latlngs)) + this.feature._latlngs = [this.feature._latlngs] + }, + + vertexCanBeDeleted: function (vertex) { + const parent = this.feature.parentShape(vertex.latlngs) + const idx = L.Util.indexOf(parent, vertex.latlngs) + if (idx > 0) return true // Holes can be totally deleted without removing the layer itself. + return L.Editable.PathEditor.prototype.vertexCanBeDeleted.call(this, vertex) + }, + + getDefaultLatLngs: function () { + if (!this.feature._latlngs.length) this.feature._latlngs.push([]) + return this.feature._latlngs[0] + }, + + formatShape: (shape) => { + // [[1, 2], [3, 4]] => must be nested + // [] => must be nested + // [[]] => is already nested + if (isFlat(shape) && (!shape[0] || shape[0].length !== 0)) return [shape] + return shape + }, + }) + + // 🍂namespace Editable; 🍂class RectangleEditor; 🍂aka L.Editable.RectangleEditor + // 🍂inherits PathEditor + L.Editable.RectangleEditor = L.Editable.PathEditor.extend({ + CLOSED: true, + MIN_VERTEX: 4, + + options: { + skipMiddleMarkers: true, + }, + + extendBounds: function (e) { + const index = e.vertex.getIndex() + const next = e.vertex.getNext() + const previous = e.vertex.getPrevious() + const oppositeIndex = (index + 2) % 4 + const opposite = e.vertex.latlngs[oppositeIndex] + const bounds = new L.LatLngBounds(e.latlng, opposite) + // Update latlngs by hand to preserve order. + previous.latlng.update([e.latlng.lat, opposite.lng]) + next.latlng.update([opposite.lat, e.latlng.lng]) + this.updateBounds(bounds) + this.refreshVertexMarkers() + }, + + onDrawingMouseDown: function (e) { + L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e) + this.connect() + const latlngs = this.getDefaultLatLngs() + // L.Polygon._convertLatLngs removes last latlng if it equals first point, + // which is the case here as all latlngs are [0, 0] + if (latlngs.length === 3) latlngs.push(e.latlng) + const bounds = new L.LatLngBounds(e.latlng, e.latlng) + this.updateBounds(bounds) + this.updateLatLngs(bounds) + this.refresh() + this.reset() + // Stop dragging map. + // L.Draggable has two workflows: + // - mousedown => mousemove => mouseup + // - touchstart => touchmove => touchend + // Problem: L.Map.Tap does not allow us to listen to touchstart, so we only + // can deal with mousedown, but then when in a touch device, we are dealing with + // simulated events (actually simulated by L.Map.Tap), which are no more taken + // into account by L.Draggable. + // Ref.: https://github.com/Leaflet/Leaflet.Editable/issues/103 + e.originalEvent._simulated = false + this.map.dragging._draggable._onUp(e.originalEvent) + // Now transfer ongoing drag action to the bottom right corner. + // Should we refine which corner will handle the drag according to + // drag direction? + latlngs[3].__vertex.dragging._draggable._onDown(e.originalEvent) + }, + + onDrawingMouseUp: function (e) { + this.commitDrawing(e) + e.originalEvent._simulated = false + L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e) + }, + + onDrawingMouseMove: function (e) { + e.originalEvent._simulated = false + L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e) + }, + + getDefaultLatLngs: function (latlngs) { + return latlngs || this.feature._latlngs[0] + }, + + updateBounds: function (bounds) { + this.feature._bounds = bounds + }, + + updateLatLngs: function (bounds) { + const latlngs = this.getDefaultLatLngs() + const newLatlngs = this.feature._boundsToLatLngs(bounds) + // Keep references. + for (let i = 0; i < latlngs.length; i++) { + latlngs[i].update(newLatlngs[i]) + } + }, + }) + + // 🍂namespace Editable; 🍂class CircleEditor; 🍂aka L.Editable.CircleEditor + // 🍂inherits PathEditor + L.Editable.CircleEditor = L.Editable.PathEditor.extend({ + MIN_VERTEX: 2, + + options: { + skipMiddleMarkers: true, + }, + + initialize: function (map, feature, options) { + L.Editable.PathEditor.prototype.initialize.call(this, map, feature, options) + this._resizeLatLng = this.computeResizeLatLng() + }, + + computeResizeLatLng: function () { + // While circle is not added to the map, _radius is not set. + const delta = + (this.feature._radius || this.feature._mRadius) * Math.cos(Math.PI / 4) + const point = this.map.project(this.feature._latlng) + return this.map.unproject([point.x + delta, point.y - delta]) + }, + + updateResizeLatLng: function () { + this._resizeLatLng.update(this.computeResizeLatLng()) + this._resizeLatLng.__vertex.update() + }, + + getLatLngs: function () { + return [this.feature._latlng, this._resizeLatLng] + }, + + getDefaultLatLngs: function () { + return this.getLatLngs() + }, + + onVertexMarkerDrag: function (e) { + if (e.vertex.getIndex() === 1) this.resize(e) + else this.updateResizeLatLng(e) + L.Editable.PathEditor.prototype.onVertexMarkerDrag.call(this, e) + }, + + resize: function (e) { + let radius + if (this.map.options.crs) { + radius = this.map.options.crs.distance(this.feature._latlng, e.latlng) + } else { + radius = this.feature._latlng.distanceTo(e.latlng) + } + this.feature.setRadius(radius) + }, + + onDrawingMouseDown: function (e) { + L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e) + this._resizeLatLng.update(e.latlng) + this.feature._latlng.update(e.latlng) + this.connect() + // Stop dragging map. + e.originalEvent._simulated = false + this.map.dragging._draggable._onUp(e.originalEvent) + // Now transfer ongoing drag action to the radius handler. + this._resizeLatLng.__vertex.dragging._draggable._onDown(e.originalEvent) + }, + + onDrawingMouseUp: function (e) { + this.commitDrawing(e) + e.originalEvent._simulated = false + L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e) + }, + + onDrawingMouseMove: function (e) { + e.originalEvent._simulated = false + L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e) + }, + + onDrag: function (e) { + L.Editable.PathEditor.prototype.onDrag.call(this, e) + this.feature.dragging.updateLatLng(this._resizeLatLng) + }, + }) + + // 🍂namespace Editable; 🍂class EditableMixin + // `EditableMixin` is included to `L.Polyline`, `L.Polygon`, `L.Rectangle`, `L.Circle` + // and `L.Marker`. It adds some methods to them. + // *When editing is enabled, the editor is accessible on the instance with the + // `editor` property.* + const EditableMixin = { + createEditor: function (map) { + map = map || this._map + const tools = this.options.editOptions?.editTools || map.editTools + if (!tools) throw Error('Unable to detect Editable instance.') + const Klass = this.options.editorClass || this.getEditorClass(tools) + return new Klass(map, this, this.options.editOptions) + }, + + // 🍂method enableEdit(map?: L.Map): this.editor + // Enable editing, by creating an editor if not existing, and then calling `enable` on it. + enableEdit: function (map) { + if (!this.editor) this.createEditor(map) + this.editor.enable() + return this.editor + }, + + // 🍂method editEnabled(): boolean + // Return true if current instance has an editor attached, and this editor is enabled. + editEnabled: function () { + return this.editor?.enabled() + }, + + // 🍂method disableEdit() + // Disable editing, also remove the editor property reference. + disableEdit: function () { + if (this.editor) { + this.editor.disable() + delete this.editor + } + }, + + // 🍂method toggleEdit() + // Enable or disable editing, according to current status. + toggleEdit: function () { + if (this.editEnabled()) this.disableEdit() + else this.enableEdit() + }, + + _onEditableAdd: function () { + if (this.editor) this.enableEdit() + }, + } + + const PolylineMixin = { + getEditorClass: (tools) => { + return tools?.options?.polylineEditorClass || L.Editable.PolylineEditor + }, + + shapeAt: function (latlng, latlngs) { + // We can have those cases: + // - latlngs are just a flat array of latlngs, use this + // - latlngs is an array of arrays of latlngs, loop over + let shape = null + latlngs = latlngs || this._latlngs + if (!latlngs.length) return shape + if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs + else { + for (const member of latlngs) { + if (this.isInLatLngs(latlng, member)) return member + } + } + return shape + }, + + isInLatLngs: function (l, latlngs) { + if (!latlngs) return false + let i + let k + let len + let part = [] + let p + const w = this._clickTolerance() + this._projectLatlngs(latlngs, part, this._pxBounds) + part = part[0] + p = this._map.latLngToLayerPoint(l) + + if (!this._pxBounds.contains(p)) { + return false + } + for (i = 1, len = part.length, k = 0; i < len; k = i++) { + if (L.LineUtil.pointToSegmentDistance(p, part[k], part[i]) <= w) { + return true + } + } + return false + }, + } + + const PolygonMixin = { + getEditorClass: (tools) => { + return tools?.options?.polygonEditorClass || L.Editable.PolygonEditor + }, + + shapeAt: function (latlng, latlngs) { + // We can have those cases: + // - latlngs are just a flat array of latlngs, use this + // - latlngs is an array of arrays of latlngs, this is a simple polygon (maybe with holes), use the first + // - latlngs is an array of arrays of arrays, this is a multi, loop over + let shape = null + latlngs = latlngs || this._latlngs + if (!latlngs.length) return shape + if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs + if (isFlat(latlngs[0]) && this.isInLatLngs(latlng, latlngs[0])) { + shape = latlngs + } else { + for (const member of latlngs) { + if (this.isInLatLngs(latlng, member[0])) return member + } + } + return shape + }, + + isInLatLngs: (l, latlngs) => { + let inside = false + let l1 + let l2 + let j + let k + let len2 + + for (j = 0, len2 = latlngs.length, k = len2 - 1; j < len2; k = j++) { + l1 = latlngs[j] + l2 = latlngs[k] + + if ( + l1.lat > l.lat !== l2.lat > l.lat && + l.lng < ((l2.lng - l1.lng) * (l.lat - l1.lat)) / (l2.lat - l1.lat) + l1.lng + ) { + inside = !inside + } + } + + return inside + }, + + parentShape: function (shape, latlngs) { + latlngs = latlngs || this._latlngs + if (!latlngs) return + let idx = L.Util.indexOf(latlngs, shape) + if (idx !== -1) return latlngs + for (const member of latlngs) { + idx = L.Util.indexOf(member, shape) + if (idx !== -1) return member + } + }, + } + + const MarkerMixin = { + getEditorClass: (tools) => { + return tools?.options?.markerEditorClass || L.Editable.MarkerEditor + }, + } + + const CircleMarkerMixin = { + getEditorClass: (tools) => { + return tools?.options?.circleMarkerEditorClass || L.Editable.CircleMarkerEditor + }, + } + + const RectangleMixin = { + getEditorClass: (tools) => { + return tools?.options?.rectangleEditorClass || L.Editable.RectangleEditor + }, + } + + const CircleMixin = { + getEditorClass: (tools) => { + return tools?.options?.circleEditorClass || L.Editable.CircleEditor + }, + } + + const keepEditable = function () { + // Make sure you can remove/readd an editable layer. + this.on('add', this._onEditableAdd) + } + + const isFlat = L.LineUtil.isFlat || L.LineUtil._flat || L.Polyline._flat // <=> 1.1 compat. + + if (L.Polyline) { + L.Polyline.include(EditableMixin) + L.Polyline.include(PolylineMixin) + L.Polyline.addInitHook(keepEditable) + } + if (L.Polygon) { + L.Polygon.include(EditableMixin) + L.Polygon.include(PolygonMixin) + } + if (L.Marker) { + L.Marker.include(EditableMixin) + L.Marker.include(MarkerMixin) + L.Marker.addInitHook(keepEditable) + } + if (L.CircleMarker) { + L.CircleMarker.include(EditableMixin) + L.CircleMarker.include(CircleMarkerMixin) + L.CircleMarker.addInitHook(keepEditable) + } + if (L.Rectangle) { + L.Rectangle.include(EditableMixin) + L.Rectangle.include(RectangleMixin) + } + if (L.Circle) { + L.Circle.include(EditableMixin) + L.Circle.include(CircleMixin) + } + + L.LatLng.prototype.update = function (latlng) { + latlng = L.latLng(latlng) + this.lat = latlng.lat + this.lng = latlng.lng + } +}, window); diff --git a/src/Files/Leaflet/Leaflet.Routing.Machine.js b/src/Files/Leaflet/Leaflet.Routing.Machine.js new file mode 100644 index 0000000..0fa8a4c --- /dev/null +++ b/src/Files/Leaflet/Leaflet.Routing.Machine.js @@ -0,0 +1,18642 @@ +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i= 200 && status < 300 || status === 304; + } + + if (cors && !('withCredentials' in x)) { + // IE8-9 + x = new window.XDomainRequest(); + + // Ensure callback is never called synchronously, i.e., before + // x.send() returns (this has been observed in the wild). + // See https://github.com/mapbox/mapbox.js/issues/472 + var original = callback; + callback = function() { + if (sent) { + original.apply(this, arguments); + } else { + var that = this, args = arguments; + setTimeout(function() { + original.apply(that, args); + }, 0); + } + } + } + + function loaded() { + if ( + // XDomainRequest + x.status === undefined || + // modern browsers + isSuccessful(x.status)) callback.call(x, null, x); + else callback.call(x, x, null); + } + + // Both `onreadystatechange` and `onload` can fire. `onreadystatechange` + // has [been supported for longer](http://stackoverflow.com/a/9181508/229001). + if ('onload' in x) { + x.onload = loaded; + } else { + x.onreadystatechange = function readystate() { + if (x.readyState === 4) { + loaded(); + } + }; + } + + // Call the callback with the XMLHttpRequest object as an error and prevent + // it from ever being called again by reassigning it to `noop` + x.onerror = function error(evt) { + // XDomainRequest provides no evt parameter + callback.call(this, evt || true, null); + callback = function() { }; + }; + + // IE9 must have onprogress be set to a unique function. + x.onprogress = function() { }; + + x.ontimeout = function(evt) { + callback.call(this, evt, null); + callback = function() { }; + }; + + x.onabort = function(evt) { + callback.call(this, evt, null); + callback = function() { }; + }; + + // GET is the only supported HTTP Verb by XDomainRequest and is the + // only one supported here. + x.open('GET', url, true); + + // Send the request. Sending data is not supported. + x.send(null); + sent = true; + + return x; +} + +if (typeof module !== 'undefined') module.exports = corslite; + +},{}],2:[function(_dereq_,module,exports){ +'use strict'; + +/** + * Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm) + * + * Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js) + * by [Mark McClure](http://facstaff.unca.edu/mcmcclur/) + * + * @module polyline + */ + +var polyline = {}; + +function py2_round(value) { + // Google's polyline algorithm uses the same rounding strategy as Python 2, which is different from JS for negative values + return Math.floor(Math.abs(value) + 0.5) * Math.sign(value); +} + +function encode(current, previous, factor) { + current = py2_round(current * factor); + previous = py2_round(previous * factor); + var coordinate = current - previous; + coordinate <<= 1; + if (current - previous < 0) { + coordinate = ~coordinate; + } + var output = ''; + while (coordinate >= 0x20) { + output += String.fromCharCode((0x20 | (coordinate & 0x1f)) + 63); + coordinate >>= 5; + } + output += String.fromCharCode(coordinate + 63); + return output; +} + +/** + * Decodes to a [latitude, longitude] coordinates array. + * + * This is adapted from the implementation in Project-OSRM. + * + * @param {String} str + * @param {Number} precision + * @returns {Array} + * + * @see https://github.com/Project-OSRM/osrm-frontend/blob/master/WebContent/routing/OSRM.RoutingGeometry.js + */ +polyline.decode = function(str, precision) { + var index = 0, + lat = 0, + lng = 0, + coordinates = [], + shift = 0, + result = 0, + byte = null, + latitude_change, + longitude_change, + factor = Math.pow(10, precision || 5); + + // Coordinates have variable length when encoded, so just keep + // track of whether we've hit the end of the string. In each + // loop iteration, a single coordinate is decoded. + while (index < str.length) { + + // Reset shift, result, and byte + byte = null; + shift = 0; + result = 0; + + do { + byte = str.charCodeAt(index++) - 63; + result |= (byte & 0x1f) << shift; + shift += 5; + } while (byte >= 0x20); + + latitude_change = ((result & 1) ? ~(result >> 1) : (result >> 1)); + + shift = result = 0; + + do { + byte = str.charCodeAt(index++) - 63; + result |= (byte & 0x1f) << shift; + shift += 5; + } while (byte >= 0x20); + + longitude_change = ((result & 1) ? ~(result >> 1) : (result >> 1)); + + lat += latitude_change; + lng += longitude_change; + + coordinates.push([lat / factor, lng / factor]); + } + + return coordinates; +}; + +/** + * Encodes the given [latitude, longitude] coordinates array. + * + * @param {Array.>} coordinates + * @param {Number} precision + * @returns {String} + */ +polyline.encode = function(coordinates, precision) { + if (!coordinates.length) { return ''; } + + var factor = Math.pow(10, precision || 5), + output = encode(coordinates[0][0], 0, factor) + encode(coordinates[0][1], 0, factor); + + for (var i = 1; i < coordinates.length; i++) { + var a = coordinates[i], b = coordinates[i - 1]; + output += encode(a[0], b[0], factor); + output += encode(a[1], b[1], factor); + } + + return output; +}; + +function flipped(coords) { + var flipped = []; + for (var i = 0; i < coords.length; i++) { + flipped.push(coords[i].slice().reverse()); + } + return flipped; +} + +/** + * Encodes a GeoJSON LineString feature/geometry. + * + * @param {Object} geojson + * @param {Number} precision + * @returns {String} + */ +polyline.fromGeoJSON = function(geojson, precision) { + if (geojson && geojson.type === 'Feature') { + geojson = geojson.geometry; + } + if (!geojson || geojson.type !== 'LineString') { + throw new Error('Input must be a GeoJSON LineString'); + } + return polyline.encode(flipped(geojson.coordinates), precision); +}; + +/** + * Decodes to a GeoJSON LineString geometry. + * + * @param {String} str + * @param {Number} precision + * @returns {Object} + */ +polyline.toGeoJSON = function(str, precision) { + var coords = polyline.decode(str, precision); + return { + type: 'LineString', + coordinates: flipped(coords) + }; +}; + +if (typeof module === 'object' && module.exports) { + module.exports = polyline; +} + +},{}],3:[function(_dereq_,module,exports){ +var languages = _dereq_('./languages'); +var instructions = languages.instructions; +var grammars = languages.grammars; +var abbreviations = languages.abbreviations; + +module.exports = function(version) { + Object.keys(instructions).forEach(function(code) { + if (!instructions[code][version]) { throw 'invalid version ' + version + ': ' + code + ' not supported'; } + }); + + return { + capitalizeFirstLetter: function(language, string) { + return string.charAt(0).toLocaleUpperCase(language) + string.slice(1); + }, + ordinalize: function(language, number) { + // Transform numbers to their translated ordinalized value + if (!language) throw new Error('No language code provided'); + + return instructions[language][version].constants.ordinalize[number.toString()] || ''; + }, + directionFromDegree: function(language, degree) { + // Transform degrees to their translated compass direction + if (!language) throw new Error('No language code provided'); + if (!degree && degree !== 0) { + // step had no bearing_after degree, ignoring + return ''; + } else if (degree >= 0 && degree <= 20) { + return instructions[language][version].constants.direction.north; + } else if (degree > 20 && degree < 70) { + return instructions[language][version].constants.direction.northeast; + } else if (degree >= 70 && degree <= 110) { + return instructions[language][version].constants.direction.east; + } else if (degree > 110 && degree < 160) { + return instructions[language][version].constants.direction.southeast; + } else if (degree >= 160 && degree <= 200) { + return instructions[language][version].constants.direction.south; + } else if (degree > 200 && degree < 250) { + return instructions[language][version].constants.direction.southwest; + } else if (degree >= 250 && degree <= 290) { + return instructions[language][version].constants.direction.west; + } else if (degree > 290 && degree < 340) { + return instructions[language][version].constants.direction.northwest; + } else if (degree >= 340 && degree <= 360) { + return instructions[language][version].constants.direction.north; + } else { + throw new Error('Degree ' + degree + ' invalid'); + } + }, + laneConfig: function(step) { + // Reduce any lane combination down to a contracted lane diagram + if (!step.intersections || !step.intersections[0].lanes) throw new Error('No lanes object'); + + var config = []; + var currentLaneValidity = null; + + step.intersections[0].lanes.forEach(function (lane) { + if (currentLaneValidity === null || currentLaneValidity !== lane.valid) { + if (lane.valid) { + config.push('o'); + } else { + config.push('x'); + } + currentLaneValidity = lane.valid; + } + }); + + return config.join(''); + }, + getWayName: function(language, step, options) { + var classes = options ? options.classes || [] : []; + if (typeof step !== 'object') throw new Error('step must be an Object'); + if (!language) throw new Error('No language code provided'); + if (!Array.isArray(classes)) throw new Error('classes must be an Array or undefined'); + + var wayName; + var name = step.name || ''; + var ref = (step.ref || '').split(';')[0]; + + // Remove hacks from Mapbox Directions mixing ref into name + if (name === step.ref) { + // if both are the same we assume that there used to be an empty name, with the ref being filled in for it + // we only need to retain the ref then + name = ''; + } + name = name.replace(' (' + step.ref + ')', ''); + + // In attempt to avoid using the highway name of a way, + // check and see if the step has a class which should signal + // the ref should be used instead of the name. + var wayMotorway = classes.indexOf('motorway') !== -1; + + if (name && ref && name !== ref && !wayMotorway) { + var phrase = instructions[language][version].phrase['name and ref'] || + instructions.en[version].phrase['name and ref']; + wayName = this.tokenize(language, phrase, { + name: name, + ref: ref + }, options); + } else if (name && ref && wayMotorway && (/\d/).test(ref)) { + wayName = options && options.formatToken ? options.formatToken('ref', ref) : ref; + } else if (!name && ref) { + wayName = options && options.formatToken ? options.formatToken('ref', ref) : ref; + } else { + wayName = options && options.formatToken ? options.formatToken('name', name) : name; + } + + return wayName; + }, + + /** + * Formulate a localized text instruction from a step. + * + * @param {string} language Language code. + * @param {object} step Step including maneuver property. + * @param {object} opts Additional options. + * @param {string} opts.legIndex Index of leg in the route. + * @param {string} opts.legCount Total number of legs in the route. + * @param {array} opts.classes List of road classes. + * @param {string} opts.waypointName Name of waypoint for arrival instruction. + * + * @return {string} Localized text instruction. + */ + compile: function(language, step, opts) { + if (!language) throw new Error('No language code provided'); + if (languages.supportedCodes.indexOf(language) === -1) throw new Error('language code ' + language + ' not loaded'); + if (!step.maneuver) throw new Error('No step maneuver provided'); + var options = opts || {}; + + var type = step.maneuver.type; + var modifier = step.maneuver.modifier; + var mode = step.mode; + // driving_side will only be defined in OSRM 5.14+ + var side = step.driving_side; + + if (!type) { throw new Error('Missing step maneuver type'); } + if (type !== 'depart' && type !== 'arrive' && !modifier) { throw new Error('Missing step maneuver modifier'); } + + if (!instructions[language][version][type]) { + // Log for debugging + console.log('Encountered unknown instruction type: ' + type); // eslint-disable-line no-console + // OSRM specification assumes turn types can be added without + // major version changes. Unknown types are to be treated as + // type `turn` by clients + type = 'turn'; + } + + // Use special instructions if available, otherwise `defaultinstruction` + var instructionObject; + if (instructions[language][version].modes[mode]) { + instructionObject = instructions[language][version].modes[mode]; + } else { + // omit side from off ramp if same as driving_side + // note: side will be undefined if the input is from OSRM <5.14 + // but the condition should still evaluate properly regardless + var omitSide = type === 'off ramp' && modifier.indexOf(side) >= 0; + if (instructions[language][version][type][modifier] && !omitSide) { + instructionObject = instructions[language][version][type][modifier]; + } else { + instructionObject = instructions[language][version][type].default; + } + } + + // Special case handling + var laneInstruction; + switch (type) { + case 'use lane': + laneInstruction = instructions[language][version].constants.lanes[this.laneConfig(step)]; + if (!laneInstruction) { + // If the lane combination is not found, default to continue straight + instructionObject = instructions[language][version]['use lane'].no_lanes; + } + break; + case 'rotary': + case 'roundabout': + if (step.rotary_name && step.maneuver.exit && instructionObject.name_exit) { + instructionObject = instructionObject.name_exit; + } else if (step.rotary_name && instructionObject.name) { + instructionObject = instructionObject.name; + } else if (step.maneuver.exit && instructionObject.exit) { + instructionObject = instructionObject.exit; + } else { + instructionObject = instructionObject.default; + } + break; + default: + // NOOP, since no special logic for that type + } + + // Decide way_name with special handling for name and ref + var wayName = this.getWayName(language, step, options); + + // Decide which instruction string to use + // Destination takes precedence over name + var instruction; + if (step.destinations && step.exits && instructionObject.exit_destination) { + instruction = instructionObject.exit_destination; + } else if (step.destinations && instructionObject.destination) { + instruction = instructionObject.destination; + } else if (step.exits && instructionObject.exit) { + instruction = instructionObject.exit; + } else if (wayName && instructionObject.name) { + instruction = instructionObject.name; + } else if (options.waypointName && instructionObject.named) { + instruction = instructionObject.named; + } else { + instruction = instructionObject.default; + } + + var destinations = step.destinations && step.destinations.split(': '); + var destinationRef = destinations && destinations[0].split(',')[0]; + var destination = destinations && destinations[1] && destinations[1].split(',')[0]; + var firstDestination; + if (destination && destinationRef) { + firstDestination = destinationRef + ': ' + destination; + } else { + firstDestination = destinationRef || destination || ''; + } + + var nthWaypoint = options.legIndex >= 0 && options.legIndex !== options.legCount - 1 ? this.ordinalize(language, options.legIndex + 1) : ''; + + // Replace tokens + // NOOP if they don't exist + var replaceTokens = { + 'way_name': wayName, + 'destination': firstDestination, + 'exit': (step.exits || '').split(';')[0], + 'exit_number': this.ordinalize(language, step.maneuver.exit || 1), + 'rotary_name': step.rotary_name, + 'lane_instruction': laneInstruction, + 'modifier': instructions[language][version].constants.modifier[modifier], + 'direction': this.directionFromDegree(language, step.maneuver.bearing_after), + 'nth': nthWaypoint, + 'waypoint_name': options.waypointName + }; + + return this.tokenize(language, instruction, replaceTokens, options); + }, + grammarize: function(language, name, grammar) { + if (!language) throw new Error('No language code provided'); + // Process way/rotary name with applying grammar rules if any + if (name && grammar && grammars && grammars[language] && grammars[language][version]) { + var rules = grammars[language][version][grammar]; + if (rules) { + // Pass original name to rules' regular expressions enclosed with spaces for simplier parsing + var n = ' ' + name + ' '; + var flags = grammars[language].meta.regExpFlags || ''; + rules.forEach(function(rule) { + var re = new RegExp(rule[0], flags); + n = n.replace(re, rule[1]); + }); + + return n.trim(); + } + } + + return name; + }, + abbreviations: abbreviations, + tokenize: function(language, instruction, tokens, options) { + if (!language) throw new Error('No language code provided'); + // Keep this function context to use in inline function below (no arrow functions in ES4) + var that = this; + var startedWithToken = false; + var output = instruction.replace(/\{(\w+)(?::(\w+))?\}/g, function(token, tag, grammar, offset) { + var value = tokens[tag]; + + // Return unknown token unchanged + if (typeof value === 'undefined') { + return token; + } + + value = that.grammarize(language, value, grammar); + + // If this token appears at the beginning of the instruction, capitalize it. + if (offset === 0 && instructions[language].meta.capitalizeFirstLetter) { + startedWithToken = true; + value = that.capitalizeFirstLetter(language, value); + } + + if (options && options.formatToken) { + value = options.formatToken(tag, value); + } + + return value; + }) + .replace(/ {2}/g, ' '); // remove excess spaces + + if (!startedWithToken && instructions[language].meta.capitalizeFirstLetter) { + return this.capitalizeFirstLetter(language, output); + } + + return output; + } + }; +}; + +},{"./languages":4}],4:[function(_dereq_,module,exports){ +// Load all language files explicitly to allow integration +// with bundling tools like webpack and browserify +var instructionsDa = _dereq_('./languages/translations/da.json'); +var instructionsDe = _dereq_('./languages/translations/de.json'); +var instructionsEn = _dereq_('./languages/translations/en.json'); +var instructionsEo = _dereq_('./languages/translations/eo.json'); +var instructionsEs = _dereq_('./languages/translations/es.json'); +var instructionsEsEs = _dereq_('./languages/translations/es-ES.json'); +var instructionsFi = _dereq_('./languages/translations/fi.json'); +var instructionsFr = _dereq_('./languages/translations/fr.json'); +var instructionsHe = _dereq_('./languages/translations/he.json'); +var instructionsId = _dereq_('./languages/translations/id.json'); +var instructionsIt = _dereq_('./languages/translations/it.json'); +var instructionsKo = _dereq_('./languages/translations/ko.json'); +var instructionsMy = _dereq_('./languages/translations/my.json'); +var instructionsNl = _dereq_('./languages/translations/nl.json'); +var instructionsNo = _dereq_('./languages/translations/no.json'); +var instructionsPl = _dereq_('./languages/translations/pl.json'); +var instructionsPtBr = _dereq_('./languages/translations/pt-BR.json'); +var instructionsPtPt = _dereq_('./languages/translations/pt-PT.json'); +var instructionsRo = _dereq_('./languages/translations/ro.json'); +var instructionsRu = _dereq_('./languages/translations/ru.json'); +var instructionsSv = _dereq_('./languages/translations/sv.json'); +var instructionsTr = _dereq_('./languages/translations/tr.json'); +var instructionsUk = _dereq_('./languages/translations/uk.json'); +var instructionsVi = _dereq_('./languages/translations/vi.json'); +var instructionsZhHans = _dereq_('./languages/translations/zh-Hans.json'); + +// Load all grammar files +var grammarFr = _dereq_('./languages/grammar/fr.json'); +var grammarRu = _dereq_('./languages/grammar/ru.json'); + +// Load all abbreviations files +var abbreviationsBg = _dereq_('./languages/abbreviations/bg.json'); +var abbreviationsCa = _dereq_('./languages/abbreviations/ca.json'); +var abbreviationsDa = _dereq_('./languages/abbreviations/da.json'); +var ebbreviationsDe = _dereq_('./languages/abbreviations/de.json'); +var abbreviationsEn = _dereq_('./languages/abbreviations/en.json'); +var abbreviationsEs = _dereq_('./languages/abbreviations/es.json'); +var abbreviationsFr = _dereq_('./languages/abbreviations/fr.json'); +var abbreviationsHe = _dereq_('./languages/abbreviations/he.json'); +var abbreviationsHu = _dereq_('./languages/abbreviations/hu.json'); +var abbreviationsLt = _dereq_('./languages/abbreviations/lt.json'); +var abbreviationsNl = _dereq_('./languages/abbreviations/nl.json'); +var abbreviationsRu = _dereq_('./languages/abbreviations/ru.json'); +var abbreviationsSl = _dereq_('./languages/abbreviations/sl.json'); +var abbreviationsSv = _dereq_('./languages/abbreviations/sv.json'); +var abbreviationsUk = _dereq_('./languages/abbreviations/uk.json'); +var abbreviationsVi = _dereq_('./languages/abbreviations/vi.json'); + +// Create a list of supported codes +var instructions = { + 'da': instructionsDa, + 'de': instructionsDe, + 'en': instructionsEn, + 'eo': instructionsEo, + 'es': instructionsEs, + 'es-ES': instructionsEsEs, + 'fi': instructionsFi, + 'fr': instructionsFr, + 'he': instructionsHe, + 'id': instructionsId, + 'it': instructionsIt, + 'ko': instructionsKo, + 'my': instructionsMy, + 'nl': instructionsNl, + 'no': instructionsNo, + 'pl': instructionsPl, + 'pt-BR': instructionsPtBr, + 'pt-PT': instructionsPtPt, + 'ro': instructionsRo, + 'ru': instructionsRu, + 'sv': instructionsSv, + 'tr': instructionsTr, + 'uk': instructionsUk, + 'vi': instructionsVi, + 'zh-Hans': instructionsZhHans +}; + +// Create list of supported grammar +var grammars = { + 'fr': grammarFr, + 'ru': grammarRu +}; + +// Create list of supported abbrevations +var abbreviations = { + 'bg': abbreviationsBg, + 'ca': abbreviationsCa, + 'da': abbreviationsDa, + 'de': ebbreviationsDe, + 'en': abbreviationsEn, + 'es': abbreviationsEs, + 'fr': abbreviationsFr, + 'he': abbreviationsHe, + 'hu': abbreviationsHu, + 'lt': abbreviationsLt, + 'nl': abbreviationsNl, + 'ru': abbreviationsRu, + 'sl': abbreviationsSl, + 'sv': abbreviationsSv, + 'uk': abbreviationsUk, + 'vi': abbreviationsVi +}; +module.exports = { + supportedCodes: Object.keys(instructions), + instructions: instructions, + grammars: grammars, + abbreviations: abbreviations +}; + +},{"./languages/abbreviations/bg.json":5,"./languages/abbreviations/ca.json":6,"./languages/abbreviations/da.json":7,"./languages/abbreviations/de.json":8,"./languages/abbreviations/en.json":9,"./languages/abbreviations/es.json":10,"./languages/abbreviations/fr.json":11,"./languages/abbreviations/he.json":12,"./languages/abbreviations/hu.json":13,"./languages/abbreviations/lt.json":14,"./languages/abbreviations/nl.json":15,"./languages/abbreviations/ru.json":16,"./languages/abbreviations/sl.json":17,"./languages/abbreviations/sv.json":18,"./languages/abbreviations/uk.json":19,"./languages/abbreviations/vi.json":20,"./languages/grammar/fr.json":21,"./languages/grammar/ru.json":22,"./languages/translations/da.json":23,"./languages/translations/de.json":24,"./languages/translations/en.json":25,"./languages/translations/eo.json":26,"./languages/translations/es-ES.json":27,"./languages/translations/es.json":28,"./languages/translations/fi.json":29,"./languages/translations/fr.json":30,"./languages/translations/he.json":31,"./languages/translations/id.json":32,"./languages/translations/it.json":33,"./languages/translations/ko.json":34,"./languages/translations/my.json":35,"./languages/translations/nl.json":36,"./languages/translations/no.json":37,"./languages/translations/pl.json":38,"./languages/translations/pt-BR.json":39,"./languages/translations/pt-PT.json":40,"./languages/translations/ro.json":41,"./languages/translations/ru.json":42,"./languages/translations/sv.json":43,"./languages/translations/tr.json":44,"./languages/translations/uk.json":45,"./languages/translations/vi.json":46,"./languages/translations/zh-Hans.json":47}],5:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "международен": "Межд", + "старши": "Стрш", + "възел": "Въз", + "пазар": "Mkt", + "светисвети": "СвСв", + "сестра": "сес", + "уилям": "Ум", + "апартаменти": "ап", + "езеро": "Ез", + "свети": "Св", + "център": "Ц-р", + "парк": "Пк", + "маршрут": "М-т", + "площад": "Пл", + "национален": "Нац", + "училище": "Уч", + "река": "Рек", + "поток": "П-к", + "район": "Р-н", + "крепост": "К-т", + "паметник": "Пам", + "университет": "Уни", + "Връх": "Вр", + "точка": "Точ", + "планина": "Пл", + "село": "с.", + "височини": "вис", + "младши": "Мл", + "станция": "С-я", + "проход": "Прох", + "баща": "Бщ" + }, + "classifications": { + "шофиране": "Шоф", + "плавен": "Пл", + "място": "Мя", + "тераса": "Тер", + "магистрала": "М-ла", + "площад": "Пл", + "пеш": "Пеш", + "залив": "З-в", + "пътека": "П-ка", + "платно": "Пл", + "улица": "Ул", + "алея": "Ал", + "пешеходна": "Пеш", + "точка": "Тч", + "задминаване": "Задм", + "кръгово": "Кр", + "връх": "Вр", + "съд": "Сд", + "булевард": "Бул", + "път": "Път", + "скоростна": "Скор", + "мост": "Мо" + }, + "directions": { + "северозапад": "СЗ", + "североизток": "СИ", + "югозапад": "ЮЗ", + "югоизток": "ЮИ", + "север": "С", + "изток": "И", + "юг": "Ю" + } +} + +},{}],6:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "comunicacions": "Com.", + "entitat de població": "Nucli", + "disseminat": "Diss.", + "cap de municipi": "Cap", + "indret": "Indr.", + "comarca": "Cca.", + "relleu del litoral": "Lit.", + "municipi": "Mun.", + "xarxa hidrogràfica": "Curs Fluv.", + "equipament": "Equip.", + "orografia": "Orogr.", + "barri": "Barri", + "edificació": "Edif.", + "edificació històrica": "Edif. Hist.", + "entitat descentralitzada": "E.M.D.", + "element hidrogràfic": "Hidr." + }, + "classifications": { + "rotonda": "Rot.", + "carrerada": "Ca.", + "jardí": "J.", + "paratge": "Pge.", + "pont": "Pont", + "lloc": "Lloc", + "rambla": "Rbla.", + "cases": "Cses.", + "barranc": "Bnc.", + "plana": "Plana", + "polígon": "Pol.", + "muralla": "Mur.", + "enllaç": "Ellaç", + "antiga carretera": "Actra", + "glorieta": "Glor.", + "autovia": "Autv.", + "prolongació": "Prol.", + "calçada": "Cda.", + "carretera": "Ctra.", + "pujada": "Pda.", + "torrent": "T.", + "disseminat": "Disse", + "barri": "B.", + "cinturó": "Cinto", + "passera": "Psera", + "sender": "Send.", + "carrer": "C.", + "sèquia": "Sèq.", + "blocs": "Bloc", + "rambleta": "Rblt.", + "partida": "Par.", + "costa": "Cos.", + "sector": "Sec.", + "corraló": "Crral", + "urbanització": "Urb.", + "autopista": "Autp.", + "grup": "Gr.", + "platja": "Pja.", + "jardins": "J.", + "complex": "Comp.", + "portals": "Ptals", + "finca": "Fin.", + "travessera": "Trav.", + "plaça": "Pl.", + "travessia": "Trv.", + "polígon industrial": "PI.", + "passatge": "Ptge.", + "apartaments": "Apmt.", + "mirador": "Mira.", + "antic": "Antic", + "accés": "Acc.", + "colònia": "Col.", + "corriol": "Crol.", + "portal": "Ptal.", + "porta": "Pta.", + "port": "Port", + "carreró": "Cró.", + "riera": "Ra.", + "circumval·lació": "Cval.", + "baixada": "Bda.", + "placeta": "Plta.", + "escala": "Esc.", + "gran via": "GV", + "rial": "Rial", + "conjunt": "Conj.", + "avinguda": "Av.", + "esplanada": "Esp.", + "cantonada": "Cant.", + "ronda": "Rda.", + "corredor": "Cdor.", + "drecera": "Drec.", + "passadís": "Pdís.", + "viaducte": "Vdct.", + "passeig": "Pg.", + "veïnat": "Veï." + }, + "directions": { + "sudest": "SE", + "sudoest": "SO", + "nordest": "NE", + "nordoest": "NO", + "est": "E", + "nord": "N", + "oest": "O", + "sud": "S" + } +} + +},{}],7:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "skole": "Sk.", + "ved": "v.", + "centrum": "C.", + "sankt": "Skt.", + "vestre": "v.", + "hospital": "Hosp.", + "stræde": "Str.", + "nordre": "Nr.", + "plads": "Pl.", + "universitet": "Uni.", + "vænge": "vg.", + "station": "St." + }, + "classifications": { + "avenue": "Ave", + "gammel": "Gl.", + "dronning": "Dronn.", + "sønder": "Sdr.", + "nørre": "Nr.", + "vester": "V.", + "vestre": "V.", + "øster": "Ø.", + "østre": "Ø.", + "boulevard": "Boul." + }, + "directions": { + "sydøst": "SØ", + "nordvest": "NV", + "syd": "S", + "nordøst": "NØ", + "sydvest": "SV", + "vest": "V", + "nord": "N", + "øst": "Ø" + } +} + +},{}],8:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": {}, + "classifications": {}, + "directions": { + "osten": "O", + "nordosten": "NO", + "süden": "S", + "nordwest": "NW", + "norden": "N", + "südost": "SO", + "südwest": "SW", + "westen": "W" + } +} + +},{}],9:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "square": "Sq", + "centre": "Ctr", + "sister": "Sr", + "lake": "Lk", + "fort": "Ft", + "route": "Rte", + "william": "Wm", + "national": "Nat’l", + "junction": "Jct", + "center": "Ctr", + "saint": "St", + "saints": "SS", + "station": "Sta", + "mount": "Mt", + "junior": "Jr", + "mountain": "Mtn", + "heights": "Hts", + "university": "Univ", + "school": "Sch", + "international": "Int’l", + "apartments": "Apts", + "crossing": "Xing", + "creek": "Crk", + "township": "Twp", + "downtown": "Dtwn", + "father": "Fr", + "senior": "Sr", + "point": "Pt", + "river": "Riv", + "market": "Mkt", + "village": "Vil", + "park": "Pk", + "memorial": "Mem" + }, + "classifications": { + "place": "Pl", + "circle": "Cir", + "bypass": "Byp", + "motorway": "Mwy", + "crescent": "Cres", + "road": "Rd", + "cove": "Cv", + "lane": "Ln", + "square": "Sq", + "street": "St", + "freeway": "Fwy", + "walk": "Wk", + "plaza": "Plz", + "parkway": "Pky", + "avenue": "Ave", + "pike": "Pk", + "drive": "Dr", + "highway": "Hwy", + "footway": "Ftwy", + "point": "Pt", + "court": "Ct", + "terrace": "Ter", + "walkway": "Wky", + "alley": "Aly", + "expressway": "Expy", + "bridge": "Br", + "boulevard": "Blvd", + "turnpike": "Tpk" + }, + "directions": { + "southeast": "SE", + "northwest": "NW", + "south": "S", + "west": "W", + "southwest": "SW", + "north": "N", + "east": "E", + "northeast": "NE" + } +} + +},{}],10:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "segunda": "2ª", + "octubre": "8bre", + "doctores": "Drs", + "doctora": "Dra", + "internacional": "Intl", + "doctor": "Dr", + "segundo": "2º", + "señorita": "Srta", + "doctoras": "Drs", + "primera": "1ª", + "primero": "1º", + "san": "S", + "colonia": "Col", + "doña": "Dña", + "septiembre": "7bre", + "diciembre": "10bre", + "señor": "Sr", + "ayuntamiento": "Ayto", + "señora": "Sra", + "tercera": "3ª", + "tercero": "3º", + "don": "D", + "santa": "Sta", + "ciudad": "Cdad", + "noviembre": "9bre", + "departamento": "Dep" + }, + "classifications": { + "camino": "Cmno", + "avenida": "Av", + "paseo": "Pº", + "autopista": "Auto", + "calle": "C", + "plaza": "Pza", + "carretera": "Crta" + }, + "directions": { + "este": "E", + "noreste": "NE", + "sur": "S", + "suroeste": "SO", + "noroeste": "NO", + "oeste": "O", + "sureste": "SE", + "norte": "N" + } +} + +},{}],11:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "allée": "All", + "aérodrome": "Aérod", + "aéroport": "Aérop" + }, + "classifications": { + "centrale": "Ctrale", + "campings": "Camp.", + "urbains": "Urb.", + "mineure": "Min.", + "publique": "Publ.", + "supérieur": "Sup.", + "fédération": "Féd.", + "notre-dame": "ND", + "saint": "St", + "centre hospitalier régional": "CHR", + "exploitation": "Exploit.", + "général": "Gal", + "civiles": "Civ.", + "maritimes": "Marit.", + "aviation": "Aviat.", + "iii": "3", + "archéologique": "Archéo.", + "musical": "Music.", + "musicale": "Music.", + "immeuble": "Imm.", + "xv": "15", + "hôtel": "Hôt.", + "alpine": "Alp.", + "communale": "Commun.", + "v": "5", + "global": "Glob.", + "université": "Univ.", + "confédéral": "Conféd.", + "xx": "20", + "x": "10", + "piscine": "Pisc.", + "dimanche": "di.", + "fleuve": "Flv", + "postaux": "Post.", + "musicienne": "Music.", + "département": "Dépt", + "février": "Févr.", + "municipales": "Munic.", + "province": "Prov.", + "communautés": "Commtés", + "barrage": "Barr.", + "mercredi": "me.", + "présidentes": "Pdtes", + "cafétérias": "Cafét.", + "théâtral": "Thé.", + "viticulteur": "Vitic.", + "poste": "Post.", + "spécialisée": "Spéc.", + "agriculture": "Agric.", + "infirmier": "Infirm.", + "animation": "Anim.", + "mondiale": "Mond.", + "arrêt": "Arr.", + "zone": "zon.", + "municipaux": "Munic.", + "grand": "Gd", + "janvier": "Janv.", + "fondateur": "Fond.", + "première": "1re", + "municipale": "Munic.", + "direction": "Dir.", + "anonyme": "Anon.", + "départementale": "Dépt", + "moyens": "Moy.", + "novembre": "Nov.", + "jardin": "Jard.", + "petites": "Pet.", + "privé": "Priv.", + "centres": "Ctres", + "forestier": "Forest.", + "xiv": "14", + "africaines": "Afric.", + "sergent": "Sgt", + "européenne": "Eur.", + "privée": "Priv.", + "café": "Cfé", + "xix": "19", + "hautes": "Htes", + "major": "Mjr", + "vendredi": "ve.", + "municipalité": "Munic.", + "sous-préfecture": "Ss-préf.", + "spéciales": "Spéc.", + "secondaires": "Second.", + "viie": "7e", + "moyenne": "Moy.", + "commerciale": "Commerc.", + "région": "Rég.", + "américaines": "Amér.", + "américains": "Amér.", + "service": "Sce", + "professeur": "Prof.", + "départemental": "Dépt", + "hôtels": "Hôt.", + "mondiales": "Mond.", + "ire": "1re", + "caporal": "Capo.", + "militaire": "Milit.", + "lycée d'enseignement professionnel": "LEP", + "adjudant": "Adj.", + "médicale": "Méd.", + "conférences": "Confér.", + "universelle": "Univ.", + "xiie": "12e", + "supérieures": "Sup.", + "naturel": "Natur.", + "société nationale": "SN", + "hospitalier": "Hosp.", + "culturelle": "Cult.", + "américain": "Amér.", + "son altesse royale": "S.A.R.", + "infirmière": "Infirm.", + "viii": "8", + "fondatrice": "Fond.", + "madame": "Mme", + "métropolitain": "Métrop.", + "ophtalmologues": "Ophtalmos", + "xviie": "18e", + "viiie": "8e", + "commerçante": "Commerç.", + "centre d'enseignement du second degré": "CES", + "septembre": "Sept.", + "agriculteur": "Agric.", + "xiii": "13", + "pontifical": "Pontif.", + "cafétéria": "Cafét.", + "prince": "Pce", + "vie": "6e", + "archiduchesse": "Archid.", + "occidental": "Occ.", + "spectacles": "Spect.", + "camping": "Camp.", + "métro": "Mº", + "arrondissement": "Arrond.", + "viticole": "Vitic.", + "ii": "2", + "siècle": "Si.", + "chapelles": "Chap.", + "centre": "Ctre", + "sapeur-pompiers": "Sap.-pomp.", + "établissements": "Étabts", + "société anonyme": "SA", + "directeurs": "Dir.", + "vii": "7", + "culturel": "Cult.", + "central": "Ctral", + "métropolitaine": "Métrop.", + "administrations": "Admin.", + "amiraux": "Amir.", + "sur": "s/", + "premiers": "1ers", + "provence-alpes-côte d'azur": "PACA", + "cathédrale": "Cathéd.", + "iv": "4", + "postale": "Post.", + "social": "Soc.", + "spécialisé": "Spéc.", + "district": "Distr.", + "technologique": "Techno.", + "viticoles": "Vitic.", + "ix": "9", + "protégés": "Prot.", + "historiques": "Hist.", + "sous": "s/s", + "national": "Nal", + "ambassade": "Amb.", + "cafés": "Cfés", + "agronomie": "Agro.", + "sapeurs": "Sap.", + "petits": "Pet.", + "monsieur": "M.", + "boucher": "Bouch.", + "restaurant": "Restau.", + "lycée": "Lyc.", + "urbaine": "Urb.", + "préfecture": "Préf.", + "districts": "Distr.", + "civil": "Civ.", + "protégées": "Prot.", + "sapeur": "Sap.", + "théâtre": "Thé.", + "collège": "Coll.", + "mardi": "ma.", + "mémorial": "Mémor.", + "africain": "Afric.", + "républicaine": "Républ.", + "sociale": "Soc.", + "spécial": "Spéc.", + "technologie": "Techno.", + "charcuterie": "Charc.", + "commerces": "Commerc.", + "fluviale": "Flv", + "parachutistes": "Para.", + "primaires": "Prim.", + "directions": "Dir.", + "présidentiel": "Pdtl", + "nationales": "Nales", + "après": "apr.", + "samedi": "sa.", + "unité": "U.", + "xxiii": "23", + "associé": "Assoc.", + "électrique": "Électr.", + "populaire": "Pop.", + "asiatique": "Asiat.", + "navigable": "Navig.", + "présidente": "Pdte", + "xive": "14e", + "associés": "Assoc.", + "pompiers": "Pomp.", + "agricoles": "Agric.", + "élém": "Élém.", + "décembre": "Déc.", + "son altesse": "S.Alt.", + "après-midi": "a.-m.", + "mineures": "Min.", + "juillet": "Juil.", + "aviatrices": "Aviat.", + "fondation": "Fond.", + "pontificaux": "Pontif.", + "temple": "Tple", + "européennes": "Eur.", + "régionale": "Rég.", + "informations": "Infos", + "mondiaux": "Mond.", + "infanterie": "Infant.", + "archéologie": "Archéo.", + "dans": "d/", + "hospice": "Hosp.", + "spectacle": "Spect.", + "hôtels-restaurants": "Hôt.-Rest.", + "hôtel-restaurant": "Hôt.-Rest.", + "hélicoptère": "hélico", + "xixe": "19e", + "cliniques": "Clin.", + "docteur": "Dr", + "secondaire": "Second.", + "municipal": "Munic.", + "générale": "Gale", + "château": "Chât.", + "commerçant": "Commerç.", + "avril": "Avr.", + "clinique": "Clin.", + "urbaines": "Urb.", + "navale": "Nav.", + "navigation": "Navig.", + "asiatiques": "Asiat.", + "pontificales": "Pontif.", + "administrative": "Admin.", + "syndicat": "Synd.", + "lundi": "lu.", + "petite": "Pet.", + "maritime": "Marit.", + "métros": "Mº", + "enseignement": "Enseign.", + "fluviales": "Flv", + "historique": "Hist.", + "comtés": "Ctés", + "résidentiel": "Résid.", + "international": "Int.", + "supérieure": "Sup.", + "centre hospitalier universitaire": "CHU", + "confédération": "Conféd.", + "boucherie": "Bouch.", + "fondatrices": "Fond.", + "médicaux": "Méd.", + "européens": "Eur.", + "orientaux": "Ori.", + "naval": "Nav.", + "étang": "Étg", + "provincial": "Prov.", + "junior": "Jr", + "départementales": "Dépt", + "musique": "Musiq.", + "directrices": "Dir.", + "maréchal": "Mal", + "civils": "Civ.", + "protégé": "Prot.", + "établissement": "Étabt", + "trafic": "Traf.", + "aviateur": "Aviat.", + "archives": "Arch.", + "africains": "Afric.", + "maternelle": "Matern.", + "industrielle": "Ind.", + "administratif": "Admin.", + "oriental": "Ori.", + "universitaire": "Univ.", + "majeur": "Maj.", + "haute": "Hte", + "communal": "Commun.", + "petit": "Pet.", + "commune": "Commun.", + "exploitant": "Exploit.", + "conférence": "Confér.", + "monseigneur": "Mgr", + "pharmacien": "Pharm.", + "jeudi": "je.", + "primaire": "Prim.", + "hélicoptères": "hélicos", + "agronomique": "Agro.", + "médecin": "Méd.", + "ve": "5e", + "pontificale": "Pontif.", + "ier": "1er", + "cinéma": "Ciné", + "fluvial": "Flv", + "occidentaux": "Occ.", + "commerçants": "Commerç.", + "banque": "Bq", + "moyennes": "Moy.", + "pharmacienne": "Pharm.", + "démocratique": "Dém.", + "cinémas": "Cinés", + "spéciale": "Spéc.", + "présidents": "Pdts", + "directrice": "Dir.", + "vi": "6", + "basse": "Bas.", + "xve": "15e", + "état": "É.", + "aviateurs": "Aviat.", + "majeurs": "Maj.", + "infirmiers": "Infirm.", + "église": "Égl.", + "confédérale": "Conféd.", + "xxie": "21e", + "comte": "Cte", + "européen": "Eur.", + "union": "U.", + "pharmacie": "Pharm.", + "infirmières": "Infirm.", + "comté": "Cté", + "sportive": "Sport.", + "deuxième": "2e", + "xvi": "17", + "haut": "Ht", + "médicales": "Méd.", + "développé": "Dévelop.", + "bâtiment": "Bât.", + "commerce": "Commerc.", + "ive": "4e", + "associatif": "Assoc.", + "rural": "Rur.", + "cimetière": "Cim.", + "régional": "Rég.", + "ferroviaire": "Ferr.", + "vers": "v/", + "mosquée": "Mosq.", + "mineurs": "Min.", + "nautique": "Naut.", + "châteaux": "Chât.", + "sportif": "Sport.", + "mademoiselle": "Mle", + "école": "Éc.", + "doyen": "Doy.", + "industriel": "Ind.", + "chapelle": "Chap.", + "sociétés": "Stés", + "internationale": "Int.", + "coopératif": "Coop.", + "hospices": "Hosp.", + "xxii": "22", + "parachutiste": "Para.", + "alpines": "Alp.", + "civile": "Civ.", + "xvie": "17e", + "états": "É.", + "musée": "Msée", + "centrales": "Ctrales", + "globaux": "Glob.", + "supérieurs": "Sup.", + "syndicats": "Synd.", + "archevêque": "Archev.", + "docteurs": "Drs", + "bibliothèque": "Biblio.", + "lieutenant": "Lieut.", + "république": "Rép.", + "vétérinaire": "Vét.", + "départementaux": "Dépt", + "premier": "1er", + "fluviaux": "Flv", + "animé": "Anim.", + "orientales": "Ori.", + "technologiques": "Techno.", + "princesse": "Pse", + "routière": "Rout.", + "coopérative": "Coop.", + "scolaire": "Scol.", + "écoles": "Éc.", + "football": "Foot", + "territoriale": "Territ.", + "commercial": "Commerc.", + "mineur": "Min.", + "millénaires": "Mill.", + "association": "Assoc.", + "catholique": "Cathol.", + "administration": "Admin.", + "mairie": "Mair.", + "portuaire": "Port.", + "tertiaires": "Terti.", + "théâtrale": "Thé.", + "palais": "Pal.", + "troisième": "3e", + "directeur": "Dir.", + "vétérinaires": "Vét.", + "faculté": "Fac.", + "occidentales": "Occ.", + "viticulteurs": "Vitic.", + "xvii": "18", + "occidentale": "Occ.", + "amiral": "Amir.", + "professionnel": "Profess.", + "administratives": "Admin.", + "commerciales": "Commerc.", + "saints": "Sts", + "agronomes": "Agro.", + "stade": "Std", + "sous-préfet": "Ss-préf.", + "senior": "Sr", + "agronome": "Agro.", + "terrain": "Terr.", + "catholiques": "Cathol.", + "résidentielle": "Résid.", + "grands": "Gds", + "exploitants": "Exploit.", + "xiiie": "13e", + "croix": "Cx", + "généraux": "Gaux", + "crédit": "Créd.", + "cimetières": "Cim.", + "antenne": "Ant.", + "médical": "Méd.", + "collèges": "Coll.", + "musicien": "Music.", + "apostolique": "Apost.", + "postal": "Post.", + "territorial": "Territ.", + "urbanisme": "Urb.", + "préfectorale": "Préf.", + "fondateurs": "Fond.", + "information": "Info.", + "églises": "Égl.", + "ophtalmologue": "Ophtalmo", + "congrégation": "Congrég.", + "charcutier": "Charc.", + "étage": "ét.", + "consulat": "Consul.", + "public": "Publ.", + "ferrée": "Ferr.", + "matin": "mat.", + "société anonyme à responsabilité limitée": "SARL", + "monuments": "Mmts", + "protection": "Prot.", + "universel": "Univ.", + "nationale": "Nale", + "président": "Pdt", + "provinciale": "Prov.", + "agriculteurs": "Agric.", + "préfectoral": "Préf.", + "xxe": "20e", + "alpins": "Alp.", + "avant": "av.", + "infirmerie": "Infirm.", + "deux mil": "2000", + "rurale": "Rur.", + "administratifs": "Admin.", + "octobre": "Oct.", + "archipel": "Archip.", + "communauté": "Commté", + "globales": "Glob.", + "alpin": "Alp.", + "numéros": "Nºˢ", + "lieutenant-colonel": "Lieut.-Col.", + "jésus-christ": "J.-C.", + "agricole": "Agric.", + "sa majesté": "S.Maj.", + "associative": "Assoc.", + "xxi": "21", + "présidentielle": "Pdtle", + "moyen": "Moy.", + "fédéral": "Féd.", + "professionnelle": "Profess.", + "tertiaire": "Terti.", + "ixe": "9e", + "hôpital": "Hôp.", + "technologies": "Techno.", + "iiie": "3e", + "développement": "Dévelop.", + "monument": "Mmt", + "forestière": "Forest.", + "numéro": "Nº", + "viticulture": "Vitic.", + "traversière": "Traver.", + "technique": "Tech.", + "électriques": "Électr.", + "militaires": "Milit.", + "pompier": "Pomp.", + "américaine": "Amér.", + "préfet": "Préf.", + "congrégations": "Congrég.", + "pâtissier": "Pâtiss.", + "mondial": "Mond.", + "ophtalmologie": "Ophtalm.", + "sainte": "Ste", + "africaine": "Afric.", + "aviatrice": "Aviat.", + "doyens": "Doy.", + "société": "Sté", + "majeures": "Maj.", + "orientale": "Ori.", + "ministère": "Min.", + "archiduc": "Archid.", + "territoire": "Territ.", + "techniques": "Tech.", + "île-de-france": "IDF", + "globale": "Glob.", + "xe": "10e", + "xie": "11e", + "majeure": "Maj.", + "commerciaux": "Commerc.", + "maire": "Mair.", + "spéciaux": "Spéc.", + "grande": "Gde", + "messieurs": "MM", + "colonel": "Col.", + "millénaire": "Mill.", + "xi": "11", + "urbain": "Urb.", + "fédérale": "Féd.", + "ferré": "Ferr.", + "rivière": "Riv.", + "républicain": "Républ.", + "grandes": "Gdes", + "régiment": "Régim.", + "hauts": "Hts", + "catégorie": "Catég.", + "basses": "Bas.", + "xii": "12", + "agronomiques": "Agro.", + "iie": "2e", + "protégée": "Prot.", + "sapeur-pompier": "Sap.-pomp." + }, + "directions": { + "est-nord-est": "ENE", + "nord-est": "NE", + "ouest": "O", + "sud-est": "SE", + "est-sud-est": "ESE", + "nord-nord-est": "NNE", + "sud": "S", + "nord-nord-ouest": "NNO", + "nord-ouest": "NO", + "nord": "N", + "ouest-sud-ouest": "OSO", + "ouest-nord-ouest": "ONO", + "sud-ouest": "SO", + "sud-sud-est": "SSE", + "sud-sud-ouest": "SSO", + "est": "E" + } +} + +},{}],12:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "שדרות": "שד'" + }, + "classifications": {}, + "directions": {} +} + +},{}],13:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": {}, + "classifications": {}, + "directions": { + "kelet": "K", + "északkelet": "ÉK", + "dél": "D", + "északnyugat": "ÉNY", + "észak": "É", + "délkelet": "DK", + "délnyugat": "DNY", + "nyugat": "NY" + } +} + +},{}],14:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "apartamentai": "Apt", + "aukštumos": "Aukš", + "centras": "Ctr", + "ežeras": "Ež", + "fortas": "Ft", + "greitkelis": "Grtkl", + "juosta": "Jst", + "kaimas": "Km", + "kalnas": "Kln", + "kelias": "Kl", + "kiemelis": "Kml", + "miestelis": "Mstl", + "miesto centras": "M.Ctr", + "mokykla": "Mok", + "nacionalinis": "Nac", + "paminklas": "Pmkl", + "parkas": "Pk", + "pusratis": "Psrt", + "sankryža": "Skrž", + "sesė": "Sesė", + "skveras": "Skv", + "stotis": "St", + "šv": "Šv", + "tarptautinis": "Trptaut", + "taškas": "Tšk", + "tėvas": "Tėv", + "turgus": "Tgs", + "universitetas": "Univ", + "upė": "Up", + "upelis": "Up", + "vieta": "Vt" + }, + "classifications": { + "aikštė": "a.", + "alėja": "al.", + "aplinkkelis": "aplinkl.", + "autostrada": "auto.", + "bulvaras": "b.", + "gatvė": "g.", + "kelias": "kel.", + "krantinė": "krant.", + "prospektas": "pr.", + "plentas": "pl.", + "skersgatvis": "skg.", + "takas": "tak.", + "tiltas": "tlt." + }, + "directions": { + "pietūs": "P", + "vakarai": "V", + "šiaurė": "Š", + "šiaurės vakarai": "ŠV", + "pietryčiai": "PR", + "šiaurės rytai": "ŠR", + "rytai": "R", + "pietvakariai": "PV" + } +} + +},{}],15:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "centrum": "Cntrm", + "nationaal": "Nat’l", + "berg": "Brg", + "meer": "Mr", + "kruising": "Krsng", + "toetreden": "Ttrdn" + }, + "classifications": { + "bypass": "Pass", + "brug": "Br", + "straat": "Str", + "rechtbank": "Rbank", + "snoek": "Snk", + "autobaan": "Baan", + "terras": "Trrs", + "punt": "Pt", + "plaza": "Plz", + "rijden": "Rijd", + "parkway": "Pky", + "inham": "Nham", + "snelweg": "Weg", + "halve maan": "Maan", + "cirkel": "Crkl", + "laan": "Ln", + "rijbaan": "Strook", + "weg": "Weg", + "lopen": "Lpn", + "autoweg": "Weg", + "boulevard": "Blvd", + "plaats": "Plts", + "steeg": "Stg", + "voetpad": "Stoep" + }, + "directions": { + "noordoost": "NO", + "westen": "W", + "zuiden": "Z", + "zuidwest": "ZW", + "oost": "O", + "zuidoost": "ZO", + "noordwest": "NW", + "noorden": "N" + } +} + +},{}],16:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "апостола": "ап.", + "апостолов": "апп.", + "великомученика": "вмч", + "великомученицы": "вмц.", + "владение": "вл.", + "город": "г.", + "деревня": "д.", + "имени": "им.", + "мученика":"мч.", + "мучеников": "мчч.", + "мучениц": "мцц.", + "мученицы": "мц.", + "озеро": "о.", + "посёлок": "п.", + "преподобного": "прп.", + "преподобных": "прпп.", + "река": "р.", + "святителей": "свтт.", + "святителя": "свт.", + "священномученика": "сщмч.", + "священномучеников": "сщмчч.", + "станция": "ст.", + "участок": "уч." + }, + "classifications": { + "проезд": "пр-д", + "проспект": "пр.", + "переулок": "пер.", + "набережная": "наб.", + "площадь": "пл.", + "шоссе": "ш.", + "бульвар": "б.", + "тупик": "туп.", + "улица": "ул." + }, + "directions": { + "восток": "В", + "северо-восток": "СВ", + "юго-восток": "ЮВ", + "юго-запад": "ЮЗ", + "северо-запад": "СЗ", + "север": "С", + "запад": "З", + "юг": "Ю" + } +} + +},{}],17:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": {}, + "classifications": {}, + "directions": { + "vzhod": "V", + "severovzhod": "SV", + "jug": "J", + "severozahod": "SZ", + "sever": "S", + "jugovzhod": "JV", + "jugozahod": "JZ", + "zahod": "Z" + } +} + +},{}],18:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "sankta": "s:ta", + "gamla": "G:la", + "sankt": "s:t" + }, + "classifications": { + "Bro": "Br" + }, + "directions": { + "norr": "N", + "sydöst": "SO", + "väster": "V", + "öster": "O", + "nordväst": "NV", + "sydväst": "SV", + "söder": "S", + "nordöst": "NO" + } +} + +},{}],19:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": {}, + "classifications": {}, + "directions": { + "схід": "Сх", + "північний схід": "ПнСх", + "південь": "Пд", + "північний захід": "ПнЗд", + "північ": "Пн", + "південний схід": "ПдСх", + "південний захід": "ПдЗх", + "захід": "Зх" + } +} + +},{}],20:[function(_dereq_,module,exports){ +module.exports={ + "abbreviations": { + "viện bảo tàng": "VBT", + "thị trấn": "Tt", + "đại học": "ĐH", + "căn cứ không quan": "CCKQ", + "câu lạc bộ": "CLB", + "bưu điện": "BĐ", + "khách sạn": "KS", + "khu du lịch": "KDL", + "khu công nghiệp": "KCN", + "khu nghỉ mát": "KNM", + "thị xã": "Tx", + "khu chung cư": "KCC", + "phi trường": "PT", + "trung tâm": "TT", + "tổng công ty": "TCty", + "trung học cơ sở": "THCS", + "sân bay quốc tế": "SBQT", + "trung học phổ thông": "THPT", + "cao đẳng": "CĐ", + "công ty": "Cty", + "sân bay": "SB", + "thành phố": "Tp", + "công viên": "CV", + "sân vận động": "SVĐ", + "linh mục": "LM", + "vườn quốc gia": "VQG" + }, + "classifications": { + "huyện lộ": "HL", + "đường tỉnh": "ĐT", + "quốc lộ": "QL", + "xa lộ": "XL", + "hương lộ": "HL", + "tỉnh lộ": "TL", + "đường huyện": "ĐH", + "đường cao tốc": "ĐCT", + "đại lộ": "ĐL", + "việt nam": "VN", + "quảng trường": "QT", + "đường bộ": "ĐB" + }, + "directions": { + "tây": "T", + "nam": "N", + "đông nam": "ĐN", + "đông bắc": "ĐB", + "tây nam": "TN", + "đông": "Đ", + "bắc": "B" + } +} + +},{}],21:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "regExpFlags": "gi" + }, + "v5": { + "article": [ + ["^ Acc[èe]s ", " l’accès "], + ["^ Aire ", " l’aire "], + ["^ All[ée]e ", " l’allée "], + ["^ Anse ", " l’anse "], + ["^ (L['’])?Autoroute ", " l’autoroute "], + ["^ Avenue ", " l’avenue "], + ["^ Barreau ", " le barreau "], + ["^ Boulevard ", " le boulevard "], + ["^ Chemin ", " le chemin "], + ["^ Petit[\\- ]Chemin ", " le petit chemin "], + ["^ Cit[ée] ", " la cité "], + ["^ Clos ", " le clos "], + ["^ Corniche ", " la corniche "], + ["^ Cour ", " la cour "], + ["^ Cours ", " le cours "], + ["^ D[ée]viation ", " la déviation "], + ["^ Entr[ée]e ", " l’entrée "], + ["^ Esplanade ", " l’esplanade "], + ["^ Galerie ", " la galerie "], + ["^ Impasse ", " l’impasse "], + ["^ Lotissement ", " le lotissement "], + ["^ Mont[ée]e ", " la montée "], + ["^ Parc ", " le parc "], + ["^ Parvis ", " le parvis "], + ["^ Passage ", " le passage "], + ["^ Place ", " la place "], + ["^ Petit[\\- ]Pont ", " le petit-pont "], + ["^ Pont ", " le pont "], + ["^ Promenade ", " la promenade "], + ["^ Quai ", " le quai "], + ["^ Rocade ", " la rocade "], + ["^ Rond[\\- ]?Point ", " le rond-point "], + ["^ Route ", " la route "], + ["^ Rue ", " la rue "], + ["^ Grande Rue ", " la grande rue "], + ["^ Sente ", " la sente "], + ["^ Sentier ", " le sentier "], + ["^ Sortie ", " la sortie "], + ["^ Souterrain ", " le souterrain "], + ["^ Square ", " le square "], + ["^ Terrasse ", " la terrasse "], + ["^ Traverse ", " la traverse "], + ["^ Tunnel ", " le tunnel "], + ["^ Viaduc ", " le viaduc "], + ["^ Villa ", " la villa "], + ["^ Village ", " le village "], + ["^ Voie ", " la voie "], + + [" ([dl])'", " $1’"] + ], + "preposition": [ + ["^ Le ", " du "], + ["^ Les ", " des "], + ["^ La ", " de La "], + + ["^ Acc[èe]s ", " de l’accès "], + ["^ Aire ", " de l’aire "], + ["^ All[ée]e ", " de l’allée "], + ["^ Anse ", " de l’anse "], + ["^ (L['’])?Autoroute ", " de l’autoroute "], + ["^ Avenue ", " de l’avenue "], + ["^ Barreau ", " du barreau "], + ["^ Boulevard ", " du boulevard "], + ["^ Chemin ", " du chemin "], + ["^ Petit[\\- ]Chemin ", " du petit chemin "], + ["^ Cit[ée] ", " de la cité "], + ["^ Clos ", " du clos "], + ["^ Corniche ", " de la corniche "], + ["^ Cour ", " de la cour "], + ["^ Cours ", " du cours "], + ["^ D[ée]viation ", " de la déviation "], + ["^ Entr[ée]e ", " de l’entrée "], + ["^ Esplanade ", " de l’esplanade "], + ["^ Galerie ", " de la galerie "], + ["^ Impasse ", " de l’impasse "], + ["^ Lotissement ", " du lotissement "], + ["^ Mont[ée]e ", " de la montée "], + ["^ Parc ", " du parc "], + ["^ Parvis ", " du parvis "], + ["^ Passage ", " du passage "], + ["^ Place ", " de la place "], + ["^ Petit[\\- ]Pont ", " du petit-pont "], + ["^ Pont ", " du pont "], + ["^ Promenade ", " de la promenade "], + ["^ Quai ", " du quai "], + ["^ Rocade ", " de la rocade "], + ["^ Rond[\\- ]?Point ", " du rond-point "], + ["^ Route ", " de la route "], + ["^ Rue ", " de la rue "], + ["^ Grande Rue ", " de la grande rue "], + ["^ Sente ", " de la sente "], + ["^ Sentier ", " du sentier "], + ["^ Sortie ", " de la sortie "], + ["^ Souterrain ", " du souterrain "], + ["^ Square ", " du square "], + ["^ Terrasse ", " de la terrasse "], + ["^ Traverse ", " de la traverse "], + ["^ Tunnel ", " du tunnel "], + ["^ Viaduc ", " du viaduc "], + ["^ Villa ", " de la villa "], + ["^ Village ", " du village "], + ["^ Voie ", " de la voie "], + + ["^ ([AÂÀEÈÉÊËIÎÏOÔUÙÛÜYŸÆŒ])", " d’$1"], + ["^ (\\S)", " de $1"], + [" ([dl])'", " $1’"] + ], + "rotary": [ + ["^ Le ", " le rond-point du "], + ["^ Les ", " le rond-point des "], + ["^ La ", " le rond-point de La "], + + ["^ Acc[èe]s ", " le rond-point de l’accès "], + ["^ Aire ", " le rond-point de l’aire "], + ["^ All[ée]e ", " le rond-point de l’allée "], + ["^ Anse ", " le rond-point de l’anse "], + ["^ (L['’])?Autoroute ", " le rond-point de l’autoroute "], + ["^ Avenue ", " le rond-point de l’avenue "], + ["^ Barreau ", " le rond-point du barreau "], + ["^ Boulevard ", " le rond-point du boulevard "], + ["^ Chemin ", " le rond-point du chemin "], + ["^ Petit[\\- ]Chemin ", " le rond-point du petit chemin "], + ["^ Cit[ée] ", " le rond-point de la cité "], + ["^ Clos ", " le rond-point du clos "], + ["^ Corniche ", " le rond-point de la corniche "], + ["^ Cour ", " le rond-point de la cour "], + ["^ Cours ", " le rond-point du cours "], + ["^ D[ée]viation ", " le rond-point de la déviation "], + ["^ Entr[ée]e ", " le rond-point de l’entrée "], + ["^ Esplanade ", " le rond-point de l’esplanade "], + ["^ Galerie ", " le rond-point de la galerie "], + ["^ Impasse ", " le rond-point de l’impasse "], + ["^ Lotissement ", " le rond-point du lotissement "], + ["^ Mont[ée]e ", " le rond-point de la montée "], + ["^ Parc ", " le rond-point du parc "], + ["^ Parvis ", " le rond-point du parvis "], + ["^ Passage ", " le rond-point du passage "], + ["^ Place ", " le rond-point de la place "], + ["^ Petit[\\- ]Pont ", " le rond-point du petit-pont "], + ["^ Pont ", " le rond-point du pont "], + ["^ Promenade ", " le rond-point de la promenade "], + ["^ Quai ", " le rond-point du quai "], + ["^ Rocade ", " le rond-point de la rocade "], + ["^ Rond[\\- ]?Point ", " le rond-point "], + ["^ Route ", " le rond-point de la route "], + ["^ Rue ", " le rond-point de la rue "], + ["^ Grande Rue ", " le rond-point de la grande rue "], + ["^ Sente ", " le rond-point de la sente "], + ["^ Sentier ", " le rond-point du sentier "], + ["^ Sortie ", " le rond-point de la sortie "], + ["^ Souterrain ", " le rond-point du souterrain "], + ["^ Square ", " le rond-point du square "], + ["^ Terrasse ", " le rond-point de la terrasse "], + ["^ Traverse ", " le rond-point de la traverse "], + ["^ Tunnel ", " le rond-point du tunnel "], + ["^ Viaduc ", " le rond-point du viaduc "], + ["^ Villa ", " le rond-point de la villa "], + ["^ Village ", " le rond-point du village "], + ["^ Voie ", " le rond-point de la voie "], + + ["^ ([AÂÀEÈÉÊËIÎÏOÔUÙÛÜYŸÆŒ])", " le rond-point d’$1"], + ["^ (\\S)", " le rond-point de $1"], + [" ([dl])'", " $1’"] + ], + "arrival": [ + ["^ Le ", " au "], + ["^ Les ", " aux "], + ["^ La ", " à La "], + ["^ (\\S)", " à $1"], + + [" ([dl])'", " $1’"] + ] + } +} + +},{}],22:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "regExpFlags": "" + }, + "v5": { + "accusative": [ + ["^ ([«\"])", " трасса $1"], + + ["^ (\\S+)ая [Аа]ллея ", " $1ую аллею "], + ["^ (\\S+)ья [Аа]ллея ", " $1ью аллею "], + ["^ (\\S+)яя [Аа]ллея ", " $1юю аллею "], + ["^ (\\d+)-я (\\S+)ая [Аа]ллея ", " $1-ю $2ую аллею "], + ["^ [Аа]ллея ", " аллею "], + + ["^ (\\S+)ая-(\\S+)ая [Уу]лица ", " $1ую-$2ую улицу "], + ["^ (\\S+)ая [Уу]лица ", " $1ую улицу "], + ["^ (\\S+)ья [Уу]лица ", " $1ью улицу "], + ["^ (\\S+)яя [Уу]лица ", " $1юю улицу "], + ["^ (\\d+)-я [Уу]лица ", " $1-ю улицу "], + ["^ (\\d+)-я (\\S+)ая [Уу]лица ", " $1-ю $2ую улицу "], + ["^ (\\S+)ая (\\S+)ая [Уу]лица ", " $1ую $2ую улицу "], + ["^ (\\S+[вн])а [Уу]лица ", " $1у улицу "], + ["^ (\\S+)ая (\\S+[вн])а [Уу]лица ", " $1ую $2у улицу "], + ["^ Даньславля [Уу]лица ", " Даньславлю улицу "], + ["^ Добрыня [Уу]лица ", " Добрыню улицу "], + ["^ Людогоща [Уу]лица ", " Людогощу улицу "], + ["^ [Уу]лица ", " улицу "], + + ["^ (\\d+)-я [Лл]иния ", " $1-ю линию "], + ["^ (\\d+)-(\\d+)-я [Лл]иния ", " $1-$2-ю линию "], + ["^ (\\S+)ая [Лл]иния ", " $1ую линию "], + ["^ (\\S+)ья [Лл]иния ", " $1ью линию "], + ["^ (\\S+)яя [Лл]иния ", " $1юю линию "], + ["^ (\\d+)-я (\\S+)ая [Лл]иния ", " $1-ю $2ую линию "], + ["^ [Лл]иния ", " линию "], + + ["^ (\\d+)-(\\d+)-я [Лл]инии ", " $1-$2-ю линии "], + + ["^ (\\S+)ая [Нн]абережная ", " $1ую набережную "], + ["^ (\\S+)ья [Нн]абережная ", " $1ью набережную "], + ["^ (\\S+)яя [Нн]абережная ", " $1юю набережную "], + ["^ (\\d+)-я (\\S+)ая [Нн]абережная ", " $1-ю $2ую набережную "], + ["^ [Нн]абережная ", " набережную "], + + ["^ (\\S+)ая [Пп]лощадь ", " $1ую площадь "], + ["^ (\\S+)ья [Пп]лощадь ", " $1ью площадь "], + ["^ (\\S+)яя [Пп]лощадь ", " $1юю площадь "], + ["^ (\\S+[вн])а [Пп]лощадь ", " $1у площадь "], + ["^ (\\d+)-я (\\S+)ая [Пп]лощадь ", " $1-ю $2ую площадь "], + ["^ [Пп]лощадь ", " площадь "], + + ["^ (\\S+)ая [Пп]росека ", " $1ую просеку "], + ["^ (\\S+)ья [Пп]росека ", " $1ью просеку "], + ["^ (\\S+)яя [Пп]росека ", " $1юю просеку "], + ["^ (\\d+)-я [Пп]росека ", " $1-ю просеку "], + ["^ [Пп]росека ", " просеку "], + + ["^ (\\S+)ая [Ээ]стакада ", " $1ую эстакаду "], + ["^ (\\S+)ья [Ээ]стакада ", " $1ью эстакаду "], + ["^ (\\S+)яя [Ээ]стакада ", " $1юю эстакаду "], + ["^ (\\d+)-я (\\S+)ая [Ээ]стакада ", " $1-ю $2ую эстакаду "], + ["^ [Ээ]стакада ", " эстакаду "], + + ["^ (\\S+)ая [Мм]агистраль ", " $1ую магистраль "], + ["^ (\\S+)ья [Мм]агистраль ", " $1ью магистраль "], + ["^ (\\S+)яя [Мм]агистраль ", " $1юю магистраль "], + ["^ (\\S+)ая (\\S+)ая [Мм]агистраль ", " $1ую $2ую магистраль "], + ["^ (\\d+)-я (\\S+)ая [Мм]агистраль ", " $1-ю $2ую магистраль "], + ["^ [Мм]агистраль ", " магистраль "], + + ["^ (\\S+)ая [Рр]азвязка ", " $1ую развязку "], + ["^ (\\S+)ья [Рр]азвязка ", " $1ью развязку "], + ["^ (\\S+)яя [Рр]азвязка ", " $1юю развязку "], + ["^ (\\d+)-я (\\S+)ая [Рр]азвязка ", " $1-ю $2ую развязку "], + ["^ [Рр]азвязка ", " развязку "], + + ["^ (\\S+)ая [Тт]расса ", " $1ую трассу "], + ["^ (\\S+)ья [Тт]расса ", " $1ью трассу "], + ["^ (\\S+)яя [Тт]расса ", " $1юю трассу "], + ["^ (\\d+)-я (\\S+)ая [Тт]расса ", " $1-ю $2ую трассу "], + ["^ [Тт]расса ", " трассу "], + + ["^ (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ую $2дорогу "], + ["^ (\\S+)ья ([Аа]вто)?[Дд]орога ", " $1ью $2дорогу "], + ["^ (\\S+)яя ([Аа]вто)?[Дд]орога ", " $1юю $2дорогу "], + ["^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ую $2ую $3дорогу "], + ["^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1-ю $2ую $3дорогу "], + ["^ ([Аа]вто)?[Дд]орога ", " $1дорогу "], + + ["^ (\\S+)ая [Дд]орожка ", " $1ую дорожку "], + ["^ (\\S+)ья [Дд]орожка ", " $1ью дорожку "], + ["^ (\\S+)яя [Дд]орожка ", " $1юю дорожку "], + ["^ (\\d+)-я (\\S+)ая [Дд]орожка ", " $1-ю $2ую дорожку "], + ["^ [Дд]орожка ", " дорожку "], + + ["^ (\\S+)ая [Кк]оса ", " $1ую косу "], + ["^ (\\S+)ая [Хх]орда ", " $1ую хорду "], + + ["^ [Дд]убл[её]р ", " дублёр "] + ], + "dative": [ + ["^ ([«\"])", " трасса $1"], + + ["^ (\\S+)ая [Аа]ллея ", " $1ой аллее "], + ["^ (\\S+)ья [Аа]ллея ", " $1ьей аллее "], + ["^ (\\S+)яя [Аа]ллея ", " $1ей аллее "], + ["^ (\\d+)-я (\\S+)ая [Аа]ллея ", " $1-й $2ой аллее "], + ["^ [Аа]ллея ", " аллее "], + + ["^ (\\S+)ая-(\\S+)ая [Уу]лица ", " $1ой-$2ой улице "], + ["^ (\\S+)ая [Уу]лица ", " $1ой улице "], + ["^ (\\S+)ья [Уу]лица ", " $1ьей улице "], + ["^ (\\S+)яя [Уу]лица ", " $1ей улице "], + ["^ (\\d+)-я [Уу]лица ", " $1-й улице "], + ["^ (\\d+)-я (\\S+)ая [Уу]лица ", " $1-й $2ой улице "], + ["^ (\\S+)ая (\\S+)ая [Уу]лица ", " $1ой $2ой улице "], + ["^ (\\S+[вн])а [Уу]лица ", " $1ой улице "], + ["^ (\\S+)ая (\\S+[вн])а [Уу]лица ", " $1ой $2ой улице "], + ["^ Даньславля [Уу]лица ", " Даньславлей улице "], + ["^ Добрыня [Уу]лица ", " Добрыней улице "], + ["^ Людогоща [Уу]лица ", " Людогощей улице "], + ["^ [Уу]лица ", " улице "], + + ["^ (\\d+)-я [Лл]иния ", " $1-й линии "], + ["^ (\\d+)-(\\d+)-я [Лл]иния ", " $1-$2-й линии "], + ["^ (\\S+)ая [Лл]иния ", " $1ой линии "], + ["^ (\\S+)ья [Лл]иния ", " $1ьей линии "], + ["^ (\\S+)яя [Лл]иния ", " $1ей линии "], + ["^ (\\d+)-я (\\S+)ая [Лл]иния ", " $1-й $2ой линии "], + ["^ [Лл]иния ", " линии "], + + ["^ (\\d+)-(\\d+)-я [Лл]инии ", " $1-$2-й линиям "], + + ["^ (\\S+)ая [Нн]абережная ", " $1ой набережной "], + ["^ (\\S+)ья [Нн]абережная ", " $1ьей набережной "], + ["^ (\\S+)яя [Нн]абережная ", " $1ей набережной "], + ["^ (\\d+)-я (\\S+)ая [Нн]абережная ", " $1-й $2ой набережной "], + ["^ [Нн]абережная ", " набережной "], + + ["^ (\\S+)ая [Пп]лощадь ", " $1ой площади "], + ["^ (\\S+)ья [Пп]лощадь ", " $1ьей площади "], + ["^ (\\S+)яя [Пп]лощадь ", " $1ей площади "], + ["^ (\\S+[вн])а [Пп]лощадь ", " $1ой площади "], + ["^ (\\d+)-я (\\S+)ая [Пп]лощадь ", " $1-й $2ой площади "], + ["^ [Пп]лощадь ", " площади "], + + ["^ (\\S+)ая [Пп]росека ", " $1ой просеке "], + ["^ (\\S+)ья [Пп]росека ", " $1ьей просеке "], + ["^ (\\S+)яя [Пп]росека ", " $1ей просеке "], + ["^ (\\d+)-я [Пп]росека ", " $1-й просеке "], + ["^ [Пп]росека ", " просеке "], + + ["^ (\\S+)ая [Ээ]стакада ", " $1ой эстакаде "], + ["^ (\\S+)ья [Ээ]стакада ", " $1ьей эстакаде "], + ["^ (\\S+)яя [Ээ]стакада ", " $1ей эстакаде "], + ["^ (\\d+)-я (\\S+)ая [Ээ]стакада ", " $1-й $2ой эстакаде "], + ["^ [Ээ]стакада ", " эстакаде "], + + ["^ (\\S+)ая [Мм]агистраль ", " $1ой магистрали "], + ["^ (\\S+)ья [Мм]агистраль ", " $1ьей магистрали "], + ["^ (\\S+)яя [Мм]агистраль ", " $1ей магистрали "], + ["^ (\\S+)ая (\\S+)ая [Мм]агистраль ", " $1ой $2ой магистрали "], + ["^ (\\d+)-я (\\S+)ая [Мм]агистраль ", " $1-й $2ой магистрали "], + ["^ [Мм]агистраль ", " магистрали "], + + ["^ (\\S+)ая [Рр]азвязка ", " $1ой развязке "], + ["^ (\\S+)ья [Рр]азвязка ", " $1ьей развязке "], + ["^ (\\S+)яя [Рр]азвязка ", " $1ей развязке "], + ["^ (\\d+)-я (\\S+)ая [Рр]азвязка ", " $1-й $2ой развязке "], + ["^ [Рр]азвязка ", " развязке "], + + ["^ (\\S+)ая [Тт]расса ", " $1ой трассе "], + ["^ (\\S+)ья [Тт]расса ", " $1ьей трассе "], + ["^ (\\S+)яя [Тт]расса ", " $1ей трассе "], + ["^ (\\d+)-я (\\S+)ая [Тт]расса ", " $1-й $2ой трассе "], + ["^ [Тт]расса ", " трассе "], + + ["^ (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2дороге "], + ["^ (\\S+)ья ([Аа]вто)?[Дд]орога ", " $1ьей $2дороге "], + ["^ (\\S+)яя ([Аа]вто)?[Дд]орога ", " $1ей $2дороге "], + ["^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2ой $3дороге "], + ["^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1-й $2ой $3дороге "], + ["^ ([Аа]вто)?[Дд]орога ", " $1дороге "], + + ["^ (\\S+)ая [Дд]орожка ", " $1ой дорожке "], + ["^ (\\S+)ья [Дд]орожка ", " $1ьей дорожке "], + ["^ (\\S+)яя [Дд]орожка ", " $1ей дорожке "], + ["^ (\\d+)-я (\\S+)ая [Дд]орожка ", " $1-й $2ой дорожке "], + ["^ [Дд]орожка ", " дорожке "], + + ["^ (\\S+)во [Пп]оле ", " $1ву полю "], + ["^ (\\S+)ая [Кк]оса ", " $1ой косе "], + ["^ (\\S+)ая [Хх]орда ", " $1ой хорде "], + ["^ (\\S+)[иоы]й [Пп]роток ", " $1ому протоку "], + + ["^ (\\S+н)ий [Бб]ульвар ", " $1ему бульвару "], + ["^ (\\S+)[иоы]й [Бб]ульвар ", " $1ому бульвару "], + ["^ (\\S+[иы]н) [Бб]ульвар ", " $1у бульвару "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ", " $1ому $2ему бульвару "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ", " $1ему $2ому бульвару "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ", " $1ому $2ому бульвару "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ", " $1ому $2у бульвару "], + ["^ (\\d+)-й (\\S+н)ий [Бб]ульвар ", " $1-му $2ему бульвару "], + ["^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ", " $1-му $2ому бульвару "], + ["^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ", " $1-му $2у бульвару "], + ["^ [Бб]ульвар ", " бульвару "], + + ["^ [Дд]убл[её]р ", " дублёру "], + + ["^ (\\S+н)ий [Зз]аезд ", " $1ему заезду "], + ["^ (\\S+)[иоы]й [Зз]аезд ", " $1ому заезду "], + ["^ (\\S+[еёо]в) [Зз]аезд ", " $1у заезду "], + ["^ (\\S+[иы]н) [Зз]аезд ", " $1у заезду "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ", " $1ому $2ему заезду "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ", " $1ему $2ому заезду "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ", " $1ому $2ому заезду "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ", " $1ому $2у заезду "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ", " $1ому $2у заезду "], + ["^ (\\d+)-й (\\S+н)ий [Зз]аезд ", " $1-му $2ему заезду "], + ["^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ", " $1-му $2ому заезду "], + ["^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ", " $1-му $2у заезду "], + ["^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ", " $1-му $2у заезду "], + ["^ [Зз]аезд ", " заезду "], + + ["^ (\\S+н)ий [Мм]ост ", " $1ему мосту "], + ["^ (\\S+)[иоы]й [Мм]ост ", " $1ому мосту "], + ["^ (\\S+[еёо]в) [Мм]ост ", " $1у мосту "], + ["^ (\\S+[иы]н) [Мм]ост ", " $1у мосту "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ", " $1ому $2ему мосту "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ", " $1ему $2ому мосту "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ", " $1ому $2ому мосту "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ", " $1ому $2у мосту "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ", " $1ому $2у мосту "], + ["^ (\\d+)-й [Мм]ост ", " $1-му мосту "], + ["^ (\\d+)-й (\\S+н)ий [Мм]ост ", " $1-му $2ему мосту "], + ["^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ", " $1-му $2ому мосту "], + ["^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ", " $1-му $2у мосту "], + ["^ (\\d+)-й (\\S+[иы]н) [Мм]ост ", " $1-му $2у мосту "], + ["^ [Мм]ост ", " мосту "], + + ["^ (\\S+н)ий [Оо]бход ", " $1ему обходу "], + ["^ (\\S+)[иоы]й [Оо]бход ", " $1ому обходу "], + ["^ [Оо]бход ", " обходу "], + + ["^ (\\S+н)ий [Пп]арк ", " $1ему парку "], + ["^ (\\S+)[иоы]й [Пп]арк ", " $1ому парку "], + ["^ (\\S+[иы]н) [Пп]арк ", " $1у парку "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ", " $1ому $2ему парку "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ", " $1ему $2ому парку "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ", " $1ому $2ому парку "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ", " $1ому $2у парку "], + ["^ (\\d+)-й (\\S+н)ий [Пп]арк ", " $1-му $2ему парку "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ", " $1-му $2ому парку "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]арк ", " $1-му $2у парку "], + ["^ [Пп]арк ", " парку "], + + ["^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1ому-$2ому переулку "], + ["^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1-му $2ому-$3ому переулку "], + ["^ (\\S+н)ий [Пп]ереулок ", " $1ему переулку "], + ["^ (\\S+)[иоы]й [Пп]ереулок ", " $1ому переулку "], + ["^ (\\S+[еёо]в) [Пп]ереулок ", " $1у переулку "], + ["^ (\\S+[иы]н) [Пп]ереулок ", " $1у переулку "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ", " $1ому $2ему переулку "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ", " $1ему $2ому переулку "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ", " $1ому $2ому переулку "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ", " $1ому $2у переулку "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ", " $1ому $2у переулку "], + ["^ (\\d+)-й [Пп]ереулок ", " $1-му переулку "], + ["^ (\\d+)-й (\\S+н)ий [Пп]ереулок ", " $1-му $2ему переулку "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ", " $1-му $2ому переулку "], + ["^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ", " $1-му $2у переулку "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ", " $1-му $2у переулку "], + ["^ [Пп]ереулок ", " переулку "], + + ["^ [Пп]одъезд ", " подъезду "], + + ["^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ", " $1у-$2ому проезду "], + ["^ (\\S+н)ий [Пп]роезд ", " $1ему проезду "], + ["^ (\\S+)[иоы]й [Пп]роезд ", " $1ому проезду "], + ["^ (\\S+[еёо]в) [Пп]роезд ", " $1у проезду "], + ["^ (\\S+[иы]н) [Пп]роезд ", " $1у проезду "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ", " $1ому $2ему проезду "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1ему $2ому проезду "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1ому $2ому проезду "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ", " $1ому $2у проезду "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ", " $1ому $2у проезду "], + ["^ (\\d+)-й [Пп]роезд ", " $1-му проезду "], + ["^ (\\d+)-й (\\S+н)ий [Пп]роезд ", " $1-му $2ему проезду "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ", " $1-му $2ому проезду "], + ["^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ", " $1-му $2у проезду "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ", " $1-му $2у проезду "], + ["^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1-му $2ему $3ому проезду "], + ["^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1-му $2ому $3ому проезду "], + ["^ [Пп]роезд ", " проезду "], + + ["^ (\\S+н)ий [Пп]роспект ", " $1ему проспекту "], + ["^ (\\S+)[иоы]й [Пп]роспект ", " $1ому проспекту "], + ["^ (\\S+[иы]н) [Пп]роспект ", " $1у проспекту "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ", " $1ому $2ему проспекту "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ", " $1ему $2ому проспекту "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ", " $1ому $2ому проспекту "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ", " $1ому $2у проспекту "], + ["^ (\\d+)-й (\\S+н)ий [Пп]роспект ", " $1-му $2ему проспекту "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ", " $1-му $2ому проспекту "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ", " $1-му $2у проспекту "], + ["^ [Пп]роспект ", " проспекту "], + + ["^ (\\S+н)ий [Пп]утепровод ", " $1ему путепроводу "], + ["^ (\\S+)[иоы]й [Пп]утепровод ", " $1ому путепроводу "], + ["^ (\\S+[иы]н) [Пп]утепровод ", " $1у путепроводу "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ", " $1ому $2ему путепроводу "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ", " $1ему $2ому путепроводу "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ", " $1ому $2ому путепроводу "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ", " $1ому $2у путепроводу "], + ["^ (\\d+)-й (\\S+н)ий [Пп]утепровод ", " $1-му $2ему путепроводу "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ", " $1-му $2ому путепроводу "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ", " $1-му $2у путепроводу "], + ["^ [Пп]утепровод ", " путепроводу "], + + ["^ (\\S+н)ий [Сс]пуск ", " $1ему спуску "], + ["^ (\\S+)[иоы]й [Сс]пуск ", " $1ому спуску "], + ["^ (\\S+[еёо]в) [Сс]пуск ", " $1у спуску "], + ["^ (\\S+[иы]н) [Сс]пуск ", " $1у спуску "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ", " $1ому $2ему спуску "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ", " $1ему $2ому спуску "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ", " $1ому $2ому спуску "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ", " $1ому $2у спуску "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ", " $1ому $2у спуску "], + ["^ (\\d+)-й (\\S+н)ий [Сс]пуск ", " $1-му $2ему спуску "], + ["^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ", " $1-му $2ому спуску "], + ["^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ", " $1-му $2у спуску "], + ["^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ", " $1-му $2у спуску "], + ["^ [Сс]пуск ", " спуску "], + + ["^ (\\S+н)ий [Сс]ъезд ", " $1ему съезду "], + ["^ (\\S+)[иоы]й [Сс]ъезд ", " $1ому съезду "], + ["^ (\\S+[иы]н) [Сс]ъезд ", " $1у съезду "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ", " $1ому $2ему съезду "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ", " $1ему $2ому съезду "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ", " $1ому $2ому съезду "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ", " $1ому $2у съезду "], + ["^ (\\d+)-й (\\S+н)ий [Сс]ъезд ", " $1-му $2ему съезду "], + ["^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ", " $1-му $2ому съезду "], + ["^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ", " $1-му $2у съезду "], + ["^ [Сс]ъезд ", " съезду "], + + ["^ (\\S+н)ий [Тт][уо]ннель ", " $1ему тоннелю "], + ["^ (\\S+)[иоы]й [Тт][уо]ннель ", " $1ому тоннелю "], + ["^ (\\S+[иы]н) [Тт][уо]ннель ", " $1у тоннелю "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ", " $1ому $2ему тоннелю "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ", " $1ему $2ому тоннелю "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ", " $1ому $2ому тоннелю "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ", " $1ому $2у тоннелю "], + ["^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ", " $1-му $2ему тоннелю "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ", " $1-му $2ому тоннелю "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ", " $1-му $2у тоннелю "], + ["^ [Тт][уо]ннель ", " тоннелю "], + + ["^ (\\S+н)ий [Тт]ракт ", " $1ему тракту "], + ["^ (\\S+)[иоы]й [Тт]ракт ", " $1ому тракту "], + ["^ (\\S+[еёо]в) [Тт]ракт ", " $1у тракту "], + ["^ (\\S+[иы]н) [Тт]ракт ", " $1у тракту "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ", " $1ому $2ему тракту "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ", " $1ему $2ому тракту "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ", " $1ому $2ому тракту "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ", " $1ому $2у тракту "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ", " $1ому $2у тракту "], + ["^ (\\d+)-й (\\S+н)ий [Тт]ракт ", " $1-му $2ему тракту "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ", " $1-му $2ому тракту "], + ["^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ", " $1-му $2у тракту "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ", " $1-му $2у тракту "], + ["^ [Тт]ракт ", " тракту "], + + ["^ (\\S+н)ий [Тт]упик ", " $1ему тупику "], + ["^ (\\S+)[иоы]й [Тт]упик ", " $1ому тупику "], + ["^ (\\S+[еёо]в) [Тт]упик ", " $1у тупику "], + ["^ (\\S+[иы]н) [Тт]упик ", " $1у тупику "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ", " $1ому $2ему тупику "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ", " $1ему $2ому тупику "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ", " $1ому $2ому тупику "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ", " $1ому $2у тупику "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ", " $1ому $2у тупику "], + ["^ (\\d+)-й [Тт]упик ", " $1-му тупику "], + ["^ (\\d+)-й (\\S+н)ий [Тт]упик ", " $1-му $2ему тупику "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ", " $1-му $2ому тупику "], + ["^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ", " $1-му $2у тупику "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт]упик ", " $1-му $2у тупику "], + ["^ [Тт]упик ", " тупику "], + + ["^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1му $2кольцу "], + ["^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1му $2кольцу "], + ["^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1му $2му $3кольцу "], + ["^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1му $2му $3кольцу "], + ["^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1-му $2му $3кольцу "], + ["^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1-му $2му $3кольцу "], + ["^ ([Пп]олу)?[Кк]ольцо ", " $1кольцу "], + + ["^ (\\S+[ео])е [Шш]оссе ", " $1му шоссе "], + ["^ (\\S+ье) [Шш]оссе ", " $1му шоссе "], + ["^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ", " $1му $2му шоссе "], + ["^ (\\S+ье) (\\S+[ео])е [Шш]оссе ", " $1му $2му шоссе "], + ["^ (\\d+)-е (\\S+[ео])е [Шш]оссе ", " $1-му $2му шоссе "], + ["^ (\\d+)-е (\\S+ье) [Шш]оссе ", " $1-му $2му шоссе "], + + [" ([Тт])ретому ", " $1ретьему "], + ["([жч])ому ", "$1ьему "], + ["([жч])ой ", "$1ей "] + ], + "genitive": [ + ["^ ([«\"])", " трасса $1"], + + ["^ (\\S+)ая [Аа]ллея ", " $1ой аллеи "], + ["^ (\\S+)ья [Аа]ллея ", " $1ьей аллеи "], + ["^ (\\S+)яя [Аа]ллея ", " $1ей аллеи "], + ["^ (\\d+)-я (\\S+)ая [Аа]ллея ", " $1-й $2ой аллеи "], + ["^ [Аа]ллея ", " аллеи "], + + ["^ (\\S+)ая-(\\S+)ая [Уу]лица ", " $1ой-$2ой улицы "], + ["^ (\\S+)ая [Уу]лица ", " $1ой улицы "], + ["^ (\\S+)ья [Уу]лица ", " $1ьей улицы "], + ["^ (\\S+)яя [Уу]лица ", " $1ей улицы "], + ["^ (\\d+)-я [Уу]лица ", " $1-й улицы "], + ["^ (\\d+)-я (\\S+)ая [Уу]лица ", " $1-й $2ой улицы "], + ["^ (\\S+)ая (\\S+)ая [Уу]лица ", " $1ой $2ой улицы "], + ["^ (\\S+[вн])а [Уу]лица ", " $1ой улицы "], + ["^ (\\S+)ая (\\S+[вн])а [Уу]лица ", " $1ой $2ой улицы "], + ["^ Даньславля [Уу]лица ", " Даньславлей улицы "], + ["^ Добрыня [Уу]лица ", " Добрыней улицы "], + ["^ Людогоща [Уу]лица ", " Людогощей улицы "], + ["^ [Уу]лица ", " улицы "], + + ["^ (\\d+)-я [Лл]иния ", " $1-й линии "], + ["^ (\\d+)-(\\d+)-я [Лл]иния ", " $1-$2-й линии "], + ["^ (\\S+)ая [Лл]иния ", " $1ой линии "], + ["^ (\\S+)ья [Лл]иния ", " $1ьей линии "], + ["^ (\\S+)яя [Лл]иния ", " $1ей линии "], + ["^ (\\d+)-я (\\S+)ая [Лл]иния ", " $1-й $2ой линии "], + ["^ [Лл]иния ", " линии "], + + ["^ (\\d+)-(\\d+)-я [Лл]инии ", " $1-$2-й линий "], + + ["^ (\\S+)ая [Нн]абережная ", " $1ой набережной "], + ["^ (\\S+)ья [Нн]абережная ", " $1ьей набережной "], + ["^ (\\S+)яя [Нн]абережная ", " $1ей набережной "], + ["^ (\\d+)-я (\\S+)ая [Нн]абережная ", " $1-й $2ой набережной "], + ["^ [Нн]абережная ", " набережной "], + + ["^ (\\S+)ая [Пп]лощадь ", " $1ой площади "], + ["^ (\\S+)ья [Пп]лощадь ", " $1ьей площади "], + ["^ (\\S+)яя [Пп]лощадь ", " $1ей площади "], + ["^ (\\S+[вн])а [Пп]лощадь ", " $1ой площади "], + ["^ (\\d+)-я (\\S+)ая [Пп]лощадь ", " $1-й $2ой площади "], + ["^ [Пп]лощадь ", " площади "], + + ["^ (\\S+)ая [Пп]росека ", " $1ой просеки "], + ["^ (\\S+)ья [Пп]росека ", " $1ьей просеки "], + ["^ (\\S+)яя [Пп]росека ", " $1ей просеки "], + ["^ (\\d+)-я [Пп]росека ", " $1-й просеки "], + ["^ [Пп]росека ", " просеки "], + + ["^ (\\S+)ая [Ээ]стакада ", " $1ой эстакады "], + ["^ (\\S+)ья [Ээ]стакада ", " $1ьей эстакады "], + ["^ (\\S+)яя [Ээ]стакада ", " $1ей эстакады "], + ["^ (\\d+)-я (\\S+)ая [Ээ]стакада ", " $1-й $2ой эстакады "], + ["^ [Ээ]стакада ", " эстакады "], + + ["^ (\\S+)ая [Мм]агистраль ", " $1ой магистрали "], + ["^ (\\S+)ья [Мм]агистраль ", " $1ьей магистрали "], + ["^ (\\S+)яя [Мм]агистраль ", " $1ей магистрали "], + ["^ (\\S+)ая (\\S+)ая [Мм]агистраль ", " $1ой $2ой магистрали "], + ["^ (\\d+)-я (\\S+)ая [Мм]агистраль ", " $1-й $2ой магистрали "], + ["^ [Мм]агистраль ", " магистрали "], + + ["^ (\\S+)ая [Рр]азвязка ", " $1ой развязки "], + ["^ (\\S+)ья [Рр]азвязка ", " $1ьей развязки "], + ["^ (\\S+)яя [Рр]азвязка ", " $1ей развязки "], + ["^ (\\d+)-я (\\S+)ая [Рр]азвязка ", " $1-й $2ой развязки "], + ["^ [Рр]азвязка ", " развязки "], + + ["^ (\\S+)ая [Тт]расса ", " $1ой трассы "], + ["^ (\\S+)ья [Тт]расса ", " $1ьей трассы "], + ["^ (\\S+)яя [Тт]расса ", " $1ей трассы "], + ["^ (\\d+)-я (\\S+)ая [Тт]расса ", " $1-й $2ой трассы "], + ["^ [Тт]расса ", " трассы "], + + ["^ (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2дороги "], + ["^ (\\S+)ья ([Аа]вто)?[Дд]орога ", " $1ьей $2дороги "], + ["^ (\\S+)яя ([Аа]вто)?[Дд]орога ", " $1ей $2дороги "], + ["^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2ой $3дороги "], + ["^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1-й $2ой $3дороги "], + ["^ ([Аа]вто)?[Дд]орога ", " $1дороги "], + + ["^ (\\S+)ая [Дд]орожка ", " $1ой дорожки "], + ["^ (\\S+)ья [Дд]орожка ", " $1ьей дорожки "], + ["^ (\\S+)яя [Дд]орожка ", " $1ей дорожки "], + ["^ (\\d+)-я (\\S+)ая [Дд]орожка ", " $1-й $2ой дорожки "], + ["^ [Дд]орожка ", " дорожки "], + + ["^ (\\S+)во [Пп]оле ", " $1ва поля "], + ["^ (\\S+)ая [Кк]оса ", " $1ой косы "], + ["^ (\\S+)ая [Хх]орда ", " $1ой хорды "], + ["^ (\\S+)[иоы]й [Пп]роток ", " $1ого протока "], + + ["^ (\\S+н)ий [Бб]ульвар ", " $1его бульвара "], + ["^ (\\S+)[иоы]й [Бб]ульвар ", " $1ого бульвара "], + ["^ (\\S+[иы]н) [Бб]ульвар ", " $1ого бульвара "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ", " $1ого $2его бульвара "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ", " $1его $2ого бульвара "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ", " $1ого $2ого бульвара "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ", " $1ого $2ого бульвара "], + ["^ (\\d+)-й (\\S+н)ий [Бб]ульвар ", " $1-го $2его бульвара "], + ["^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ", " $1-го $2ого бульвара "], + ["^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ", " $1-го $2ого бульвара "], + ["^ [Бб]ульвар ", " бульвара "], + + ["^ [Дд]убл[её]р ", " дублёра "], + + ["^ (\\S+н)ий [Зз]аезд ", " $1его заезда "], + ["^ (\\S+)[иоы]й [Зз]аезд ", " $1ого заезда "], + ["^ (\\S+[еёо]в) [Зз]аезд ", " $1а заезда "], + ["^ (\\S+[иы]н) [Зз]аезд ", " $1а заезда "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ", " $1ого $2его заезда "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ", " $1его $2ого заезда "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ", " $1ого $2ого заезда "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ", " $1ого $2а заезда "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ", " $1ого $2а заезда "], + ["^ (\\d+)-й (\\S+н)ий [Зз]аезд ", " $1-го $2его заезда "], + ["^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ", " $1-го $2ого заезда "], + ["^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ", " $1-го $2а заезда "], + ["^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ", " $1-го $2а заезда "], + ["^ [Зз]аезд ", " заезда "], + + ["^ (\\S+н)ий [Мм]ост ", " $1его моста "], + ["^ (\\S+)[иоы]й [Мм]ост ", " $1ого моста "], + ["^ (\\S+[еёо]в) [Мм]ост ", " $1а моста "], + ["^ (\\S+[иы]н) [Мм]ост ", " $1а моста "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ", " $1ого $2его моста "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ", " $1его $2ого моста "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ", " $1ого $2ого моста "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ", " $1ого $2а моста "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ", " $1ого $2а моста "], + ["^ (\\d+)-й [Мм]ост ", " $1-го моста "], + ["^ (\\d+)-й (\\S+н)ий [Мм]ост ", " $1-го $2его моста "], + ["^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ", " $1-го $2ого моста "], + ["^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ", " $1-го $2а моста "], + ["^ (\\d+)-й (\\S+[иы]н) [Мм]ост ", " $1-го $2а моста "], + ["^ [Мм]ост ", " моста "], + + ["^ (\\S+н)ий [Оо]бход ", " $1его обхода "], + ["^ (\\S+)[иоы]й [Оо]бход ", " $1ого обхода "], + ["^ [Оо]бход ", " обхода "], + + ["^ (\\S+н)ий [Пп]арк ", " $1его парка "], + ["^ (\\S+)[иоы]й [Пп]арк ", " $1ого парка "], + ["^ (\\S+[иы]н) [Пп]арк ", " $1ого парка "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ", " $1ого $2его парка "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ", " $1его $2ого парка "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ", " $1ого $2ого парка "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ", " $1ого $2ого парка "], + ["^ (\\d+)-й (\\S+н)ий [Пп]арк ", " $1-го $2его парка "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ", " $1-го $2ого парка "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]арк ", " $1-го $2ого парка "], + ["^ [Пп]арк ", " парка "], + + ["^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1ого-$2ого переулка "], + ["^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1-го $2ого-$3ого переулка "], + ["^ (\\S+н)ий [Пп]ереулок ", " $1его переулка "], + ["^ (\\S+)[иоы]й [Пп]ереулок ", " $1ого переулка "], + ["^ (\\S+[еёо]в) [Пп]ереулок ", " $1а переулка "], + ["^ (\\S+[иы]н) [Пп]ереулок ", " $1а переулка "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ", " $1ого $2его переулка "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ", " $1его $2ого переулка "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ", " $1ого $2ого переулка "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ", " $1ого $2а переулка "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ", " $1ого $2а переулка "], + ["^ (\\d+)-й [Пп]ереулок ", " $1-го переулка "], + ["^ (\\d+)-й (\\S+н)ий [Пп]ереулок ", " $1-го $2его переулка "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ", " $1-го $2ого переулка "], + ["^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ", " $1-го $2а переулка "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ", " $1-го $2а переулка "], + ["^ [Пп]ереулок ", " переулка "], + + ["^ [Пп]одъезд ", " подъезда "], + + ["^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ", " $1а-$2ого проезда "], + ["^ (\\S+н)ий [Пп]роезд ", " $1его проезда "], + ["^ (\\S+)[иоы]й [Пп]роезд ", " $1ого проезда "], + ["^ (\\S+[еёо]в) [Пп]роезд ", " $1а проезда "], + ["^ (\\S+[иы]н) [Пп]роезд ", " $1а проезда "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ", " $1ого $2его проезда "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1его $2ого проезда "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1ого $2ого проезда "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ", " $1ого $2а проезда "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ", " $1ого $2а проезда "], + ["^ (\\d+)-й [Пп]роезд ", " $1-го проезда "], + ["^ (\\d+)-й (\\S+н)ий [Пп]роезд ", " $1-го $2его проезда "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ", " $1-го $2ого проезда "], + ["^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ", " $1-го $2а проезда "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ", " $1-го $2а проезда "], + ["^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1-го $2его $3ого проезда "], + ["^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1-го $2ого $3ого проезда "], + ["^ [Пп]роезд ", " проезда "], + + ["^ (\\S+н)ий [Пп]роспект ", " $1его проспекта "], + ["^ (\\S+)[иоы]й [Пп]роспект ", " $1ого проспекта "], + ["^ (\\S+[иы]н) [Пп]роспект ", " $1ого проспекта "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ", " $1ого $2его проспекта "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ", " $1его $2ого проспекта "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ", " $1ого $2ого проспекта "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ", " $1ого $2ого проспекта "], + ["^ (\\d+)-й (\\S+н)ий [Пп]роспект ", " $1-го $2его проспекта "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ", " $1-го $2ого проспекта "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ", " $1-го $2ого проспекта "], + ["^ [Пп]роспект ", " проспекта "], + + ["^ (\\S+н)ий [Пп]утепровод ", " $1его путепровода "], + ["^ (\\S+)[иоы]й [Пп]утепровод ", " $1ого путепровода "], + ["^ (\\S+[иы]н) [Пп]утепровод ", " $1ого путепровода "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ", " $1ого $2его путепровода "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ", " $1его $2ого путепровода "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ", " $1ого $2ого путепровода "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ", " $1ого $2ого путепровода "], + ["^ (\\d+)-й (\\S+н)ий [Пп]утепровод ", " $1-го $2его путепровода "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ", " $1-го $2ого путепровода "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ", " $1-го $2ого путепровода "], + ["^ [Пп]утепровод ", " путепровода "], + + ["^ (\\S+н)ий [Сс]пуск ", " $1его спуска "], + ["^ (\\S+)[иоы]й [Сс]пуск ", " $1ого спуска "], + ["^ (\\S+[еёо]в) [Сс]пуск ", " $1а спуска "], + ["^ (\\S+[иы]н) [Сс]пуск ", " $1а спуска "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ", " $1ого $2его спуска "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ", " $1его $2ого спуска "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ", " $1ого $2ого спуска "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ", " $1ого $2а спуска "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ", " $1ого $2а спуска "], + ["^ (\\d+)-й (\\S+н)ий [Сс]пуск ", " $1-го $2его спуска "], + ["^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ", " $1-го $2ого спуска "], + ["^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ", " $1-го $2а спуска "], + ["^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ", " $1-го $2а спуска "], + ["^ [Сс]пуск ", " спуска "], + + ["^ (\\S+н)ий [Сс]ъезд ", " $1его съезда "], + ["^ (\\S+)[иоы]й [Сс]ъезд ", " $1ого съезда "], + ["^ (\\S+[иы]н) [Сс]ъезд ", " $1ого съезда "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ", " $1ого $2его съезда "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ", " $1его $2ого съезда "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ", " $1ого $2ого съезда "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ", " $1ого $2ого съезда "], + ["^ (\\d+)-й (\\S+н)ий [Сс]ъезд ", " $1-го $2его съезда "], + ["^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ", " $1-го $2ого съезда "], + ["^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ", " $1-го $2ого съезда "], + ["^ [Сс]ъезд ", " съезда "], + + ["^ (\\S+н)ий [Тт][уо]ннель ", " $1его тоннеля "], + ["^ (\\S+)[иоы]й [Тт][уо]ннель ", " $1ого тоннеля "], + ["^ (\\S+[иы]н) [Тт][уо]ннель ", " $1ого тоннеля "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ", " $1ого $2его тоннеля "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ", " $1его $2ого тоннеля "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ", " $1ого $2ого тоннеля "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ", " $1ого $2ого тоннеля "], + ["^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ", " $1-го $2его тоннеля "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ", " $1-го $2ого тоннеля "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ", " $1-го $2ого тоннеля "], + ["^ [Тт][уо]ннель ", " тоннеля "], + + ["^ (\\S+н)ий [Тт]ракт ", " $1ем тракта "], + ["^ (\\S+)[иоы]й [Тт]ракт ", " $1ого тракта "], + ["^ (\\S+[еёо]в) [Тт]ракт ", " $1а тракта "], + ["^ (\\S+[иы]н) [Тт]ракт ", " $1а тракта "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ", " $1ого $2его тракта "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ", " $1его $2ого тракта "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ", " $1ого $2ого тракта "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ", " $1ого $2а тракта "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ", " $1ого $2а тракта "], + ["^ (\\d+)-й (\\S+н)ий [Тт]ракт ", " $1-го $2его тракта "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ", " $1-го $2ого тракта "], + ["^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ", " $1-го $2а тракта "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ", " $1-го $2а тракта "], + ["^ [Тт]ракт ", " тракта "], + + ["^ (\\S+н)ий [Тт]упик ", " $1его тупика "], + ["^ (\\S+)[иоы]й [Тт]упик ", " $1ого тупика "], + ["^ (\\S+[еёо]в) [Тт]упик ", " $1а тупика "], + ["^ (\\S+[иы]н) [Тт]упик ", " $1а тупика "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ", " $1ого $2его тупика "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ", " $1его $2ого тупика "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ", " $1ого $2ого тупика "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ", " $1ого $2а тупика "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ", " $1ого $2а тупика "], + ["^ (\\d+)-й [Тт]упик ", " $1-го тупика "], + ["^ (\\d+)-й (\\S+н)ий [Тт]упик ", " $1-го $2его тупика "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ", " $1-го $2ого тупика "], + ["^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ", " $1-го $2а тупика "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт]упик ", " $1-го $2а тупика "], + ["^ [Тт]упик ", " тупика "], + + ["^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1го $2кольца "], + ["^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1го $2кольца "], + ["^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1го $2го $3кольца "], + ["^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1го $2го $3кольца "], + ["^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1-го $2го $3кольца "], + ["^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1-го $2го $3кольца "], + ["^ ([Пп]олу)?[Кк]ольцо ", " $1кольца "], + + ["^ (\\S+[ео])е [Шш]оссе ", " $1го шоссе "], + ["^ (\\S+ье) [Шш]оссе ", " $1го шоссе "], + ["^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ", " $1го $2го шоссе "], + ["^ (\\S+ье) (\\S+[ео])е [Шш]оссе ", " $1го $2го шоссе "], + ["^ (\\d+)-е (\\S+[ео])е [Шш]оссе ", " $1-го $2го шоссе "], + ["^ (\\d+)-е (\\S+ье) [Шш]оссе ", " $1-го $2го шоссе "], + + [" ([Тт])ретого ", " $1ретьего "], + ["([жч])ого ", "$1ьего "] + ], + "prepositional": [ + ["^ ([«\"])", " трасса $1"], + + ["^ (\\S+)ая [Аа]ллея ", " $1ой аллее "], + ["^ (\\S+)ья [Аа]ллея ", " $1ьей аллее "], + ["^ (\\S+)яя [Аа]ллея ", " $1ей аллее "], + ["^ (\\d+)-я (\\S+)ая [Аа]ллея ", " $1-й $2ой аллее "], + ["^ [Аа]ллея ", " аллее "], + + ["^ (\\S+)ая-(\\S+)ая [Уу]лица ", " $1ой-$2ой улице "], + ["^ (\\S+)ая [Уу]лица ", " $1ой улице "], + ["^ (\\S+)ья [Уу]лица ", " $1ьей улице "], + ["^ (\\S+)яя [Уу]лица ", " $1ей улице "], + ["^ (\\d+)-я [Уу]лица ", " $1-й улице "], + ["^ (\\d+)-я (\\S+)ая [Уу]лица ", " $1-й $2ой улице "], + ["^ (\\S+)ая (\\S+)ая [Уу]лица ", " $1ой $2ой улице "], + ["^ (\\S+[вн])а [Уу]лица ", " $1ой улице "], + ["^ (\\S+)ая (\\S+[вн])а [Уу]лица ", " $1ой $2ой улице "], + ["^ Даньславля [Уу]лица ", " Даньславлей улице "], + ["^ Добрыня [Уу]лица ", " Добрыней улице "], + ["^ Людогоща [Уу]лица ", " Людогощей улице "], + ["^ [Уу]лица ", " улице "], + + ["^ (\\d+)-я [Лл]иния ", " $1-й линии "], + ["^ (\\d+)-(\\d+)-я [Лл]иния ", " $1-$2-й линии "], + ["^ (\\S+)ая [Лл]иния ", " $1ой линии "], + ["^ (\\S+)ья [Лл]иния ", " $1ьей линии "], + ["^ (\\S+)яя [Лл]иния ", " $1ей линии "], + ["^ (\\d+)-я (\\S+)ая [Лл]иния ", " $1-й $2ой линии "], + ["^ [Лл]иния ", " линии "], + + ["^ (\\d+)-(\\d+)-я [Лл]инии ", " $1-$2-й линиях "], + + ["^ (\\S+)ая [Нн]абережная ", " $1ой набережной "], + ["^ (\\S+)ья [Нн]абережная ", " $1ьей набережной "], + ["^ (\\S+)яя [Нн]абережная ", " $1ей набережной "], + ["^ (\\d+)-я (\\S+)ая [Нн]абережная ", " $1-й $2ой набережной "], + ["^ [Нн]абережная ", " набережной "], + + ["^ (\\S+)ая [Пп]лощадь ", " $1ой площади "], + ["^ (\\S+)ья [Пп]лощадь ", " $1ьей площади "], + ["^ (\\S+)яя [Пп]лощадь ", " $1ей площади "], + ["^ (\\S+[вн])а [Пп]лощадь ", " $1ой площади "], + ["^ (\\d+)-я (\\S+)ая [Пп]лощадь ", " $1-й $2ой площади "], + ["^ [Пп]лощадь ", " площади "], + + ["^ (\\S+)ая [Пп]росека ", " $1ой просеке "], + ["^ (\\S+)ья [Пп]росека ", " $1ьей просеке "], + ["^ (\\S+)яя [Пп]росека ", " $1ей просеке "], + ["^ (\\d+)-я [Пп]росека ", " $1-й просеке "], + ["^ [Пп]росека ", " просеке "], + + ["^ (\\S+)ая [Ээ]стакада ", " $1ой эстакаде "], + ["^ (\\S+)ья [Ээ]стакада ", " $1ьей эстакаде "], + ["^ (\\S+)яя [Ээ]стакада ", " $1ей эстакаде "], + ["^ (\\d+)-я (\\S+)ая [Ээ]стакада ", " $1-й $2ой эстакаде "], + ["^ [Ээ]стакада ", " эстакаде "], + + ["^ (\\S+)ая [Мм]агистраль ", " $1ой магистрали "], + ["^ (\\S+)ья [Мм]агистраль ", " $1ьей магистрали "], + ["^ (\\S+)яя [Мм]агистраль ", " $1ей магистрали "], + ["^ (\\S+)ая (\\S+)ая [Мм]агистраль ", " $1ой $2ой магистрали "], + ["^ (\\d+)-я (\\S+)ая [Мм]агистраль ", " $1-й $2ой магистрали "], + ["^ [Мм]агистраль ", " магистрали "], + + ["^ (\\S+)ая [Рр]азвязка ", " $1ой развязке "], + ["^ (\\S+)ья [Рр]азвязка ", " $1ьей развязке "], + ["^ (\\S+)яя [Рр]азвязка ", " $1ей развязке "], + ["^ (\\d+)-я (\\S+)ая [Рр]азвязка ", " $1-й $2ой развязке "], + ["^ [Рр]азвязка ", " развязке "], + + ["^ (\\S+)ая [Тт]расса ", " $1ой трассе "], + ["^ (\\S+)ья [Тт]расса ", " $1ьей трассе "], + ["^ (\\S+)яя [Тт]расса ", " $1ей трассе "], + ["^ (\\d+)-я (\\S+)ая [Тт]расса ", " $1-й $2ой трассе "], + ["^ [Тт]расса ", " трассе "], + + ["^ (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2дороге "], + ["^ (\\S+)ья ([Аа]вто)?[Дд]орога ", " $1ьей $2дороге "], + ["^ (\\S+)яя ([Аа]вто)?[Дд]орога ", " $1ей $2дороге "], + ["^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2ой $3дороге "], + ["^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1-й $2ой $3дороге "], + ["^ ([Аа]вто)?[Дд]орога ", " $1дороге "], + + ["^ (\\S+)ая [Дд]орожка ", " $1ой дорожке "], + ["^ (\\S+)ья [Дд]орожка ", " $1ьей дорожке "], + ["^ (\\S+)яя [Дд]орожка ", " $1ей дорожке "], + ["^ (\\d+)-я (\\S+)ая [Дд]орожка ", " $1-й $2ой дорожке "], + ["^ [Дд]орожка ", " дорожке "], + + ["^ (\\S+)во [Пп]оле ", " $1вом поле "], + ["^ (\\S+)ая [Кк]оса ", " $1ой косе "], + ["^ (\\S+)ая [Хх]орда ", " $1ой хорде "], + ["^ (\\S+)[иоы]й [Пп]роток ", " $1ом протоке "], + + ["^ (\\S+н)ий [Бб]ульвар ", " $1ем бульваре "], + ["^ (\\S+)[иоы]й [Бб]ульвар ", " $1ом бульваре "], + ["^ (\\S+[иы]н) [Бб]ульвар ", " $1ом бульваре "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ", " $1ом $2ем бульваре "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ", " $1ем $2ом бульваре "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ", " $1ом $2ом бульваре "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ", " $1ом $2ом бульваре "], + ["^ (\\d+)-й (\\S+н)ий [Бб]ульвар ", " $1-м $2ем бульваре "], + ["^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ", " $1-м $2ом бульваре "], + ["^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ", " $1-м $2ом бульваре "], + ["^ [Бб]ульвар ", " бульваре "], + + ["^ [Дд]убл[её]р ", " дублёре "], + + ["^ (\\S+н)ий [Зз]аезд ", " $1ем заезде "], + ["^ (\\S+)[иоы]й [Зз]аезд ", " $1ом заезде "], + ["^ (\\S+[еёо]в) [Зз]аезд ", " $1ом заезде "], + ["^ (\\S+[иы]н) [Зз]аезд ", " $1ом заезде "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ", " $1ом $2ем заезде "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ", " $1ем $2ом заезде "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ", " $1ом $2ом заезде "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ", " $1ом $2ом заезде "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ", " $1ом $2ом заезде "], + ["^ (\\d+)-й (\\S+н)ий [Зз]аезд ", " $1-м $2ем заезде "], + ["^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ", " $1-м $2ом заезде "], + ["^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ", " $1-м $2ом заезде "], + ["^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ", " $1-м $2ом заезде "], + ["^ [Зз]аезд ", " заезде "], + + ["^ (\\S+н)ий [Мм]ост ", " $1ем мосту "], + ["^ (\\S+)[иоы]й [Мм]ост ", " $1ом мосту "], + ["^ (\\S+[еёо]в) [Мм]ост ", " $1ом мосту "], + ["^ (\\S+[иы]н) [Мм]ост ", " $1ом мосту "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ", " $1ом $2ем мосту "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ", " $1ем $2ом мосту "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ", " $1ом $2ом мосту "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ", " $1ом $2ом мосту "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ", " $1ом $2ом мосту "], + ["^ (\\d+)-й [Мм]ост ", " $1-м мосту "], + ["^ (\\d+)-й (\\S+н)ий [Мм]ост ", " $1-м $2ем мосту "], + ["^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ", " $1-м $2ом мосту "], + ["^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ", " $1-м $2ом мосту "], + ["^ (\\d+)-й (\\S+[иы]н) [Мм]ост ", " $1-м $2ом мосту "], + ["^ [Мм]ост ", " мосту "], + + ["^ (\\S+н)ий [Оо]бход ", " $1ем обходе "], + ["^ (\\S+)[иоы]й [Оо]бход ", " $1ом обходе "], + ["^ [Оо]бход ", " обходе "], + + ["^ (\\S+н)ий [Пп]арк ", " $1ем парке "], + ["^ (\\S+)[иоы]й [Пп]арк ", " $1ом парке "], + ["^ (\\S+[иы]н) [Пп]арк ", " $1ом парке "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ", " $1ом $2ем парке "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ", " $1ем $2ом парке "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ", " $1ом $2ом парке "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ", " $1ом $2ом парке "], + ["^ (\\d+)-й (\\S+н)ий [Пп]арк ", " $1-м $2ем парке "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ", " $1-м $2ом парке "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]арк ", " $1-м $2ом парке "], + ["^ [Пп]арк ", " парке "], + + ["^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1ом-$2ом переулке "], + ["^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1-м $2ом-$3ом переулке "], + ["^ (\\S+н)ий [Пп]ереулок ", " $1ем переулке "], + ["^ (\\S+)[иоы]й [Пп]ереулок ", " $1ом переулке "], + ["^ (\\S+[еёо]в) [Пп]ереулок ", " $1ом переулке "], + ["^ (\\S+[иы]н) [Пп]ереулок ", " $1ом переулке "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ", " $1ом $2ем переулке "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ", " $1ем $2ом переулке "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ", " $1ом $2ом переулке "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ", " $1ом $2ом переулке "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ", " $1ом $2ом переулке "], + ["^ (\\d+)-й [Пп]ереулок ", " $1-м переулке "], + ["^ (\\d+)-й (\\S+н)ий [Пп]ереулок ", " $1-м $2ем переулке "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ", " $1-м $2ом переулке "], + ["^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ", " $1-м $2ом переулке "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ", " $1-м $2ом переулке "], + ["^ [Пп]ереулок ", " переулке "], + + ["^ [Пп]одъезд ", " подъезде "], + + ["^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ", " $1ом-$2ом проезде "], + ["^ (\\S+н)ий [Пп]роезд ", " $1ем проезде "], + ["^ (\\S+)[иоы]й [Пп]роезд ", " $1ом проезде "], + ["^ (\\S+[еёо]в) [Пп]роезд ", " $1ом проезде "], + ["^ (\\S+[иы]н) [Пп]роезд ", " $1ом проезде "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ", " $1ом $2ем проезде "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1ем $2ом проезде "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1ом $2ом проезде "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ", " $1ом $2ом проезде "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ", " $1ом $2ом проезде "], + ["^ (\\d+)-й [Пп]роезд ", " $1-м проезде "], + ["^ (\\d+)-й (\\S+н)ий [Пп]роезд ", " $1-м $2ем проезде "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ", " $1-м $2ом проезде "], + ["^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ", " $1-м $2ом проезде "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ", " $1-м $2ом проезде "], + ["^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1-м $2ем $3ом проезде "], + ["^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1-м $2ом $3ом проезде "], + ["^ [Пп]роезд ", " проезде "], + + ["^ (\\S+н)ий [Пп]роспект ", " $1ем проспекте "], + ["^ (\\S+)[иоы]й [Пп]роспект ", " $1ом проспекте "], + ["^ (\\S+[иы]н) [Пп]роспект ", " $1ом проспекте "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ", " $1ом $2ем проспекте "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ", " $1ем $2ом проспекте "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ", " $1ом $2ом проспекте "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ", " $1ом $2ом проспекте "], + ["^ (\\d+)-й (\\S+н)ий [Пп]роспект ", " $1-м $2ем проспекте "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ", " $1-м $2ом проспекте "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ", " $1-м $2ом проспекте "], + ["^ [Пп]роспект ", " проспекте "], + + ["^ (\\S+н)ий [Пп]утепровод ", " $1ем путепроводе "], + ["^ (\\S+)[иоы]й [Пп]утепровод ", " $1ом путепроводе "], + ["^ (\\S+[иы]н) [Пп]утепровод ", " $1ом путепроводе "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ", " $1ом $2ем путепроводе "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ", " $1ем $2ом путепроводе "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ", " $1ом $2ом путепроводе "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ", " $1ом $2ом путепроводе "], + ["^ (\\d+)-й (\\S+н)ий [Пп]утепровод ", " $1-м $2ем путепроводе "], + ["^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ", " $1-м $2ом путепроводе "], + ["^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ", " $1-м $2ом путепроводе "], + ["^ [Пп]утепровод ", " путепроводе "], + + ["^ (\\S+н)ий [Сс]пуск ", " $1ем спуске "], + ["^ (\\S+)[иоы]й [Сс]пуск ", " $1ом спуске "], + ["^ (\\S+[еёо]в) [Сс]пуск ", " $1ом спуске "], + ["^ (\\S+[иы]н) [Сс]пуск ", " $1ом спуске "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ", " $1ом $2ем спуске "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ", " $1ем $2ом спуске "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ", " $1ом $2ом спуске "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ", " $1ом $2ом спуске "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ", " $1ом $2ом спуске "], + ["^ (\\d+)-й (\\S+н)ий [Сс]пуск ", " $1-м $2ем спуске "], + ["^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ", " $1-м $2ом спуске "], + ["^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ", " $1-м $2ом спуске "], + ["^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ", " $1-м $2ом спуске "], + ["^ [Сс]пуск ", " спуске "], + + ["^ (\\S+н)ий [Сс]ъезд ", " $1ем съезде "], + ["^ (\\S+)[иоы]й [Сс]ъезд ", " $1ом съезде "], + ["^ (\\S+[иы]н) [Сс]ъезд ", " $1ом съезде "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ", " $1ом $2ем съезде "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ", " $1ем $2ом съезде "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ", " $1ом $2ом съезде "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ", " $1ом $2ом съезде "], + ["^ (\\d+)-й (\\S+н)ий [Сс]ъезд ", " $1-м $2ем съезде "], + ["^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ", " $1-м $2ом съезде "], + ["^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ", " $1-м $2ом съезде "], + ["^ [Сс]ъезд ", " съезде "], + + ["^ (\\S+н)ий [Тт][уо]ннель ", " $1ем тоннеле "], + ["^ (\\S+)[иоы]й [Тт][уо]ннель ", " $1ом тоннеле "], + ["^ (\\S+[иы]н) [Тт][уо]ннель ", " $1ом тоннеле "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ", " $1ом $2ем тоннеле "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ", " $1ем $2ом тоннеле "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ", " $1ом $2ом тоннеле "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ", " $1ом $2ом тоннеле "], + ["^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ", " $1-м $2ем тоннеле "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ", " $1-м $2ом тоннеле "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ", " $1-м $2ом тоннеле "], + ["^ [Тт][уо]ннель ", " тоннеле "], + + ["^ (\\S+н)ий [Тт]ракт ", " $1ем тракте "], + ["^ (\\S+)[иоы]й [Тт]ракт ", " $1ом тракте "], + ["^ (\\S+[еёо]в) [Тт]ракт ", " $1ом тракте "], + ["^ (\\S+[иы]н) [Тт]ракт ", " $1ом тракте "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ", " $1ом $2ем тракте "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ", " $1ем $2ом тракте "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ", " $1ом $2ом тракте "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ", " $1ом $2ом тракте "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ", " $1ом $2ом тракте "], + ["^ (\\d+)-й (\\S+н)ий [Тт]ракт ", " $1-м $2ем тракте "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ", " $1-м $2ом тракте "], + ["^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ", " $1-м $2ом тракте "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ", " $1-м $2ом тракте "], + ["^ [Тт]ракт ", " тракте "], + + ["^ (\\S+н)ий [Тт]упик ", " $1ем тупике "], + ["^ (\\S+)[иоы]й [Тт]упик ", " $1ом тупике "], + ["^ (\\S+[еёо]в) [Тт]упик ", " $1ом тупике "], + ["^ (\\S+[иы]н) [Тт]упик ", " $1ом тупике "], + ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ", " $1ом $2ем тупике "], + ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ", " $1ем $2ом тупике "], + ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ", " $1ом $2ом тупике "], + ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ", " $1ом $2ом тупике "], + ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ", " $1ом $2ом тупике "], + ["^ (\\d+)-й [Тт]упик ", " $1-м тупике "], + ["^ (\\d+)-й (\\S+н)ий [Тт]упик ", " $1-м $2ем тупике "], + ["^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ", " $1-м $2ом тупике "], + ["^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ", " $1-м $2ом тупике "], + ["^ (\\d+)-й (\\S+[иы]н) [Тт]упик ", " $1-м $2ом тупике "], + ["^ [Тт]упик ", " тупике "], + + ["^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1м $2кольце "], + ["^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1м $2кольце "], + ["^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1м $2м $3кольце "], + ["^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1м $2м $3кольце "], + ["^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1-м $2м $3кольце "], + ["^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1-м $2м $3кольце "], + ["^ ([Пп]олу)?[Кк]ольцо ", " $1кольце "], + + ["^ (\\S+[ео])е [Шш]оссе ", " $1м шоссе "], + ["^ (\\S+ье) [Шш]оссе ", " $1м шоссе "], + ["^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ", " $1м $2м шоссе "], + ["^ (\\S+ье) (\\S+[ео])е [Шш]оссе ", " $1м $2м шоссе "], + ["^ (\\d+)-е (\\S+[ео])е [Шш]оссе ", " $1-м $2м шоссе "], + ["^ (\\d+)-е (\\S+ье) [Шш]оссе ", " $1-м $2м шоссе "], + + [" ([Тт])ретом ", " $1ретьем "], + ["([жч])ом ", "$1ьем "] + ] + } +} + +},{}],23:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "første", + "2": "anden", + "3": "tredje", + "4": "fjerde", + "5": "femte", + "6": "sjette", + "7": "syvende", + "8": "ottende", + "9": "niende", + "10": "tiende" + }, + "direction": { + "north": "Nord", + "northeast": "Nordøst", + "east": "Øst", + "southeast": "Sydøst", + "south": "Syd", + "southwest": "Sydvest", + "west": "Vest", + "northwest": "Nordvest" + }, + "modifier": { + "left": "venstresving", + "right": "højresving", + "sharp left": "skarpt venstresving", + "sharp right": "skarpt højresving", + "slight left": "svagt venstresving", + "slight right": "svagt højresving", + "straight": "ligeud", + "uturn": "U-vending" + }, + "lanes": { + "xo": "Hold til højre", + "ox": "Hold til venstre", + "xox": "Benyt midterste spor", + "oxo": "Hold til højre eller venstre" + } + }, + "modes": { + "ferry": { + "default": "Tag færgen", + "name": "Tag færgen {way_name}", + "destination": "Tag færgen i retning {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one} derefter, efter {distance}, {instruction_two}", + "two linked": "{instruction_one}, derefter {instruction_two}", + "one in distance": "Efter {distance} {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "afkørsel {exit}" + }, + "arrive": { + "default": { + "default": "Du er ankommet til din {nth} destination", + "upcoming": "Du vil ankomme til din {nth} destination", + "short": "Du er ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du er ankommet til {waypoint_name}" + }, + "left": { + "default": "Du er ankommet til din {nth} destination, som befinder sig til venstre", + "upcoming": "Du vil ankomme til din {nth} destination på venstre hånd", + "short": "Du er ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du er ankommet til {waypoint_name}, som befinder sig til venstre" + }, + "right": { + "default": "Du er ankommet til din {nth} destination, som befinder sig til højre", + "upcoming": "Du vil ankomme til din {nth} destination på højre hånd", + "short": "Du er ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du er ankommet til {waypoint_name}, som befinder sig til højre" + }, + "sharp left": { + "default": "Du er ankommet til din {nth} destination, som befinder sig til venstre", + "upcoming": "Du vil ankomme til din {nth} destination på venstre hånd", + "short": "Du er ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du er ankommet til {waypoint_name}, som befinder sig til venstre" + }, + "sharp right": { + "default": "Du er ankommet til din {nth} destination, som befinder sig til højre", + "upcoming": "Du vil ankomme til din {nth} destination på højre hånd", + "short": "Du er ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du er ankommet til {waypoint_name}, som befinder sig til højre" + }, + "slight right": { + "default": "Du er ankommet til din {nth} destination, som befinder sig til højre", + "upcoming": "Du vil ankomme til din {nth} destination på højre hånd", + "short": "Du er ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du er ankommet til {waypoint_name}, som befinder sig til højre" + }, + "slight left": { + "default": "Du er ankommet til din {nth} destination, som befinder sig til venstre", + "upcoming": "Du vil ankomme til din {nth} destination på venstre hånd", + "short": "Du er ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du er ankommet til {waypoint_name}, som befinder sig til venstre" + }, + "straight": { + "default": "Du er ankommet til din {nth} destination, der befinder sig lige frem", + "upcoming": "Du vil ankomme til din {nth} destination foran dig", + "short": "Du er ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du er ankommet til {waypoint_name}, der befinder sig lige frem" + } + }, + "continue": { + "default": { + "default": "Drej til {modifier}", + "name": "Drej til {modifier} videre ad {way_name}", + "destination": "Drej til {modifier} mod {destination}", + "exit": "Drej til {modifier} ad {way_name}" + }, + "straight": { + "default": "Fortsæt ligeud", + "name": "Fortsæt ligeud ad {way_name}", + "destination": "Fortsæt mod {destination}", + "distance": "Fortsæt {distance} ligeud", + "namedistance": "Fortsæt {distance} ad {way_name}" + }, + "sharp left": { + "default": "Drej skarpt til venstre", + "name": "Drej skarpt til venstre videre ad {way_name}", + "destination": "Drej skarpt til venstre mod {destination}" + }, + "sharp right": { + "default": "Drej skarpt til højre", + "name": "Drej skarpt til højre videre ad {way_name}", + "destination": "Drej skarpt til højre mod {destination}" + }, + "slight left": { + "default": "Drej left til venstre", + "name": "Drej let til venstre videre ad {way_name}", + "destination": "Drej let til venstre mod {destination}" + }, + "slight right": { + "default": "Drej let til højre", + "name": "Drej let til højre videre ad {way_name}", + "destination": "Drej let til højre mod {destination}" + }, + "uturn": { + "default": "Foretag en U-vending", + "name": "Foretag en U-vending tilbage ad {way_name}", + "destination": "Foretag en U-vending mod {destination}" + } + }, + "depart": { + "default": { + "default": "Kør mod {direction}", + "name": "Kør mod {direction} ad {way_name}", + "namedistance": "Fortsæt {distance} ad {way_name}mod {direction}" + } + }, + "end of road": { + "default": { + "default": "Drej til {modifier}", + "name": "Drej til {modifier} ad {way_name}", + "destination": "Drej til {modifier} mof {destination}" + }, + "straight": { + "default": "Fortsæt ligeud", + "name": "Fortsæt ligeud ad {way_name}", + "destination": "Fortsæt ligeud mod {destination}" + }, + "uturn": { + "default": "Foretag en U-vending for enden af vejen", + "name": "Foretag en U-vending ad {way_name} for enden af vejen", + "destination": "Foretag en U-vending mod {destination} for enden af vejen" + } + }, + "fork": { + "default": { + "default": "Hold til {modifier} ved udfletningen", + "name": "Hold mod {modifier} på {way_name}", + "destination": "Hold mod {modifier} mod {destination}" + }, + "slight left": { + "default": "Hold til venstre ved udfletningen", + "name": "Hold til venstre på {way_name}", + "destination": "Hold til venstre mod {destination}" + }, + "slight right": { + "default": "Hold til højre ved udfletningen", + "name": "Hold til højre på {way_name}", + "destination": "Hold til højre mod {destination}" + }, + "sharp left": { + "default": "Drej skarpt til venstre ved udfletningen", + "name": "Drej skarpt til venstre ad {way_name}", + "destination": "Drej skarpt til venstre mod {destination}" + }, + "sharp right": { + "default": "Drej skarpt til højre ved udfletningen", + "name": "Drej skarpt til højre ad {way_name}", + "destination": "Drej skarpt til højre mod {destination}" + }, + "uturn": { + "default": "Foretag en U-vending", + "name": "Foretag en U-vending ad {way_name}", + "destination": "Foretag en U-vending mod {destination}" + } + }, + "merge": { + "default": { + "default": "Flet til {modifier}", + "name": "Flet til {modifier} ad {way_name}", + "destination": "Flet til {modifier} mod {destination}" + }, + "straight": { + "default": "Flet", + "name": "Flet ind på {way_name}", + "destination": "Flet ind mod {destination}" + }, + "slight left": { + "default": "Flet til venstre", + "name": "Flet til venstre ad {way_name}", + "destination": "Flet til venstre mod {destination}" + }, + "slight right": { + "default": "Flet til højre", + "name": "Flet til højre ad {way_name}", + "destination": "Flet til højre mod {destination}" + }, + "sharp left": { + "default": "Flet til venstre", + "name": "Flet til venstre ad {way_name}", + "destination": "Flet til venstre mod {destination}" + }, + "sharp right": { + "default": "Flet til højre", + "name": "Flet til højre ad {way_name}", + "destination": "Flet til højre mod {destination}" + }, + "uturn": { + "default": "Foretag en U-vending", + "name": "Foretag en U-vending ad {way_name}", + "destination": "Foretag en U-vending mod {destination}" + } + }, + "new name": { + "default": { + "default": "Fortsæt {modifier}", + "name": "Fortsæt {modifier} ad {way_name}", + "destination": "Fortsæt {modifier} mod {destination}" + }, + "straight": { + "default": "Fortsæt ligeud", + "name": "Fortsæt ad {way_name}", + "destination": "Fortsæt mod {destination}" + }, + "sharp left": { + "default": "Drej skarpt til venstre", + "name": "Drej skarpt til venstre ad {way_name}", + "destination": "Drej skarpt til venstre mod {destination}" + }, + "sharp right": { + "default": "Drej skarpt til højre", + "name": "Drej skarpt til højre ad {way_name}", + "destination": "Drej skarpt til højre mod {destination}" + }, + "slight left": { + "default": "Fortsæt til venstre", + "name": "Fortsæt til venstre ad {way_name}", + "destination": "Fortsæt til venstre mod {destination}" + }, + "slight right": { + "default": "Fortsæt til højre", + "name": "Fortsæt til højre ad {way_name}", + "destination": "Fortsæt til højre mod {destination}" + }, + "uturn": { + "default": "Foretag en U-vending", + "name": "Foretag en U-vending ad {way_name}", + "destination": "Foretag en U-vending mod {destination}" + } + }, + "notification": { + "default": { + "default": "Fortsæt {modifier}", + "name": "Fortsæt {modifier} ad {way_name}", + "destination": "Fortsæt {modifier} mod {destination}" + }, + "uturn": { + "default": "Foretag en U-vending", + "name": "Foretag en U-vending ad {way_name}", + "destination": "Foretag en U-vending mod {destination}" + } + }, + "off ramp": { + "default": { + "default": "Tag afkørslen", + "name": "Tag afkørslen ad {way_name}", + "destination": "Tag afkørslen mod {destination}", + "exit": "Vælg afkørsel {exit}", + "exit_destination": "Vælg afkørsel {exit} mod {destination}" + }, + "left": { + "default": "Tag afkørslen til venstre", + "name": "Tag afkørslen til venstre ad {way_name}", + "destination": "Tag afkørslen til venstre mod {destination}", + "exit": "Vælg afkørsel {exit} til venstre", + "exit_destination": "Vælg afkørsel {exit} til venstre mod {destination}\n" + }, + "right": { + "default": "Tag afkørslen til højre", + "name": "Tag afkørslen til højre ad {way_name}", + "destination": "Tag afkørslen til højre mod {destination}", + "exit": "Vælg afkørsel {exit} til højre", + "exit_destination": "Vælg afkørsel {exit} til højre mod {destination}" + }, + "sharp left": { + "default": "Tag afkørslen til venstre", + "name": "Tag afkørslen til venstre ad {way_name}", + "destination": "Tag afkørslen til venstre mod {destination}", + "exit": "Vælg afkørsel {exit} til venstre", + "exit_destination": "Vælg afkørsel {exit} til venstre mod {destination}\n" + }, + "sharp right": { + "default": "Tag afkørslen til højre", + "name": "Tag afkørslen til højre ad {way_name}", + "destination": "Tag afkørslen til højre mod {destination}", + "exit": "Vælg afkørsel {exit} til højre", + "exit_destination": "Vælg afkørsel {exit} til højre mod {destination}" + }, + "slight left": { + "default": "Tag afkørslen til venstre", + "name": "Tag afkørslen til venstre ad {way_name}", + "destination": "Tag afkørslen til venstre mod {destination}", + "exit": "Vælg afkørsel {exit} til venstre", + "exit_destination": "Vælg afkørsel {exit} til venstre mod {destination}\n" + }, + "slight right": { + "default": "Tag afkørslen til højre", + "name": "Tag afkørslen til højre ad {way_name}", + "destination": "Tag afkørslen til højre mod {destination}", + "exit": "Vælg afkørsel {exit} til højre", + "exit_destination": "Vælg afkørsel {exit} til højre mod {destination}" + } + }, + "on ramp": { + "default": { + "default": "Tag afkørslen", + "name": "Tag afkørslen ad {way_name}", + "destination": "Tag afkørslen mod {destination}" + }, + "left": { + "default": "Tag afkørslen til venstre", + "name": "Tag afkørslen til venstre ad {way_name}", + "destination": "Tag afkørslen til venstre mod {destination}" + }, + "right": { + "default": "Tag afkørslen til højre", + "name": "Tag afkørslen til højre ad {way_name}", + "destination": "Tag afkørslen til højre mod {destination}" + }, + "sharp left": { + "default": "Tag afkørslen til venstre", + "name": "Tag afkørslen til venstre ad {way_name}", + "destination": "Tag afkørslen til venstre mod {destination}" + }, + "sharp right": { + "default": "Tag afkørslen til højre", + "name": "Tag afkørslen til højre ad {way_name}", + "destination": "Tag afkørslen til højre mod {destination}" + }, + "slight left": { + "default": "Tag afkørslen til venstre", + "name": "Tag afkørslen til venstre ad {way_name}", + "destination": "Tag afkørslen til venstre mod {destination}" + }, + "slight right": { + "default": "Tag afkørslen til højre", + "name": "Tag afkørslen til højre ad {way_name}", + "destination": "Tag afkørslen til højre mod {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Kør ind i rundkørslen", + "name": "Tag rundkørslen og kør fra ad {way_name}", + "destination": "Tag rundkørslen og kør mod {destination}" + }, + "name": { + "default": "Kør ind i {rotary_name}", + "name": "Kør ind i {rotary_name} og kør ad {way_name} ", + "destination": "Kør ind i {rotary_name} og kør mod {destination}" + }, + "exit": { + "default": "Tag rundkørslen og forlad ved {exit_number} afkørsel", + "name": "Tag rundkørslen og forlad ved {exit_number} afkørsel ad {way_name}", + "destination": "Tag rundkørslen og forlad ved {exit_number} afkørsel mod {destination}" + }, + "name_exit": { + "default": "Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel", + "name": "Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel ad {way_name}", + "destination": "Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel mod {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Tag rundkørslen og forlad ved {exit_number} afkørsel", + "name": "Tag rundkørslen og forlad ved {exit_number} afkørsel ad {way_name}", + "destination": "Tag rundkørslen og forlad ved {exit_number} afkørsel mod {destination}" + }, + "default": { + "default": "Kør ind i rundkørslen", + "name": "Tag rundkørslen og kør fra ad {way_name}", + "destination": "Tag rundkørslen og kør mod {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Foretag et {modifier}", + "name": "Foretag et {modifier} ad {way_name}", + "destination": "Foretag et {modifier} mod {destination}" + }, + "left": { + "default": "Drej til venstre", + "name": "Drej til venstre ad {way_name}", + "destination": "Drej til venstre mod {destination}" + }, + "right": { + "default": "Drej til højre", + "name": "Drej til højre ad {way_name}", + "destination": "Drej til højre mod {destination}" + }, + "straight": { + "default": "Fortsæt ligeud", + "name": "Fortsæt ligeud ad {way_name}", + "destination": "Fortsæt ligeud mod {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Forlad rundkørslen", + "name": "Forlad rundkørslen ad {way_name}", + "destination": "Forlad rundkørslen mod {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Forlad rundkørslen", + "name": "Forlad rundkørslen ad {way_name}", + "destination": "Forlad rundkørslen mod {destination}" + } + }, + "turn": { + "default": { + "default": "Foretag et {modifier}", + "name": "Foretag et {modifier} ad {way_name}", + "destination": "Foretag et {modifier} mod {destination}" + }, + "left": { + "default": "Drej til venstre", + "name": "Drej til venstre ad {way_name}", + "destination": "Drej til venstre mod {destination}" + }, + "right": { + "default": "Drej til højre", + "name": "Drej til højre ad {way_name}", + "destination": "Drej til højre mod {destination}" + }, + "straight": { + "default": "Fortsæt ligeud", + "name": "Kør ligeud ad {way_name}", + "destination": "Kør ligeud mod {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Fortsæt ligeud" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],24:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "erste", + "2": "zweite", + "3": "dritte", + "4": "vierte", + "5": "fünfte", + "6": "sechste", + "7": "siebente", + "8": "achte", + "9": "neunte", + "10": "zehnte" + }, + "direction": { + "north": "Norden", + "northeast": "Nordosten", + "east": "Osten", + "southeast": "Südosten", + "south": "Süden", + "southwest": "Südwesten", + "west": "Westen", + "northwest": "Nordwesten" + }, + "modifier": { + "left": "links", + "right": "rechts", + "sharp left": "scharf links", + "sharp right": "scharf rechts", + "slight left": "leicht links", + "slight right": "leicht rechts", + "straight": "geradeaus", + "uturn": "180°-Wendung" + }, + "lanes": { + "xo": "Rechts halten", + "ox": "Links halten", + "xox": "Mittlere Spur nutzen", + "oxo": "Rechts oder links halten" + } + }, + "modes": { + "ferry": { + "default": "Fähre nehmen", + "name": "Fähre nehmen {way_name}", + "destination": "Fähre nehmen Richtung {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one} danach in {distance} {instruction_two}", + "two linked": "{instruction_one} danach {instruction_two}", + "one in distance": "In {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "exit {exit}" + }, + "arrive": { + "default": { + "default": "Sie haben Ihr {nth} Ziel erreicht", + "upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "short": "Sie haben Ihr {nth} Ziel erreicht", + "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "named": "Sie haben Ihr {waypoint_name}" + }, + "left": { + "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", + "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", + "short": "Sie haben Ihr {nth} Ziel erreicht", + "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "named": "Sie haben Ihr {waypoint_name}, es befindet sich links" + }, + "right": { + "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", + "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", + "short": "Sie haben Ihr {nth} Ziel erreicht", + "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "named": "Sie haben Ihr {waypoint_name}, es befindet sich rechts" + }, + "sharp left": { + "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", + "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", + "short": "Sie haben Ihr {nth} Ziel erreicht", + "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "named": "Sie haben Ihr {waypoint_name}, es befindet sich links" + }, + "sharp right": { + "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", + "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", + "short": "Sie haben Ihr {nth} Ziel erreicht", + "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "named": "Sie haben Ihr {waypoint_name}, es befindet sich rechts" + }, + "slight right": { + "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", + "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", + "short": "Sie haben Ihr {nth} Ziel erreicht", + "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "named": "Sie haben Ihr {waypoint_name}, es befindet sich rechts" + }, + "slight left": { + "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", + "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", + "short": "Sie haben Ihr {nth} Ziel erreicht", + "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "named": "Sie haben Ihr {waypoint_name}, es befindet sich links" + }, + "straight": { + "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich geradeaus", + "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich geradeaus", + "short": "Sie haben Ihr {nth} Ziel erreicht", + "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", + "named": "Sie haben Ihr {waypoint_name}, es befindet sich geradeaus" + } + }, + "continue": { + "default": { + "default": "{modifier} abbiegen", + "name": "{modifier} weiterfahren auf {way_name}", + "destination": "{modifier} abbiegen Richtung {destination}", + "exit": "{modifier} abbiegen auf {way_name}" + }, + "straight": { + "default": "Geradeaus weiterfahren", + "name": "Geradeaus weiterfahren auf {way_name}", + "destination": "Weiterfahren in Richtung {destination}", + "distance": "Geradeaus weiterfahren für {distance}", + "namedistance": "Geradeaus weiterfahren auf {way_name} für {distance}" + }, + "sharp left": { + "default": "Scharf links", + "name": "Scharf links weiterfahren auf {way_name}", + "destination": "Scharf links Richtung {destination}" + }, + "sharp right": { + "default": "Scharf rechts", + "name": "Scharf rechts weiterfahren auf {way_name}", + "destination": "Scharf rechts Richtung {destination}" + }, + "slight left": { + "default": "Leicht links", + "name": "Leicht links weiter auf {way_name}", + "destination": "Leicht links weiter Richtung {destination}" + }, + "slight right": { + "default": "Leicht rechts weiter", + "name": "Leicht rechts weiter auf {way_name}", + "destination": "Leicht rechts weiter Richtung {destination}" + }, + "uturn": { + "default": "180°-Wendung", + "name": "180°-Wendung auf {way_name}", + "destination": "180°-Wendung Richtung {destination}" + } + }, + "depart": { + "default": { + "default": "Fahren Sie Richtung {direction}", + "name": "Fahren Sie Richtung {direction} auf {way_name}", + "namedistance": "Fahren Sie Richtung {direction} auf {way_name} für {distance}" + } + }, + "end of road": { + "default": { + "default": "{modifier} abbiegen", + "name": "{modifier} abbiegen auf {way_name}", + "destination": "{modifier} abbiegen Richtung {destination}" + }, + "straight": { + "default": "Geradeaus weiterfahren", + "name": "Geradeaus weiterfahren auf {way_name}", + "destination": "Geradeaus weiterfahren Richtung {destination}" + }, + "uturn": { + "default": "180°-Wendung am Ende der Straße", + "name": "180°-Wendung auf {way_name} am Ende der Straße", + "destination": "180°-Wendung Richtung {destination} am Ende der Straße" + } + }, + "fork": { + "default": { + "default": "{modifier} halten an der Gabelung", + "name": "{modifier} halten an der Gabelung auf {way_name}", + "destination": "{modifier} halten an der Gabelung Richtung {destination}" + }, + "slight left": { + "default": "Links halten an der Gabelung", + "name": "Links halten an der Gabelung auf {way_name}", + "destination": "Links halten an der Gabelung Richtung {destination}" + }, + "slight right": { + "default": "Rechts halten an der Gabelung", + "name": "Rechts halten an der Gabelung auf {way_name}", + "destination": "Rechts halten an der Gabelung Richtung {destination}" + }, + "sharp left": { + "default": "Scharf links abbiegen an der Gabelung", + "name": "Scharf links auf {way_name}", + "destination": "Scharf links Richtung {destination}" + }, + "sharp right": { + "default": "Scharf rechts abbiegen an der Gabelung", + "name": "Scharf rechts auf {way_name}", + "destination": "Scharf rechts Richtung {destination}" + }, + "uturn": { + "default": "180°-Wendung", + "name": "180°-Wendung auf {way_name}", + "destination": "180°-Wendung Richtung {destination}" + } + }, + "merge": { + "default": { + "default": "{modifier} auffahren", + "name": "{modifier} auffahren auf {way_name}", + "destination": "{modifier} auffahren Richtung {destination}" + }, + "straight": { + "default": "geradeaus auffahren", + "name": "geradeaus auffahren auf {way_name}", + "destination": "geradeaus auffahren Richtung {destination}" + }, + "slight left": { + "default": "Leicht links auffahren", + "name": "Leicht links auffahren auf {way_name}", + "destination": "Leicht links auffahren Richtung {destination}" + }, + "slight right": { + "default": "Leicht rechts auffahren", + "name": "Leicht rechts auffahren auf {way_name}", + "destination": "Leicht rechts auffahren Richtung {destination}" + }, + "sharp left": { + "default": "Scharf links auffahren", + "name": "Scharf links auffahren auf {way_name}", + "destination": "Scharf links auffahren Richtung {destination}" + }, + "sharp right": { + "default": "Scharf rechts auffahren", + "name": "Scharf rechts auffahren auf {way_name}", + "destination": "Scharf rechts auffahren Richtung {destination}" + }, + "uturn": { + "default": "180°-Wendung", + "name": "180°-Wendung auf {way_name}", + "destination": "180°-Wendung Richtung {destination}" + } + }, + "new name": { + "default": { + "default": "{modifier} weiterfahren", + "name": "{modifier} weiterfahren auf {way_name}", + "destination": "{modifier} weiterfahren Richtung {destination}" + }, + "straight": { + "default": "Geradeaus weiterfahren", + "name": "Weiterfahren auf {way_name}", + "destination": "Weiterfahren in Richtung {destination}" + }, + "sharp left": { + "default": "Scharf links", + "name": "Scharf links auf {way_name}", + "destination": "Scharf links Richtung {destination}" + }, + "sharp right": { + "default": "Scharf rechts", + "name": "Scharf rechts auf {way_name}", + "destination": "Scharf rechts Richtung {destination}" + }, + "slight left": { + "default": "Leicht links weiter", + "name": "Leicht links weiter auf {way_name}", + "destination": "Leicht links weiter Richtung {destination}" + }, + "slight right": { + "default": "Leicht rechts weiter", + "name": "Leicht rechts weiter auf {way_name}", + "destination": "Leicht rechts weiter Richtung {destination}" + }, + "uturn": { + "default": "180°-Wendung", + "name": "180°-Wendung auf {way_name}", + "destination": "180°-Wendung Richtung {destination}" + } + }, + "notification": { + "default": { + "default": "{modifier} weiterfahren", + "name": "{modifier} weiterfahren auf {way_name}", + "destination": "{modifier} weiterfahren Richtung {destination}" + }, + "uturn": { + "default": "180°-Wendung", + "name": "180°-Wendung auf {way_name}", + "destination": "180°-Wendung Richtung {destination}" + } + }, + "off ramp": { + "default": { + "default": "Ausfahrt nehmen", + "name": "Ausfahrt nehmen auf {way_name}", + "destination": "Ausfahrt nehmen Richtung {destination}", + "exit": "Ausfahrt {exit} nehmen", + "exit_destination": "Ausfahrt {exit} nehmen Richtung {destination}" + }, + "left": { + "default": "Ausfahrt links nehmen", + "name": "Ausfahrt links nehmen auf {way_name}", + "destination": "Ausfahrt links nehmen Richtung {destination}", + "exit": "Ausfahrt {exit} links nehmen", + "exit_destination": "Ausfahrt {exit} links nehmen Richtung {destination}" + }, + "right": { + "default": "Ausfahrt rechts nehmen", + "name": "Ausfahrt rechts nehmen Richtung {way_name}", + "destination": "Ausfahrt rechts nehmen Richtung {destination}", + "exit": "Ausfahrt {exit} rechts nehmen", + "exit_destination": "Ausfahrt {exit} nehmen Richtung {destination}" + }, + "sharp left": { + "default": "Ausfahrt links nehmen", + "name": "Ausfahrt links Seite nehmen auf {way_name}", + "destination": "Ausfahrt links nehmen Richtung {destination}", + "exit": "Ausfahrt {exit} links nehmen", + "exit_destination": "Ausfahrt{exit} links nehmen Richtung {destination}" + }, + "sharp right": { + "default": "Ausfahrt rechts nehmen", + "name": "Ausfahrt rechts nehmen auf {way_name}", + "destination": "Ausfahrt rechts nehmen Richtung {destination}", + "exit": "Ausfahrt {exit} rechts nehmen", + "exit_destination": "Ausfahrt {exit} nehmen Richtung {destination}" + }, + "slight left": { + "default": "Ausfahrt links nehmen", + "name": "Ausfahrt links nehmen auf {way_name}", + "destination": "Ausfahrt links nehmen Richtung {destination}", + "exit": "Ausfahrt {exit} nehmen", + "exit_destination": "Ausfahrt {exit} links nehmen Richtung {destination}" + }, + "slight right": { + "default": "Ausfahrt rechts nehmen", + "name": "Ausfahrt rechts nehmen auf {way_name}", + "destination": "Ausfahrt rechts nehmen Richtung {destination}", + "exit": "Ausfahrt {exit} rechts nehmen", + "exit_destination": "Ausfahrt {exit} nehmen Richtung {destination}" + } + }, + "on ramp": { + "default": { + "default": "Auffahrt nehmen", + "name": "Auffahrt nehmen auf {way_name}", + "destination": "Auffahrt nehmen Richtung {destination}" + }, + "left": { + "default": "Auffahrt links nehmen", + "name": "Auffahrt links nehmen auf {way_name}", + "destination": "Auffahrt links nehmen Richtung {destination}" + }, + "right": { + "default": "Auffahrt rechts nehmen", + "name": "Auffahrt rechts nehmen auf {way_name}", + "destination": "Auffahrt rechts nehmen Richtung {destination}" + }, + "sharp left": { + "default": "Auffahrt links nehmen", + "name": "Auffahrt links nehmen auf {way_name}", + "destination": "Auffahrt links nehmen Richtung {destination}" + }, + "sharp right": { + "default": "Auffahrt rechts nehmen", + "name": "Auffahrt rechts nehmen auf {way_name}", + "destination": "Auffahrt rechts nehmen Richtung {destination}" + }, + "slight left": { + "default": "Auffahrt links Seite nehmen", + "name": "Auffahrt links nehmen auf {way_name}", + "destination": "Auffahrt links nehmen Richtung {destination}" + }, + "slight right": { + "default": "Auffahrt rechts nehmen", + "name": "Auffahrt rechts nehmen auf {way_name}", + "destination": "Auffahrt rechts nehmen Richtung {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "In den Kreisverkehr fahren", + "name": "Im Kreisverkehr die Ausfahrt auf {way_name} nehmen", + "destination": "Im Kreisverkehr die Ausfahrt Richtung {destination} nehmen" + }, + "name": { + "default": "In {rotary_name} fahren", + "name": "In {rotary_name} die Ausfahrt auf {way_name} nehmen", + "destination": "In {rotary_name} die Ausfahrt Richtung {destination} nehmen" + }, + "exit": { + "default": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen", + "name": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen auf {way_name}", + "destination": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen Richtung {destination}" + }, + "name_exit": { + "default": "In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen", + "name": "In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen auf {way_name}", + "destination": "In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen Richtung {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen", + "name": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen auf {way_name}", + "destination": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen Richtung {destination}" + }, + "default": { + "default": "In den Kreisverkehr fahren", + "name": "Im Kreisverkehr die Ausfahrt auf {way_name} nehmen", + "destination": "Im Kreisverkehr die Ausfahrt Richtung {destination} nehmen" + } + } + }, + "roundabout turn": { + "default": { + "default": "{modifier} abbiegen", + "name": "{modifier} abbiegen auf {way_name}", + "destination": "{modifier} abbiegen Richtung {destination}" + }, + "left": { + "default": "Links abbiegen", + "name": "Links abbiegen auf {way_name}", + "destination": "Links abbiegen Richtung {destination}" + }, + "right": { + "default": "Rechts abbiegen", + "name": "Rechts abbiegen auf {way_name}", + "destination": "Rechts abbiegen Richtung {destination}" + }, + "straight": { + "default": "Geradeaus weiterfahren", + "name": "Geradeaus weiterfahren auf {way_name}", + "destination": "Geradeaus weiterfahren Richtung {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "{modifier} abbiegen", + "name": "{modifier} abbiegen auf {way_name}", + "destination": "{modifier} abbiegen Richtung {destination}" + }, + "left": { + "default": "Links abbiegen", + "name": "Links abbiegen auf {way_name}", + "destination": "Links abbiegen Richtung {destination}" + }, + "right": { + "default": "Rechts abbiegen", + "name": "Rechts abbiegen auf {way_name}", + "destination": "Rechts abbiegen Richtung {destination}" + }, + "straight": { + "default": "Geradeaus weiterfahren", + "name": "Geradeaus weiterfahren auf {way_name}", + "destination": "Geradeaus weiterfahren Richtung {destination}" + } + }, + "exit rotary": { + "default": { + "default": "{modifier} abbiegen", + "name": "{modifier} abbiegen auf {way_name}", + "destination": "{modifier} abbiegen Richtung {destination}" + }, + "left": { + "default": "Links abbiegen", + "name": "Links abbiegen auf {way_name}", + "destination": "Links abbiegen Richtung {destination}" + }, + "right": { + "default": "Rechts abbiegen", + "name": "Rechts abbiegen auf {way_name}", + "destination": "Rechts abbiegen Richtung {destination}" + }, + "straight": { + "default": "Geradeaus weiterfahren", + "name": "Geradeaus weiterfahren auf {way_name}", + "destination": "Geradeaus weiterfahren Richtung {destination}" + } + }, + "turn": { + "default": { + "default": "{modifier} abbiegen", + "name": "{modifier} abbiegen auf {way_name}", + "destination": "{modifier} abbiegen Richtung {destination}" + }, + "left": { + "default": "Links abbiegen", + "name": "Links abbiegen auf {way_name}", + "destination": "Links abbiegen Richtung {destination}" + }, + "right": { + "default": "Rechts abbiegen", + "name": "Rechts abbiegen auf {way_name}", + "destination": "Rechts abbiegen Richtung {destination}" + }, + "straight": { + "default": "Geradeaus weiterfahren", + "name": "Geradeaus weiterfahren auf {way_name}", + "destination": "Geradeaus weiterfahren Richtung {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Geradeaus weiterfahren" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],25:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1st", + "2": "2nd", + "3": "3rd", + "4": "4th", + "5": "5th", + "6": "6th", + "7": "7th", + "8": "8th", + "9": "9th", + "10": "10th" + }, + "direction": { + "north": "north", + "northeast": "northeast", + "east": "east", + "southeast": "southeast", + "south": "south", + "southwest": "southwest", + "west": "west", + "northwest": "northwest" + }, + "modifier": { + "left": "left", + "right": "right", + "sharp left": "sharp left", + "sharp right": "sharp right", + "slight left": "slight left", + "slight right": "slight right", + "straight": "straight", + "uturn": "U-turn" + }, + "lanes": { + "xo": "Keep right", + "ox": "Keep left", + "xox": "Keep in the middle", + "oxo": "Keep left or right" + } + }, + "modes": { + "ferry": { + "default": "Take the ferry", + "name": "Take the ferry {way_name}", + "destination": "Take the ferry towards {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, then, in {distance}, {instruction_two}", + "two linked": "{instruction_one}, then {instruction_two}", + "one in distance": "In {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "exit {exit}" + }, + "arrive": { + "default": { + "default": "You have arrived at your {nth} destination", + "upcoming": "You will arrive at your {nth} destination", + "short": "You have arrived", + "short-upcoming": "You will arrive", + "named": "You have arrived at {waypoint_name}" + }, + "left": { + "default": "You have arrived at your {nth} destination, on the left", + "upcoming": "You will arrive at your {nth} destination, on the left", + "short": "You have arrived", + "short-upcoming": "You will arrive", + "named": "You have arrived at {waypoint_name}, on the left" + }, + "right": { + "default": "You have arrived at your {nth} destination, on the right", + "upcoming": "You will arrive at your {nth} destination, on the right", + "short": "You have arrived", + "short-upcoming": "You will arrive", + "named": "You have arrived at {waypoint_name}, on the right" + }, + "sharp left": { + "default": "You have arrived at your {nth} destination, on the left", + "upcoming": "You will arrive at your {nth} destination, on the left", + "short": "You have arrived", + "short-upcoming": "You will arrive", + "named": "You have arrived at {waypoint_name}, on the left" + }, + "sharp right": { + "default": "You have arrived at your {nth} destination, on the right", + "upcoming": "You will arrive at your {nth} destination, on the right", + "short": "You have arrived", + "short-upcoming": "You will arrive", + "named": "You have arrived at {waypoint_name}, on the right" + }, + "slight right": { + "default": "You have arrived at your {nth} destination, on the right", + "upcoming": "You will arrive at your {nth} destination, on the right", + "short": "You have arrived", + "short-upcoming": "You will arrive", + "named": "You have arrived at {waypoint_name}, on the right" + }, + "slight left": { + "default": "You have arrived at your {nth} destination, on the left", + "upcoming": "You will arrive at your {nth} destination, on the left", + "short": "You have arrived", + "short-upcoming": "You will arrive", + "named": "You have arrived at {waypoint_name}, on the left" + }, + "straight": { + "default": "You have arrived at your {nth} destination, straight ahead", + "upcoming": "You will arrive at your {nth} destination, straight ahead", + "short": "You have arrived", + "short-upcoming": "You will arrive", + "named": "You have arrived at {waypoint_name}, straight ahead" + } + }, + "continue": { + "default": { + "default": "Turn {modifier}", + "name": "Turn {modifier} to stay on {way_name}", + "destination": "Turn {modifier} towards {destination}", + "exit": "Turn {modifier} onto {way_name}" + }, + "straight": { + "default": "Continue straight", + "name": "Continue straight to stay on {way_name}", + "destination": "Continue towards {destination}", + "distance": "Continue straight for {distance}", + "namedistance": "Continue on {way_name} for {distance}" + }, + "sharp left": { + "default": "Make a sharp left", + "name": "Make a sharp left to stay on {way_name}", + "destination": "Make a sharp left towards {destination}" + }, + "sharp right": { + "default": "Make a sharp right", + "name": "Make a sharp right to stay on {way_name}", + "destination": "Make a sharp right towards {destination}" + }, + "slight left": { + "default": "Make a slight left", + "name": "Make a slight left to stay on {way_name}", + "destination": "Make a slight left towards {destination}" + }, + "slight right": { + "default": "Make a slight right", + "name": "Make a slight right to stay on {way_name}", + "destination": "Make a slight right towards {destination}" + }, + "uturn": { + "default": "Make a U-turn", + "name": "Make a U-turn and continue on {way_name}", + "destination": "Make a U-turn towards {destination}" + } + }, + "depart": { + "default": { + "default": "Head {direction}", + "name": "Head {direction} on {way_name}", + "namedistance": "Head {direction} on {way_name} for {distance}" + } + }, + "end of road": { + "default": { + "default": "Turn {modifier}", + "name": "Turn {modifier} onto {way_name}", + "destination": "Turn {modifier} towards {destination}" + }, + "straight": { + "default": "Continue straight", + "name": "Continue straight onto {way_name}", + "destination": "Continue straight towards {destination}" + }, + "uturn": { + "default": "Make a U-turn at the end of the road", + "name": "Make a U-turn onto {way_name} at the end of the road", + "destination": "Make a U-turn towards {destination} at the end of the road" + } + }, + "fork": { + "default": { + "default": "Keep {modifier} at the fork", + "name": "Keep {modifier} onto {way_name}", + "destination": "Keep {modifier} towards {destination}" + }, + "slight left": { + "default": "Keep left at the fork", + "name": "Keep left onto {way_name}", + "destination": "Keep left towards {destination}" + }, + "slight right": { + "default": "Keep right at the fork", + "name": "Keep right onto {way_name}", + "destination": "Keep right towards {destination}" + }, + "sharp left": { + "default": "Take a sharp left at the fork", + "name": "Take a sharp left onto {way_name}", + "destination": "Take a sharp left towards {destination}" + }, + "sharp right": { + "default": "Take a sharp right at the fork", + "name": "Take a sharp right onto {way_name}", + "destination": "Take a sharp right towards {destination}" + }, + "uturn": { + "default": "Make a U-turn", + "name": "Make a U-turn onto {way_name}", + "destination": "Make a U-turn towards {destination}" + } + }, + "merge": { + "default": { + "default": "Merge {modifier}", + "name": "Merge {modifier} onto {way_name}", + "destination": "Merge {modifier} towards {destination}" + }, + "straight": { + "default": "Merge", + "name": "Merge onto {way_name}", + "destination": "Merge towards {destination}" + }, + "slight left": { + "default": "Merge left", + "name": "Merge left onto {way_name}", + "destination": "Merge left towards {destination}" + }, + "slight right": { + "default": "Merge right", + "name": "Merge right onto {way_name}", + "destination": "Merge right towards {destination}" + }, + "sharp left": { + "default": "Merge left", + "name": "Merge left onto {way_name}", + "destination": "Merge left towards {destination}" + }, + "sharp right": { + "default": "Merge right", + "name": "Merge right onto {way_name}", + "destination": "Merge right towards {destination}" + }, + "uturn": { + "default": "Make a U-turn", + "name": "Make a U-turn onto {way_name}", + "destination": "Make a U-turn towards {destination}" + } + }, + "new name": { + "default": { + "default": "Continue {modifier}", + "name": "Continue {modifier} onto {way_name}", + "destination": "Continue {modifier} towards {destination}" + }, + "straight": { + "default": "Continue straight", + "name": "Continue onto {way_name}", + "destination": "Continue towards {destination}" + }, + "sharp left": { + "default": "Take a sharp left", + "name": "Take a sharp left onto {way_name}", + "destination": "Take a sharp left towards {destination}" + }, + "sharp right": { + "default": "Take a sharp right", + "name": "Take a sharp right onto {way_name}", + "destination": "Take a sharp right towards {destination}" + }, + "slight left": { + "default": "Continue slightly left", + "name": "Continue slightly left onto {way_name}", + "destination": "Continue slightly left towards {destination}" + }, + "slight right": { + "default": "Continue slightly right", + "name": "Continue slightly right onto {way_name}", + "destination": "Continue slightly right towards {destination}" + }, + "uturn": { + "default": "Make a U-turn", + "name": "Make a U-turn onto {way_name}", + "destination": "Make a U-turn towards {destination}" + } + }, + "notification": { + "default": { + "default": "Continue {modifier}", + "name": "Continue {modifier} onto {way_name}", + "destination": "Continue {modifier} towards {destination}" + }, + "uturn": { + "default": "Make a U-turn", + "name": "Make a U-turn onto {way_name}", + "destination": "Make a U-turn towards {destination}" + } + }, + "off ramp": { + "default": { + "default": "Take the ramp", + "name": "Take the ramp onto {way_name}", + "destination": "Take the ramp towards {destination}", + "exit": "Take exit {exit}", + "exit_destination": "Take exit {exit} towards {destination}" + }, + "left": { + "default": "Take the ramp on the left", + "name": "Take the ramp on the left onto {way_name}", + "destination": "Take the ramp on the left towards {destination}", + "exit": "Take exit {exit} on the left", + "exit_destination": "Take exit {exit} on the left towards {destination}" + }, + "right": { + "default": "Take the ramp on the right", + "name": "Take the ramp on the right onto {way_name}", + "destination": "Take the ramp on the right towards {destination}", + "exit": "Take exit {exit} on the right", + "exit_destination": "Take exit {exit} on the right towards {destination}" + }, + "sharp left": { + "default": "Take the ramp on the left", + "name": "Take the ramp on the left onto {way_name}", + "destination": "Take the ramp on the left towards {destination}", + "exit": "Take exit {exit} on the left", + "exit_destination": "Take exit {exit} on the left towards {destination}" + }, + "sharp right": { + "default": "Take the ramp on the right", + "name": "Take the ramp on the right onto {way_name}", + "destination": "Take the ramp on the right towards {destination}", + "exit": "Take exit {exit} on the right", + "exit_destination": "Take exit {exit} on the right towards {destination}" + }, + "slight left": { + "default": "Take the ramp on the left", + "name": "Take the ramp on the left onto {way_name}", + "destination": "Take the ramp on the left towards {destination}", + "exit": "Take exit {exit} on the left", + "exit_destination": "Take exit {exit} on the left towards {destination}" + }, + "slight right": { + "default": "Take the ramp on the right", + "name": "Take the ramp on the right onto {way_name}", + "destination": "Take the ramp on the right towards {destination}", + "exit": "Take exit {exit} on the right", + "exit_destination": "Take exit {exit} on the right towards {destination}" + } + }, + "on ramp": { + "default": { + "default": "Take the ramp", + "name": "Take the ramp onto {way_name}", + "destination": "Take the ramp towards {destination}" + }, + "left": { + "default": "Take the ramp on the left", + "name": "Take the ramp on the left onto {way_name}", + "destination": "Take the ramp on the left towards {destination}" + }, + "right": { + "default": "Take the ramp on the right", + "name": "Take the ramp on the right onto {way_name}", + "destination": "Take the ramp on the right towards {destination}" + }, + "sharp left": { + "default": "Take the ramp on the left", + "name": "Take the ramp on the left onto {way_name}", + "destination": "Take the ramp on the left towards {destination}" + }, + "sharp right": { + "default": "Take the ramp on the right", + "name": "Take the ramp on the right onto {way_name}", + "destination": "Take the ramp on the right towards {destination}" + }, + "slight left": { + "default": "Take the ramp on the left", + "name": "Take the ramp on the left onto {way_name}", + "destination": "Take the ramp on the left towards {destination}" + }, + "slight right": { + "default": "Take the ramp on the right", + "name": "Take the ramp on the right onto {way_name}", + "destination": "Take the ramp on the right towards {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Enter the traffic circle", + "name": "Enter the traffic circle and exit onto {way_name}", + "destination": "Enter the traffic circle and exit towards {destination}" + }, + "name": { + "default": "Enter {rotary_name}", + "name": "Enter {rotary_name} and exit onto {way_name}", + "destination": "Enter {rotary_name} and exit towards {destination}" + }, + "exit": { + "default": "Enter the traffic circle and take the {exit_number} exit", + "name": "Enter the traffic circle and take the {exit_number} exit onto {way_name}", + "destination": "Enter the traffic circle and take the {exit_number} exit towards {destination}" + }, + "name_exit": { + "default": "Enter {rotary_name} and take the {exit_number} exit", + "name": "Enter {rotary_name} and take the {exit_number} exit onto {way_name}", + "destination": "Enter {rotary_name} and take the {exit_number} exit towards {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Enter the traffic circle and take the {exit_number} exit", + "name": "Enter the traffic circle and take the {exit_number} exit onto {way_name}", + "destination": "Enter the traffic circle and take the {exit_number} exit towards {destination}" + }, + "default": { + "default": "Enter the traffic circle", + "name": "Enter the traffic circle and exit onto {way_name}", + "destination": "Enter the traffic circle and exit towards {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Make a {modifier}", + "name": "Make a {modifier} onto {way_name}", + "destination": "Make a {modifier} towards {destination}" + }, + "left": { + "default": "Turn left", + "name": "Turn left onto {way_name}", + "destination": "Turn left towards {destination}" + }, + "right": { + "default": "Turn right", + "name": "Turn right onto {way_name}", + "destination": "Turn right towards {destination}" + }, + "straight": { + "default": "Continue straight", + "name": "Continue straight onto {way_name}", + "destination": "Continue straight towards {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Exit the traffic circle", + "name": "Exit the traffic circle onto {way_name}", + "destination": "Exit the traffic circle towards {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Exit the traffic circle", + "name": "Exit the traffic circle onto {way_name}", + "destination": "Exit the traffic circle towards {destination}" + } + }, + "turn": { + "default": { + "default": "Make a {modifier}", + "name": "Make a {modifier} onto {way_name}", + "destination": "Make a {modifier} towards {destination}" + }, + "left": { + "default": "Turn left", + "name": "Turn left onto {way_name}", + "destination": "Turn left towards {destination}" + }, + "right": { + "default": "Turn right", + "name": "Turn right onto {way_name}", + "destination": "Turn right towards {destination}" + }, + "straight": { + "default": "Go straight", + "name": "Go straight onto {way_name}", + "destination": "Go straight towards {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Continue straight" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],26:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1.", + "2": "2.", + "3": "3.", + "4": "4.", + "5": "5.", + "6": "6.", + "7": "7.", + "8": "8.", + "9": "9.", + "10": "10." + }, + "direction": { + "north": "norden", + "northeast": "nord-orienten", + "east": "orienten", + "southeast": "sud-orienten", + "south": "suden", + "southwest": "sud-okcidenten", + "west": "okcidenten", + "northwest": "nord-okcidenten" + }, + "modifier": { + "left": "maldekstren", + "right": "dekstren", + "sharp left": "maldekstregen", + "sharp right": "dekstregen", + "slight left": "maldekstreten", + "slight right": "dekstreten", + "straight": "rekten", + "uturn": "turniĝu malantaŭen" + }, + "lanes": { + "xo": "Veturu dekstre", + "ox": "Veturu maldekstre", + "xox": "Veturu meze", + "oxo": "Veturu dekstre aŭ maldekstre" + } + }, + "modes": { + "ferry": { + "default": "Enpramiĝu", + "name": "Enpramiĝu {way_name}", + "destination": "Enpramiĝu direkte al {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one} kaj post {distance} {instruction_two}", + "two linked": "{instruction_one} kaj sekve {instruction_two}", + "one in distance": "Post {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "elveturejo {exit}" + }, + "arrive": { + "default": { + "default": "Vi atingis vian {nth} celon", + "upcoming": "Vi atingos vian {nth} celon", + "short": "Vi atingis", + "short-upcoming": "Vi atingos", + "named": "Vi atingis {waypoint_name}" + }, + "left": { + "default": "Vi atingis vian {nth} celon ĉe maldekstre", + "upcoming": "Vi atingos vian {nth} celon ĉe maldekstre", + "short": "Vi atingis", + "short-upcoming": "Vi atingos", + "named": "Vi atingis {waypoint_name}, ĉe maldekstre" + }, + "right": { + "default": "Vi atingis vian {nth} celon ĉe dekstre", + "upcoming": "Vi atingos vian {nth} celon ĉe dekstre", + "short": "Vi atingis", + "short-upcoming": "Vi atingos", + "named": "Vi atingis {waypoint_name}, ĉe dekstre" + }, + "sharp left": { + "default": "Vi atingis vian {nth} celon ĉe maldekstre", + "upcoming": "Vi atingos vian {nth} celon ĉe maldekstre", + "short": "Vi atingis", + "short-upcoming": "Vi atingos", + "named": "Vi atingis {waypoint_name}, ĉe maldekstre" + }, + "sharp right": { + "default": "Vi atingis vian {nth} celon ĉe dekstre", + "upcoming": "Vi atingos vian {nth} celon ĉe dekstre", + "short": "Vi atingis", + "short-upcoming": "Vi atingos", + "named": "Vi atingis {waypoint_name}, ĉe dekstre" + }, + "slight right": { + "default": "Vi atingis vian {nth} celon ĉe dekstre", + "upcoming": "Vi atingos vian {nth} celon ĉe dekstre", + "short": "Vi atingis", + "short-upcoming": "Vi atingos", + "named": "Vi atingis {waypoint_name}, ĉe dekstre" + }, + "slight left": { + "default": "Vi atingis vian {nth} celon ĉe maldekstre", + "upcoming": "Vi atingos vian {nth} celon ĉe maldekstre", + "short": "Vi atingis", + "short-upcoming": "Vi atingos", + "named": "Vi atingis {waypoint_name}, ĉe maldekstre" + }, + "straight": { + "default": "Vi atingis vian {nth} celon", + "upcoming": "Vi atingos vian {nth} celon rekte", + "short": "Vi atingis", + "short-upcoming": "Vi atingos", + "named": "Vi atingis {waypoint_name} antaŭe" + } + }, + "continue": { + "default": { + "default": "Veturu {modifier}", + "name": "Veturu {modifier} al {way_name}", + "destination": "Veturu {modifier} direkte al {destination}", + "exit": "Veturu {modifier} direkte al {way_name}" + }, + "straight": { + "default": "Veturu rekten", + "name": "Veturu rekten al {way_name}", + "destination": "Veturu rekten direkte al {destination}", + "distance": "Veturu rekten dum {distance}", + "namedistance": "Veturu rekten al {way_name} dum {distance}" + }, + "sharp left": { + "default": "Turniĝu ege maldekstren", + "name": "Turniĝu ege maldekstren al {way_name}", + "destination": "Turniĝu ege maldekstren direkte al {destination}" + }, + "sharp right": { + "default": "Turniĝu ege dekstren", + "name": "Turniĝu ege dekstren al {way_name}", + "destination": "Turniĝu ege dekstren direkte al {destination}" + }, + "slight left": { + "default": "Turniĝu ete maldekstren", + "name": "Turniĝu ete maldekstren al {way_name}", + "destination": "Turniĝu ete maldekstren direkte al {destination}" + }, + "slight right": { + "default": "Turniĝu ete dekstren", + "name": "Turniĝu ete dekstren al {way_name}", + "destination": "Turniĝu ete dekstren direkte al {destination}" + }, + "uturn": { + "default": "Turniĝu malantaŭen", + "name": "Turniĝu malantaŭen al {way_name}", + "destination": "Turniĝu malantaŭen direkte al {destination}" + } + }, + "depart": { + "default": { + "default": "Direktiĝu {direction}", + "name": "Direktiĝu {direction} al {way_name}", + "namedistance": "Direktiĝu {direction} al {way_name} tra {distance}" + } + }, + "end of road": { + "default": { + "default": "Veturu {modifier}", + "name": "Veturu {modifier} direkte al {way_name}", + "destination": "Veturu {modifier} direkte al {destination}" + }, + "straight": { + "default": "Veturu rekten", + "name": "Veturu rekten al {way_name}", + "destination": "Veturu rekten direkte al {destination}" + }, + "uturn": { + "default": "Turniĝu malantaŭen ĉe fino de la vojo", + "name": "Turniĝu malantaŭen al {way_name} ĉe fino de la vojo", + "destination": "Turniĝu malantaŭen direkte al {destination} ĉe fino de la vojo" + } + }, + "fork": { + "default": { + "default": "Daŭru {modifier} ĉe la vojforko", + "name": "Pluu {modifier} al {way_name}", + "destination": "Pluu {modifier} direkte al {destination}" + }, + "slight left": { + "default": "Maldekstren ĉe la vojforko", + "name": "Pluu maldekstren al {way_name}", + "destination": "Pluu maldekstren direkte al {destination}" + }, + "slight right": { + "default": "Dekstren ĉe la vojforko", + "name": "Pluu dekstren al {way_name}", + "destination": "Pluu dekstren direkte al {destination}" + }, + "sharp left": { + "default": "Ege maldekstren ĉe la vojforko", + "name": "Turniĝu ege maldekstren al {way_name}", + "destination": "Turniĝu ege maldekstren direkte al {destination}" + }, + "sharp right": { + "default": "Ege dekstren ĉe la vojforko", + "name": "Turniĝu ege dekstren al {way_name}", + "destination": "Turniĝu ege dekstren direkte al {destination}" + }, + "uturn": { + "default": "Turniĝu malantaŭen", + "name": "Turniĝu malantaŭen al {way_name}", + "destination": "Turniĝu malantaŭen direkte al {destination}" + } + }, + "merge": { + "default": { + "default": "Enveturu {modifier}", + "name": "Enveturu {modifier} al {way_name}", + "destination": "Enveturu {modifier} direkte al {destination}" + }, + "straight": { + "default": "Enveturu", + "name": "Enveturu al {way_name}", + "destination": "Enveturu direkte al {destination}" + }, + "slight left": { + "default": "Enveturu de maldekstre", + "name": "Enveturu de maldekstre al {way_name}", + "destination": "Enveturu de maldekstre direkte al {destination}" + }, + "slight right": { + "default": "Enveturu de dekstre", + "name": "Enveturu de dekstre al {way_name}", + "destination": "Enveturu de dekstre direkte al {destination}" + }, + "sharp left": { + "default": "Enveturu de maldekstre", + "name": "Enveture de maldekstre al {way_name}", + "destination": "Enveturu de maldekstre direkte al {destination}" + }, + "sharp right": { + "default": "Enveturu de dekstre", + "name": "Enveturu de dekstre al {way_name}", + "destination": "Enveturu de dekstre direkte al {destination}" + }, + "uturn": { + "default": "Turniĝu malantaŭen", + "name": "Turniĝu malantaŭen al {way_name}", + "destination": "Turniĝu malantaŭen direkte al {destination}" + } + }, + "new name": { + "default": { + "default": "Pluu {modifier}", + "name": "Pluu {modifier} al {way_name}", + "destination": "Pluu {modifier} direkte al {destination}" + }, + "straight": { + "default": "Veturu rekten", + "name": "Veturu rekten al {way_name}", + "destination": "Veturu rekten direkte al {destination}" + }, + "sharp left": { + "default": "Turniĝu ege maldekstren", + "name": "Turniĝu ege maldekstren al {way_name}", + "destination": "Turniĝu ege maldekstren direkte al {destination}" + }, + "sharp right": { + "default": "Turniĝu ege dekstren", + "name": "Turniĝu ege dekstren al {way_name}", + "destination": "Turniĝu ege dekstren direkte al {destination}" + }, + "slight left": { + "default": "Pluu ete maldekstren", + "name": "Pluu ete maldekstren al {way_name}", + "destination": "Pluu ete maldekstren direkte al {destination}" + }, + "slight right": { + "default": "Pluu ete dekstren", + "name": "Pluu ete dekstren al {way_name}", + "destination": "Pluu ete dekstren direkte al {destination}" + }, + "uturn": { + "default": "Turniĝu malantaŭen", + "name": "Turniĝu malantaŭen al {way_name}", + "destination": "Turniĝu malantaŭen direkte al {destination}" + } + }, + "notification": { + "default": { + "default": "Pluu {modifier}", + "name": "Pluu {modifier} al {way_name}", + "destination": "Pluu {modifier} direkte al {destination}" + }, + "uturn": { + "default": "Turniĝu malantaŭen", + "name": "Turniĝu malantaŭen al {way_name}", + "destination": "Turniĝu malantaŭen direkte al {destination}" + } + }, + "off ramp": { + "default": { + "default": "Direktiĝu al enveturejo", + "name": "Direktiĝu al enveturejo al {way_name}", + "destination": "Direktiĝu al enveturejo direkte al {destination}", + "exit": "Direktiĝu al elveturejo {exit}", + "exit_destination": "Direktiĝu al elveturejo {exit} direkte al {destination}" + }, + "left": { + "default": "Direktiĝu al enveturejo ĉe maldekstre", + "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}", + "exit": "Direktiĝu al elveturejo {exit} ĉe maldekstre", + "exit_destination": "Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}" + }, + "right": { + "default": "Direktiĝu al enveturejo ĉe dekstre", + "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}", + "exit": "Direktiĝu al {exit} elveturejo ĉe ldekstre", + "exit_destination": "Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}" + }, + "sharp left": { + "default": "Direktiĝu al enveturejo ĉe maldekstre", + "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}", + "exit": "Direktiĝu al {exit} elveturejo ĉe maldekstre", + "exit_destination": "Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}" + }, + "sharp right": { + "default": "Direktiĝu al enveturejo ĉe dekstre", + "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}", + "exit": "Direktiĝu al elveturejo {exit} ĉe dekstre", + "exit_destination": "Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}" + }, + "slight left": { + "default": "Direktiĝu al enveturejo ĉe maldekstre", + "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}", + "exit": "Direktiĝu al {exit} elveturejo ĉe maldekstre", + "exit_destination": "Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}" + }, + "slight right": { + "default": "Direktiĝu al enveturejo ĉe dekstre", + "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}", + "exit": "Direktiĝu al {exit} elveturejo ĉe ldekstre", + "exit_destination": "Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}" + } + }, + "on ramp": { + "default": { + "default": "Direktiĝu al enveturejo", + "name": "Direktiĝu al enveturejo al {way_name}", + "destination": "Direktiĝu al enveturejo direkte al {destination}" + }, + "left": { + "default": "Direktiĝu al enveturejo ĉe maldekstre", + "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}" + }, + "right": { + "default": "Direktiĝu al enveturejo ĉe dekstre", + "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}" + }, + "sharp left": { + "default": "Direktiĝu al enveturejo ĉe maldekstre", + "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}" + }, + "sharp right": { + "default": "Direktiĝu al enveturejo ĉe dekstre", + "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}" + }, + "slight left": { + "default": "Direktiĝu al enveturejo ĉe maldekstre", + "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}" + }, + "slight right": { + "default": "Direktiĝu al enveturejo ĉe dekstre", + "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", + "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Enveturu trafikcirklegon", + "name": "Enveturu trafikcirklegon kaj elveturu al {way_name}", + "destination": "Enveturu trafikcirklegon kaj elveturu direkte al {destination}" + }, + "name": { + "default": "Enveturu {rotary_name}", + "name": "Enveturu {rotary_name} kaj elveturu al {way_name}", + "destination": "Enveturu {rotary_name} kaj elveturu direkte al {destination}" + }, + "exit": { + "default": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo", + "name": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo al {way_name}", + "destination": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo direkte al {destination}" + }, + "name_exit": { + "default": "Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo", + "name": "Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo al {way_name}", + "destination": "Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo direkte al {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo", + "name": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo al {way_name}", + "destination": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo direkte al {destination}" + }, + "default": { + "default": "Enveturu trafikcirklegon", + "name": "Enveturu trafikcirklegon kaj elveturu al {way_name}", + "destination": "Enveturu trafikcirklegon kaj elveturu direkte al {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Veturu {modifier}", + "name": "Veturu {modifier} al {way_name}", + "destination": "Veturu {modifier} direkte al {destination}" + }, + "left": { + "default": "Turniĝu maldekstren", + "name": "Turniĝu maldekstren al {way_name}", + "destination": "Turniĝu maldekstren direkte al {destination}" + }, + "right": { + "default": "Turniĝu dekstren", + "name": "Turniĝu dekstren al {way_name}", + "destination": "Turniĝu dekstren direkte al {destination}" + }, + "straight": { + "default": "Pluu rekten", + "name": "Veturu rekten al {way_name}", + "destination": "Veturu rekten direkte al {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Elveturu trafikcirklegon", + "name": "Elveturu trafikcirklegon al {way_name}", + "destination": "Elveturu trafikcirklegon direkte al {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Eliru trafikcirklegon", + "name": "Elveturu trafikcirklegon al {way_name}", + "destination": "Elveturu trafikcirklegon direkte al {destination}" + } + }, + "turn": { + "default": { + "default": "Veturu {modifier}", + "name": "Veturu {modifier} al {way_name}", + "destination": "Veturu {modifier} direkte al {destination}" + }, + "left": { + "default": "Turniĝu maldekstren", + "name": "Turniĝu maldekstren al {way_name}", + "destination": "Turniĝu maldekstren direkte al {destination}" + }, + "right": { + "default": "Turniĝu dekstren", + "name": "Turniĝu dekstren al {way_name}", + "destination": "Turniĝu dekstren direkte al {destination}" + }, + "straight": { + "default": "Veturu rekten", + "name": "Veturu rekten al {way_name}", + "destination": "Veturu rekten direkte al {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Pluu rekten" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],27:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1ª", + "2": "2ª", + "3": "3ª", + "4": "4ª", + "5": "5ª", + "6": "6ª", + "7": "7ª", + "8": "8ª", + "9": "9ª", + "10": "10ª" + }, + "direction": { + "north": "norte", + "northeast": "noreste", + "east": "este", + "southeast": "sureste", + "south": "sur", + "southwest": "suroeste", + "west": "oeste", + "northwest": "noroeste" + }, + "modifier": { + "left": "a la izquierda", + "right": "a la derecha", + "sharp left": "cerrada a la izquierda", + "sharp right": "cerrada a la derecha", + "slight left": "ligeramente a la izquierda", + "slight right": "ligeramente a la derecha", + "straight": "recto", + "uturn": "cambio de sentido" + }, + "lanes": { + "xo": "Mantente a la derecha", + "ox": "Mantente a la izquierda", + "xox": "Mantente en el medio", + "oxo": "Mantente a la izquierda o a la derecha" + } + }, + "modes": { + "ferry": { + "default": "Coge el ferry", + "name": "Coge el ferry {way_name}", + "destination": "Coge el ferry hacia {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one} y luego en {distance}, {instruction_two}", + "two linked": "{instruction_one} y luego {instruction_two}", + "one in distance": "A {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "salida {exit}" + }, + "arrive": { + "default": { + "default": "Has llegado a tu {nth} destino", + "upcoming": "Vas a llegar a tu {nth} destino", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}" + }, + "left": { + "default": "Has llegado a tu {nth} destino, a la izquierda", + "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la izquierda" + }, + "right": { + "default": "Has llegado a tu {nth} destino, a la derecha", + "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la derecha" + }, + "sharp left": { + "default": "Has llegado a tu {nth} destino, a la izquierda", + "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la izquierda" + }, + "sharp right": { + "default": "Has llegado a tu {nth} destino, a la derecha", + "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la derecha" + }, + "slight right": { + "default": "Has llegado a tu {nth} destino, a la derecha", + "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la derecha" + }, + "slight left": { + "default": "Has llegado a tu {nth} destino, a la izquierda", + "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la izquierda" + }, + "straight": { + "default": "Has llegado a tu {nth} destino, en frente", + "upcoming": "Vas a llegar a tu {nth} destino, en frente", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, en frente" + } + }, + "continue": { + "default": { + "default": "Gire {modifier}", + "name": "Cruce {modifier} en {way_name}", + "destination": "Gire {modifier} hacia {destination}", + "exit": "Gire {modifier} en {way_name}" + }, + "straight": { + "default": "Continúa recto", + "name": "Continúa en {way_name}", + "destination": "Continúa hacia {destination}", + "distance": "Continúa recto por {distance}", + "namedistance": "Continúa recto en {way_name} por {distance}" + }, + "sharp left": { + "default": "Gire a la izquierda", + "name": "Gire a la izquierda en {way_name}", + "destination": "Gire a la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Gire a la derecha", + "name": "Gire a la derecha en {way_name}", + "destination": "Gire a la derecha hacia {destination}" + }, + "slight left": { + "default": "Gire a la izquierda", + "name": "Doble levemente a la izquierda en {way_name}", + "destination": "Gire a la izquierda hacia {destination}" + }, + "slight right": { + "default": "Gire a la izquierda", + "name": "Doble levemente a la derecha en {way_name}", + "destination": "Gire a la izquierda hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido y continúa en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "depart": { + "default": { + "default": "Dirígete al {direction}", + "name": "Dirígete al {direction} por {way_name}", + "namedistance": "Dirígete al {direction} en {way_name} por {distance}" + } + }, + "end of road": { + "default": { + "default": "Al final de la calle gira {modifier}", + "name": "Al final de la calle gira {modifier} por {way_name}", + "destination": "Al final de la calle gira {modifier} hacia {destination}" + }, + "straight": { + "default": "Al final de la calle continúa recto", + "name": "Al final de la calle continúa recto por {way_name}", + "destination": "Al final de la calle continúa recto hacia {destination}" + }, + "uturn": { + "default": "Al final de la calle haz un cambio de sentido", + "name": "Al final de la calle haz un cambio de sentido en {way_name}", + "destination": "Al final de la calle haz un cambio de sentido hacia {destination}" + } + }, + "fork": { + "default": { + "default": "Mantente {modifier} en el cruce", + "name": "Mantente {modifier} por {way_name}", + "destination": "Mantente {modifier} hacia {destination}" + }, + "slight left": { + "default": "Mantente a la izquierda en el cruce", + "name": "Mantente a la izquierda por {way_name}", + "destination": "Mantente a la izquierda hacia {destination}" + }, + "slight right": { + "default": "Mantente a la derecha en el cruce", + "name": "Mantente a la derecha por {way_name}", + "destination": "Mantente a la derecha hacia {destination}" + }, + "sharp left": { + "default": "Gira la izquierda en el cruce", + "name": "Gira a la izquierda por {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Gira a la derecha en el cruce", + "name": "Gira a la derecha por {way_name}", + "destination": "Gira a la derecha hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "merge": { + "default": { + "default": "Incorpórate {modifier}", + "name": "Incorpórate {modifier} por {way_name}", + "destination": "Incorpórate {modifier} hacia {destination}" + }, + "straight": { + "default": "Incorpórate", + "name": "Incorpórate por {way_name}", + "destination": "Incorpórate hacia {destination}" + }, + "slight left": { + "default": "Incorpórate a la izquierda", + "name": "Incorpórate a la izquierda por {way_name}", + "destination": "Incorpórate a la izquierda hacia {destination}" + }, + "slight right": { + "default": "Incorpórate a la derecha", + "name": "Incorpórate a la derecha por {way_name}", + "destination": "Incorpórate a la derecha hacia {destination}" + }, + "sharp left": { + "default": "Incorpórate a la izquierda", + "name": "Incorpórate a la izquierda por {way_name}", + "destination": "Incorpórate a la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Incorpórate a la derecha", + "name": "Incorpórate a la derecha por {way_name}", + "destination": "Incorpórate a la derecha hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "new name": { + "default": { + "default": "Continúa {modifier}", + "name": "Continúa {modifier} por {way_name}", + "destination": "Continúa {modifier} hacia {destination}" + }, + "straight": { + "default": "Continúa recto", + "name": "Continúa por {way_name}", + "destination": "Continúa hacia {destination}" + }, + "sharp left": { + "default": "Gira a la izquierda", + "name": "Gira a la izquierda por {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Gira a la derecha", + "name": "Gira a la derecha por {way_name}", + "destination": "Gira a la derecha hacia {destination}" + }, + "slight left": { + "default": "Continúa ligeramente por la izquierda", + "name": "Continúa ligeramente por la izquierda por {way_name}", + "destination": "Continúa ligeramente por la izquierda hacia {destination}" + }, + "slight right": { + "default": "Continúa ligeramente por la derecha", + "name": "Continúa ligeramente por la derecha por {way_name}", + "destination": "Continúa ligeramente por la derecha hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "notification": { + "default": { + "default": "Continúa {modifier}", + "name": "Continúa {modifier} por {way_name}", + "destination": "Continúa {modifier} hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "off ramp": { + "default": { + "default": "Coge la cuesta abajo", + "name": "Coge la cuesta abajo por {way_name}", + "destination": "Coge la cuesta abajo hacia {destination}", + "exit": "Coge la cuesta abajo {exit}", + "exit_destination": "Coge la cuesta abajo {exit} hacia {destination}" + }, + "left": { + "default": "Coge la cuesta abajo de la izquierda", + "name": "Coge la cuesta abajo de la izquierda por {way_name}", + "destination": "Coge la cuesta abajo de la izquierda hacia {destination}", + "exit": "Coge la cuesta abajo {exit} a tu izquierda", + "exit_destination": "Coge la cuesta abajo {exit} a tu izquierda hacia {destination}" + }, + "right": { + "default": "Coge la cuesta abajo de la derecha", + "name": "Coge la cuesta abajo de la derecha por {way_name}", + "destination": "Coge la cuesta abajo de la derecha hacia {destination}", + "exit": "Coge la cuesta abajo {exit}", + "exit_destination": "Coge la cuesta abajo {exit} hacia {destination}" + }, + "sharp left": { + "default": "Coge la cuesta abajo de la izquierda", + "name": "Coge la cuesta abajo de la izquierda por {way_name}", + "destination": "Coge la cuesta abajo de la izquierda hacia {destination}", + "exit": "Coge la cuesta abajo {exit} a tu izquierda", + "exit_destination": "Coge la cuesta abajo {exit} a tu izquierda hacia {destination}" + }, + "sharp right": { + "default": "Coge la cuesta abajo de la derecha", + "name": "Coge la cuesta abajo de la derecha por {way_name}", + "destination": "Coge la cuesta abajo de la derecha hacia {destination}", + "exit": "Coge la cuesta abajo {exit}", + "exit_destination": "Coge la cuesta abajo {exit} hacia {destination}" + }, + "slight left": { + "default": "Coge la cuesta abajo de la izquierda", + "name": "Coge la cuesta abajo de la izquierda por {way_name}", + "destination": "Coge la cuesta abajo de la izquierda hacia {destination}", + "exit": "Coge la cuesta abajo {exit} a tu izquierda", + "exit_destination": "Coge la cuesta abajo {exit} a tu izquierda hacia {destination}" + }, + "slight right": { + "default": "Coge la cuesta abajo de la derecha", + "name": "Coge la cuesta abajo de la derecha por {way_name}", + "destination": "Coge la cuesta abajo de la derecha hacia {destination}", + "exit": "Coge la cuesta abajo {exit}", + "exit_destination": "Coge la cuesta abajo {exit} hacia {destination}" + } + }, + "on ramp": { + "default": { + "default": "Coge la cuesta", + "name": "Coge la cuesta por {way_name}", + "destination": "Coge la cuesta hacia {destination}" + }, + "left": { + "default": "Coge la cuesta de la izquierda", + "name": "Coge la cuesta de la izquierda por {way_name}", + "destination": "Coge la cuesta de la izquierda hacia {destination}" + }, + "right": { + "default": "Coge la cuesta de la derecha", + "name": "Coge la cuesta de la derecha por {way_name}", + "destination": "Coge la cuesta de la derecha hacia {destination}" + }, + "sharp left": { + "default": "Coge la cuesta de la izquierda", + "name": "Coge la cuesta de la izquierda por {way_name}", + "destination": "Coge la cuesta de la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Coge la cuesta de la derecha", + "name": "Coge la cuesta de la derecha por {way_name}", + "destination": "Coge la cuesta de la derecha hacia {destination}" + }, + "slight left": { + "default": "Coge la cuesta de la izquierda", + "name": "Coge la cuesta de la izquierda por {way_name}", + "destination": "Coge la cuesta de la izquierda hacia {destination}" + }, + "slight right": { + "default": "Coge la cuesta de la derecha", + "name": "Coge la cuesta de la derecha por {way_name}", + "destination": "Coge la cuesta de la derecha hacia {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Incorpórate en la rotonda", + "name": "En la rotonda sal por {way_name}", + "destination": "En la rotonda sal hacia {destination}" + }, + "name": { + "default": "En {rotary_name}", + "name": "En {rotary_name} sal por {way_name}", + "destination": "En {rotary_name} sal hacia {destination}" + }, + "exit": { + "default": "En la rotonda toma la {exit_number} salida", + "name": "En la rotonda toma la {exit_number} salida por {way_name}", + "destination": "En la rotonda toma la {exit_number} salida hacia {destination}" + }, + "name_exit": { + "default": "En {rotary_name} toma la {exit_number} salida", + "name": "En {rotary_name} toma la {exit_number} salida por {way_name}", + "destination": "En {rotary_name} toma la {exit_number} salida hacia {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "En la rotonda toma la {exit_number} salida", + "name": "En la rotonda toma la {exit_number} salida por {way_name}", + "destination": "En la rotonda toma la {exit_number} salida hacia {destination}" + }, + "default": { + "default": "Incorpórate en la rotonda", + "name": "Incorpórate en la rotonda y sal en {way_name}", + "destination": "Incorpórate en la rotonda y sal hacia {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Siga {modifier}", + "name": "Siga {modifier} en {way_name}", + "destination": "Siga {modifier} hacia {destination}" + }, + "left": { + "default": "Gire a la izquierda", + "name": "Gire a la izquierda en {way_name}", + "destination": "Gire a la izquierda hacia {destination}" + }, + "right": { + "default": "Gire a la derecha", + "name": "Gire a la derecha en {way_name}", + "destination": "Gire a la derecha hacia {destination}" + }, + "straight": { + "default": "Continúa recto", + "name": "Continúa recto por {way_name}", + "destination": "Continúa recto hacia {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Sal la rotonda", + "name": "Toma la salida por {way_name}", + "destination": "Toma la salida hacia {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Sal la rotonda", + "name": "Toma la salida por {way_name}", + "destination": "Toma la salida hacia {destination}" + } + }, + "turn": { + "default": { + "default": "Gira {modifier}", + "name": "Gira {modifier} por {way_name}", + "destination": "Gira {modifier} hacia {destination}" + }, + "left": { + "default": "Gira a la izquierda", + "name": "Gira a la izquierda por {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "right": { + "default": "Gira a la derecha", + "name": "Gira a la derecha por {way_name}", + "destination": "Gira a la derecha hacia {destination}" + }, + "straight": { + "default": "Continúa recto", + "name": "Continúa recto por {way_name}", + "destination": "Continúa recto hacia {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Continúa recto" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],28:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1ª", + "2": "2ª", + "3": "3ª", + "4": "4ª", + "5": "5ª", + "6": "6ª", + "7": "7ª", + "8": "8ª", + "9": "9ª", + "10": "10ª" + }, + "direction": { + "north": "norte", + "northeast": "noreste", + "east": "este", + "southeast": "sureste", + "south": "sur", + "southwest": "suroeste", + "west": "oeste", + "northwest": "noroeste" + }, + "modifier": { + "left": "izquierda", + "right": "derecha", + "sharp left": "cerrada a la izquierda", + "sharp right": "cerrada a la derecha", + "slight left": "levemente a la izquierda", + "slight right": "levemente a la derecha", + "straight": "recto", + "uturn": "cambio de sentido" + }, + "lanes": { + "xo": "Mantente a la derecha", + "ox": "Mantente a la izquierda", + "xox": "Mantente en el medio", + "oxo": "Mantente a la izquierda o derecha" + } + }, + "modes": { + "ferry": { + "default": "Coge el ferry", + "name": "Coge el ferry {way_name}", + "destination": "Coge el ferry a {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one} y luego a {distance}, {instruction_two}", + "two linked": "{instruction_one} y luego {instruction_two}", + "one in distance": "A {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "salida {exit}" + }, + "arrive": { + "default": { + "default": "Has llegado a tu {nth} destino", + "upcoming": "Vas a llegar a tu {nth} destino", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}" + }, + "left": { + "default": "Has llegado a tu {nth} destino, a la izquierda", + "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la izquierda" + }, + "right": { + "default": "Has llegado a tu {nth} destino, a la derecha", + "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la derecha" + }, + "sharp left": { + "default": "Has llegado a tu {nth} destino, a la izquierda", + "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la izquierda" + }, + "sharp right": { + "default": "Has llegado a tu {nth} destino, a la derecha", + "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la derecha" + }, + "slight right": { + "default": "Has llegado a tu {nth} destino, a la derecha", + "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la derecha" + }, + "slight left": { + "default": "Has llegado a tu {nth} destino, a la izquierda", + "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, a la izquierda" + }, + "straight": { + "default": "Has llegado a tu {nth} destino, en frente", + "upcoming": "Vas a llegar a tu {nth} destino, en frente", + "short": "Has llegado", + "short-upcoming": "Vas a llegar", + "named": "Has llegado a {waypoint_name}, en frente" + } + }, + "continue": { + "default": { + "default": "Gira a {modifier}", + "name": "Cruza a la{modifier} en {way_name}", + "destination": "Gira a {modifier} hacia {destination}", + "exit": "Gira a {modifier} en {way_name}" + }, + "straight": { + "default": "Continúa recto", + "name": "Continúa en {way_name}", + "destination": "Continúa hacia {destination}", + "distance": "Continúa recto por {distance}", + "namedistance": "Continúa recto en {way_name} por {distance}" + }, + "sharp left": { + "default": "Gira a la izquierda", + "name": "Gira a la izquierda en {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Gira a la derecha", + "name": "Gira a la derecha en {way_name}", + "destination": "Gira a la derecha hacia {destination}" + }, + "slight left": { + "default": "Gira a la izquierda", + "name": "Dobla levemente a la izquierda en {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "slight right": { + "default": "Gira a la izquierda", + "name": "Dobla levemente a la derecha en {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido y continúa en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "depart": { + "default": { + "default": "Ve a {direction}", + "name": "Ve a {direction} en {way_name}", + "namedistance": "Ve a {direction} en {way_name} por {distance}" + } + }, + "end of road": { + "default": { + "default": "Gira a {modifier}", + "name": "Gira a {modifier} en {way_name}", + "destination": "Gira a {modifier} hacia {destination}" + }, + "straight": { + "default": "Continúa recto", + "name": "Continúa recto en {way_name}", + "destination": "Continúa recto hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido al final de la via", + "name": "Haz un cambio de sentido en {way_name} al final de la via", + "destination": "Haz un cambio de sentido hacia {destination} al final de la via" + } + }, + "fork": { + "default": { + "default": "Mantente {modifier} en el cruza", + "name": "Mantente {modifier} en {way_name}", + "destination": "Mantente {modifier} hacia {destination}" + }, + "slight left": { + "default": "Mantente a la izquierda en el cruza", + "name": "Mantente a la izquierda en {way_name}", + "destination": "Mantente a la izquierda hacia {destination}" + }, + "slight right": { + "default": "Mantente a la derecha en el cruza", + "name": "Mantente a la derecha en {way_name}", + "destination": "Mantente a la derecha hacia {destination}" + }, + "sharp left": { + "default": "Gira a la izquierda en el cruza", + "name": "Gira a la izquierda en {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Gira a la derecha en el cruza", + "name": "Gira a la derecha en {way_name}", + "destination": "Gira a la derecha hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "merge": { + "default": { + "default": "Incorpórate a {modifier}", + "name": "Incorpórate a {modifier} en {way_name}", + "destination": "Incorpórate a {modifier} hacia {destination}" + }, + "straight": { + "default": "Incorpórate", + "name": "Incorpórate a {way_name}", + "destination": "Incorpórate hacia {destination}" + }, + "slight left": { + "default": "Incorpórate a la izquierda", + "name": "Incorpórate a la izquierda en {way_name}", + "destination": "Incorpórate a la izquierda hacia {destination}" + }, + "slight right": { + "default": "Incorpórate a la derecha", + "name": "Incorpórate a la derecha en {way_name}", + "destination": "Incorpórate a la derecha hacia {destination}" + }, + "sharp left": { + "default": "Incorpórate a la izquierda", + "name": "Incorpórate a la izquierda en {way_name}", + "destination": "Incorpórate a la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Incorpórate a la derecha", + "name": "Incorpórate a la derecha en {way_name}", + "destination": "Incorpórate a la derecha hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "new name": { + "default": { + "default": "Continúa {modifier}", + "name": "Continúa {modifier} en {way_name}", + "destination": "Continúa {modifier} hacia {destination}" + }, + "straight": { + "default": "Continúa recto", + "name": "Continúa en {way_name}", + "destination": "Continúa hacia {destination}" + }, + "sharp left": { + "default": "Gira a la izquierda", + "name": "Gira a la izquierda en {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Gira a la derecha", + "name": "Gira a la derecha en {way_name}", + "destination": "Gira a la derecha hacia {destination}" + }, + "slight left": { + "default": "Continúa levemente a la izquierda", + "name": "Continúa levemente a la izquierda en {way_name}", + "destination": "Continúa levemente a la izquierda hacia {destination}" + }, + "slight right": { + "default": "Continúa levemente a la derecha", + "name": "Continúa levemente a la derecha en {way_name}", + "destination": "Continúa levemente a la derecha hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "notification": { + "default": { + "default": "Continúa {modifier}", + "name": "Continúa {modifier} en {way_name}", + "destination": "Continúa {modifier} hacia {destination}" + }, + "uturn": { + "default": "Haz un cambio de sentido", + "name": "Haz un cambio de sentido en {way_name}", + "destination": "Haz un cambio de sentido hacia {destination}" + } + }, + "off ramp": { + "default": { + "default": "Toma la salida", + "name": "Toma la salida en {way_name}", + "destination": "Toma la salida hacia {destination}", + "exit": "Toma la salida {exit}", + "exit_destination": "Toma la salida {exit} hacia {destination}" + }, + "left": { + "default": "Toma la salida en la izquierda", + "name": "Toma la salida en la izquierda en {way_name}", + "destination": "Toma la salida en la izquierda en {destination}", + "exit": "Toma la salida {exit} en la izquierda", + "exit_destination": "Toma la salida {exit} en la izquierda hacia {destination}" + }, + "right": { + "default": "Toma la salida en la derecha", + "name": "Toma la salida en la derecha en {way_name}", + "destination": "Toma la salida en la derecha hacia {destination}", + "exit": "Toma la salida {exit} en la derecha", + "exit_destination": "Toma la salida {exit} en la derecha hacia {destination}" + }, + "sharp left": { + "default": "Ve cuesta abajo en la izquierda", + "name": "Ve cuesta abajo en la izquierda en {way_name}", + "destination": "Ve cuesta abajo en la izquierda hacia {destination}", + "exit": "Toma la salida {exit} en la izquierda", + "exit_destination": "Toma la salida {exit} en la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Ve cuesta abajo en la derecha", + "name": "Ve cuesta abajo en la derecha en {way_name}", + "destination": "Ve cuesta abajo en la derecha hacia {destination}", + "exit": "Toma la salida {exit} en la derecha", + "exit_destination": "Toma la salida {exit} en la derecha hacia {destination}" + }, + "slight left": { + "default": "Ve cuesta abajo en la izquierda", + "name": "Ve cuesta abajo en la izquierda en {way_name}", + "destination": "Ve cuesta abajo en la izquierda hacia {destination}", + "exit": "Toma la salida {exit} en la izquierda", + "exit_destination": "Toma la salida {exit} en la izquierda hacia {destination}" + }, + "slight right": { + "default": "Toma la salida en la derecha", + "name": "Toma la salida en la derecha en {way_name}", + "destination": "Toma la salida en la derecha hacia {destination}", + "exit": "Toma la salida {exit} en la derecha", + "exit_destination": "Toma la salida {exit} en la derecha hacia {destination}" + } + }, + "on ramp": { + "default": { + "default": "Toma la rampa", + "name": "Toma la rampa en {way_name}", + "destination": "Toma la rampa hacia {destination}" + }, + "left": { + "default": "Toma la rampa en la izquierda", + "name": "Toma la rampa en la izquierda en {way_name}", + "destination": "Toma la rampa en la izquierda hacia {destination}" + }, + "right": { + "default": "Toma la rampa en la derecha", + "name": "Toma la rampa en la derecha en {way_name}", + "destination": "Toma la rampa en la derecha hacia {destination}" + }, + "sharp left": { + "default": "Toma la rampa en la izquierda", + "name": "Toma la rampa en la izquierda en {way_name}", + "destination": "Toma la rampa en la izquierda hacia {destination}" + }, + "sharp right": { + "default": "Toma la rampa en la derecha", + "name": "Toma la rampa en la derecha en {way_name}", + "destination": "Toma la rampa en la derecha hacia {destination}" + }, + "slight left": { + "default": "Toma la rampa en la izquierda", + "name": "Toma la rampa en la izquierda en {way_name}", + "destination": "Toma la rampa en la izquierda hacia {destination}" + }, + "slight right": { + "default": "Toma la rampa en la derecha", + "name": "Toma la rampa en la derecha en {way_name}", + "destination": "Toma la rampa en la derecha hacia {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Entra en la rotonda", + "name": "Entra en la rotonda y sal en {way_name}", + "destination": "Entra en la rotonda y sal hacia {destination}" + }, + "name": { + "default": "Entra en {rotary_name}", + "name": "Entra en {rotary_name} y sal en {way_name}", + "destination": "Entra en {rotary_name} y sal hacia {destination}" + }, + "exit": { + "default": "Entra en la rotonda y toma la {exit_number} salida", + "name": "Entra en la rotonda y toma la {exit_number} salida a {way_name}", + "destination": "Entra en la rotonda y toma la {exit_number} salida hacia {destination}" + }, + "name_exit": { + "default": "Entra en {rotary_name} y coge la {exit_number} salida", + "name": "Entra en {rotary_name} y coge la {exit_number} salida en {way_name}", + "destination": "Entra en {rotary_name} y coge la {exit_number} salida hacia {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Entra en la rotonda y toma la {exit_number} salida", + "name": "Entra en la rotonda y toma la {exit_number} salida a {way_name}", + "destination": "Entra en la rotonda y toma la {exit_number} salida hacia {destination}" + }, + "default": { + "default": "Entra en la rotonda", + "name": "Entra en la rotonda y sal en {way_name}", + "destination": "Entra en la rotonda y sal hacia {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Sigue {modifier}", + "name": "Sigue {modifier} en {way_name}", + "destination": "Sigue {modifier} hacia {destination}" + }, + "left": { + "default": "Gira a la izquierda", + "name": "Gira a la izquierda en {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "right": { + "default": "Gira a la derecha", + "name": "Gira a la derecha en {way_name}", + "destination": "Gira a la derecha hacia {destination}" + }, + "straight": { + "default": "Continúa recto", + "name": "Continúa recto en {way_name}", + "destination": "Continúa recto hacia {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Sal la rotonda", + "name": "Sal la rotonda en {way_name}", + "destination": "Sal la rotonda hacia {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Sal la rotonda", + "name": "Sal la rotonda en {way_name}", + "destination": "Sal la rotonda hacia {destination}" + } + }, + "turn": { + "default": { + "default": "Sigue {modifier}", + "name": "Sigue {modifier} en {way_name}", + "destination": "Sigue {modifier} hacia {destination}" + }, + "left": { + "default": "Gira a la izquierda", + "name": "Gira a la izquierda en {way_name}", + "destination": "Gira a la izquierda hacia {destination}" + }, + "right": { + "default": "Gira a la derecha", + "name": "Gira a la derecha en {way_name}", + "destination": "Gira a la derecha hacia {destination}" + }, + "straight": { + "default": "Ve recto", + "name": "Ve recto en {way_name}", + "destination": "Ve recto hacia {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Continúa recto" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],29:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1.", + "2": "2.", + "3": "3.", + "4": "4.", + "5": "5.", + "6": "6.", + "7": "7.", + "8": "8.", + "9": "9.", + "10": "10." + }, + "direction": { + "north": "pohjoiseen", + "northeast": "koilliseen", + "east": "itään", + "southeast": "kaakkoon", + "south": "etelään", + "southwest": "lounaaseen", + "west": "länteen", + "northwest": "luoteeseen" + }, + "modifier": { + "left": "vasemmall(e/a)", + "right": "oikeall(e/a)", + "sharp left": "jyrkästi vasempaan", + "sharp right": "jyrkästi oikeaan", + "slight left": "loivasti vasempaan", + "slight right": "loivasti oikeaan", + "straight": "suoraan eteenpäin", + "uturn": "U-käännös" + }, + "lanes": { + "xo": "Pysy oikealla", + "ox": "Pysy vasemmalla", + "xox": "Pysy keskellä", + "oxo": "Pysy vasemmalla tai oikealla" + } + }, + "modes": { + "ferry": { + "default": "Aja lautalle", + "name": "Aja lautalle {way_name}", + "destination": "Aja lautalle, jonka määränpää on {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, sitten {distance} päästä, {instruction_two}", + "two linked": "{instruction_one}, sitten {instruction_two}", + "one in distance": "{distance} päästä, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "{exit}" + }, + "arrive": { + "default": { + "default": "Olet saapunut {nth} määränpäähäsi", + "upcoming": "Saavut {nth} määränpäähäsi", + "short": "Olet saapunut", + "short-upcoming": "Saavut", + "named": "Olet saapunut määränpäähän {waypoint_name}" + }, + "left": { + "default": "Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi", + "upcoming": "Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi", + "short": "Olet saapunut", + "short-upcoming": "Saavut", + "named": "Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi" + }, + "right": { + "default": "Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi", + "upcoming": "Saavut {nth} määränpäähäsi, joka on oikealla puolellasi", + "short": "Olet saapunut", + "short-upcoming": "Saavut", + "named": "Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi" + }, + "sharp left": { + "default": "Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi", + "upcoming": "Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi", + "short": "Olet saapunut", + "short-upcoming": "Saavut", + "named": "Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi" + }, + "sharp right": { + "default": "Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi", + "upcoming": "Saavut {nth} määränpäähäsi, joka on oikealla puolellasi", + "short": "Olet saapunut", + "short-upcoming": "Saavut", + "named": "Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi" + }, + "slight right": { + "default": "Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi", + "upcoming": "Saavut {nth} määränpäähäsi, joka on oikealla puolellasi", + "short": "Olet saapunut", + "short-upcoming": "Saavut", + "named": "Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi" + }, + "slight left": { + "default": "Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi", + "upcoming": "Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi", + "short": "Olet saapunut", + "short-upcoming": "Saavut", + "named": "Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi" + }, + "straight": { + "default": "Olet saapunut {nth} määränpäähäsi, joka on suoraan edessäsi", + "upcoming": "Saavut {nth} määränpäähäsi, suoraan edessä", + "short": "Olet saapunut", + "short-upcoming": "Saavut", + "named": "Olet saapunut määränpäähän {waypoint_name}, joka on suoraan edessäsi" + } + }, + "continue": { + "default": { + "default": "Käänny {modifier}", + "name": "Käänny {modifier} pysyäksesi tiellä {way_name}", + "destination": "Käänny {modifier} suuntana {destination}", + "exit": "Käänny {modifier} tielle {way_name}" + }, + "straight": { + "default": "Jatka suoraan eteenpäin", + "name": "Jatka suoraan pysyäksesi tiellä {way_name}", + "destination": "Jatka suuntana {destination}", + "distance": "Jatka suoraan {distance}", + "namedistance": "Jatka tiellä {way_name} {distance}" + }, + "sharp left": { + "default": "Jatka jyrkästi vasempaan", + "name": "Jatka jyrkästi vasempaan pysyäksesi tiellä {way_name}", + "destination": "Jatka jyrkästi vasempaan suuntana {destination}" + }, + "sharp right": { + "default": "Jatka jyrkästi oikeaan", + "name": "Jatka jyrkästi oikeaan pysyäksesi tiellä {way_name}", + "destination": "Jatka jyrkästi oikeaan suuntana {destination}" + }, + "slight left": { + "default": "Jatka loivasti vasempaan", + "name": "Jatka loivasti vasempaan pysyäksesi tiellä {way_name}", + "destination": "Jatka loivasti vasempaan suuntana {destination}" + }, + "slight right": { + "default": "Jatka loivasti oikeaan", + "name": "Jatka loivasti oikeaan pysyäksesi tiellä {way_name}", + "destination": "Jatka loivasti oikeaan suuntana {destination}" + }, + "uturn": { + "default": "Tee U-käännös", + "name": "Tee U-käännös ja jatka tietä {way_name}", + "destination": "Tee U-käännös suuntana {destination}" + } + }, + "depart": { + "default": { + "default": "Aja {direction}", + "name": "Aja tietä {way_name} {direction}", + "namedistance": "Aja {distance} {direction} tietä {way_name} " + } + }, + "end of road": { + "default": { + "default": "Käänny {modifier}", + "name": "Käänny {modifier} tielle {way_name}", + "destination": "Käänny {modifier} suuntana {destination}" + }, + "straight": { + "default": "Jatka suoraan eteenpäin", + "name": "Jatka suoraan eteenpäin tielle {way_name}", + "destination": "Jatka suoraan eteenpäin suuntana {destination}" + }, + "uturn": { + "default": "Tien päässä tee U-käännös", + "name": "Tien päässä tee U-käännös tielle {way_name}", + "destination": "Tien päässä tee U-käännös suuntana {destination}" + } + }, + "fork": { + "default": { + "default": "Jatka tienhaarassa {modifier}", + "name": "Jatka {modifier} tielle {way_name}", + "destination": "Jatka {modifier} suuntana {destination}" + }, + "slight left": { + "default": "Pysy vasemmalla tienhaarassa", + "name": "Pysy vasemmalla tielle {way_name}", + "destination": "Pysy vasemmalla suuntana {destination}" + }, + "slight right": { + "default": "Pysy oikealla tienhaarassa", + "name": "Pysy oikealla tielle {way_name}", + "destination": "Pysy oikealla suuntana {destination}" + }, + "sharp left": { + "default": "Käänny tienhaarassa jyrkästi vasempaan", + "name": "Käänny tienhaarassa jyrkästi vasempaan tielle {way_name}", + "destination": "Käänny tienhaarassa jyrkästi vasempaan suuntana {destination}" + }, + "sharp right": { + "default": "Käänny tienhaarassa jyrkästi oikeaan", + "name": "Käänny tienhaarassa jyrkästi oikeaan tielle {way_name}", + "destination": "Käänny tienhaarassa jyrkästi oikeaan suuntana {destination}" + }, + "uturn": { + "default": "Tee U-käännös", + "name": "Tee U-käännös tielle {way_name}", + "destination": "Tee U-käännös suuntana {destination}" + } + }, + "merge": { + "default": { + "default": "Liity {modifier}", + "name": "Liity {modifier}, tielle {way_name}", + "destination": "Liity {modifier}, suuntana {destination}" + }, + "straight": { + "default": "Liity", + "name": "Liity tielle {way_name}", + "destination": "Liity suuntana {destination}" + }, + "slight left": { + "default": "Liity vasemmalle", + "name": "Liity vasemmalle, tielle {way_name}", + "destination": "Liity vasemmalle, suuntana {destination}" + }, + "slight right": { + "default": "Liity oikealle", + "name": "Liity oikealle, tielle {way_name}", + "destination": "Liity oikealle, suuntana {destination}" + }, + "sharp left": { + "default": "Liity vasemmalle", + "name": "Liity vasemmalle, tielle {way_name}", + "destination": "Liity vasemmalle, suuntana {destination}" + }, + "sharp right": { + "default": "Liity oikealle", + "name": "Liity oikealle, tielle {way_name}", + "destination": "Liity oikealle, suuntana {destination}" + }, + "uturn": { + "default": "Tee U-käännös", + "name": "Tee U-käännös tielle {way_name}", + "destination": "Tee U-käännös suuntana {destination}" + } + }, + "new name": { + "default": { + "default": "Jatka {modifier}", + "name": "Jatka {modifier} tielle {way_name}", + "destination": "Jatka {modifier} suuntana {destination}" + }, + "straight": { + "default": "Jatka suoraan eteenpäin", + "name": "Jatka tielle {way_name}", + "destination": "Jatka suuntana {destination}" + }, + "sharp left": { + "default": "Käänny jyrkästi vasempaan", + "name": "Käänny jyrkästi vasempaan tielle {way_name}", + "destination": "Käänny jyrkästi vasempaan suuntana {destination}" + }, + "sharp right": { + "default": "Käänny jyrkästi oikeaan", + "name": "Käänny jyrkästi oikeaan tielle {way_name}", + "destination": "Käänny jyrkästi oikeaan suuntana {destination}" + }, + "slight left": { + "default": "Jatka loivasti vasempaan", + "name": "Jatka loivasti vasempaan tielle {way_name}", + "destination": "Jatka loivasti vasempaan suuntana {destination}" + }, + "slight right": { + "default": "Jatka loivasti oikeaan", + "name": "Jatka loivasti oikeaan tielle {way_name}", + "destination": "Jatka loivasti oikeaan suuntana {destination}" + }, + "uturn": { + "default": "Tee U-käännös", + "name": "Tee U-käännös tielle {way_name}", + "destination": "Tee U-käännös suuntana {destination}" + } + }, + "notification": { + "default": { + "default": "Jatka {modifier}", + "name": "Jatka {modifier} tielle {way_name}", + "destination": "Jatka {modifier} suuntana {destination}" + }, + "uturn": { + "default": "Tee U-käännös", + "name": "Tee U-käännös tielle {way_name}", + "destination": "Tee U-käännös suuntana {destination}" + } + }, + "off ramp": { + "default": { + "default": "Aja erkanemiskaistalle", + "name": "Aja erkanemiskaistaa tielle {way_name}", + "destination": "Aja erkanemiskaistalle suuntana {destination}", + "exit": "Ota poistuminen {exit}", + "exit_destination": "Ota poistuminen {exit}, suuntana {destination}" + }, + "left": { + "default": "Aja vasemmalla olevalle erkanemiskaistalle", + "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}", + "exit": "Ota poistuminen {exit} vasemmalla", + "exit_destination": "Ota poistuminen {exit} vasemmalla, suuntana {destination}" + }, + "right": { + "default": "Aja oikealla olevalle erkanemiskaistalle", + "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}", + "exit": "Ota poistuminen {exit} oikealla", + "exit_destination": "Ota poistuminen {exit} oikealla, suuntana {destination}" + }, + "sharp left": { + "default": "Aja vasemmalla olevalle erkanemiskaistalle", + "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}", + "exit": "Ota poistuminen {exit} vasemmalla", + "exit_destination": "Ota poistuminen {exit} vasemmalla, suuntana {destination}" + }, + "sharp right": { + "default": "Aja oikealla olevalle erkanemiskaistalle", + "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}", + "exit": "Ota poistuminen {exit} oikealla", + "exit_destination": "Ota poistuminen {exit} oikealla, suuntana {destination}" + }, + "slight left": { + "default": "Aja vasemmalla olevalle erkanemiskaistalle", + "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}", + "exit": "Ota poistuminen {exit} vasemmalla", + "exit_destination": "Ota poistuminen {exit} vasemmalla, suuntana {destination}" + }, + "slight right": { + "default": "Aja oikealla olevalle erkanemiskaistalle", + "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}", + "exit": "Ota poistuminen {exit} oikealla", + "exit_destination": "Ota poistuminen {exit} oikealla, suuntana {destination}" + } + }, + "on ramp": { + "default": { + "default": "Aja erkanemiskaistalle", + "name": "Aja erkanemiskaistaa tielle {way_name}", + "destination": "Aja erkanemiskaistalle suuntana {destination}" + }, + "left": { + "default": "Aja vasemmalla olevalle erkanemiskaistalle", + "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}" + }, + "right": { + "default": "Aja oikealla olevalle erkanemiskaistalle", + "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}" + }, + "sharp left": { + "default": "Aja vasemmalla olevalle erkanemiskaistalle", + "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}" + }, + "sharp right": { + "default": "Aja oikealla olevalle erkanemiskaistalle", + "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}" + }, + "slight left": { + "default": "Aja vasemmalla olevalle erkanemiskaistalle", + "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}" + }, + "slight right": { + "default": "Aja oikealla olevalle erkanemiskaistalle", + "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", + "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Aja liikenneympyrään", + "name": "Aja liikenneympyrään ja valitse erkanemiskaista tielle {way_name}", + "destination": "Aja liikenneympyrään ja valitse erkanemiskaista suuntana {destination}" + }, + "name": { + "default": "Aja liikenneympyrään {rotary_name}", + "name": "Aja liikenneympyrään {rotary_name} ja valitse erkanemiskaista tielle {way_name}", + "destination": "Aja liikenneympyrään {rotary_name} ja valitse erkanemiskaista suuntana {destination}" + }, + "exit": { + "default": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista", + "name": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista tielle {way_name}", + "destination": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista suuntana {destination}" + }, + "name_exit": { + "default": "Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista", + "name": "Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista tielle {way_name}", + "destination": "Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista suuntana {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista", + "name": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista tielle {way_name}", + "destination": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista suuntana {destination}" + }, + "default": { + "default": "Aja liikenneympyrään", + "name": "Aja liikenneympyrään ja valitse erkanemiskaista tielle {way_name}", + "destination": "Aja liikenneympyrään ja valitse erkanemiskaista suuntana {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Käänny {modifier}", + "name": "Käänny {modifier} tielle {way_name}", + "destination": "Käänny {modifier} suuntana {destination}" + }, + "left": { + "default": "Käänny vasempaan", + "name": "Käänny vasempaan tielle {way_name}", + "destination": "Käänny vasempaan suuntana {destination}" + }, + "right": { + "default": "Käänny oikeaan", + "name": "Käänny oikeaan tielle {way_name}", + "destination": "Käänny oikeaan suuntana {destination}" + }, + "straight": { + "default": "Jatka suoraan eteenpäin", + "name": "Jatka suoraan eteenpäin tielle {way_name}", + "destination": "Jatka suoraan eteenpäin suuntana {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Poistu liikenneympyrästä", + "name": "Poistu liikenneympyrästä tielle {way_name}", + "destination": "Poistu liikenneympyrästä suuntana {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Poistu liikenneympyrästä", + "name": "Poistu liikenneympyrästä tielle {way_name}", + "destination": "Poistu liikenneympyrästä suuntana {destination}" + } + }, + "turn": { + "default": { + "default": "Käänny {modifier}", + "name": "Käänny {modifier} tielle {way_name}", + "destination": "Käänny {modifier} suuntana {destination}" + }, + "left": { + "default": "Käänny vasempaan", + "name": "Käänny vasempaan tielle {way_name}", + "destination": "Käänny vasempaan suuntana {destination}" + }, + "right": { + "default": "Käänny oikeaan", + "name": "Käänny oikeaan tielle {way_name}", + "destination": "Käänny oikeaan suuntana {destination}" + }, + "straight": { + "default": "Aja suoraan eteenpäin", + "name": "Aja suoraan eteenpäin tielle {way_name}", + "destination": "Aja suoraan eteenpäin suuntana {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Jatka suoraan eteenpäin" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],30:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "première", + "2": "seconde", + "3": "troisième", + "4": "quatrième", + "5": "cinquième", + "6": "sixième", + "7": "septième", + "8": "huitième", + "9": "neuvième", + "10": "dixième" + }, + "direction": { + "north": "le nord", + "northeast": "le nord-est", + "east": "l’est", + "southeast": "le sud-est", + "south": "le sud", + "southwest": "le sud-ouest", + "west": "l’ouest", + "northwest": "le nord-ouest" + }, + "modifier": { + "left": "à gauche", + "right": "à droite", + "sharp left": "franchement à gauche", + "sharp right": "franchement à droite", + "slight left": "légèrement à gauche", + "slight right": "légèrement à droite", + "straight": "tout droit", + "uturn": "demi-tour" + }, + "lanes": { + "xo": "Tenir la droite", + "ox": "Tenir la gauche", + "xox": "Rester au milieu", + "oxo": "Tenir la gauche ou la droite" + } + }, + "modes": { + "ferry": { + "default": "Prendre le ferry", + "name": "Prendre le ferry {way_name:article}", + "destination": "Prendre le ferry en direction {destination:preposition}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, puis, dans {distance}, {instruction_two}", + "two linked": "{instruction_one}, puis {instruction_two}", + "one in distance": "Dans {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "sortie n°{exit}" + }, + "arrive": { + "default": { + "default": "Vous êtes arrivé à votre {nth} destination", + "upcoming": "Vous arriverez à votre {nth} destination", + "short": "Vous êtes arrivé", + "short-upcoming": "Vous arriverez", + "named": "Vous êtes arrivé {waypoint_name:arrival}" + }, + "left": { + "default": "Vous êtes arrivé à votre {nth} destination, sur la gauche", + "upcoming": "Vous arriverez à votre {nth} destination, sur la gauche", + "short": "Vous êtes arrivé", + "short-upcoming": "Vous arriverez", + "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la gauche" + }, + "right": { + "default": "Vous êtes arrivé à votre {nth} destination, sur la droite", + "upcoming": "Vous arriverez à votre {nth} destination, sur la droite", + "short": "Vous êtes arrivé", + "short-upcoming": "Vous arriverez", + "named": "Vous êtes arrivé à {waypoint_name:arrival}, sur la droite" + }, + "sharp left": { + "default": "Vous êtes arrivé à votre {nth} destination, sur la gauche", + "upcoming": "Vous arriverez à votre {nth} destination, sur la gauche", + "short": "Vous êtes arrivé", + "short-upcoming": "Vous arriverez", + "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la gauche" + }, + "sharp right": { + "default": "Vous êtes arrivé à votre {nth} destination, sur la droite", + "upcoming": "Vous arriverez à votre {nth} destination, sur la droite", + "short": "Vous êtes arrivé", + "short-upcoming": "Vous arriverez", + "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la droite" + }, + "slight right": { + "default": "Vous êtes arrivé à votre {nth} destination, sur la droite", + "upcoming": "Vous arriverez à votre {nth} destination, sur la droite", + "short": "Vous êtes arrivé", + "short-upcoming": "Vous arriverez", + "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la droite" + }, + "slight left": { + "default": "Vous êtes arrivé à votre {nth} destination, sur la gauche", + "upcoming": "Vous arriverez à votre {nth} destination, sur la gauche", + "short": "Vous êtes arrivé", + "short-upcoming": "Vous êtes arrivé", + "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la gauche" + }, + "straight": { + "default": "Vous êtes arrivé à votre {nth} destination, droit devant", + "upcoming": "Vous arriverez à votre {nth} destination, droit devant", + "short": "Vous êtes arrivé", + "short-upcoming": "Vous êtes arrivé", + "named": "Vous êtes arrivé {waypoint_name:arrival}, droit devant" + } + }, + "continue": { + "default": { + "default": "Tourner {modifier}", + "name": "Tourner {modifier} pour rester sur {way_name:article}", + "destination": "Tourner {modifier} en direction {destination:preposition}", + "exit": "Tourner {modifier} sur {way_name:article}" + }, + "straight": { + "default": "Continuer tout droit", + "name": "Continuer tout droit pour rester sur {way_name:article}", + "destination": "Continuer tout droit en direction {destination:preposition}", + "distance": "Continuer tout droit sur {distance}", + "namedistance": "Continuer sur {way_name:article} sur {distance}" + }, + "sharp left": { + "default": "Tourner franchement à gauche", + "name": "Tourner franchement à gauche pour rester sur {way_name:article}", + "destination": "Tourner franchement à gauche en direction {destination:preposition}" + }, + "sharp right": { + "default": "Tourner franchement à droite", + "name": "Tourner franchement à droite pour rester sur {way_name:article}", + "destination": "Tourner franchement à droite en direction {destination:preposition}" + }, + "slight left": { + "default": "Tourner légèrement à gauche", + "name": "Tourner légèrement à gauche pour rester sur {way_name:article}", + "destination": "Tourner légèrement à gauche en direction {destination:preposition}" + }, + "slight right": { + "default": "Tourner légèrement à droite", + "name": "Tourner légèrement à droite pour rester sur {way_name:article}", + "destination": "Tourner légèrement à droite en direction {destination:preposition}" + }, + "uturn": { + "default": "Faire demi-tour", + "name": "Faire demi-tour et continuer sur {way_name:article}", + "destination": "Faire demi-tour en direction {destination:preposition}" + } + }, + "depart": { + "default": { + "default": "Se diriger vers {direction}", + "name": "Se diriger vers {direction} sur {way_name:article}", + "namedistance": "Se diriger vers {direction} sur {way_name:article} sur {distance}" + } + }, + "end of road": { + "default": { + "default": "Tourner {modifier}", + "name": "Tourner {modifier} sur {way_name:article}", + "destination": "Tourner {modifier} en direction {destination:preposition}" + }, + "straight": { + "default": "Continuer tout droit", + "name": "Continuer tout droit sur {way_name:article}", + "destination": "Continuer tout droit en direction {destination:preposition}" + }, + "uturn": { + "default": "Faire demi-tour à la fin de la route", + "name": "Faire demi-tour à la fin {way_name:preposition}", + "destination": "Faire demi-tour à la fin de la route en direction {destination:preposition}" + } + }, + "fork": { + "default": { + "default": "Tenir {modifier} à l’embranchement", + "name": "Tenir {modifier} sur {way_name:article}", + "destination": "Tenir {modifier} en direction {destination:preposition}" + }, + "slight left": { + "default": "Tenir la gauche à l’embranchement", + "name": "Tenir la gauche sur {way_name:article}", + "destination": "Tenir la gauche en direction {destination:preposition}" + }, + "slight right": { + "default": "Tenir la droite à l’embranchement", + "name": "Tenir la droite sur {way_name:article}", + "destination": "Tenir la droite en direction {destination:preposition}" + }, + "sharp left": { + "default": "Tourner franchement à gauche à l’embranchement", + "name": "Tourner franchement à gauche sur {way_name:article}", + "destination": "Tourner franchement à gauche en direction {destination:preposition}" + }, + "sharp right": { + "default": "Tourner franchement à droite à l’embranchement", + "name": "Tourner franchement à droite sur {way_name:article}", + "destination": "Tourner franchement à droite en direction {destination:preposition}" + }, + "uturn": { + "default": "Faire demi-tour", + "name": "Faire demi-tour sur {way_name:article}", + "destination": "Faire demi-tour en direction {destination:preposition}" + } + }, + "merge": { + "default": { + "default": "S’insérer {modifier}", + "name": "S’insérer {modifier} sur {way_name:article}", + "destination": "S’insérer {modifier} en direction {destination:preposition}" + }, + "straight": { + "default": "S’insérer", + "name": "S’insérer sur {way_name:article}", + "destination": "S’insérer en direction {destination:preposition}" + }, + "slight left": { + "default": "S’insérer légèrement à gauche", + "name": "S’insérer légèrement à gauche sur {way_name:article}", + "destination": "S’insérer légèrement à gauche en direction {destination:preposition}" + }, + "slight right": { + "default": "S’insérer légèrement à droite", + "name": "S’insérer légèrement à droite sur {way_name:article}", + "destination": "S’insérer à droite en direction {destination:preposition}" + }, + "sharp left": { + "default": "S’insérer à gauche", + "name": "S’insérer à gauche sur {way_name:article}", + "destination": "S’insérer à gauche en direction {destination:preposition}" + }, + "sharp right": { + "default": "S’insérer à droite", + "name": "S’insérer à droite sur {way_name:article}", + "destination": "S’insérer à droite en direction {destination:preposition}" + }, + "uturn": { + "default": "Faire demi-tour", + "name": "Faire demi-tour sur {way_name:article}", + "destination": "Faire demi-tour en direction {destination:preposition}" + } + }, + "new name": { + "default": { + "default": "Continuer {modifier}", + "name": "Continuer {modifier} sur {way_name:article}", + "destination": "Continuer {modifier} en direction {destination:preposition}" + }, + "straight": { + "default": "Continuer tout droit", + "name": "Continuer tout droit sur {way_name:article}", + "destination": "Continuer tout droit en direction {destination:preposition}" + }, + "sharp left": { + "default": "Tourner franchement à gauche", + "name": "Tourner franchement à gauche sur {way_name:article}", + "destination": "Tourner franchement à gauche en direction {destination:preposition}" + }, + "sharp right": { + "default": "Tourner franchement à droite", + "name": "Tourner franchement à droite sur {way_name:article}", + "destination": "Tourner franchement à droite en direction {destination:preposition}" + }, + "slight left": { + "default": "Continuer légèrement à gauche", + "name": "Continuer légèrement à gauche sur {way_name:article}", + "destination": "Continuer légèrement à gauche en direction {destination:preposition}" + }, + "slight right": { + "default": "Continuer légèrement à droite", + "name": "Continuer légèrement à droite sur {way_name:article}", + "destination": "Continuer légèrement à droite en direction {destination:preposition}" + }, + "uturn": { + "default": "Faire demi-tour", + "name": "Faire demi-tour sur {way_name:article}", + "destination": "Faire demi-tour en direction {destination:preposition}" + } + }, + "notification": { + "default": { + "default": "Continuer {modifier}", + "name": "Continuer {modifier} sur {way_name:article}", + "destination": "Continuer {modifier} en direction {destination:preposition}" + }, + "uturn": { + "default": "Faire demi-tour", + "name": "Faire demi-tour sur {way_name:article}", + "destination": "Faire demi-tour en direction {destination:preposition}" + } + }, + "off ramp": { + "default": { + "default": "Prendre la sortie", + "name": "Prendre la sortie sur {way_name:article}", + "destination": "Prendre la sortie en direction {destination:preposition}", + "exit": "Prendre la sortie {exit}", + "exit_destination": "Prendre la sortie {exit} en direction {destination:preposition}" + }, + "left": { + "default": "Prendre la sortie à gauche", + "name": "Prendre la sortie à gauche sur {way_name:article}", + "destination": "Prendre la sortie à gauche en direction {destination:preposition}", + "exit": "Prendre la sortie {exit} sur la gauche", + "exit_destination": "Prendre la sortie {exit} sur la gauche en direction {destination:preposition}" + }, + "right": { + "default": "Prendre la sortie à droite", + "name": "Prendre la sortie à droite sur {way_name:article}", + "destination": "Prendre la sortie à droite en direction {destination:preposition}", + "exit": "Prendre la sortie {exit} sur la droite", + "exit_destination": "Prendre la sortie {exit} sur la droite en direction {destination:preposition}" + }, + "sharp left": { + "default": "Prendre la sortie à gauche", + "name": "Prendre la sortie à gauche sur {way_name:article}", + "destination": "Prendre la sortie à gauche en direction {destination:preposition}", + "exit": "Prendre la sortie {exit} sur la gauche", + "exit_destination": "Prendre la sortie {exit} sur la gauche en direction {destination:preposition}" + }, + "sharp right": { + "default": "Prendre la sortie à droite", + "name": "Prendre la sortie à droite sur {way_name:article}", + "destination": "Prendre la sortie à droite en direction {destination:preposition}", + "exit": "Prendre la sortie {exit} sur la droite", + "exit_destination": "Prendre la sortie {exit} sur la droite en direction {destination:preposition}" + }, + "slight left": { + "default": "Prendre la sortie à gauche", + "name": "Prendre la sortie à gauche sur {way_name:article}", + "destination": "Prendre la sortie à gauche en direction {destination:preposition}", + "exit": "Prendre la sortie {exit} sur la gauche", + "exit_destination": "Prendre la sortie {exit} sur la gauche en direction {destination:preposition}" + }, + "slight right": { + "default": "Prendre la sortie à droite", + "name": "Prendre la sortie à droite sur {way_name:article}", + "destination": "Prendre la sortie à droite en direction {destination:preposition}", + "exit": "Prendre la sortie {exit} sur la droite", + "exit_destination": "Prendre la sortie {exit} sur la droite en direction {destination:preposition}" + } + }, + "on ramp": { + "default": { + "default": "Prendre la sortie", + "name": "Prendre la sortie sur {way_name:article}", + "destination": "Prendre la sortie en direction {destination:preposition}" + }, + "left": { + "default": "Prendre la sortie à gauche", + "name": "Prendre la sortie à gauche sur {way_name:article}", + "destination": "Prendre la sortie à gauche en direction {destination:preposition}" + }, + "right": { + "default": "Prendre la sortie à droite", + "name": "Prendre la sortie à droite sur {way_name:article}", + "destination": "Prendre la sortie à droite en direction {destination:preposition}" + }, + "sharp left": { + "default": "Prendre la sortie à gauche", + "name": "Prendre la sortie à gauche sur {way_name:article}", + "destination": "Prendre la sortie à gauche en direction {destination:preposition}" + }, + "sharp right": { + "default": "Prendre la sortie à droite", + "name": "Prendre la sortie à droite sur {way_name:article}", + "destination": "Prendre la sortie à droite en direction {destination:preposition}" + }, + "slight left": { + "default": "Prendre la sortie à gauche", + "name": "Prendre la sortie à gauche sur {way_name:article}", + "destination": "Prendre la sortie à gauche en direction {destination:preposition}" + }, + "slight right": { + "default": "Prendre la sortie à droite", + "name": "Prendre la sortie à droite sur {way_name:article}", + "destination": "Prendre la sortie à droite en direction {destination:preposition}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Prendre le rond-point", + "name": "Prendre le rond-point, puis sortir sur {way_name:article}", + "destination": "Prendre le rond-point, puis sortir en direction {destination:preposition}" + }, + "name": { + "default": "Prendre {rotary_name:rotary}", + "name": "Prendre {rotary_name:rotary}, puis sortir par {way_name:article}", + "destination": "Prendre {rotary_name:rotary}, puis sortir en direction {destination:preposition}" + }, + "exit": { + "default": "Prendre le rond-point, puis la {exit_number} sortie", + "name": "Prendre le rond-point, puis la {exit_number} sortie sur {way_name:article}", + "destination": "Prendre le rond-point, puis la {exit_number} sortie en direction {destination:preposition}" + }, + "name_exit": { + "default": "Prendre {rotary_name:rotary}, puis la {exit_number} sortie", + "name": "Prendre {rotary_name:rotary}, puis la {exit_number} sortie sur {way_name:article}", + "destination": "Prendre {rotary_name:rotary}, puis la {exit_number} sortie en direction {destination:preposition}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Prendre le rond-point, puis la {exit_number} sortie", + "name": "Prendre le rond-point, puis la {exit_number} sortie sur {way_name:article}", + "destination": "Prendre le rond-point, puis la {exit_number} sortie en direction {destination:preposition}" + }, + "default": { + "default": "Prendre le rond-point", + "name": "Prendre le rond-point, puis sortir sur {way_name:article}", + "destination": "Prendre le rond-point, puis sortir en direction {destination:preposition}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Tourner {modifier}", + "name": "Tourner {modifier} sur {way_name:article}", + "destination": "Tourner {modifier} en direction {destination:preposition}" + }, + "left": { + "default": "Tourner à gauche", + "name": "Tourner à gauche sur {way_name:article}", + "destination": "Tourner à gauche en direction {destination:preposition}" + }, + "right": { + "default": "Tourner à droite", + "name": "Tourner à droite sur {way_name:article}", + "destination": "Tourner à droite en direction {destination:preposition}" + }, + "straight": { + "default": "Continuer tout droit", + "name": "Continuer tout droit sur {way_name:article}", + "destination": "Continuer tout droit en direction {destination:preposition}" + } + }, + "exit roundabout": { + "default": { + "default": "Sortir du rond-point", + "name": "Sortir du rond-point sur {way_name:article}", + "destination": "Sortir du rond-point en direction {destination:preposition}" + } + }, + "exit rotary": { + "default": { + "default": "Sortir du rond-point", + "name": "Sortir du rond-point sur {way_name:article}", + "destination": "Sortir du rond-point en direction {destination:preposition}" + } + }, + "turn": { + "default": { + "default": "Tourner {modifier}", + "name": "Tourner {modifier} sur {way_name:article}", + "destination": "Tourner {modifier} en direction {destination:preposition}" + }, + "left": { + "default": "Tourner à gauche", + "name": "Tourner à gauche sur {way_name:article}", + "destination": "Tourner à gauche en direction {destination:preposition}" + }, + "right": { + "default": "Tourner à droite", + "name": "Tourner à droite sur {way_name:article}", + "destination": "Tourner à droite en direction {destination:preposition}" + }, + "straight": { + "default": "Aller tout droit", + "name": "Aller tout droit sur {way_name:article}", + "destination": "Aller tout droit en direction {destination:preposition}" + } + }, + "use lane": { + "no_lanes": { + "default": "Continuer tout droit" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],31:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "ראשונה", + "2": "שניה", + "3": "שלישית", + "4": "רביעית", + "5": "חמישית", + "6": "שישית", + "7": "שביעית", + "8": "שמינית", + "9": "תשיעית", + "10": "עשירית" + }, + "direction": { + "north": "צפון", + "northeast": "צפון מזרח", + "east": "מזרח", + "southeast": "דרום מזרח", + "south": "דרום", + "southwest": "דרום מערב", + "west": "מערב", + "northwest": "צפון מערב" + }, + "modifier": { + "left": "שמאלה", + "right": "ימינה", + "sharp left": "חדה שמאלה", + "sharp right": "חדה ימינה", + "slight left": "קלה שמאלה", + "slight right": "קלה ימינה", + "straight": "ישר", + "uturn": "פניית פרסה" + }, + "lanes": { + "xo": "היצמד לימין", + "ox": "היצמד לשמאל", + "xox": "המשך בנתיב האמצעי", + "oxo": "היצמד לימין או לשמאל" + } + }, + "modes": { + "ferry": { + "default": "עלה על המעבורת", + "name": "עלה על המעבורת {way_name}", + "destination": "עלה על המעבורת לכיוון {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, ואז, בעוד{distance}, {instruction_two}", + "two linked": "{instruction_one}, ואז {instruction_two}", + "one in distance": "בעוד {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "יציאה {exit}" + }, + "arrive": { + "default": { + "default": "הגעת אל היעד ה{nth} שלך", + "upcoming": "אתה תגיע אל היעד ה{nth} שלך", + "short": "הגעת", + "short-upcoming": "תגיע", + "named": "הגעת אל {waypoint_name}" + }, + "left": { + "default": "הגעת אל היעד ה{nth} שלך משמאלך", + "upcoming": "אתה תגיע אל היעד ה{nth} שלך משמאלך", + "short": "הגעת", + "short-upcoming": "תגיע", + "named": "הגעת אל {waypoint_name} שלך משמאלך" + }, + "right": { + "default": "הגעת אל היעד ה{nth} שלך מימינך", + "upcoming": "אתה תגיע אל היעד ה{nth} שלך מימינך", + "short": "הגעת", + "short-upcoming": "תגיע", + "named": "הגעת אל {waypoint_name} שלך מימינך" + }, + "sharp left": { + "default": "הגעת אל היעד ה{nth} שלך משמאלך", + "upcoming": "אתה תגיע אל היעד ה{nth} שלך משמאלך", + "short": "הגעת", + "short-upcoming": "תגיע", + "named": "הגעת אל {waypoint_name} שלך משמאלך" + }, + "sharp right": { + "default": "הגעת אל היעד ה{nth} שלך מימינך", + "upcoming": "אתה תגיע אל היעד ה{nth} שלך מימינך", + "short": "הגעת", + "short-upcoming": "תגיע", + "named": "הגעת אל {waypoint_name} שלך מימינך" + }, + "slight right": { + "default": "הגעת אל היעד ה{nth} שלך מימינך", + "upcoming": "אתה תגיע אל היעד ה{nth} שלך מימינך", + "short": "הגעת", + "short-upcoming": "תגיע", + "named": "הגעת אל {waypoint_name} שלך מימינך" + }, + "slight left": { + "default": "הגעת אל היעד ה{nth} שלך משמאלך", + "upcoming": "אתה תגיע אל היעד ה{nth} שלך משמאלך", + "short": "הגעת", + "short-upcoming": "תגיע", + "named": "הגעת אל {waypoint_name} שלך משמאלך" + }, + "straight": { + "default": "הגעת אל היעד ה{nth} שלך, בהמשך", + "upcoming": "אתה תגיע אל היעד ה{nth} שלך, בהמשך", + "short": "הגעת", + "short-upcoming": "תגיע", + "named": "הגעת אל {waypoint_name}, בהמשך" + } + }, + "continue": { + "default": { + "default": "פנה {modifier}", + "name": "פנה {modifier} כדי להישאר ב{way_name}", + "destination": "פנה {modifier} לכיוון {destination}", + "exit": "פנה {modifier} על {way_name}" + }, + "straight": { + "default": "המשך ישר", + "name": "המשך ישר כדי להישאר על {way_name}", + "destination": "המשך לכיוון {destination}", + "distance": "המשך ישר לאורך {distance}", + "namedistance": "המשך על {way_name} לאורך {distance}" + }, + "sharp left": { + "default": "פנה בחדות שמאלה", + "name": "פנה בחדות שמאלה כדי להישאר על {way_name}", + "destination": "פנה בחדות שמאלה לכיוון {destination}" + }, + "sharp right": { + "default": "פנה בחדות ימינה", + "name": "פנה בחדות ימינה כדי להישאר על {way_name}", + "destination": "פנה בחדות ימינה לכיוון {destination}" + }, + "slight left": { + "default": "פנה קלות שמאלה", + "name": "פנה קלות שמאלה כדי להישאר על {way_name}", + "destination": "פנה קלות שמאלה לכיוון {destination}" + }, + "slight right": { + "default": "פנה קלות ימינה", + "name": "פנה קלות ימינה כדי להישאר על {way_name}", + "destination": "פנה קלות ימינה לכיוון {destination}" + }, + "uturn": { + "default": "פנה פניית פרסה", + "name": "פנה פניית פרסה והמשך על {way_name}", + "destination": "פנה פניית פרסה לכיוון {destination}" + } + }, + "depart": { + "default": { + "default": "התכוונן {direction}", + "name": "התכוונן {direction} על {way_name}", + "namedistance": "התכוונן {direction} על {way_name} לאורך {distance}" + } + }, + "end of road": { + "default": { + "default": "פנה {modifier}", + "name": "פנה {modifier} על {way_name}", + "destination": "פנה {modifier} לכיוון {destination}" + }, + "straight": { + "default": "המשך ישר", + "name": "המשך ישר על {way_name}", + "destination": "המשך ישר לכיוון {destination}" + }, + "uturn": { + "default": "פנה פניית פרסה בסוף הדרך", + "name": "פנה פניית פרסה על {way_name} בסוף הדרך", + "destination": "פנה פניית פרסה לכיוון {destination} בסוף הדרך" + } + }, + "fork": { + "default": { + "default": "היצמד {modifier} בהתפצלות", + "name": "היצמד {modifier} על {way_name}", + "destination": "היצמד {modifier} לכיוון {destination}" + }, + "slight left": { + "default": "היצמד לשמאל בהתפצלות", + "name": "היצמד לשמאל על {way_name}", + "destination": "היצמד לשמאל לכיוון {destination}" + }, + "slight right": { + "default": "היצמד ימינה בהתפצלות", + "name": "היצמד לימין על {way_name}", + "destination": "היצמד לימין לכיוון {destination}" + }, + "sharp left": { + "default": "פנה בחדות שמאלה בהתפצלות", + "name": "פנה בחדות שמאלה על {way_name}", + "destination": "פנה בחדות שמאלה לכיוון {destination}" + }, + "sharp right": { + "default": "פנה בחדות ימינה בהתפצלות", + "name": "פנה בחדות ימינה על {way_name}", + "destination": "פנה בחדות ימינה לכיוון {destination}" + }, + "uturn": { + "default": "פנה פניית פרסה", + "name": "פנה פניית פרסה על {way_name}", + "destination": "פנה פניית פרסה לכיוון {destination}" + } + }, + "merge": { + "default": { + "default": "השתלב {modifier}", + "name": "השתלב {modifier} על {way_name}", + "destination": "השתלב {modifier} לכיוון {destination}" + }, + "straight": { + "default": "השתלב", + "name": "השתלב על {way_name}", + "destination": "השתלב לכיוון {destination}" + }, + "slight left": { + "default": "השתלב שמאלה", + "name": "השתלב שמאלה על {way_name}", + "destination": "השתלב שמאלה לכיוון {destination}" + }, + "slight right": { + "default": "השתלב ימינה", + "name": "השתלב ימינה על {way_name}", + "destination": "השתלב ימינה לכיוון {destination}" + }, + "sharp left": { + "default": "השתלב שמאלה", + "name": "השתלב שמאלה על {way_name}", + "destination": "השתלב שמאלה לכיוון {destination}" + }, + "sharp right": { + "default": "השתלב ימינה", + "name": "השתלב ימינה על {way_name}", + "destination": "השתלב ימינה לכיוון {destination}" + }, + "uturn": { + "default": "פנה פניית פרסה", + "name": "פנה פניית פרסה על {way_name}", + "destination": "פנה פניית פרסה לכיוון {destination}" + } + }, + "new name": { + "default": { + "default": "המשך {modifier}", + "name": "המשך {modifier} על {way_name}", + "destination": "המשך {modifier} לכיוון {destination}" + }, + "straight": { + "default": "המשך ישר", + "name": "המשך על {way_name}", + "destination": "המשך לכיוון {destination}" + }, + "sharp left": { + "default": "פנה בחדות שמאלה", + "name": "פנה בחדות שמאלה על {way_name}", + "destination": "פנה בחדות שמאלה לכיוון {destination}" + }, + "sharp right": { + "default": "פנה בחדות ימינה", + "name": "פנה בחדות ימינה על {way_name}", + "destination": "פנה בחדות ימינה לכיוון {destination}" + }, + "slight left": { + "default": "המשך בנטייה קלה שמאלה", + "name": "המשך בנטייה קלה שמאלה על {way_name}", + "destination": "המשך בנטייה קלה שמאלה לכיוון {destination}" + }, + "slight right": { + "default": "המשך בנטייה קלה ימינה", + "name": "המשך בנטייה קלה ימינה על {way_name}", + "destination": "המשך בנטייה קלה ימינה לכיוון {destination}" + }, + "uturn": { + "default": "פנה פניית פרסה", + "name": "פנה פניית פרסה על {way_name}", + "destination": "פנה פניית פרסה לכיוון {destination}" + } + }, + "notification": { + "default": { + "default": "המשך {modifier}", + "name": "המשך {modifier} על {way_name}", + "destination": "המשך {modifier} לכיוון {destination}" + }, + "uturn": { + "default": "פנה פניית פרסה", + "name": "פנה פניית פרסה על {way_name}", + "destination": "פנה פניית פרסה לכיוון {destination}" + } + }, + "off ramp": { + "default": { + "default": "צא ביציאה", + "name": "צא ביציאה על {way_name}", + "destination": "צא ביציאה לכיוון {destination}", + "exit": "צא ביציאה {exit}", + "exit_destination": "צא ביציאה {exit} לכיוון {destination}" + }, + "left": { + "default": "צא ביציאה שמשמאלך", + "name": "צא ביציאה שמשמאלך על {way_name}", + "destination": "צא ביציאה שמשמאלך לכיוון {destination}", + "exit": "צא ביציאה {exit} משמאלך", + "exit_destination": "צא ביציאה {exit} משמאלך לכיוון {destination}" + }, + "right": { + "default": "צא ביציאה שמימינך", + "name": "צא ביציאה שמימינך על {way_name}", + "destination": "צא ביציאה שמימינך לכיוון {destination}", + "exit": "צא ביציאה {exit} מימינך", + "exit_destination": "צא ביציאה {exit} מימינך לכיוון {destination}" + }, + "sharp left": { + "default": "צא ביציאה שבשמאלך", + "name": "צא ביציאה שמשמאלך על {way_name}", + "destination": "צא ביציאה שמשמאלך לכיוון {destination}", + "exit": "צא ביציאה {exit} משמאלך", + "exit_destination": "צא ביציאה {exit} משמאלך לכיוון {destination}" + }, + "sharp right": { + "default": "צא ביציאה שמימינך", + "name": "צא ביציאה שמימינך על {way_name}", + "destination": "צא ביציאה שמימינך לכיוון {destination}", + "exit": "צא ביציאה {exit} מימינך", + "exit_destination": "צא ביציאה {exit} מימינך לכיוון {destination}" + }, + "slight left": { + "default": "צא ביציאה שבשמאלך", + "name": "צא ביציאה שמשמאלך על {way_name}", + "destination": "צא ביציאה שמשמאלך לכיוון {destination}", + "exit": "צא ביציאה {exit} משמאלך", + "exit_destination": "צא ביציאה {exit} משמאלך לכיוון {destination}" + }, + "slight right": { + "default": "צא ביציאה שמימינך", + "name": "צא ביציאה שמימינך על {way_name}", + "destination": "צא ביציאה שמימינך לכיוון {destination}", + "exit": "צא ביציאה {exit} מימינך", + "exit_destination": "צא ביציאה {exit} מימינך לכיוון {destination}" + } + }, + "on ramp": { + "default": { + "default": "צא ביציאה", + "name": "צא ביציאה על {way_name}", + "destination": "צא ביציאה לכיוון {destination}" + }, + "left": { + "default": "צא ביציאה שבשמאלך", + "name": "צא ביציאה שמשמאלך על {way_name}", + "destination": "צא ביציאה שמשמאלך לכיוון {destination}" + }, + "right": { + "default": "צא ביציאה שמימינך", + "name": "צא ביציאה שמימינך על {way_name}", + "destination": "צא ביציאה שמימינך לכיוון {destination}" + }, + "sharp left": { + "default": "צא ביציאה שבשמאלך", + "name": "צא ביציאה שמשמאלך על {way_name}", + "destination": "צא ביציאה שמשמאלך לכיוון {destination}" + }, + "sharp right": { + "default": "צא ביציאה שמימינך", + "name": "צא ביציאה שמימינך על {way_name}", + "destination": "צא ביציאה שמימינך לכיוון {destination}" + }, + "slight left": { + "default": "צא ביציאה שבשמאלך", + "name": "צא ביציאה שמשמאלך על {way_name}", + "destination": "צא ביציאה שמשמאלך לכיוון {destination}" + }, + "slight right": { + "default": "צא ביציאה שמימינך", + "name": "צא ביציאה שמימינך על {way_name}", + "destination": "צא ביציאה שמימינך לכיוון {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "השתלב במעגל התנועה", + "name": "השתלב במעגל התנועה וצא על {way_name}", + "destination": "השתלב במעגל התנועה וצא לכיוון {destination}" + }, + "name": { + "default": "היכנס ל{rotary_name}", + "name": "היכנס ל{rotary_name} וצא על {way_name}", + "destination": "היכנס ל{rotary_name} וצא לכיוון {destination}" + }, + "exit": { + "default": "השתלב במעגל התנועה וצא ביציאה {exit_number}", + "name": "השתלב במעגל התנועה וצא ביציאה {exit_number} ל{way_name}", + "destination": "השתלב במעגל התנועה וצא ביציאה {exit_number} לכיוון {destination}" + }, + "name_exit": { + "default": "היכנס ל{rotary_name} וצא ביציאה ה{exit_number}", + "name": "היכנס ל{rotary_name} וצא ביציאה ה{exit_number} ל{way_name}", + "destination": "היכנס ל{rotary_name} וצא ביציאה ה{exit_number} לכיוון {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "השתלב במעגל התנועה וצא ביציאה {exit_number}", + "name": "השתלב במעגל התנועה וצא ביציאה {exit_number} ל{way_name}", + "destination": "השתלב במעגל התנועה וצא ביציאה {exit_number} לכיוון {destination}" + }, + "default": { + "default": "השתלב במעגל התנועה", + "name": "השתלב במעגל התנועה וצא על {way_name}", + "destination": "השתלב במעגל התנועה וצא לכיוון {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "פנה {modifier}", + "name": "פנה {modifier} על {way_name}", + "destination": "פנה {modifier} לכיוון {destination}" + }, + "left": { + "default": "פנה שמאלה", + "name": "פנה שמאלה ל{way_name}", + "destination": "פנה שמאלה לכיוון {destination}" + }, + "right": { + "default": "פנה ימינה", + "name": "פנה ימינה ל{way_name}", + "destination": "פנה ימינה לכיוון {destination}" + }, + "straight": { + "default": "המשך ישר", + "name": "המשך ישר על {way_name}", + "destination": "המשך ישר לכיוון {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "צא ממעגל התנועה", + "name": "צא ממעגל התנועה ל{way_name}", + "destination": "צא ממעגל התנועה לכיוון {destination}" + } + }, + "exit rotary": { + "default": { + "default": "צא ממעגל התנועה", + "name": "צא ממעגל התנועה ל{way_name}", + "destination": "צא ממעגל התנועה לכיוון {destination}" + } + }, + "turn": { + "default": { + "default": "פנה {modifier}", + "name": "פנה {modifier} על {way_name}", + "destination": "פנה {modifier} לכיוון {destination}" + }, + "left": { + "default": "פנה שמאלה", + "name": "פנה שמאלה ל{way_name}", + "destination": "פנה שמאלה לכיוון {destination}" + }, + "right": { + "default": "פנה ימינה", + "name": "פנה ימינה ל{way_name}", + "destination": "פנה ימינה לכיוון {destination}" + }, + "straight": { + "default": "המשך ישר", + "name": "המשך ישר ל{way_name}", + "destination": "המשך ישר לכיוון {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "המשך ישר" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],32:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1", + "2": "2", + "3": "3", + "4": "4", + "5": "5", + "6": "6", + "7": "7", + "8": "8", + "9": "9", + "10": "10" + }, + "direction": { + "north": "utara", + "northeast": "timur laut", + "east": "timur", + "southeast": "tenggara", + "south": "selatan", + "southwest": "barat daya", + "west": "barat", + "northwest": "barat laut" + }, + "modifier": { + "left": "kiri", + "right": "kanan", + "sharp left": "tajam kiri", + "sharp right": "tajam kanan", + "slight left": "agak ke kiri", + "slight right": "agak ke kanan", + "straight": "lurus", + "uturn": "putar balik" + }, + "lanes": { + "xo": "Tetap di kanan", + "ox": "Tetap di kiri", + "xox": "Tetap di tengah", + "oxo": "Tetap di kiri atau kanan" + } + }, + "modes": { + "ferry": { + "default": "Naik ferry", + "name": "Naik ferry di {way_name}", + "destination": "Naik ferry menuju {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, then, in {distance}, {instruction_two}", + "two linked": "{instruction_one}, then {instruction_two}", + "one in distance": "In {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "exit {exit}" + }, + "arrive": { + "default": { + "default": "Anda telah tiba di tujuan ke-{nth}", + "upcoming": "Anda telah tiba di tujuan ke-{nth}", + "short": "Anda telah tiba di tujuan ke-{nth}", + "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", + "named": "Anda telah tiba di {waypoint_name}" + }, + "left": { + "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", + "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", + "short": "Anda telah tiba di tujuan ke-{nth}", + "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", + "named": "Anda telah tiba di {waypoint_name}, di sebelah kiri" + }, + "right": { + "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", + "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", + "short": "Anda telah tiba di tujuan ke-{nth}", + "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", + "named": "Anda telah tiba di {waypoint_name}, di sebelah kanan" + }, + "sharp left": { + "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", + "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", + "short": "Anda telah tiba di tujuan ke-{nth}", + "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", + "named": "Anda telah tiba di {waypoint_name}, di sebelah kiri" + }, + "sharp right": { + "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", + "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", + "short": "Anda telah tiba di tujuan ke-{nth}", + "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", + "named": "Anda telah tiba di {waypoint_name}, di sebelah kanan" + }, + "slight right": { + "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", + "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", + "short": "Anda telah tiba di tujuan ke-{nth}", + "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", + "named": "Anda telah tiba di {waypoint_name}, di sebelah kanan" + }, + "slight left": { + "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", + "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", + "short": "Anda telah tiba di tujuan ke-{nth}", + "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", + "named": "Anda telah tiba di {waypoint_name}, di sebelah kiri" + }, + "straight": { + "default": "Anda telah tiba di tujuan ke-{nth}, lurus saja", + "upcoming": "Anda telah tiba di tujuan ke-{nth}, lurus saja", + "short": "Anda telah tiba di tujuan ke-{nth}", + "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", + "named": "Anda telah tiba di {waypoint_name}, lurus saja" + } + }, + "continue": { + "default": { + "default": "Belok {modifier}", + "name": "Terus {modifier} ke {way_name}", + "destination": "Belok {modifier} menuju {destination}", + "exit": "Belok {modifier} ke {way_name}" + }, + "straight": { + "default": "Lurus terus", + "name": "Terus ke {way_name}", + "destination": "Terus menuju {destination}", + "distance": "Continue straight for {distance}", + "namedistance": "Continue on {way_name} for {distance}" + }, + "sharp left": { + "default": "Belok kiri tajam", + "name": "Make a sharp left to stay on {way_name}", + "destination": "Belok kiri tajam menuju {destination}" + }, + "sharp right": { + "default": "Belok kanan tajam", + "name": "Make a sharp right to stay on {way_name}", + "destination": "Belok kanan tajam menuju {destination}" + }, + "slight left": { + "default": "Tetap agak di kiri", + "name": "Tetap agak di kiri ke {way_name}", + "destination": "Tetap agak di kiri menuju {destination}" + }, + "slight right": { + "default": "Tetap agak di kanan", + "name": "Tetap agak di kanan ke {way_name}", + "destination": "Tetap agak di kanan menuju {destination}" + }, + "uturn": { + "default": "Putar balik", + "name": "Putar balik ke arah {way_name}", + "destination": "Putar balik menuju {destination}" + } + }, + "depart": { + "default": { + "default": "Arah {direction}", + "name": "Arah {direction} di {way_name}", + "namedistance": "Head {direction} on {way_name} for {distance}" + } + }, + "end of road": { + "default": { + "default": "Belok {modifier}", + "name": "Belok {modifier} ke {way_name}", + "destination": "Belok {modifier} menuju {destination}" + }, + "straight": { + "default": "Lurus terus", + "name": "Tetap lurus ke {way_name} ", + "destination": "Tetap lurus menuju {destination}" + }, + "uturn": { + "default": "Putar balik di akhir jalan", + "name": "Putar balik di {way_name} di akhir jalan", + "destination": "Putar balik menuju {destination} di akhir jalan" + } + }, + "fork": { + "default": { + "default": "Tetap {modifier} di pertigaan", + "name": "Tetap {modifier} di pertigaan ke {way_name}", + "destination": "Tetap {modifier} di pertigaan menuju {destination}" + }, + "slight left": { + "default": "Tetap di kiri pada pertigaan", + "name": "Tetap di kiri pada pertigaan ke arah {way_name}", + "destination": "Tetap di kiri pada pertigaan menuju {destination}" + }, + "slight right": { + "default": "Tetap di kanan pada pertigaan", + "name": "Tetap di kanan pada pertigaan ke arah {way_name}", + "destination": "Tetap di kanan pada pertigaan menuju {destination}" + }, + "sharp left": { + "default": "Belok kiri pada pertigaan", + "name": "Belok kiri tajam ke arah {way_name}", + "destination": "Belok kiri tajam menuju {destination}" + }, + "sharp right": { + "default": "Belok kanan pada pertigaan", + "name": "Belok kanan tajam ke arah {way_name}", + "destination": "Belok kanan tajam menuju {destination}" + }, + "uturn": { + "default": "Putar balik", + "name": "Putar balik ke arah {way_name}", + "destination": "Putar balik menuju {destination}" + } + }, + "merge": { + "default": { + "default": "Bergabung {modifier}", + "name": "Bergabung {modifier} ke arah {way_name}", + "destination": "Bergabung {modifier} menuju {destination}" + }, + "straight": { + "default": "Bergabung lurus", + "name": "Bergabung lurus ke arah {way_name}", + "destination": "Bergabung lurus menuju {destination}" + }, + "slight left": { + "default": "Bergabung di kiri", + "name": "Bergabung di kiri ke arah {way_name}", + "destination": "Bergabung di kiri menuju {destination}" + }, + "slight right": { + "default": "Bergabung di kanan", + "name": "Bergabung di kanan ke arah {way_name}", + "destination": "Bergabung di kanan menuju {destination}" + }, + "sharp left": { + "default": "Bergabung di kiri", + "name": "Bergabung di kiri ke arah {way_name}", + "destination": "Bergabung di kiri menuju {destination}" + }, + "sharp right": { + "default": "Bergabung di kanan", + "name": "Bergabung di kanan ke arah {way_name}", + "destination": "Bergabung di kanan menuju {destination}" + }, + "uturn": { + "default": "Putar balik", + "name": "Putar balik ke arah {way_name}", + "destination": "Putar balik menuju {destination}" + } + }, + "new name": { + "default": { + "default": "Lanjutkan {modifier}", + "name": "Lanjutkan {modifier} menuju {way_name}", + "destination": "Lanjutkan {modifier} menuju {destination}" + }, + "straight": { + "default": "Lurus terus", + "name": "Terus ke {way_name}", + "destination": "Terus menuju {destination}" + }, + "sharp left": { + "default": "Belok kiri tajam", + "name": "Belok kiri tajam ke arah {way_name}", + "destination": "Belok kiri tajam menuju {destination}" + }, + "sharp right": { + "default": "Belok kanan tajam", + "name": "Belok kanan tajam ke arah {way_name}", + "destination": "Belok kanan tajam menuju {destination}" + }, + "slight left": { + "default": "Lanjut dengan agak ke kiri", + "name": "Lanjut dengan agak di kiri ke {way_name}", + "destination": "Tetap agak di kiri menuju {destination}" + }, + "slight right": { + "default": "Tetap agak di kanan", + "name": "Tetap agak di kanan ke {way_name}", + "destination": "Tetap agak di kanan menuju {destination}" + }, + "uturn": { + "default": "Putar balik", + "name": "Putar balik ke arah {way_name}", + "destination": "Putar balik menuju {destination}" + } + }, + "notification": { + "default": { + "default": "Lanjutkan {modifier}", + "name": "Lanjutkan {modifier} menuju {way_name}", + "destination": "Lanjutkan {modifier} menuju {destination}" + }, + "uturn": { + "default": "Putar balik", + "name": "Putar balik ke arah {way_name}", + "destination": "Putar balik menuju {destination}" + } + }, + "off ramp": { + "default": { + "default": "Ambil jalan melandai", + "name": "Ambil jalan melandai ke {way_name}", + "destination": "Ambil jalan melandai menuju {destination}", + "exit": "Take exit {exit}", + "exit_destination": "Take exit {exit} towards {destination}" + }, + "left": { + "default": "Ambil jalan yang melandai di sebelah kiri", + "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", + "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}", + "exit": "Take exit {exit} on the left", + "exit_destination": "Take exit {exit} on the left towards {destination}" + }, + "right": { + "default": "Ambil jalan melandai di sebelah kanan", + "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", + "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}", + "exit": "Take exit {exit} on the right", + "exit_destination": "Take exit {exit} on the right towards {destination}" + }, + "sharp left": { + "default": "Ambil jalan yang melandai di sebelah kiri", + "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", + "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}", + "exit": "Take exit {exit} on the left", + "exit_destination": "Take exit {exit} on the left towards {destination}" + }, + "sharp right": { + "default": "Ambil jalan melandai di sebelah kanan", + "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", + "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}", + "exit": "Take exit {exit} on the right", + "exit_destination": "Take exit {exit} on the right towards {destination}" + }, + "slight left": { + "default": "Ambil jalan yang melandai di sebelah kiri", + "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", + "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}", + "exit": "Take exit {exit} on the left", + "exit_destination": "Take exit {exit} on the left towards {destination}" + }, + "slight right": { + "default": "Ambil jalan melandai di sebelah kanan", + "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", + "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}", + "exit": "Take exit {exit} on the right", + "exit_destination": "Take exit {exit} on the right towards {destination}" + } + }, + "on ramp": { + "default": { + "default": "Ambil jalan melandai", + "name": "Ambil jalan melandai ke {way_name}", + "destination": "Ambil jalan melandai menuju {destination}" + }, + "left": { + "default": "Ambil jalan yang melandai di sebelah kiri", + "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", + "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}" + }, + "right": { + "default": "Ambil jalan melandai di sebelah kanan", + "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", + "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}" + }, + "sharp left": { + "default": "Ambil jalan yang melandai di sebelah kiri", + "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", + "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}" + }, + "sharp right": { + "default": "Ambil jalan melandai di sebelah kanan", + "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", + "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}" + }, + "slight left": { + "default": "Ambil jalan yang melandai di sebelah kiri", + "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", + "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}" + }, + "slight right": { + "default": "Ambil jalan melandai di sebelah kanan", + "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", + "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Masuk bundaran", + "name": "Masuk bundaran dan keluar arah {way_name}", + "destination": "Masuk bundaran dan keluar menuju {destination}" + }, + "name": { + "default": "Masuk {rotary_name}", + "name": "Masuk {rotary_name} dan keluar arah {way_name}", + "destination": "Masuk {rotary_name} dan keluar menuju {destination}" + }, + "exit": { + "default": "Masuk bundaran dan ambil jalan keluar {exit_number}", + "name": "Masuk bundaran dan ambil jalan keluar {exit_number} arah {way_name}", + "destination": "Masuk bundaran dan ambil jalan keluar {exit_number} menuju {destination}" + }, + "name_exit": { + "default": "Masuk {rotary_name} dan ambil jalan keluar {exit_number}", + "name": "Masuk {rotary_name} dan ambil jalan keluar {exit_number} arah {way_name}", + "destination": "Masuk {rotary_name} dan ambil jalan keluar {exit_number} menuju {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Masuk bundaran dan ambil jalan keluar {exit_number}", + "name": "Masuk bundaran dan ambil jalan keluar {exit_number} arah {way_name}", + "destination": "Masuk bundaran dan ambil jalan keluar {exit_number} menuju {destination}" + }, + "default": { + "default": "Masuk bundaran", + "name": "Masuk bundaran dan keluar arah {way_name}", + "destination": "Masuk bundaran dan keluar menuju {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Lakukan {modifier}", + "name": "Lakukan {modifier} ke arah {way_name}", + "destination": "Lakukan {modifier} menuju {destination}" + }, + "left": { + "default": "Belok kiri", + "name": "Belok kiri ke {way_name}", + "destination": "Belok kiri menuju {destination}" + }, + "right": { + "default": "Belok kanan", + "name": "Belok kanan ke {way_name}", + "destination": "Belok kanan menuju {destination}" + }, + "straight": { + "default": "Lurus terus", + "name": "Tetap lurus ke {way_name} ", + "destination": "Tetap lurus menuju {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Lakukan {modifier}", + "name": "Lakukan {modifier} ke arah {way_name}", + "destination": "Lakukan {modifier} menuju {destination}" + }, + "left": { + "default": "Belok kiri", + "name": "Belok kiri ke {way_name}", + "destination": "Belok kiri menuju {destination}" + }, + "right": { + "default": "Belok kanan", + "name": "Belok kanan ke {way_name}", + "destination": "Belok kanan menuju {destination}" + }, + "straight": { + "default": "Lurus terus", + "name": "Tetap lurus ke {way_name} ", + "destination": "Tetap lurus menuju {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Lakukan {modifier}", + "name": "Lakukan {modifier} ke arah {way_name}", + "destination": "Lakukan {modifier} menuju {destination}" + }, + "left": { + "default": "Belok kiri", + "name": "Belok kiri ke {way_name}", + "destination": "Belok kiri menuju {destination}" + }, + "right": { + "default": "Belok kanan", + "name": "Belok kanan ke {way_name}", + "destination": "Belok kanan menuju {destination}" + }, + "straight": { + "default": "Lurus", + "name": "Lurus arah {way_name}", + "destination": "Lurus menuju {destination}" + } + }, + "turn": { + "default": { + "default": "Lakukan {modifier}", + "name": "Lakukan {modifier} ke arah {way_name}", + "destination": "Lakukan {modifier} menuju {destination}" + }, + "left": { + "default": "Belok kiri", + "name": "Belok kiri ke {way_name}", + "destination": "Belok kiri menuju {destination}" + }, + "right": { + "default": "Belok kanan", + "name": "Belok kanan ke {way_name}", + "destination": "Belok kanan menuju {destination}" + }, + "straight": { + "default": "Lurus", + "name": "Lurus arah {way_name}", + "destination": "Lurus menuju {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Lurus terus" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],33:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1ª", + "2": "2ª", + "3": "3ª", + "4": "4ª", + "5": "5ª", + "6": "6ª", + "7": "7ª", + "8": "8ª", + "9": "9ª", + "10": "10ª" + }, + "direction": { + "north": "nord", + "northeast": "nord-est", + "east": "est", + "southeast": "sud-est", + "south": "sud", + "southwest": "sud-ovest", + "west": "ovest", + "northwest": "nord-ovest" + }, + "modifier": { + "left": "sinistra", + "right": "destra", + "sharp left": "sinistra", + "sharp right": "destra", + "slight left": "sinistra leggermente", + "slight right": "destra leggermente", + "straight": "dritto", + "uturn": "inversione a U" + }, + "lanes": { + "xo": "Mantieni la destra", + "ox": "Mantieni la sinistra", + "xox": "Rimani in mezzo", + "oxo": "Mantieni la destra o la sinistra" + } + }, + "modes": { + "ferry": { + "default": "Prendi il traghetto", + "name": "Prendi il traghetto {way_name}", + "destination": "Prendi il traghetto verso {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, poi tra {distance},{instruction_two}", + "two linked": "{instruction_one}, poi {instruction_two}", + "one in distance": "tra {distance} {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "exit {exit}" + }, + "arrive": { + "default": { + "default": "Sei arrivato alla tua {nth} destinazione", + "upcoming": "Sei arrivato alla tua {nth} destinazione", + "short": "Sei arrivato alla tua {nth} destinazione", + "short-upcoming": "Sei arrivato alla tua {nth} destinazione", + "named": "Sei arrivato a {waypoint_name}" + }, + "left": { + "default": "sei arrivato alla tua {nth} destinazione, sulla sinistra", + "upcoming": "sei arrivato alla tua {nth} destinazione, sulla sinistra", + "short": "Sei arrivato alla tua {nth} destinazione", + "short-upcoming": "Sei arrivato alla tua {nth} destinazione", + "named": "sei arrivato a {waypoint_name}, sulla sinistra" + }, + "right": { + "default": "sei arrivato alla tua {nth} destinazione, sulla destra", + "upcoming": "sei arrivato alla tua {nth} destinazione, sulla destra", + "short": "Sei arrivato alla tua {nth} destinazione", + "short-upcoming": "Sei arrivato alla tua {nth} destinazione", + "named": "sei arrivato a {waypoint_name}, sulla destra" + }, + "sharp left": { + "default": "sei arrivato alla tua {nth} destinazione, sulla sinistra", + "upcoming": "sei arrivato alla tua {nth} destinazione, sulla sinistra", + "short": "Sei arrivato alla tua {nth} destinazione", + "short-upcoming": "Sei arrivato alla tua {nth} destinazione", + "named": "sei arrivato a {waypoint_name}, sulla sinistra" + }, + "sharp right": { + "default": "sei arrivato alla tua {nth} destinazione, sulla destra", + "upcoming": "sei arrivato alla tua {nth} destinazione, sulla destra", + "short": "Sei arrivato alla tua {nth} destinazione", + "short-upcoming": "Sei arrivato alla tua {nth} destinazione", + "named": "sei arrivato a {waypoint_name}, sulla destra" + }, + "slight right": { + "default": "sei arrivato alla tua {nth} destinazione, sulla destra", + "upcoming": "sei arrivato alla tua {nth} destinazione, sulla destra", + "short": "Sei arrivato alla tua {nth} destinazione", + "short-upcoming": "Sei arrivato alla tua {nth} destinazione", + "named": "sei arrivato a {waypoint_name}, sulla destra" + }, + "slight left": { + "default": "sei arrivato alla tua {nth} destinazione, sulla sinistra", + "upcoming": "sei arrivato alla tua {nth} destinazione, sulla sinistra", + "short": "Sei arrivato alla tua {nth} destinazione", + "short-upcoming": "Sei arrivato alla tua {nth} destinazione", + "named": "sei arrivato a {waypoint_name}, sulla sinistra" + }, + "straight": { + "default": "sei arrivato alla tua {nth} destinazione, si trova davanti a te", + "upcoming": "sei arrivato alla tua {nth} destinazione, si trova davanti a te", + "short": "Sei arrivato alla tua {nth} destinazione", + "short-upcoming": "Sei arrivato alla tua {nth} destinazione", + "named": "sei arrivato a {waypoint_name}, si trova davanti a te" + } + }, + "continue": { + "default": { + "default": "Gira a {modifier}", + "name": "Gira a {modifier} per stare su {way_name}", + "destination": "Gira a {modifier} verso {destination}", + "exit": "Gira a {modifier} in {way_name}" + }, + "straight": { + "default": "Continua dritto", + "name": "Continua dritto per stare su {way_name}", + "destination": "Continua verso {destination}", + "distance": "Continua dritto per {distance}", + "namedistance": "Continua su {way_name} per {distance}" + }, + "sharp left": { + "default": "Svolta a sinistra", + "name": "Fai una stretta curva a sinistra per stare su {way_name}", + "destination": "Svolta a sinistra verso {destination}" + }, + "sharp right": { + "default": "Svolta a destra", + "name": "Fau una stretta curva a destra per stare su {way_name}", + "destination": "Svolta a destra verso {destination}" + }, + "slight left": { + "default": "Fai una leggera curva a sinistra", + "name": "Fai una leggera curva a sinistra per stare su {way_name}", + "destination": "Fai una leggera curva a sinistra verso {destination}" + }, + "slight right": { + "default": "Fai una leggera curva a destra", + "name": "Fai una leggera curva a destra per stare su {way_name}", + "destination": "Fai una leggera curva a destra verso {destination}" + }, + "uturn": { + "default": "Fai un'inversione a U", + "name": "Fai un'inversione ad U poi continua su {way_name}", + "destination": "Fai un'inversione a U verso {destination}" + } + }, + "depart": { + "default": { + "default": "Continua verso {direction}", + "name": "Continua verso {direction} in {way_name}", + "namedistance": "Head {direction} on {way_name} for {distance}" + } + }, + "end of road": { + "default": { + "default": "Gira a {modifier}", + "name": "Gira a {modifier} in {way_name}", + "destination": "Gira a {modifier} verso {destination}" + }, + "straight": { + "default": "Continua dritto", + "name": "Continua dritto in {way_name}", + "destination": "Continua dritto verso {destination}" + }, + "uturn": { + "default": "Fai un'inversione a U alla fine della strada", + "name": "Fai un'inversione a U in {way_name} alla fine della strada", + "destination": "Fai un'inversione a U verso {destination} alla fine della strada" + } + }, + "fork": { + "default": { + "default": "Mantieni la {modifier} al bivio", + "name": "Mantieni la {modifier} al bivio in {way_name}", + "destination": "Mantieni la {modifier} al bivio verso {destination}" + }, + "slight left": { + "default": "Mantieni la sinistra al bivio", + "name": "Mantieni la sinistra al bivio in {way_name}", + "destination": "Mantieni la sinistra al bivio verso {destination}" + }, + "slight right": { + "default": "Mantieni la destra al bivio", + "name": "Mantieni la destra al bivio in {way_name}", + "destination": "Mantieni la destra al bivio verso {destination}" + }, + "sharp left": { + "default": "Svolta a sinistra al bivio", + "name": "Svolta a sinistra in {way_name}", + "destination": "Svolta a sinistra verso {destination}" + }, + "sharp right": { + "default": "Svolta a destra al bivio", + "name": "Svolta a destra in {way_name}", + "destination": "Svolta a destra verso {destination}" + }, + "uturn": { + "default": "Fai un'inversione a U", + "name": "Fai un'inversione a U in {way_name}", + "destination": "Fai un'inversione a U verso {destination}" + } + }, + "merge": { + "default": { + "default": "Immettiti a {modifier}", + "name": "Immettiti {modifier} in {way_name}", + "destination": "Immettiti {modifier} verso {destination}" + }, + "straight": { + "default": "Immettiti a dritto", + "name": "Immettiti dritto in {way_name}", + "destination": "Immettiti dritto verso {destination}" + }, + "slight left": { + "default": "Immettiti a sinistra", + "name": "Immettiti a sinistra in {way_name}", + "destination": "Immettiti a sinistra verso {destination}" + }, + "slight right": { + "default": "Immettiti a destra", + "name": "Immettiti a destra in {way_name}", + "destination": "Immettiti a destra verso {destination}" + }, + "sharp left": { + "default": "Immettiti a sinistra", + "name": "Immettiti a sinistra in {way_name}", + "destination": "Immettiti a sinistra verso {destination}" + }, + "sharp right": { + "default": "Immettiti a destra", + "name": "Immettiti a destra in {way_name}", + "destination": "Immettiti a destra verso {destination}" + }, + "uturn": { + "default": "Fai un'inversione a U", + "name": "Fai un'inversione a U in {way_name}", + "destination": "Fai un'inversione a U verso {destination}" + } + }, + "new name": { + "default": { + "default": "Continua a {modifier}", + "name": "Continua a {modifier} in {way_name}", + "destination": "Continua a {modifier} verso {destination}" + }, + "straight": { + "default": "Continua dritto", + "name": "Continua in {way_name}", + "destination": "Continua verso {destination}" + }, + "sharp left": { + "default": "Svolta a sinistra", + "name": "Svolta a sinistra in {way_name}", + "destination": "Svolta a sinistra verso {destination}" + }, + "sharp right": { + "default": "Svolta a destra", + "name": "Svolta a destra in {way_name}", + "destination": "Svolta a destra verso {destination}" + }, + "slight left": { + "default": "Continua leggermente a sinistra", + "name": "Continua leggermente a sinistra in {way_name}", + "destination": "Continua leggermente a sinistra verso {destination}" + }, + "slight right": { + "default": "Continua leggermente a destra", + "name": "Continua leggermente a destra in {way_name} ", + "destination": "Continua leggermente a destra verso {destination}" + }, + "uturn": { + "default": "Fai un'inversione a U", + "name": "Fai un'inversione a U in {way_name}", + "destination": "Fai un'inversione a U verso {destination}" + } + }, + "notification": { + "default": { + "default": "Continua a {modifier}", + "name": "Continua a {modifier} in {way_name}", + "destination": "Continua a {modifier} verso {destination}" + }, + "uturn": { + "default": "Fai un'inversione a U", + "name": "Fai un'inversione a U in {way_name}", + "destination": "Fai un'inversione a U verso {destination}" + } + }, + "off ramp": { + "default": { + "default": "Prendi la rampa", + "name": "Prendi la rampa in {way_name}", + "destination": "Prendi la rampa verso {destination}", + "exit": "Prendi l'uscita {exit}", + "exit_destination": "Prendi l'uscita {exit} verso {destination}" + }, + "left": { + "default": "Prendi la rampa a sinistra", + "name": "Prendi la rampa a sinistra in {way_name}", + "destination": "Prendi la rampa a sinistra verso {destination}", + "exit": "Prendi l'uscita {exit} a sinistra", + "exit_destination": "Prendi la {exit} uscita a sinistra verso {destination}" + }, + "right": { + "default": "Prendi la rampa a destra", + "name": "Prendi la rampa a destra in {way_name}", + "destination": "Prendi la rampa a destra verso {destination}", + "exit": "Prendi la {exit} uscita a destra", + "exit_destination": "Prendi la {exit} uscita a destra verso {destination}" + }, + "sharp left": { + "default": "Prendi la rampa a sinistra", + "name": "Prendi la rampa a sinistra in {way_name}", + "destination": "Prendi la rampa a sinistra verso {destination}", + "exit": "Prendi l'uscita {exit} a sinistra", + "exit_destination": "Prendi la {exit} uscita a sinistra verso {destination}" + }, + "sharp right": { + "default": "Prendi la rampa a destra", + "name": "Prendi la rampa a destra in {way_name}", + "destination": "Prendi la rampa a destra verso {destination}", + "exit": "Prendi la {exit} uscita a destra", + "exit_destination": "Prendi la {exit} uscita a destra verso {destination}" + }, + "slight left": { + "default": "Prendi la rampa a sinistra", + "name": "Prendi la rampa a sinistra in {way_name}", + "destination": "Prendi la rampa a sinistra verso {destination}", + "exit": "Prendi l'uscita {exit} a sinistra", + "exit_destination": "Prendi la {exit} uscita a sinistra verso {destination}" + }, + "slight right": { + "default": "Prendi la rampa a destra", + "name": "Prendi la rampa a destra in {way_name}", + "destination": "Prendi la rampa a destra verso {destination}", + "exit": "Prendi la {exit} uscita a destra", + "exit_destination": "Prendi la {exit} uscita a destra verso {destination}" + } + }, + "on ramp": { + "default": { + "default": "Prendi la rampa", + "name": "Prendi la rampa in {way_name}", + "destination": "Prendi la rampa verso {destination}" + }, + "left": { + "default": "Prendi la rampa a sinistra", + "name": "Prendi la rampa a sinistra in {way_name}", + "destination": "Prendi la rampa a sinistra verso {destination}" + }, + "right": { + "default": "Prendi la rampa a destra", + "name": "Prendi la rampa a destra in {way_name}", + "destination": "Prendi la rampa a destra verso {destination}" + }, + "sharp left": { + "default": "Prendi la rampa a sinistra", + "name": "Prendi la rampa a sinistra in {way_name}", + "destination": "Prendi la rampa a sinistra verso {destination}" + }, + "sharp right": { + "default": "Prendi la rampa a destra", + "name": "Prendi la rampa a destra in {way_name}", + "destination": "Prendi la rampa a destra verso {destination}" + }, + "slight left": { + "default": "Prendi la rampa a sinistra", + "name": "Prendi la rampa a sinistra in {way_name}", + "destination": "Prendi la rampa a sinistra verso {destination}" + }, + "slight right": { + "default": "Prendi la rampa a destra", + "name": "Prendi la rampa a destra in {way_name}", + "destination": "Prendi la rampa a destra verso {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Immettiti nella rotonda", + "name": "Immettiti nella ritonda ed esci in {way_name}", + "destination": "Immettiti nella ritonda ed esci verso {destination}" + }, + "name": { + "default": "Immettiti in {rotary_name}", + "name": "Immettiti in {rotary_name} ed esci su {way_name}", + "destination": "Immettiti in {rotary_name} ed esci verso {destination}" + }, + "exit": { + "default": "Immettiti nella rotonda e prendi la {exit_number} uscita", + "name": "Immettiti nella rotonda e prendi la {exit_number} uscita in {way_name}", + "destination": "Immettiti nella rotonda e prendi la {exit_number} uscita verso {destination}" + }, + "name_exit": { + "default": "Immettiti in {rotary_name} e prendi la {exit_number} uscita", + "name": "Immettiti in {rotary_name} e prendi la {exit_number} uscita in {way_name}", + "destination": "Immettiti in {rotary_name} e prendi la {exit_number} uscita verso {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Immettiti nella rotonda e prendi la {exit_number} uscita", + "name": "Immettiti nella rotonda e prendi la {exit_number} uscita in {way_name}", + "destination": "Immettiti nella rotonda e prendi la {exit_number} uscita verso {destination}" + }, + "default": { + "default": "Entra nella rotonda", + "name": "Entra nella rotonda e prendi l'uscita in {way_name}", + "destination": "Entra nella rotonda e prendi l'uscita verso {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Fai una {modifier}", + "name": "Fai una {modifier} in {way_name}", + "destination": "Fai una {modifier} verso {destination}" + }, + "left": { + "default": "Svolta a sinistra", + "name": "Svolta a sinistra in {way_name}", + "destination": "Svolta a sinistra verso {destination}" + }, + "right": { + "default": "Gira a destra", + "name": "Svolta a destra in {way_name}", + "destination": "Svolta a destra verso {destination}" + }, + "straight": { + "default": "Continua dritto", + "name": "Continua dritto in {way_name}", + "destination": "Continua dritto verso {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Fai una {modifier}", + "name": "Fai una {modifier} in {way_name}", + "destination": "Fai una {modifier} verso {destination}" + }, + "left": { + "default": "Svolta a sinistra", + "name": "Svolta a sinistra in {way_name}", + "destination": "Svolta a sinistra verso {destination}" + }, + "right": { + "default": "Gira a destra", + "name": "Svolta a destra in {way_name}", + "destination": "Svolta a destra verso {destination}" + }, + "straight": { + "default": "Continua dritto", + "name": "Continua dritto in {way_name}", + "destination": "Continua dritto verso {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Fai una {modifier}", + "name": "Fai una {modifier} in {way_name}", + "destination": "Fai una {modifier} verso {destination}" + }, + "left": { + "default": "Svolta a sinistra", + "name": "Svolta a sinistra in {way_name}", + "destination": "Svolta a sinistra verso {destination}" + }, + "right": { + "default": "Gira a destra", + "name": "Svolta a destra in {way_name}", + "destination": "Svolta a destra verso {destination}" + }, + "straight": { + "default": "Prosegui dritto", + "name": "Continua su {way_name}", + "destination": "Continua verso {destination}" + } + }, + "turn": { + "default": { + "default": "Fai una {modifier}", + "name": "Fai una {modifier} in {way_name}", + "destination": "Fai una {modifier} verso {destination}" + }, + "left": { + "default": "Svolta a sinistra", + "name": "Svolta a sinistra in {way_name}", + "destination": "Svolta a sinistra verso {destination}" + }, + "right": { + "default": "Gira a destra", + "name": "Svolta a destra in {way_name}", + "destination": "Svolta a destra verso {destination}" + }, + "straight": { + "default": "Prosegui dritto", + "name": "Continua su {way_name}", + "destination": "Continua verso {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Continua dritto" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],34:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": false + }, + "v5": { + "constants": { + "ordinalize": { + "1": "첫번쩨", + "2": "두번째", + "3": "세번째", + "4": "네번쩨", + "5": "다섯번째", + "6": "여섯번째", + "7": "일곱번째", + "8": "여덟번째", + "9": "아홉번째", + "10": "열번째" + }, + "direction": { + "north": "북쪽", + "northeast": "북동쪽", + "east": "동쪽", + "southeast": "남동쪽", + "south": "남쪽", + "southwest": "남서쪽", + "west": "서쪽", + "northwest": "북서쪽" + }, + "modifier": { + "left": "좌회전", + "right": "우회전", + "sharp left": "바로좌회전", + "sharp right": "바로우회전", + "slight left": "조금왼쪽", + "slight right": "조금오른쪽", + "straight": "직진", + "uturn": "유턴" + }, + "lanes": { + "xo": "우측차선 유지", + "ox": "좌측차선 유지", + "xox": "중앙유지", + "oxo": "계속 좌측 또는 우측 차선" + } + }, + "modes": { + "ferry": { + "default": "페리를 타시오", + "name": "페리를 타시오 {way_name}", + "destination": "페리를 타고 {destination}까지 가세요." + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, 그리고, {distance} 안에, {instruction_two}", + "two linked": "{instruction_one}, 그리고 {instruction_two}", + "one in distance": "{distance} 내에, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "{exit}번으로 나가세요." + }, + "arrive": { + "default": { + "default": " {nth}목적지에 도착하였습니다.", + "upcoming": "{nth}목적지에 곧 도착할 예정입니다.", + "short": "도착하였습니다", + "short-upcoming": "도착할 예정입니다.", + "named": "경유지 {waypoint_name}에 도착하였습니다." + }, + "left": { + "default": "좌측에 {nth} 목적지가 있습니다.", + "upcoming": "좌측에 {nth} 목적지에 도착할 예정입니다.", + "short": "도착하였습니다", + "short-upcoming": "목적지에 곧 도착할 예정입니다.", + "named": "좌측에 경유지 {waypoint_name}에 도착하였습니다." + }, + "right": { + "default": "우측에 {nth} 목적지가 있습니다.", + "upcoming": "우측에 {nth} 목적지에 도착할 예정입니다.", + "short": "도착하였습니다", + "short-upcoming": "목적지에 곧 도착할 예정입니다.", + "named": "우측에 경유지 {waypoint_name}에 도착하였습니다." + }, + "sharp left": { + "default": "좌측에 {nth} 목적지가 있습니다.", + "upcoming": "좌측에 {nth} 목적지에 도착할 예정입니다.", + "short": "도착하였습니다", + "short-upcoming": "목적지에 곧 도착할 예정입니다.", + "named": "좌측에 경유지 {waypoint_name}에 도착하였습니다." + }, + "sharp right": { + "default": "우측에 {nth} 목적지가 있습니다.", + "upcoming": "우측에 {nth} 목적지에 도착할 예정입니다.", + "short": "도착하였습니다", + "short-upcoming": "목적지에 곧 도착할 예정입니다.", + "named": "우측에 경유지 {waypoint_name}에 도착하였습니다." + }, + "slight right": { + "default": "우측에 {nth} 목적지가 있습니다.", + "upcoming": "우측에 {nth} 목적지에 도착할 예정입니다.", + "short": "도착하였습니다", + "short-upcoming": "목적지에 곧 도착할 예정입니다.", + "named": "우측에 경유지 {waypoint_name}에 도착하였습니다." + }, + "slight left": { + "default": "좌측에 {nth} 목적지가 있습니다.", + "upcoming": "좌측에 {nth} 목적지에 도착할 예정입니다.", + "short": "도착하였습니다", + "short-upcoming": "목적지에 곧 도착할 예정입니다.", + "named": "좌측에 경유지 {waypoint_name}에 도착하였습니다." + }, + "straight": { + "default": "바로 앞에 {nth} 목적지가 있습니다.", + "upcoming": "직진하시면 {nth} 목적지에 도착할 예정입니다.", + "short": "도착하였습니다", + "short-upcoming": "목적지에 곧 도착할 예정입니다.", + "named": "정면에 경유지 {waypoint_name}에 도착하였습니다." + } + }, + "continue": { + "default": { + "default": "{modifier} 회전", + "name": "{modifier} 회전하고 {way_name}로 직진해 주세요.", + "destination": "{modifier} 회전하고 {destination}까지 가세요.", + "exit": "{way_name} 쪽으로 {modifier} 회전 하세요." + }, + "straight": { + "default": "계속 직진해 주세요.", + "name": "{way_name} 로 계속 직진해 주세요.", + "destination": "{destination}까지 직진해 주세요.", + "distance": "{distance}까지 직진해 주세요.", + "namedistance": "{distance}까지 {way_name}로 가주세요." + }, + "sharp left": { + "default": "급좌회전 하세요.", + "name": "급좌회전 하신 후 {way_name}로 가세요.", + "destination": "급좌회전 하신 후 {destination}로 가세요." + }, + "sharp right": { + "default": "급우회전 하세요.", + "name": "급우회전 하고 {way_name}로 가세요.", + "destination": "급우회전 하신 후 {destination}로 가세요." + }, + "slight left": { + "default": "약간 좌회전하세요.", + "name": "약간 좌회전 하고 {way_name}로 가세요.", + "destination": "약간 좌회전 하신 후 {destination}로 가세요." + }, + "slight right": { + "default": "약간 우회전하세요.", + "name": "약간 우회전 하고 {way_name}로 가세요.", + "destination": "약간 우회전 하신 후 {destination}로 가세요." + }, + "uturn": { + "default": "유턴 하세요", + "name": "유턴해서 {way_name}로 가세요.", + "destination": "유턴하신 후 {destination}로 가세요." + } + }, + "depart": { + "default": { + "default": "{direction}로 가세요", + "name": "{direction} 로 가서 {way_name} 를 이용하세요. ", + "namedistance": "{direction}로 가서{way_name} 를 {distance}까지 가세요." + } + }, + "end of road": { + "default": { + "default": "{modifier} 회전하세요.", + "name": "{modifier}회전하고 {way_name}로 가세요.", + "destination": "{modifier}회전 하신 후 {destination}로 가세요." + }, + "straight": { + "default": "계속 직진해 주세요.", + "name": "{way_name}로 계속 직진해 주세요.", + "destination": "{destination}까지 직진해 주세요." + }, + "uturn": { + "default": "도로 끝까지 가서 유턴해 주세요.", + "name": "도로 끝까지 가서 유턴해서 {way_name}로 가세요.", + "destination": "도로 끝까지 가서 유턴해서 {destination} 까지 가세요." + } + }, + "fork": { + "default": { + "default": "갈림길에서 {modifier} 으로 가세요.", + "name": "{modifier}하고 {way_name}로 가세요.", + "destination": "{modifier}하고 {destination}까지 가세요." + }, + "slight left": { + "default": "갈림길에서 좌회전 하세요.", + "name": "좌회전 해서 {way_name}로 가세요.", + "destination": "좌회전 해서 {destination}까지 가세요." + }, + "slight right": { + "default": "갈림길에서 우회전 하세요.", + "name": "우회전 해서 {way_name}로 가세요.", + "destination": "우회전 해서 {destination}까지 가세요." + }, + "sharp left": { + "default": "갈림길에서 급좌회전 하세요.", + "name": "급좌회전 해서 {way_name}로 가세요.", + "destination": "급좌회전 해서 {destination}까지 가세요." + }, + "sharp right": { + "default": "갈림길에서 급우회전 하세요.", + "name": "급우회전 해서 {way_name}로 가세요.", + "destination": "급우회전 해서 {destination}까지 가세요." + }, + "uturn": { + "default": "유턴하세요.", + "name": "유턴해서 {way_name}로 가세요.", + "destination": "유턴해서 {destination}까지 가세요." + } + }, + "merge": { + "default": { + "default": "{modifier} 합류", + "name": "{modifier} 합류하여 {way_name}로 가세요.", + "destination": "{modifier} 합류하여 {destination}로 가세요." + }, + "straight": { + "default": "합류", + "name": "{way_name}로 합류하세요.", + "destination": "{destination}로 합류하세요." + }, + "slight left": { + "default": "좌측으로 합류하세요.", + "name": "좌측{way_name}로 합류하세요.", + "destination": "좌측으로 합류하여 {destination}까지 가세요." + }, + "slight right": { + "default": "우측으로 합류하세요.", + "name": "우측{way_name}로 합류하세요.", + "destination": "우측으로 합류하여 {destination}까지 가세요." + }, + "sharp left": { + "default": "좌측으로 합류하세요.", + "name": "좌측{way_name}로 합류하세요.", + "destination": "좌측으로 합류하여 {destination}까지 가세요." + }, + "sharp right": { + "default": "우측으로 합류하세요.", + "name": "우측{way_name}로 합류하세요.", + "destination": "우측으로 합류하여 {destination}까지 가세요." + }, + "uturn": { + "default": "유턴하세요.", + "name": "유턴해서 {way_name}로 가세요.", + "destination": "유턴해서 {destination}까지 가세요." + } + }, + "new name": { + "default": { + "default": "{modifier} 유지하세요.", + "name": "{modifier} 유지해서 {way_name}로 가세요.", + "destination": "{modifier} 유지해서 {destination}까지 가세요." + }, + "straight": { + "default": "직진해주세요.", + "name": "{way_name}로 계속 가세요.", + "destination": "{destination}까지 계속 가세요." + }, + "sharp left": { + "default": "급좌회전 하세요.", + "name": "급좌회전 해서 {way_name}로 가세요.", + "destination": "급좌회전 해서 {destination}까지 가세요." + }, + "sharp right": { + "default": "급우회전 하세요.", + "name": "급우회전 해서 {way_name}로 가세요.", + "destination": "급우회전 해서 {destination}까지 가세요." + }, + "slight left": { + "default": "약간 좌회전 해세요.", + "name": "약간 좌회전해서 {way_name}로 가세요.", + "destination": "약간 좌회전 해서 {destination}까지 가세요." + }, + "slight right": { + "default": "약간 우회전 해세요.", + "name": "약간 우회전해서 {way_name}로 가세요.", + "destination": "약간 우회전 해서 {destination}까지 가세요." + }, + "uturn": { + "default": "유턴해주세요.", + "name": "유턴해서 {way_name}로 가세요.", + "destination": "유턴해서 {destination}까지 가세요." + } + }, + "notification": { + "default": { + "default": "{modifier} 하세요.", + "name": "{modifier}해서 {way_name}로 가세요.", + "destination": "{modifier}해서 {destination}까지 가세요." + }, + "uturn": { + "default": "유턴하세요.", + "name": "유턴해서 {way_name}로 가세요.", + "destination": "유턴해서 {destination}까지 가세요." + } + }, + "off ramp": { + "default": { + "default": "램프로 진출해 주세요..", + "name": "램프로 진출해서 {way_name}로 가세요.", + "destination": "램프로 진출해서 {destination}까지 가세요.", + "exit": "{exit} 출구로 나가세요.", + "exit_destination": "{exit} 출구로 나가서 {destination}까지 가세요." + }, + "left": { + "default": "왼쪽의 램프로 진출해 주세요.", + "name": "왼쪽의 램프로 진출해서 {way_name}로 가세요.", + "destination": "왼쪽의 램프로 진출해서 {destination}까지 가세요.", + "exit": "{exit} 왼쪽의 출구로 나가세요.", + "exit_destination": "{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요." + }, + "right": { + "default": "오른쪽의 램프로 진출해 주세요.", + "name": "오른쪽의 램프로 진출해서 {way_name}로 가세요.", + "destination": "오른쪽의 램프로 진출해서 {destination}까지 가세요.", + "exit": "{exit} 오른쪽의 출구로 나가세요.", + "exit_destination": "{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요." + }, + "sharp left": { + "default": "왼쪽의 램프로 진출해 주세요.", + "name": "왼쪽의 램프로 진출해서 {way_name}로 가세요.", + "destination": "왼쪽의 램프로 진출해서 {destination}까지 가세요.", + "exit": "{exit} 왼쪽의 출구로 나가세요.", + "exit_destination": "{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요." + }, + "sharp right": { + "default": "오른쪽의 램프로 진출해 주세요.", + "name": "오른쪽의 램프로 진출해서 {way_name}로 가세요.", + "destination": "오른쪽의 램프로 진출해서 {destination}까지 가세요.", + "exit": "{exit} 오른쪽의 출구로 나가세요.", + "exit_destination": "{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요." + }, + "slight left": { + "default": "왼쪽의 램프로 진출해 주세요.", + "name": "왼쪽의 램프로 진출해서 {way_name}로 가세요.", + "destination": "왼쪽의 램프로 진출해서 {destination}까지 가세요.", + "exit": "{exit} 왼쪽의 출구로 나가세요.", + "exit_destination": "{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요." + }, + "slight right": { + "default": "오른쪽의 램프로 진출해 주세요.", + "name": "오른쪽의 램프로 진출해서 {way_name}로 가세요.", + "destination": "오른쪽의 램프로 진출해서 {destination}까지 가세요.", + "exit": "{exit} 오른쪽의 출구로 나가세요.", + "exit_destination": "{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요." + } + }, + "on ramp": { + "default": { + "default": "램프로 진입해 주세요..", + "name": "램프로 진입해서 {way_name}로 가세요.", + "destination": "램프로 진입해서 {destination}까지 가세요." + }, + "left": { + "default": "왼쪽의 램프로 진입해 주세요.", + "name": "왼쪽의 램프로 진입해서 {way_name}로 가세요.", + "destination": "왼쪽의 램프로 진입해서 {destination}까지 가세요." + }, + "right": { + "default": "오른쪽의 램프로 진입해 주세요.", + "name": "오른쪽의 램프로 진입해서 {way_name}로 가세요.", + "destination": "오른쪽의 램프로 진입해서 {destination}까지 가세요." + }, + "sharp left": { + "default": "왼쪽의 램프로 진입해 주세요.", + "name": "왼쪽의 램프로 진입해서 {way_name}로 가세요.", + "destination": "왼쪽의 램프로 진입해서 {destination}까지 가세요." + }, + "sharp right": { + "default": "오른쪽의 램프로 진입해 주세요.", + "name": "오른쪽의 램프로 진입해서 {way_name}로 가세요.", + "destination": "오른쪽의 램프로 진입해서 {destination}까지 가세요." + }, + "slight left": { + "default": "왼쪽의 램프로 진입해 주세요.", + "name": "왼쪽의 램프로 진입해서 {way_name}로 가세요.", + "destination": "왼쪽의 램프로 진입해서 {destination}까지 가세요." + }, + "slight right": { + "default": "오른쪽의 램프로 진입해 주세요.", + "name": "오른쪽의 램프로 진입해서 {way_name}로 가세요.", + "destination": "오른쪽의 램프로 진입해서 {destination}까지 가세요." + } + }, + "rotary": { + "default": { + "default": { + "default": "로터리로 진입하세요.", + "name": "로터리로 진입해서 {way_name} 나가세요.", + "destination": "로터리로 진입해서 {destination}로 나가세요." + }, + "name": { + "default": "{rotary_name}로 진입하세요.", + "name": "{rotary_name}로 진입해서 {way_name}로 나가세요.", + "destination": "{rotary_name}로 진입해서 {destination}로 나가세요." + }, + "exit": { + "default": "로터리로 진입해서 {exit_number} 출구로 나가세요.", + "name": "로터리로 진입해서 {exit_number} 출구로 나가 {way_name}로 가세요.", + "destination": "로터리로 진입해서 {exit_number} 출구로 나가 {destination}로 가세요." + }, + "name_exit": { + "default": "{rotary_name}로 진입해서 {exit_number}번 출구로 나가세요.", + "name": "{rotary_name}로 진입해서 {exit_number}번 출구로 나가 {way_name}로 가세요.", + "destination": "{rotary_name}로 진입해서 {exit_number}번 출구로 나가 {destination}로 가세요." + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "로터리로 진입해서 {exit_number}로 나가세요.", + "name": "로터리로 진입해서 {exit_number}로 나가서 {way_name}로 가세요.", + "destination": "로터리로 진입해서 {exit_number}로 나가서 {destination}로 가세요." + }, + "default": { + "default": "로터리로 진입하세요.", + "name": "로터리로 진입해서 {way_name} 나가세요.", + "destination": "로터리로 진입해서 {destination}로 나가세요." + } + } + }, + "roundabout turn": { + "default": { + "default": "{modifier} 하세요.", + "name": "{modifier} 하시고 {way_name}로 가세요.", + "destination": "{modifier} 하시고 {destination}까지 가세요." + }, + "left": { + "default": "좌회전 하세요.", + "name": "좌회전 하시고 {way_name}로 가세요.", + "destination": "좌회전 하시고 {destination}까지 가세요." + }, + "right": { + "default": "우회전 하세요.", + "name": "우회전 하시고 {way_name}로 가세요.", + "destination": "우회전 하시고 {destination}까지 가세요." + }, + "straight": { + "default": "직진 하세요.", + "name": "직진하시고 {way_name}로 가세요.", + "destination": "직진하시고 {destination}까지 가세요." + } + }, + "exit roundabout": { + "default": { + "default": "로타리에서 진출하세요.", + "name": "로타리에서 진출해서 {way_name}로 가세요.", + "destination": "로타리에서 진출해서 {destination}까지 가세요." + } + }, + "exit rotary": { + "default": { + "default": "로타리에서 진출하세요.", + "name": "로타리에서 진출해서 {way_name}로 가세요.", + "destination": "로타리에서 진출해서 {destination}까지 가세요." + } + }, + "turn": { + "default": { + "default": "{modifier} 하세요.", + "name": "{modifier} 하시고 {way_name}로 가세요.", + "destination": "{modifier} 하시고 {destination}까지 가세요." + }, + "left": { + "default": "좌회전 하세요.", + "name": "좌회전 하시고 {way_name}로 가세요.", + "destination": "좌회전 하시고 {destination}까지 가세요." + }, + "right": { + "default": "우회전 하세요.", + "name": "우회전 하시고 {way_name}로 가세요.", + "destination": "우회전 하시고 {destination}까지 가세요." + }, + "straight": { + "default": "직진 하세요.", + "name": "직진하시고 {way_name}로 가세요.", + "destination": "직진하시고 {destination}까지 가세요." + } + }, + "use lane": { + "no_lanes": { + "default": "직진하세요." + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],35:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": false + }, + "v5": { + "constants": { + "ordinalize": { + "1": "ပထမ", + "2": "ဒုတိယ", + "3": "တတိယ", + "4": "စတုတၳ", + "5": "ပဥၥမ", + "6": "ဆဌမ", + "7": "သတၱမ", + "8": "အဌမ", + "9": "နဝမ", + "10": "ဒသမ" + }, + "direction": { + "north": "ေျမာက္အရပ္", + "northeast": "အေရွ႕ေျမာက္အရပ္", + "east": "အေရွ႕အရပ္", + "southeast": "အေရွ႕ေတာင္အရပ္", + "south": "ေတာင္အရပ္", + "southwest": "အေနာက္ေတာင္အရပ္", + "west": "အေနာက္အရပ္", + "northwest": "အေနာက္ေျမာက္အရပ္" + }, + "modifier": { + "left": "ဘယ္ဘက္", + "right": "ညာဘက္", + "sharp left": "ဘယ္ဘက္ ေထာင့္ခ်ိဳး", + "sharp right": "ညာဘက္ ေထာင္႔ခ်ိဳး", + "slight left": "ဘယ္ဘက္ အနည္းငယ္", + "slight right": "ညာဘက္ အနည္းငယ္", + "straight": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း", + "uturn": "ဂ-ေကြ႔" + }, + "lanes": { + "xo": "ညာဘက္သို႕ဆက္သြားပါ", + "ox": "ဘယ္ဘက္သို႕ဆက္သြားပါ", + "xox": "အလယ္တြင္ဆက္ေနပါ", + "oxo": "ဘယ္ သို႕မဟုတ္ ညာဘက္သို႕ ဆက္သြားပါ" + } + }, + "modes": { + "ferry": { + "default": "ဖယ္ရီ စီးသြားပါ", + "name": "{way_name}ကို ဖယ္ရီစီးသြားပါ", + "destination": "{destination}ဆီသို႕ ဖယ္ရီစီးသြားပါ" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}ျပီးေနာက္ {distance}အတြင္း {instruction_two}", + "two linked": "{instruction_one}ျပီးေနာက္ {instruction_two}", + "one in distance": "{distance}အတြင္း {instruction_one}", + "name and ref": "{name}( {ref})", + "exit with number": "{exit}မွထြက္ပါ" + }, + "arrive": { + "default": { + "default": "{nth}သင္ သြားလိုေသာ ခရီးပန္းတိုင္သို႕ေရာက္ရွိျပီ", + "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ေရာက္လိမ့္မည္", + "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", + "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", + "named": "သင္ သည္ {waypoint_name} မွာ ေရာက္ရွိျပီ" + }, + "left": { + "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", + "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္လိမ့္မည္", + "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", + "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", + "named": "သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" + }, + "right": { + "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ", + "upcoming": "သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္", + "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", + "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", + "named": "သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" + }, + "sharp left": { + "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", + "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", + "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", + "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", + "named": "သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" + }, + "sharp right": { + "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ", + "upcoming": "သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္", + "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", + "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", + "named": "သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" + }, + "slight right": { + "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ", + "upcoming": "သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္", + "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", + "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", + "named": "သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" + }, + "slight left": { + "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", + "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", + "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရွိျပီ", + "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", + "named": "သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" + }, + "straight": { + "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕တည့္တည့္သြားကာရာက္ရွိျပီ", + "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕တည့္တည့္သြားကာရာက္ရွိမည္", + "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရွိျပီ", + "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", + "named": "သင္ သည္ {waypoint_name}မွာတည့္တည့္သြားကာ ေရာက္ရွိျပီ" + } + }, + "continue": { + "default": { + "default": "{modifier}ကိုလွည့္ပါ", + "name": "{way_name}​​ေပၚတြင္ေနရန္ {modifier}ကိုလွည့္ပါ", + "destination": "{destination}ဆီသို႕ {modifier}ကို လွည္႕ပါ", + "exit": "{way_name}​​ေပၚသို႕ {modifier}ကိုလွည့္ပါ" + }, + "straight": { + "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ", + "name": "{way_name}​​ေပၚတြင္ေနရန္တည္တည့္ဆက္သြာပါ", + "destination": "{destination}ဆီသို႕ဆက္သြားပါ", + "distance": "{distance}ေလာက္ တည့္တည့္ ဆက္သြားပါ", + "namedistance": "{way_name}​​ေပၚတြင္{distance}ေလာက္ဆက္သြားပါ" + }, + "sharp left": { + "default": "ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ", + "name": "{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ", + "destination": "{destination}ဆီသို႕ ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ" + }, + "sharp right": { + "default": "ညာဘက္ ေထာင္႔ခ်ိဳးေကြ႕ပါ", + "name": "{way_name}​ေပၚတြင္ေနရန္ ညာဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ", + "destination": "{destination}ဆီသို႕ ညာဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ" + }, + "slight left": { + "default": "ဘယ္ဘက္ အနည္းငယ္ေကြ႕ပါ", + "name": "{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္အနည္းငယ္ေကြ႕ပါ", + "destination": "{destination}ဆီသို႕ ဘယ္ဘက္အနည္းငယ္ခ်ိဳးေကြ႕ပါ" + }, + "slight right": { + "default": "ညာဘက္ အနည္းငယ္ခ်ိဳးေကြ႕ပါ", + "name": "{way_name}​ေပၚတြင္ေနရန္ ညာဘက္အနည္းငယ္ေကြ႕ပါ", + "destination": "{destination}ဆီသို႕ ညာဘက္အနည္းငယ္ခ်ိဳးေကြ႕ပါ" + }, + "uturn": { + "default": "ဂ-ေကြ႔ ေကြ႔ပါ", + "name": "{way_name}လမ္းဘက္သို႕ ဂ-ေကြ႕ေကြ႕ျပီးဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" + } + }, + "depart": { + "default": { + "default": "{direction}သို႕ ဦးတည္ပါ", + "name": "{direction}ကို {way_name}အေပၚတြင္ ဦးတည္ပါ", + "namedistance": "{direction}ကို {way_name}အေပၚတြင္{distance}ေလာက္ ဦးတည္ဆက္သြားပါ" + } + }, + "end of road": { + "default": { + "default": "{modifier}သို႕လွည့္ပါ", + "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုလွည့္ပါ", + "destination": "{destination}ဆီသို႕ {modifier}ကို လွည္႕ပါ" + }, + "straight": { + "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕တည့္တည့္ဆက္သြားပါ", + "destination": "{destination}ဆီသို႕တည့္တည့္ဆက္သြားပါ" + }, + "uturn": { + "default": "လမ္းအဆံုးတြင္ ဂ-ေကြ႕ေကြ႕ပါ", + "name": "လမ္းအဆံုးတြင္ {way_name}​​ေပၚသို႕ဂ-ေကြ႕ေကြ႕ပါ", + "destination": "လမ္းအဆံုးတြင္{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" + } + }, + "fork": { + "default": { + "default": "လမ္းဆံုလမ္းခြတြင္ {modifier}ကိုဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ" + }, + "slight left": { + "default": "လမ္းဆံုလမ္းခြတြင္ဘယ္ဘက္ကိုဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ဘယ္ဘက္ကို ဆက္သြားပါ" + }, + "slight right": { + "default": "လမ္းဆံုလမ္းခြတြင္ညာဘက္ကိုဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕ညာဘက္ကိုဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ညာဘက္ကို ဆက္သြားပါ" + }, + "sharp left": { + "default": "လမ္းဆံုလမ္းခြတြင္ဘယ္ဘက္ေထာင့္ခ်ိဳးကိုသြားပါ", + "name": "{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ", + "destination": "{destination}ဆီသို႕ဘယ္ဘက္ေထာင့္ခ်ိဳး သြားပါ" + }, + "sharp right": { + "default": "လမ္းဆံုလမ္းခြတြင္ညာဘက္ေထာင့္ခ်ိဳးကိုသြားပါ", + "name": "{way_name}​ေပၚသို႕ ညာဘက္ေထာင့္ခ်ိဳးယူပါ", + "destination": "{destination}ဆီသို႕ညာဘက္ေထာင့္ခ်ိဳး သြားပါ" + }, + "uturn": { + "default": "ဂ-ေကြ႔ ေကြ႔ပါ", + "name": "{way_name}သို႕ဂ-ေကြ႕ေကြ႕ပါ", + "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" + } + }, + "merge": { + "default": { + "default": "{modifier}ကိုလာေရာက္ေပါင္းဆံုပါ", + "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုလာေရာက္ေပါင္းဆံုပါ", + "destination": "{destination}ဆီသို႕ {modifier}ကို လာေရာက္ေပါင္းဆံုပါ" + }, + "straight": { + "default": "လာေရာက္ေပါင္းဆံုပါ", + "name": "{way_name}​​ေပၚသို႕လာေရာက္ေပါင္းဆံုပါ", + "destination": "{destination}ဆီသို႕ လာေရာက္ေပါင္းဆံုပါ" + }, + "slight left": { + "default": "ဘယ္ဘက္သို႕လာေရာက္ေပါင္းဆံုပါ", + "name": "{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုလာေရာက္ေပါင္းဆံုပါ", + "destination": "{destination}ဆီသို႕ဘယ္ဘက္ကို လာေရာက္ေပါင္းဆံုပါ" + }, + "slight right": { + "default": "ညာဘက္သို႕လာေရာက္ေပါင္းဆံုပါ", + "name": "{way_name}​​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ", + "destination": "{destination}ဆီသို႕ညာဘက္ကို လာေရာက္ေပါင္းဆံုပါ" + }, + "sharp left": { + "default": "ဘယ္ဘက္သို႕လာေရာက္ေပါင္းဆံုပါ", + "name": "{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုလာေရာက္ေပါင္းဆံုပါ", + "destination": "{destination}ဆီသို႕ဘယ္ဘက္ကို လာေရာက္ေပါင္းဆံုပါ" + }, + "sharp right": { + "default": "ညာဘက္သို႕လာေရာက္ေပါင္းဆံုပါ", + "name": "{way_name}​​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ", + "destination": "{destination}ဆီသို႕ညာဘက္ကို လာေရာက္ေပါင္းဆံုပါ" + }, + "uturn": { + "default": "ဂ-ေကြ႔ ေကြ႕ပါ", + "name": "{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ ", + "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" + } + }, + "new name": { + "default": { + "default": "{modifier}ကိုဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ" + }, + "straight": { + "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕ဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ဆက္သြားပါ" + }, + "sharp left": { + "default": "ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ", + "name": "{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ", + "destination": "{destination}ဆီသို႕ဘယ္ဘက္ေထာင့္ခ်ိဳး သြားပါ" + }, + "sharp right": { + "default": "ညာဘက္ ေထာင္႔ခ်ိဳးယူပါ", + "name": "{way_name}​ေပၚသို႕ ညာဘက္ေထာင့္ခ်ိဳးယူပါ", + "destination": "{destination}ဆီသို႕ညာဘက္ေထာင့္ခ်ိဳး သြားပါ" + }, + "slight left": { + "default": "ဘယ္ဘက္ အနည္းငယ္ဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕ဘယ္ဘက္ အနည္းငယ္ဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ဘယ္ဘက္အနည္းငယ္ဆက္သြားပါ" + }, + "slight right": { + "default": "ညာဘက္ အနည္းငယ္ဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕ညာဘက္ အနည္းငယ္ဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ညာဘက္အနည္းငယ္ဆက္သြားပါ" + }, + "uturn": { + "default": "ဂ-ေကြ႔ ေကြ႔ပါ", + "name": "{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ", + "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" + } + }, + "notification": { + "default": { + "default": "{modifier}ကိုဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ", + "destination": "{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ" + }, + "uturn": { + "default": "ဂ-ေကြ႔ ေကြ႔ပါ", + "name": "{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ", + "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" + } + }, + "off ramp": { + "default": { + "default": "ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "exit": "{exit}ကို ယူပါ", + "exit_destination": "{destination}ဆီသို႕ {exit} ကိုယူပါ" + }, + "left": { + "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "exit": "ဘယ္ဘက္တြင္{exit}ကို ယူပါ", + "exit_destination": "{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ" + }, + "right": { + "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "exit": "ညာဘက္တြင္{exit}ကို ယူပါ", + "exit_destination": "{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ" + }, + "sharp left": { + "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "exit": "ဘယ္ဘက္တြင္{exit}ကို ယူပါ", + "exit_destination": "{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ" + }, + "sharp right": { + "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "exit": "ညာဘက္တြင္{exit}ကို ယူပါ", + "exit_destination": "{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ" + }, + "slight left": { + "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "exit": "ဘယ္ဘက္တြင္{exit}ကို ယူပါ", + "exit_destination": "{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ" + }, + "slight right": { + "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "exit": "ညာဘက္တြင္{exit}ကို ယူပါ", + "exit_destination": "{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ" + } + }, + "on ramp": { + "default": { + "default": "ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ခ်ဥ္းကပ္လမ္းကိုယူပါ" + }, + "left": { + "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" + }, + "right": { + "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" + }, + "sharp left": { + "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" + }, + "sharp right": { + "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" + }, + "slight left": { + "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" + }, + "slight right": { + "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", + "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" + } + }, + "rotary": { + "default": { + "default": { + "default": "အဝိုင္းပတ္သို႕ဝင္ပါ", + "name": "{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ ", + "destination": "{destination}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ" + }, + "name": { + "default": "{rotary_name}သို႕ဝင္ပါ", + "name": "{rotary_name}အဝိုင္းပတ္ဝင္ျပီး{way_name}ေပၚသို႕ထြက္ပါ", + "destination": "{rotary_name}အဝိုင္းပတ္ဝင္ျပီး{destination}ဆီသို႕ထြက္ပါ" + }, + "exit": { + "default": "အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာျပန္ထြက္ပါ", + "name": "အဝိုင္းပတ္သို႕ဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ", + "destination": "အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ" + }, + "name_exit": { + "default": "{rotary_name}ကိုဝင္ျပီး {exit_number}ကိုယူကာထြက္ပါ", + "name": "{rotary_name}ကိုဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ", + "destination": "{rotary_name}ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "{exit_number}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ", + "name": "အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ", + "destination": "အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ" + }, + "default": { + "default": "အဝိုင္းပတ္ဝင္ပါ", + "name": "{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ", + "destination": "{destination}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ" + } + } + }, + "roundabout turn": { + "default": { + "default": "{modifier}ကိုလွည့္ပါ ", + "name": "{modifier}​ေပၚသို{way_name}ကိုဆက္သြားပါ ", + "destination": "{modifier}ဆီသို႕{destination}ကို ဆက္သြားပါ " + }, + "left": { + "default": "ဘယ္ဘက္သို႕ျပန္လွည္႔ပါ", + "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ ", + "destination": "{destination}ဆီသို႕ဘယ္ဘက္မွ ေကြ႔ပါ" + }, + "right": { + "default": "ညာဘက္သို႔ျပန္လွည္႔ပါ", + "name": "{way_name}​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ ", + "destination": "{destination}ညာဘက္သို႔ ေကြ႔ပါ" + }, + "straight": { + "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ", + "name": "{way_name}​​ေပၚသို႕တည့္တည့္ဆက္သြားပါ", + "destination": "{destination}ဆီသို႕တည့္တည့္ဆက္သြားပါ" + } + }, + "exit roundabout": { + "default": { + "default": "အဝိုင္းပတ္လမ္းမွထြက္ပါ", + "name": "{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ", + "destination": "ဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ{destination}" + } + }, + "exit rotary": { + "default": { + "default": "အဝိုင္းပတ္လမ္းမွထြက္ပါဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ", + "name": "{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ", + "destination": "ဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ{destination}" + } + }, + "turn": { + "default": { + "default": "{modifier}ကိုလွည့္ပါ ", + "name": "{modifier}​ေပၚသို{way_name}ကိုဆက္သြားပါ ", + "destination": "{modifier}ဆီသို႕{destination}ကို ဆက္သြားပါ " + }, + "left": { + "default": "ဘယ္ဘက္သို႕ျပန္လွည္႔ပါ", + "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ ", + "destination": "{destination}ဘယ္ဘက္သို႔ ေကြ႔ပါ" + }, + "right": { + "default": "ညာဘက္သို႔ျပန္လွည္႔ပါ", + "name": "{way_name}​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ ", + "destination": "{destination}ညာဘက္သို႔ ေကြ႔ပါ" + }, + "straight": { + "default": "တည္႔တည္႔သြားပါ", + "name": "{way_name}", + "destination": "{destination}ဆီသို႕တည့္တည့္သြားပါ" + } + }, + "use lane": { + "no_lanes": { + "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],36:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1e", + "2": "2e", + "3": "3e", + "4": "4e", + "5": "5e", + "6": "6e", + "7": "7e", + "8": "8e", + "9": "9e", + "10": "10e" + }, + "direction": { + "north": "noord", + "northeast": "noordoost", + "east": "oost", + "southeast": "zuidoost", + "south": "zuid", + "southwest": "zuidwest", + "west": "west", + "northwest": "noordwest" + }, + "modifier": { + "left": "links", + "right": "rechts", + "sharp left": "scherpe bocht naar links", + "sharp right": "scherpe bocht naar rechts", + "slight left": "iets naar links", + "slight right": "iets naar rechts", + "straight": "rechtdoor", + "uturn": "omkeren" + }, + "lanes": { + "xo": "Rechts aanhouden", + "ox": "Links aanhouden", + "xox": "In het midden blijven", + "oxo": "Links of rechts blijven" + } + }, + "modes": { + "ferry": { + "default": "Neem de veerpont", + "name": "Neem de veerpont {way_name}", + "destination": "Neem de veerpont richting {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, dan na {distance}, {instruction_two}", + "two linked": "{instruction_one}, daarna {instruction_two}", + "one in distance": "Over {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "afslag {exit}" + }, + "arrive": { + "default": { + "default": "Je bent gearriveerd op de {nth} bestemming.", + "upcoming": "U arriveert op de {nth} bestemming", + "short": "U bent gearriveerd", + "short-upcoming": "U zult aankomen", + "named": "U bent gearriveerd bij {waypoint_name}" + }, + "left": { + "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich links.", + "upcoming": "Uw {nth} bestemming bevindt zich aan de linkerkant", + "short": "U bent gearriveerd", + "short-upcoming": "U zult aankomen", + "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant" + }, + "right": { + "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.", + "upcoming": "Uw {nth} bestemming bevindt zich aan de rechterkant", + "short": "U bent gearriveerd", + "short-upcoming": "U zult aankomen", + "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant" + }, + "sharp left": { + "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich links.", + "upcoming": "Uw {nth} bestemming bevindt zich aan de linkerkant", + "short": "U bent gearriveerd", + "short-upcoming": "U zult aankomen", + "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant" + }, + "sharp right": { + "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.", + "upcoming": "Uw {nth} bestemming bevindt zich aan de rechterkant", + "short": "U bent gearriveerd", + "short-upcoming": "U zult aankomen", + "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant" + }, + "slight right": { + "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.", + "upcoming": "Uw {nth} bestemming bevindt zich aan de rechterkant", + "short": "U bent gearriveerd", + "short-upcoming": "U zult aankomen", + "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant" + }, + "slight left": { + "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich links.", + "upcoming": "Uw {nth} bestemming bevindt zich aan de linkerkant", + "short": "U bent gearriveerd", + "short-upcoming": "U zult aankomen", + "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant" + }, + "straight": { + "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich voor je.", + "upcoming": "Uw {nth} bestemming is recht voor u", + "short": "U bent gearriveerd", + "short-upcoming": "U zult aankomen", + "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is recht voor u" + } + }, + "continue": { + "default": { + "default": "Ga {modifier}", + "name": "Sla {modifier} om op {way_name} te blijven", + "destination": "Ga {modifier} richting {destination}", + "exit": "Ga {modifier} naar {way_name}" + }, + "straight": { + "default": "Ga rechtdoor", + "name": "Blijf rechtdoor gaan op {way_name}", + "destination": "Ga rechtdoor richting {destination}", + "distance": "Ga rechtdoor voor {distance}", + "namedistance": "Ga verder op {way_name} voor {distance}" + }, + "sharp left": { + "default": "Linksaf", + "name": "Sla scherp links af om op {way_name} te blijven", + "destination": "Linksaf richting {destination}" + }, + "sharp right": { + "default": "Rechtsaf", + "name": "Sla scherp rechts af om op {way_name} te blijven", + "destination": "Rechtsaf richting {destination}" + }, + "slight left": { + "default": "Ga links", + "name": "Links afbuigen om op {way_name} te blijven", + "destination": "Rechts afbuigen om op {destination} te blijven" + }, + "slight right": { + "default": "Rechts afbuigen", + "name": "Rechts afbuigen om op {way_name} te blijven", + "destination": "Rechts afbuigen richting {destination}" + }, + "uturn": { + "default": "Keer om", + "name": "Draai om en ga verder op {way_name}", + "destination": "Keer om richting {destination}" + } + }, + "depart": { + "default": { + "default": "Vertrek in {direction}elijke richting", + "name": "Neem {way_name} in {direction}elijke richting", + "namedistance": "Ga richting {direction} op {way_name} voor {distance}" + } + }, + "end of road": { + "default": { + "default": "Ga {modifier}", + "name": "Ga {modifier} naar {way_name}", + "destination": "Ga {modifier} richting {destination}" + }, + "straight": { + "default": "Ga in de aangegeven richting", + "name": "Ga naar {way_name}", + "destination": "Ga richting {destination}" + }, + "uturn": { + "default": "Keer om", + "name": "Keer om naar {way_name}", + "destination": "Keer om richting {destination}" + } + }, + "fork": { + "default": { + "default": "Ga {modifier} op de splitsing", + "name": "Houd {modifier} aan, tot {way_name}", + "destination": "Houd {modifier}, in de richting van {destination}" + }, + "slight left": { + "default": "Links aanhouden op de splitsing", + "name": "Houd links aan, tot {way_name}", + "destination": "Houd links aan, richting {destination}" + }, + "slight right": { + "default": "Rechts aanhouden op de splitsing", + "name": "Houd rechts aan, tot {way_name}", + "destination": "Houd rechts aan, richting {destination}" + }, + "sharp left": { + "default": "Neem bij de splitsing, een scherpe bocht, naar links ", + "name": "Neem een scherpe bocht naar links, tot aan {way_name}", + "destination": "Neem een scherpe bocht naar links, richting {destination}" + }, + "sharp right": { + "default": "Neem op de splitsing, een scherpe bocht, naar rechts", + "name": "Neem een scherpe bocht naar rechts, tot aan {way_name}", + "destination": "Neem een scherpe bocht naar rechts, richting {destination}" + }, + "uturn": { + "default": "Keer om", + "name": "Keer om naar {way_name}", + "destination": "Keer om richting {destination}" + } + }, + "merge": { + "default": { + "default": "Bij de splitsing {modifier}", + "name": "Bij de splitsing {modifier} naar {way_name}", + "destination": "Bij de splitsing {modifier} richting {destination}" + }, + "straight": { + "default": "Samenvoegen", + "name": "Ga verder op {way_name}", + "destination": "Ga verder richting {destination}" + }, + "slight left": { + "default": "Bij de splitsing links aanhouden", + "name": "Bij de splitsing links aanhouden naar {way_name}", + "destination": "Bij de splitsing links aanhouden richting {destination}" + }, + "slight right": { + "default": "Bij de splitsing rechts aanhouden", + "name": "Bij de splitsing rechts aanhouden naar {way_name}", + "destination": "Bij de splitsing rechts aanhouden richting {destination}" + }, + "sharp left": { + "default": "Bij de splitsing linksaf", + "name": "Bij de splitsing linksaf naar {way_name}", + "destination": "Bij de splitsing linksaf richting {destination}" + }, + "sharp right": { + "default": "Bij de splitsing rechtsaf", + "name": "Bij de splitsing rechtsaf naar {way_name}", + "destination": "Bij de splitsing rechtsaf richting {destination}" + }, + "uturn": { + "default": "Keer om", + "name": "Keer om naar {way_name}", + "destination": "Keer om richting {destination}" + } + }, + "new name": { + "default": { + "default": "Ga {modifier}", + "name": "Ga {modifier} naar {way_name}", + "destination": "Ga {modifier} richting {destination}" + }, + "straight": { + "default": "Ga in de aangegeven richting", + "name": "Ga rechtdoor naar {way_name}", + "destination": "Ga rechtdoor richting {destination}" + }, + "sharp left": { + "default": "Neem een scherpe bocht, naar links", + "name": "Linksaf naar {way_name}", + "destination": "Linksaf richting {destination}" + }, + "sharp right": { + "default": "Neem een scherpe bocht, naar rechts", + "name": "Rechtsaf naar {way_name}", + "destination": "Rechtsaf richting {destination}" + }, + "slight left": { + "default": "Links aanhouden", + "name": "Links aanhouden naar {way_name}", + "destination": "Links aanhouden richting {destination}" + }, + "slight right": { + "default": "Rechts aanhouden", + "name": "Rechts aanhouden naar {way_name}", + "destination": "Rechts aanhouden richting {destination}" + }, + "uturn": { + "default": "Keer om", + "name": "Keer om naar {way_name}", + "destination": "Keer om richting {destination}" + } + }, + "notification": { + "default": { + "default": "Ga {modifier}", + "name": "Ga {modifier} naar {way_name}", + "destination": "Ga {modifier} richting {destination}" + }, + "uturn": { + "default": "Keer om", + "name": "Keer om naar {way_name}", + "destination": "Keer om richting {destination}" + } + }, + "off ramp": { + "default": { + "default": "Neem de afrit", + "name": "Neem de afrit naar {way_name}", + "destination": "Neem de afrit richting {destination}", + "exit": "Neem afslag {exit}", + "exit_destination": "Neem afslag {exit} richting {destination}" + }, + "left": { + "default": "Neem de afrit links", + "name": "Neem de afrit links naar {way_name}", + "destination": "Neem de afrit links richting {destination}", + "exit": "Neem afslag {exit} aan de linkerkant", + "exit_destination": "Neem afslag {exit} aan de linkerkant richting {destination}" + }, + "right": { + "default": "Neem de afrit rechts", + "name": "Neem de afrit rechts naar {way_name}", + "destination": "Neem de afrit rechts richting {destination}", + "exit": "Neem afslag {exit} aan de rechterkant", + "exit_destination": "Neem afslag {exit} aan de rechterkant richting {destination}" + }, + "sharp left": { + "default": "Neem de afrit links", + "name": "Neem de afrit links naar {way_name}", + "destination": "Neem de afrit links richting {destination}", + "exit": "Neem afslag {exit} aan de linkerkant", + "exit_destination": "Neem afslag {exit} aan de linkerkant richting {destination}" + }, + "sharp right": { + "default": "Neem de afrit rechts", + "name": "Neem de afrit rechts naar {way_name}", + "destination": "Neem de afrit rechts richting {destination}", + "exit": "Neem afslag {exit} aan de rechterkant", + "exit_destination": "Neem afslag {exit} aan de rechterkant richting {destination}" + }, + "slight left": { + "default": "Neem de afrit links", + "name": "Neem de afrit links naar {way_name}", + "destination": "Neem de afrit links richting {destination}", + "exit": "Neem afslag {exit} aan de linkerkant", + "exit_destination": "Neem afslag {exit} aan de linkerkant richting {destination}" + }, + "slight right": { + "default": "Neem de afrit rechts", + "name": "Neem de afrit rechts naar {way_name}", + "destination": "Neem de afrit rechts richting {destination}", + "exit": "Neem afslag {exit} aan de rechterkant", + "exit_destination": "Neem afslag {exit} aan de rechterkant richting {destination}" + } + }, + "on ramp": { + "default": { + "default": "Neem de oprit", + "name": "Neem de oprit naar {way_name}", + "destination": "Neem de oprit richting {destination}" + }, + "left": { + "default": "Neem de oprit links", + "name": "Neem de oprit links naar {way_name}", + "destination": "Neem de oprit links richting {destination}" + }, + "right": { + "default": "Neem de oprit rechts", + "name": "Neem de oprit rechts naar {way_name}", + "destination": "Neem de oprit rechts richting {destination}" + }, + "sharp left": { + "default": "Neem de oprit links", + "name": "Neem de oprit links naar {way_name}", + "destination": "Neem de oprit links richting {destination}" + }, + "sharp right": { + "default": "Neem de oprit rechts", + "name": "Neem de oprit rechts naar {way_name}", + "destination": "Neem de oprit rechts richting {destination}" + }, + "slight left": { + "default": "Neem de oprit links", + "name": "Neem de oprit links naar {way_name}", + "destination": "Neem de oprit links richting {destination}" + }, + "slight right": { + "default": "Neem de oprit rechts", + "name": "Neem de oprit rechts naar {way_name}", + "destination": "Neem de oprit rechts richting {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Betreedt de rotonde", + "name": "Betreedt rotonde en sla af op {way_name}", + "destination": "Betreedt rotonde en sla af richting {destination}" + }, + "name": { + "default": "Ga het knooppunt {rotary_name} op", + "name": "Verlaat het knooppunt {rotary_name} naar {way_name}", + "destination": "Verlaat het knooppunt {rotary_name} richting {destination}" + }, + "exit": { + "default": "Betreedt rotonde en neem afslag {exit_number}", + "name": "Betreedt rotonde en neem afslag {exit_number} naar {way_name}", + "destination": "Betreedt rotonde en neem afslag {exit_number} richting {destination}" + }, + "name_exit": { + "default": "Ga het knooppunt {rotary_name} op en neem afslag {exit_number}", + "name": "Ga het knooppunt {rotary_name} op en neem afslag {exit_number} naar {way_name}", + "destination": "Ga het knooppunt {rotary_name} op en neem afslag {exit_number} richting {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Betreedt rotonde en neem afslag {exit_number}", + "name": "Betreedt rotonde en neem afslag {exit_number} naar {way_name}", + "destination": "Betreedt rotonde en neem afslag {exit_number} richting {destination}" + }, + "default": { + "default": "Betreedt de rotonde", + "name": "Betreedt rotonde en sla af op {way_name}", + "destination": "Betreedt rotonde en sla af richting {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Ga {modifier}", + "name": "Ga {modifier} naar {way_name}", + "destination": "Ga {modifier} richting {destination}" + }, + "left": { + "default": "Ga linksaf", + "name": "Ga linksaf naar {way_name}", + "destination": "Ga linksaf richting {destination}" + }, + "right": { + "default": "Ga rechtsaf", + "name": "Ga rechtsaf naar {way_name}", + "destination": "Ga rechtsaf richting {destination}" + }, + "straight": { + "default": "Ga in de aangegeven richting", + "name": "Ga naar {way_name}", + "destination": "Ga richting {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Verlaat de rotonde", + "name": "Verlaat de rotonde en ga verder op {way_name}", + "destination": "Verlaat de rotonde richting {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Verlaat de rotonde", + "name": "Verlaat de rotonde en ga verder op {way_name}", + "destination": "Verlaat de rotonde richting {destination}" + } + }, + "turn": { + "default": { + "default": "Ga {modifier}", + "name": "Ga {modifier} naar {way_name}", + "destination": "Ga {modifier} richting {destination}" + }, + "left": { + "default": "Ga linksaf", + "name": "Ga linksaf naar {way_name}", + "destination": "Ga linksaf richting {destination}" + }, + "right": { + "default": "Ga rechtsaf", + "name": "Ga rechtsaf naar {way_name}", + "destination": "Ga rechtsaf richting {destination}" + }, + "straight": { + "default": "Ga rechtdoor", + "name": "Ga rechtdoor naar {way_name}", + "destination": "Ga rechtdoor richting {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Rechtdoor" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],37:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1.", + "2": "2.", + "3": "3.", + "4": "4.", + "5": "5.", + "6": "6.", + "7": "7.", + "8": "8.", + "9": "9.", + "10": "10." + }, + "direction": { + "north": "nord", + "northeast": "nordøst", + "east": "øst", + "southeast": "sørøst", + "south": "sør", + "southwest": "sørvest", + "west": "vest", + "northwest": "nordvest" + }, + "modifier": { + "left": "venstre", + "right": "høyre", + "sharp left": "skarp venstre", + "sharp right": "skarp høyre", + "slight left": "litt til venstre", + "slight right": "litt til høyre", + "straight": "rett frem", + "uturn": "U-sving" + }, + "lanes": { + "xo": "Hold til høyre", + "ox": "Hold til venstre", + "xox": "Hold deg i midten", + "oxo": "Hold til venstre eller høyre" + } + }, + "modes": { + "ferry": { + "default": "Ta ferja", + "name": "Ta ferja {way_name}", + "destination": "Ta ferja til {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, deretter {instruction_two} om {distance}", + "two linked": "{instruction_one}, deretter {instruction_two}", + "one in distance": "Om {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "avkjørsel {exit}" + }, + "arrive": { + "default": { + "default": "Du har ankommet din {nth} destinasjon", + "upcoming": "Du vil ankomme din {nth} destinasjon", + "short": "Du har ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du har ankommet {waypoint_name}" + }, + "left": { + "default": "Du har ankommet din {nth} destinasjon, på din venstre side", + "upcoming": "Du vil ankomme din {nth} destinasjon, på din venstre side", + "short": "Du har ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du har ankommet {waypoint_name}, på din venstre side" + }, + "right": { + "default": "Du har ankommet din {nth} destinasjon, på din høyre side", + "upcoming": "Du vil ankomme din {nth} destinasjon, på din høyre side", + "short": "Du har ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du har ankommet {waypoint_name}, på din høyre side" + }, + "sharp left": { + "default": "Du har ankommet din {nth} destinasjon, på din venstre side", + "upcoming": "Du vil ankomme din {nth} destinasjon, på din venstre side", + "short": "Du har ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du har ankommet {waypoint_name}, på din venstre side" + }, + "sharp right": { + "default": "Du har ankommet din {nth} destinasjon, på din høyre side", + "upcoming": "Du vil ankomme din {nth} destinasjon, på din høyre side", + "short": "Du har ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du har ankommet {waypoint_name}, på din høyre side" + }, + "slight right": { + "default": "Du har ankommet din {nth} destinasjon, på din høyre side", + "upcoming": "Du vil ankomme din {nth} destinasjon, på din høyre side", + "short": "Du har ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du har ankommet {waypoint_name}, på din høyre side" + }, + "slight left": { + "default": "Du har ankommet din {nth} destinasjon, på din venstre side", + "upcoming": "Du vil ankomme din {nth} destinasjon, på din venstre side", + "short": "Du har ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du har ankommet {waypoint_name}, på din venstre side" + }, + "straight": { + "default": "Du har ankommet din {nth} destinasjon, rett forut", + "upcoming": "Du vil ankomme din {nth} destinasjon, rett forut", + "short": "Du har ankommet", + "short-upcoming": "Du vil ankomme", + "named": "Du har ankommet {waypoint_name}, rett forut" + } + }, + "continue": { + "default": { + "default": "Ta til {modifier}", + "name": "Ta til {modifier} for å bli værende på {way_name}", + "destination": "Ta til {modifier} mot {destination}", + "exit": "Ta til {modifier} inn på {way_name}" + }, + "straight": { + "default": "Fortsett rett frem", + "name": "Fortsett rett frem for å bli værende på {way_name}", + "destination": "Fortsett mot {destination}", + "distance": "Fortsett rett frem, {distance} ", + "namedistance": "Fortsett på {way_name}, {distance}" + }, + "sharp left": { + "default": "Sving skarpt til venstre", + "name": "Sving skarpt til venstre for å bli værende på {way_name}", + "destination": "Sving skarpt til venstre mot {destination}" + }, + "sharp right": { + "default": "Sving skarpt til høyre", + "name": "Sving skarpt til høyre for å bli værende på {way_name}", + "destination": "Sving skarpt mot {destination}" + }, + "slight left": { + "default": "Sving svakt til venstre", + "name": "Sving svakt til venstre for å bli værende på {way_name}", + "destination": "Sving svakt til venstre mot {destination}" + }, + "slight right": { + "default": "Sving svakt til høyre", + "name": "Sving svakt til høyre for å bli værende på {way_name}", + "destination": "Sving svakt til høyre mot {destination}" + }, + "uturn": { + "default": "Ta en U-sving", + "name": "Ta en U-sving og fortsett på {way_name}", + "destination": "Ta en U-sving mot {destination}" + } + }, + "depart": { + "default": { + "default": "Kjør i retning {direction}", + "name": "Kjør i retning {direction} på {way_name}", + "namedistance": "Kjør i retning {direction} på {way_name}, {distance}" + } + }, + "end of road": { + "default": { + "default": "Sving {modifier}", + "name": "Ta til {modifier} inn på {way_name}", + "destination": "Sving {modifier} mot {destination}" + }, + "straight": { + "default": "Fortsett rett frem", + "name": "Fortsett rett frem til {way_name}", + "destination": "Fortsett rett frem mot {destination}" + }, + "uturn": { + "default": "Ta en U-sving i enden av veien", + "name": "Ta en U-sving til {way_name} i enden av veien", + "destination": "Ta en U-sving mot {destination} i enden av veien" + } + }, + "fork": { + "default": { + "default": "Hold til {modifier} i veikrysset", + "name": "Hold til {modifier} inn på {way_name}", + "destination": "Hold til {modifier} mot {destination}" + }, + "slight left": { + "default": "Hold til venstre i veikrysset", + "name": "Hold til venstre inn på {way_name}", + "destination": "Hold til venstre mot {destination}" + }, + "slight right": { + "default": "Hold til høyre i veikrysset", + "name": "Hold til høyre inn på {way_name}", + "destination": "Hold til høyre mot {destination}" + }, + "sharp left": { + "default": "Sving skarpt til venstre i veikrysset", + "name": "Sving skarpt til venstre inn på {way_name}", + "destination": "Sving skarpt til venstre mot {destination}" + }, + "sharp right": { + "default": "Sving skarpt til høyre i veikrysset", + "name": "Sving skarpt til høyre inn på {way_name}", + "destination": "Svings skarpt til høyre mot {destination}" + }, + "uturn": { + "default": "Ta en U-sving", + "name": "Ta en U-sving til {way_name}", + "destination": "Ta en U-sving mot {destination}" + } + }, + "merge": { + "default": { + "default": "Hold {modifier} kjørefelt", + "name": "Hold {modifier} kjørefelt inn på {way_name}", + "destination": "Hold {modifier} kjørefelt mot {destination}" + }, + "straight": { + "default": "Hold kjørefelt", + "name": "Hold kjørefelt inn på {way_name}", + "destination": "Hold kjørefelt mot {destination}" + }, + "slight left": { + "default": "Hold venstre kjørefelt", + "name": "Hold venstre kjørefelt inn på {way_name}", + "destination": "Hold venstre kjørefelt mot {destination}" + }, + "slight right": { + "default": "Hold høyre kjørefelt", + "name": "Hold høyre kjørefelt inn på {way_name}", + "destination": "Hold høyre kjørefelt mot {destination}" + }, + "sharp left": { + "default": "Hold venstre kjørefelt", + "name": "Hold venstre kjørefelt inn på {way_name}", + "destination": "Hold venstre kjørefelt mot {destination}" + }, + "sharp right": { + "default": "Hold høyre kjørefelt", + "name": "Hold høyre kjørefelt inn på {way_name}", + "destination": "Hold høyre kjørefelt mot {destination}" + }, + "uturn": { + "default": "Ta en U-sving", + "name": "Ta en U-sving til {way_name}", + "destination": "Ta en U-sving mot {destination}" + } + }, + "new name": { + "default": { + "default": "Fortsett {modifier}", + "name": "Fortsett {modifier} til {way_name}", + "destination": "Fortsett {modifier} mot {destination}" + }, + "straight": { + "default": "Fortsett rett frem", + "name": "Fortsett inn på {way_name}", + "destination": "Fortsett mot {destination}" + }, + "sharp left": { + "default": "Sving skarpt til venstre", + "name": "Sving skarpt til venstre inn på {way_name}", + "destination": "Sving skarpt til venstre mot {destination}" + }, + "sharp right": { + "default": "Sving skarpt til høyre", + "name": "Sving skarpt til høyre inn på {way_name}", + "destination": "Svings skarpt til høyre mot {destination}" + }, + "slight left": { + "default": "Fortsett litt mot venstre", + "name": "Fortsett litt mot venstre til {way_name}", + "destination": "Fortsett litt mot venstre mot {destination}" + }, + "slight right": { + "default": "Fortsett litt mot høyre", + "name": "Fortsett litt mot høyre til {way_name}", + "destination": "Fortsett litt mot høyre mot {destination}" + }, + "uturn": { + "default": "Ta en U-sving", + "name": "Ta en U-sving til {way_name}", + "destination": "Ta en U-sving mot {destination}" + } + }, + "notification": { + "default": { + "default": "Fortsett {modifier}", + "name": "Fortsett {modifier} til {way_name}", + "destination": "Fortsett {modifier} mot {destination}" + }, + "uturn": { + "default": "Ta en U-sving", + "name": "Ta en U-sving til {way_name}", + "destination": "Ta en U-sving mot {destination}" + } + }, + "off ramp": { + "default": { + "default": "Ta avkjørselen", + "name": "Ta avkjørselen inn på {way_name}", + "destination": "Ta avkjørselen mot {destination}", + "exit": "Ta avkjørsel {exit}", + "exit_destination": "Ta avkjørsel {exit} mot {destination}" + }, + "left": { + "default": "Ta avkjørselen på venstre side", + "name": "Ta avkjørselen på venstre side inn på {way_name}", + "destination": "Ta avkjørselen på venstre side mot {destination}", + "exit": "Ta avkjørsel {exit} på venstre side", + "exit_destination": "Ta avkjørsel {exit} på venstre side mot {destination}" + }, + "right": { + "default": "Ta avkjørselen på høyre side", + "name": "Ta avkjørselen på høyre side inn på {way_name}", + "destination": "Ta avkjørselen på høyre side mot {destination}", + "exit": "Ta avkjørsel {exit} på høyre side", + "exit_destination": "Ta avkjørsel {exit} på høyre side mot {destination}" + }, + "sharp left": { + "default": "Ta avkjørselen på venstre side", + "name": "Ta avkjørselen på venstre side inn på {way_name}", + "destination": "Ta avkjørselen på venstre side mot {destination}", + "exit": "Ta avkjørsel {exit} på venstre side", + "exit_destination": "Ta avkjørsel {exit} på venstre side mot {destination}" + }, + "sharp right": { + "default": "Ta avkjørselen på høyre side", + "name": "Ta avkjørselen på høyre side inn på {way_name}", + "destination": "Ta avkjørselen på høyre side mot {destination}", + "exit": "Ta avkjørsel {exit} på høyre side", + "exit_destination": "Ta avkjørsel {exit} på høyre side mot {destination}" + }, + "slight left": { + "default": "Ta avkjørselen på venstre side", + "name": "Ta avkjørselen på venstre side inn på {way_name}", + "destination": "Ta avkjørselen på venstre side mot {destination}", + "exit": "Ta avkjørsel {exit} på venstre side", + "exit_destination": "Ta avkjørsel {exit} på venstre side mot {destination}" + }, + "slight right": { + "default": "Ta avkjørselen på høyre side", + "name": "Ta avkjørselen på høyre side inn på {way_name}", + "destination": "Ta avkjørselen på høyre side mot {destination}", + "exit": "Ta avkjørsel {exit} på høyre side", + "exit_destination": "Ta avkjørsel {exit} på høyre side mot {destination}" + } + }, + "on ramp": { + "default": { + "default": "Ta avkjørselen", + "name": "Ta avkjørselen inn på {way_name}", + "destination": "Ta avkjørselen mot {destination}" + }, + "left": { + "default": "Ta avkjørselen på venstre side", + "name": "Ta avkjørselen på venstre side inn på {way_name}", + "destination": "Ta avkjørselen på venstre side mot {destination}" + }, + "right": { + "default": "Ta avkjørselen på høyre side", + "name": "Ta avkjørselen på høyre side inn på {way_name}", + "destination": "Ta avkjørselen på høyre side mot {destination}" + }, + "sharp left": { + "default": "Ta avkjørselen på venstre side", + "name": "Ta avkjørselen på venstre side inn på {way_name}", + "destination": "Ta avkjørselen på venstre side mot {destination}" + }, + "sharp right": { + "default": "Ta avkjørselen på høyre side", + "name": "Ta avkjørselen på høyre side inn på {way_name}", + "destination": "Ta avkjørselen på høyre side mot {destination}" + }, + "slight left": { + "default": "Ta avkjørselen på venstre side", + "name": "Ta avkjørselen på venstre side inn på {way_name}", + "destination": "Ta avkjørselen på venstre side mot {destination}" + }, + "slight right": { + "default": "Ta avkjørselen på høyre side", + "name": "Ta avkjørselen på høyre side inn på {way_name}", + "destination": "Ta avkjørselen på høyre side mot {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Kjør inn i rundkjøringen", + "name": "Kjør inn i rundkjøringen og deretter ut på {way_name}", + "destination": "Kjør inn i rundkjøringen og deretter ut mot {destination}" + }, + "name": { + "default": "Kjør inn i {rotary_name}", + "name": "Kjør inn i {rotary_name} og deretter ut på {way_name}", + "destination": "Kjør inn i {rotary_name} og deretter ut mot {destination}" + }, + "exit": { + "default": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel", + "name": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut på {way_name}", + "destination": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut mot {destination} " + }, + "name_exit": { + "default": "Kjør inn i {rotary_name} og ta {exit_number} avkjørsel", + "name": "Kjør inn i {rotary_name} og ta {exit_number} avkjørsel inn på {way_name}", + "destination": "Kjør inn i {rotary_name} og ta {exit_number} avkjørsel mot {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel", + "name": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel inn på {way_name}", + "destination": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut mot {destination} " + }, + "default": { + "default": "Kjør inn i rundkjøringen", + "name": "Kjør inn i rundkjøringen og deretter ut på {way_name}", + "destination": "Kjør inn i rundkjøringen og deretter ut mot {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Ta en {modifier}", + "name": "Ta en {modifier} inn på {way_name}", + "destination": "Ta en {modifier} mot {destination}" + }, + "left": { + "default": "Sving til venstre", + "name": "Sving til venstre inn på {way_name}", + "destination": "Sving til venstre mot {destination}" + }, + "right": { + "default": "Sving til høyre", + "name": "Sving til høyre inn på {way_name}", + "destination": "Sving til høyre mot {destination}" + }, + "straight": { + "default": "Fortsett rett frem", + "name": "Fortsett rett frem til {way_name}", + "destination": "Fortsett rett frem mot {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Kjør ut av rundkjøringen", + "name": "Kjør ut av rundkjøringen og inn på {way_name}", + "destination": "Kjør ut av rundkjøringen mot {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Kjør ut av rundkjøringen", + "name": "Kjør ut av rundkjøringen og inn på {way_name}", + "destination": "Kjør ut av rundkjøringen mot {destination}" + } + }, + "turn": { + "default": { + "default": "Ta en {modifier}", + "name": "Ta en {modifier} inn på {way_name}", + "destination": "Ta en {modifier} mot {destination}" + }, + "left": { + "default": "Sving til venstre", + "name": "Sving til venstre inn på {way_name}", + "destination": "Sving til venstre mot {destination}" + }, + "right": { + "default": "Sving til høyre", + "name": "Sving til høyre inn på {way_name}", + "destination": "Sving til høyre mot {destination}" + }, + "straight": { + "default": "Kjør rett frem", + "name": "Kjør rett frem og inn på {way_name}", + "destination": "Kjør rett frem mot {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Fortsett rett frem" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],38:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1.", + "2": "2.", + "3": "3.", + "4": "4.", + "5": "5.", + "6": "6.", + "7": "7.", + "8": "8.", + "9": "9.", + "10": "10." + }, + "direction": { + "north": "północ", + "northeast": "północny wschód", + "east": "wschód", + "southeast": "południowy wschód", + "south": "południe", + "southwest": "południowy zachód", + "west": "zachód", + "northwest": "północny zachód" + }, + "modifier": { + "left": "lewo", + "right": "prawo", + "sharp left": "ostro w lewo", + "sharp right": "ostro w prawo", + "slight left": "łagodnie w lewo", + "slight right": "łagodnie w prawo", + "straight": "prosto", + "uturn": "zawróć" + }, + "lanes": { + "xo": "Trzymaj się prawej strony", + "ox": "Trzymaj się lewej strony", + "xox": "Trzymaj się środka", + "oxo": "Trzymaj się lewej lub prawej strony" + } + }, + "modes": { + "ferry": { + "default": "Weź prom", + "name": "Weź prom {way_name}", + "destination": "Weź prom w kierunku {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, następnie za {distance} {instruction_two}", + "two linked": "{instruction_one}, następnie {instruction_two}", + "one in distance": "Za {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "exit {exit}" + }, + "arrive": { + "default": { + "default": "Dojechano do miejsca docelowego {nth}", + "upcoming": "Dojechano do miejsca docelowego {nth}", + "short": "Dojechano do miejsca docelowego {nth}", + "short-upcoming": "Dojechano do miejsca docelowego {nth}", + "named": "Dojechano do {waypoint_name}" + }, + "left": { + "default": "Dojechano do miejsca docelowego {nth}, po lewej stronie", + "upcoming": "Dojechano do miejsca docelowego {nth}, po lewej stronie", + "short": "Dojechano do miejsca docelowego {nth}", + "short-upcoming": "Dojechano do miejsca docelowego {nth}", + "named": "Dojechano do {waypoint_name}, po lewej stronie" + }, + "right": { + "default": "Dojechano do miejsca docelowego {nth}, po prawej stronie", + "upcoming": "Dojechano do miejsca docelowego {nth}, po prawej stronie", + "short": "Dojechano do miejsca docelowego {nth}", + "short-upcoming": "Dojechano do miejsca docelowego {nth}", + "named": "Dojechano do {waypoint_name}, po prawej stronie" + }, + "sharp left": { + "default": "Dojechano do miejsca docelowego {nth}, po lewej stronie", + "upcoming": "Dojechano do miejsca docelowego {nth}, po lewej stronie", + "short": "Dojechano do miejsca docelowego {nth}", + "short-upcoming": "Dojechano do miejsca docelowego {nth}", + "named": "Dojechano do {waypoint_name}, po lewej stronie" + }, + "sharp right": { + "default": "Dojechano do miejsca docelowego {nth}, po prawej stronie", + "upcoming": "Dojechano do miejsca docelowego {nth}, po prawej stronie", + "short": "Dojechano do miejsca docelowego {nth}", + "short-upcoming": "Dojechano do miejsca docelowego {nth}", + "named": "Dojechano do {waypoint_name}, po prawej stronie" + }, + "slight right": { + "default": "Dojechano do miejsca docelowego {nth}, po prawej stronie", + "upcoming": "Dojechano do miejsca docelowego {nth}, po prawej stronie", + "short": "Dojechano do miejsca docelowego {nth}", + "short-upcoming": "Dojechano do miejsca docelowego {nth}", + "named": "Dojechano do {waypoint_name}, po prawej stronie" + }, + "slight left": { + "default": "Dojechano do miejsca docelowego {nth}, po lewej stronie", + "upcoming": "Dojechano do miejsca docelowego {nth}, po lewej stronie", + "short": "Dojechano do miejsca docelowego {nth}", + "short-upcoming": "Dojechano do miejsca docelowego {nth}", + "named": "Dojechano do {waypoint_name}, po lewej stronie" + }, + "straight": { + "default": "Dojechano do miejsca docelowego {nth} , prosto", + "upcoming": "Dojechano do miejsca docelowego {nth} , prosto", + "short": "Dojechano do miejsca docelowego {nth}", + "short-upcoming": "Dojechano do miejsca docelowego {nth}", + "named": "Dojechano do {waypoint_name}, prosto" + } + }, + "continue": { + "default": { + "default": "Skręć {modifier}", + "name": "Skręć w {modifier}, aby pozostać na {way_name}", + "destination": "Skręć {modifier} w kierunku {destination}", + "exit": "Skręć {modifier} na {way_name}" + }, + "straight": { + "default": "Kontynuuj prosto", + "name": "Jedź dalej prosto, aby pozostać na {way_name}", + "destination": "Kontynuuj w kierunku {destination}", + "distance": "Jedź dalej prosto przez {distance}", + "namedistance": "Jedź dalej {way_name} przez {distance}" + }, + "sharp left": { + "default": "Skręć ostro w lewo", + "name": "Skręć w lewo w ostry zakręt, aby pozostać na {way_name}", + "destination": "Skręć ostro w lewo w kierunku {destination}" + }, + "sharp right": { + "default": "Skręć ostro w prawo", + "name": "Skręć w prawo w ostry zakręt, aby pozostać na {way_name}", + "destination": "Skręć ostro w prawo w kierunku {destination}" + }, + "slight left": { + "default": "Skręć w lewo w łagodny zakręt", + "name": "Skręć w lewo w łagodny zakręt, aby pozostać na {way_name}", + "destination": "Skręć w lewo w łagodny zakręt na {destination}" + }, + "slight right": { + "default": "Skręć w prawo w łagodny zakręt", + "name": "Skręć w prawo w łagodny zakręt, aby pozostać na {way_name}", + "destination": "Skręć w prawo w łagodny zakręt na {destination}" + }, + "uturn": { + "default": "Zawróć", + "name": "Zawróć i jedź dalej {way_name}", + "destination": "Zawróć w kierunku {destination}" + } + }, + "depart": { + "default": { + "default": "Kieruj się {direction}", + "name": "Kieruj się {direction} na {way_name}", + "namedistance": "Head {direction} on {way_name} for {distance}" + } + }, + "end of road": { + "default": { + "default": "Skręć {modifier}", + "name": "Skręć {modifier} na {way_name}", + "destination": "Skręć {modifier} w kierunku {destination}" + }, + "straight": { + "default": "Kontynuuj prosto", + "name": "Kontynuuj prosto na {way_name}", + "destination": "Kontynuuj prosto w kierunku {destination}" + }, + "uturn": { + "default": "Zawróć na końcu ulicy", + "name": "Zawróć na końcu ulicy na {way_name}", + "destination": "Zawróć na końcu ulicy w kierunku {destination}" + } + }, + "fork": { + "default": { + "default": "Na rozwidleniu trzymaj się {modifier}", + "name": "Na rozwidleniu trzymaj się {modifier} na {way_name}", + "destination": "Na rozwidleniu trzymaj się {modifier} w kierunku {destination}" + }, + "slight left": { + "default": "Na rozwidleniu trzymaj się lewej strony", + "name": "Na rozwidleniu trzymaj się lewej strony w {way_name}", + "destination": "Na rozwidleniu trzymaj się lewej strony w kierunku {destination}" + }, + "slight right": { + "default": "Na rozwidleniu trzymaj się prawej strony", + "name": "Na rozwidleniu trzymaj się prawej strony na {way_name}", + "destination": "Na rozwidleniu trzymaj się prawej strony w kierunku {destination}" + }, + "sharp left": { + "default": "Na rozwidleniu skręć ostro w lewo", + "name": "Skręć ostro w lewo w {way_name}", + "destination": "Skręć ostro w lewo w kierunku {destination}" + }, + "sharp right": { + "default": "Na rozwidleniu skręć ostro w prawo", + "name": "Skręć ostro w prawo na {way_name}", + "destination": "Skręć ostro w prawo w kierunku {destination}" + }, + "uturn": { + "default": "Zawróć", + "name": "Zawróć na {way_name}", + "destination": "Zawróć w kierunku {destination}" + } + }, + "merge": { + "default": { + "default": "Włącz się {modifier}", + "name": "Włącz się {modifier} na {way_name}", + "destination": "Włącz się {modifier} w kierunku {destination}" + }, + "straight": { + "default": "Włącz się prosto", + "name": "Włącz się prosto na {way_name}", + "destination": "Włącz się prosto w kierunku {destination}" + }, + "slight left": { + "default": "Włącz się z lewej strony", + "name": "Włącz się z lewej strony na {way_name}", + "destination": "Włącz się z lewej strony w kierunku {destination}" + }, + "slight right": { + "default": "Włącz się z prawej strony", + "name": "Włącz się z prawej strony na {way_name}", + "destination": "Włącz się z prawej strony w kierunku {destination}" + }, + "sharp left": { + "default": "Włącz się z lewej strony", + "name": "Włącz się z lewej strony na {way_name}", + "destination": "Włącz się z lewej strony w kierunku {destination}" + }, + "sharp right": { + "default": "Włącz się z prawej strony", + "name": "Włącz się z prawej strony na {way_name}", + "destination": "Włącz się z prawej strony w kierunku {destination}" + }, + "uturn": { + "default": "Zawróć", + "name": "Zawróć na {way_name}", + "destination": "Zawróć w kierunku {destination}" + } + }, + "new name": { + "default": { + "default": "Kontynuuj {modifier}", + "name": "Kontynuuj {modifier} na {way_name}", + "destination": "Kontynuuj {modifier} w kierunku {destination}" + }, + "straight": { + "default": "Kontynuuj prosto", + "name": "Kontynuuj na {way_name}", + "destination": "Kontynuuj w kierunku {destination}" + }, + "sharp left": { + "default": "Skręć ostro w lewo", + "name": "Skręć ostro w lewo w {way_name}", + "destination": "Skręć ostro w lewo w kierunku {destination}" + }, + "sharp right": { + "default": "Skręć ostro w prawo", + "name": "Skręć ostro w prawo na {way_name}", + "destination": "Skręć ostro w prawo w kierunku {destination}" + }, + "slight left": { + "default": "Kontynuuj łagodnie w lewo", + "name": "Kontynuuj łagodnie w lewo na {way_name}", + "destination": "Kontynuuj łagodnie w lewo w kierunku {destination}" + }, + "slight right": { + "default": "Kontynuuj łagodnie w prawo", + "name": "Kontynuuj łagodnie w prawo na {way_name}", + "destination": "Kontynuuj łagodnie w prawo w kierunku {destination}" + }, + "uturn": { + "default": "Zawróć", + "name": "Zawróć na {way_name}", + "destination": "Zawróć w kierunku {destination}" + } + }, + "notification": { + "default": { + "default": "Kontynuuj {modifier}", + "name": "Kontynuuj {modifier} na {way_name}", + "destination": "Kontynuuj {modifier} w kierunku {destination}" + }, + "uturn": { + "default": "Zawróć", + "name": "Zawróć na {way_name}", + "destination": "Zawróć w kierunku {destination}" + } + }, + "off ramp": { + "default": { + "default": "Zjedź", + "name": "Weź zjazd na {way_name}", + "destination": "Weź zjazd w kierunku {destination}", + "exit": "Zjedź zjazdem {exit}", + "exit_destination": "Zjedź zjazdem {exit} na {destination}" + }, + "left": { + "default": "Weź zjazd po lewej", + "name": "Weź zjazd po lewej na {way_name}", + "destination": "Weź zjazd po lewej w kierunku {destination}", + "exit": "Zjedź zjazdem {exit} po lewej stronie", + "exit_destination": "Zjedź zjazdem {exit} po lewej stronie na {destination}" + }, + "right": { + "default": "Weź zjazd po prawej", + "name": "Weź zjazd po prawej na {way_name}", + "destination": "Weź zjazd po prawej w kierunku {destination}", + "exit": "Zjedź zjazdem {exit} po prawej stronie", + "exit_destination": "Zjedź zjazdem {exit} po prawej stronie na {destination}" + }, + "sharp left": { + "default": "Weź zjazd po lewej", + "name": "Weź zjazd po lewej na {way_name}", + "destination": "Weź zjazd po lewej w kierunku {destination}", + "exit": "Zjedź zjazdem {exit} po lewej stronie", + "exit_destination": "Zjedź zjazdem {exit} po lewej stronie na {destination}" + }, + "sharp right": { + "default": "Weź zjazd po prawej", + "name": "Weź zjazd po prawej na {way_name}", + "destination": "Weź zjazd po prawej w kierunku {destination}", + "exit": "Zjedź zjazdem {exit} po prawej stronie", + "exit_destination": "Zjedź zjazdem {exit} po prawej stronie na {destination}" + }, + "slight left": { + "default": "Weź zjazd po lewej", + "name": "Weź zjazd po lewej na {way_name}", + "destination": "Weź zjazd po lewej w kierunku {destination}", + "exit": "Zjedź zjazdem {exit} po lewej stronie", + "exit_destination": "Zjedź zjazdem {exit} po lewej stronie na {destination}" + }, + "slight right": { + "default": "Weź zjazd po prawej", + "name": "Weź zjazd po prawej na {way_name}", + "destination": "Weź zjazd po prawej w kierunku {destination}", + "exit": "Zjedź zjazdem {exit} po prawej stronie", + "exit_destination": "Zjedź zjazdem {exit} po prawej stronie na {destination}" + } + }, + "on ramp": { + "default": { + "default": "Weź zjazd", + "name": "Weź zjazd na {way_name}", + "destination": "Weź zjazd w kierunku {destination}" + }, + "left": { + "default": "Weź zjazd po lewej", + "name": "Weź zjazd po lewej na {way_name}", + "destination": "Weź zjazd po lewej w kierunku {destination}" + }, + "right": { + "default": "Weź zjazd po prawej", + "name": "Weź zjazd po prawej na {way_name}", + "destination": "Weź zjazd po prawej w kierunku {destination}" + }, + "sharp left": { + "default": "Weź zjazd po lewej", + "name": "Weź zjazd po lewej na {way_name}", + "destination": "Weź zjazd po lewej w kierunku {destination}" + }, + "sharp right": { + "default": "Weź zjazd po prawej", + "name": "Weź zjazd po prawej na {way_name}", + "destination": "Weź zjazd po prawej w kierunku {destination}" + }, + "slight left": { + "default": "Weź zjazd po lewej", + "name": "Weź zjazd po lewej na {way_name}", + "destination": "Weź zjazd po lewej w kierunku {destination}" + }, + "slight right": { + "default": "Weź zjazd po prawej", + "name": "Weź zjazd po prawej na {way_name}", + "destination": "Weź zjazd po prawej w kierunku {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Wjedź na rondo", + "name": "Wjedź na rondo i skręć na {way_name}", + "destination": "Wjedź na rondo i skręć w kierunku {destination}" + }, + "name": { + "default": "Wjedź na {rotary_name}", + "name": "Wjedź na {rotary_name} i skręć na {way_name}", + "destination": "Wjedź na {rotary_name} i skręć w kierunku {destination}" + }, + "exit": { + "default": "Wjedź na rondo i wyjedź {exit_number} zjazdem", + "name": "Wjedź na rondo i wyjedź {exit_number} zjazdem na {way_name}", + "destination": "Wjedź na rondo i wyjedź {exit_number} zjazdem w kierunku {destination}" + }, + "name_exit": { + "default": "Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem", + "name": "Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem na {way_name}", + "destination": "Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem w kierunku {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Wjedź na rondo i wyjedź {exit_number} zjazdem", + "name": "Wjedź na rondo i wyjedź {exit_number} zjazdem na {way_name}", + "destination": "Wjedź na rondo i wyjedź {exit_number} zjazdem w kierunku {destination}" + }, + "default": { + "default": "Wjedź na rondo", + "name": "Wjedź na rondo i wyjedź na {way_name}", + "destination": "Wjedź na rondo i wyjedź w kierunku {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "{modifier}", + "name": "{modifier} na {way_name}", + "destination": "{modifier} w kierunku {destination}" + }, + "left": { + "default": "Skręć w lewo", + "name": "Skręć w lewo na {way_name}", + "destination": "Skręć w lewo w kierunku {destination}" + }, + "right": { + "default": "Skręć w prawo", + "name": "Skręć w prawo na {way_name}", + "destination": "Skręć w prawo w kierunku {destination}" + }, + "straight": { + "default": "Kontynuuj prosto", + "name": "Kontynuuj prosto na {way_name}", + "destination": "Kontynuuj prosto w kierunku {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "{modifier}", + "name": "{modifier} na {way_name}", + "destination": "{modifier} w kierunku {destination}" + }, + "left": { + "default": "Skręć w lewo", + "name": "Skręć w lewo na {way_name}", + "destination": "Skręć w lewo w kierunku {destination}" + }, + "right": { + "default": "Skręć w prawo", + "name": "Skręć w prawo na {way_name}", + "destination": "Skręć w prawo w kierunku {destination}" + }, + "straight": { + "default": "Kontynuuj prosto", + "name": "Kontynuuj prosto na {way_name}", + "destination": "Kontynuuj prosto w kierunku {destination}" + } + }, + "exit rotary": { + "default": { + "default": "{modifier}", + "name": "{modifier} na {way_name}", + "destination": "{modifier} w kierunku {destination}" + }, + "left": { + "default": "Skręć w lewo", + "name": "Skręć w lewo na {way_name}", + "destination": "Skręć w lewo w kierunku {destination}" + }, + "right": { + "default": "Skręć w prawo", + "name": "Skręć w prawo na {way_name}", + "destination": "Skręć w prawo w kierunku {destination}" + }, + "straight": { + "default": "Jedź prosto", + "name": "Jedź prosto na {way_name}", + "destination": "Jedź prosto w kierunku {destination}" + } + }, + "turn": { + "default": { + "default": "{modifier}", + "name": "{modifier} na {way_name}", + "destination": "{modifier} w kierunku {destination}" + }, + "left": { + "default": "Skręć w lewo", + "name": "Skręć w lewo na {way_name}", + "destination": "Skręć w lewo w kierunku {destination}" + }, + "right": { + "default": "Skręć w prawo", + "name": "Skręć w prawo na {way_name}", + "destination": "Skręć w prawo w kierunku {destination}" + }, + "straight": { + "default": "Jedź prosto", + "name": "Jedź prosto na {way_name}", + "destination": "Jedź prosto w kierunku {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Kontynuuj prosto" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],39:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1º", + "2": "2º", + "3": "3º", + "4": "4º", + "5": "5º", + "6": "6º", + "7": "7º", + "8": "8º", + "9": "9º", + "10": "10º" + }, + "direction": { + "north": "norte", + "northeast": "nordeste", + "east": "leste", + "southeast": "sudeste", + "south": "sul", + "southwest": "sudoeste", + "west": "oeste", + "northwest": "noroeste" + }, + "modifier": { + "left": "à esquerda", + "right": "à direita", + "sharp left": "fechada à esquerda", + "sharp right": "fechada à direita", + "slight left": "suave à esquerda", + "slight right": "suave à direita", + "straight": "em frente", + "uturn": "retorno" + }, + "lanes": { + "xo": "Mantenha-se à direita", + "ox": "Mantenha-se à esquerda", + "xox": "Mantenha-se ao centro", + "oxo": "Mantenha-se à esquerda ou direita" + } + }, + "modes": { + "ferry": { + "default": "Pegue a balsa", + "name": "Pegue a balsa {way_name}", + "destination": "Pegue a balsa sentido {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, então, em {distance}, {instruction_two}", + "two linked": "{instruction_one}, então {instruction_two}", + "one in distance": "Em {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "saída {exit}" + }, + "arrive": { + "default": { + "default": "Você chegou ao seu {nth} destino", + "upcoming": "Você chegará ao seu {nth} destino", + "short": "Você chegou", + "short-upcoming": "Você vai chegar", + "named": "Você chegou a {waypoint_name}" + }, + "left": { + "default": "Você chegou ao seu {nth} destino, à esquerda", + "upcoming": "Você chegará ao seu {nth} destino, à esquerda", + "short": "Você chegou", + "short-upcoming": "Você vai chegar", + "named": "Você chegou {waypoint_name}, à esquerda" + }, + "right": { + "default": "Você chegou ao seu {nth} destino, à direita", + "upcoming": "Você chegará ao seu {nth} destino, à direita", + "short": "Você chegou", + "short-upcoming": "Você vai chegar", + "named": "Você chegou {waypoint_name}, à direita" + }, + "sharp left": { + "default": "Você chegou ao seu {nth} destino, à esquerda", + "upcoming": "Você chegará ao seu {nth} destino, à esquerda", + "short": "Você chegou", + "short-upcoming": "Você vai chegar", + "named": "Você chegou {waypoint_name}, à esquerda" + }, + "sharp right": { + "default": "Você chegou ao seu {nth} destino, à direita", + "upcoming": "Você chegará ao seu {nth} destino, à direita", + "short": "Você chegou", + "short-upcoming": "Você vai chegar", + "named": "Você chegou {waypoint_name}, à direita" + }, + "slight right": { + "default": "Você chegou ao seu {nth} destino, à direita", + "upcoming": "Você chegará ao seu {nth} destino, à direita", + "short": "Você chegou", + "short-upcoming": "Você vai chegar", + "named": "Você chegou {waypoint_name}, à direita" + }, + "slight left": { + "default": "Você chegou ao seu {nth} destino, à esquerda", + "upcoming": "Você chegará ao seu {nth} destino, à esquerda", + "short": "Você chegou", + "short-upcoming": "Você vai chegar", + "named": "Você chegou {waypoint_name}, à esquerda" + }, + "straight": { + "default": "Você chegou ao seu {nth} destino, em frente", + "upcoming": "Você vai chegar ao seu {nth} destino, em frente", + "short": "Você chegou", + "short-upcoming": "Você vai chegar", + "named": "You have arrived at {waypoint_name}, straight ahead" + } + }, + "continue": { + "default": { + "default": "Vire {modifier}", + "name": "Vire {modifier} para manter-se na {way_name}", + "destination": "Vire {modifier} sentido {destination}", + "exit": "Vire {modifier} em {way_name}" + }, + "straight": { + "default": "Continue em frente", + "name": "Continue em frente para manter-se na {way_name}", + "destination": "Continue em direção à {destination}", + "distance": "Continue em frente por {distance}", + "namedistance": "Continue na {way_name} por {distance}" + }, + "sharp left": { + "default": "Faça uma curva fechada a esquerda", + "name": "Faça uma curva fechada a esquerda para manter-se na {way_name}", + "destination": "Faça uma curva fechada a esquerda sentido {destination}" + }, + "sharp right": { + "default": "Faça uma curva fechada a direita", + "name": "Faça uma curva fechada a direita para manter-se na {way_name}", + "destination": "Faça uma curva fechada a direita sentido {destination}" + }, + "slight left": { + "default": "Faça uma curva suave a esquerda", + "name": "Faça uma curva suave a esquerda para manter-se na {way_name}", + "destination": "Faça uma curva suave a esquerda em direção a {destination}" + }, + "slight right": { + "default": "Faça uma curva suave a direita", + "name": "Faça uma curva suave a direita para manter-se na {way_name}", + "destination": "Faça uma curva suave a direita em direção a {destination}" + }, + "uturn": { + "default": "Faça o retorno", + "name": "Faça o retorno e continue em {way_name}", + "destination": "Faça o retorno sentido {destination}" + } + }, + "depart": { + "default": { + "default": "Siga {direction}", + "name": "Siga {direction} em {way_name}", + "namedistance": "Siga {direction} na {way_name} por {distance}" + } + }, + "end of road": { + "default": { + "default": "Vire {modifier}", + "name": "Vire {modifier} em {way_name}", + "destination": "Vire {modifier} sentido {destination}" + }, + "straight": { + "default": "Continue em frente", + "name": "Continue em frente em {way_name}", + "destination": "Continue em frente sentido {destination}" + }, + "uturn": { + "default": "Faça o retorno no fim da rua", + "name": "Faça o retorno em {way_name} no fim da rua", + "destination": "Faça o retorno sentido {destination} no fim da rua" + } + }, + "fork": { + "default": { + "default": "Mantenha-se {modifier} na bifurcação", + "name": "Mantenha-se {modifier} na bifurcação em {way_name}", + "destination": "Mantenha-se {modifier} na bifurcação sentido {destination}" + }, + "slight left": { + "default": "Mantenha-se à esquerda na bifurcação", + "name": "Mantenha-se à esquerda na bifurcação em {way_name}", + "destination": "Mantenha-se à esquerda na bifurcação sentido {destination}" + }, + "slight right": { + "default": "Mantenha-se à direita na bifurcação", + "name": "Mantenha-se à direita na bifurcação em {way_name}", + "destination": "Mantenha-se à direita na bifurcação sentido {destination}" + }, + "sharp left": { + "default": "Faça uma curva fechada à esquerda na bifurcação", + "name": "Faça uma curva fechada à esquerda em {way_name}", + "destination": "Faça uma curva fechada à esquerda sentido {destination}" + }, + "sharp right": { + "default": "Faça uma curva fechada à direita na bifurcação", + "name": "Faça uma curva fechada à direita em {way_name}", + "destination": "Faça uma curva fechada à direita sentido {destination}" + }, + "uturn": { + "default": "Faça o retorno", + "name": "Faça o retorno em {way_name}", + "destination": "Faça o retorno sentido {destination}" + } + }, + "merge": { + "default": { + "default": "Entre {modifier}", + "name": "Entre {modifier} na {way_name}", + "destination": "Entre {modifier} em direção à {destination}" + }, + "straight": { + "default": "Mesclar", + "name": "Entre reto na {way_name}", + "destination": "Entre reto em direção à {destination}" + }, + "slight left": { + "default": "Entre à esquerda", + "name": "Entre à esquerda na {way_name}", + "destination": "Entre à esquerda em direção à {destination}" + }, + "slight right": { + "default": "Entre à direita", + "name": "Entre à direita na {way_name}", + "destination": "Entre à direita em direção à {destination}" + }, + "sharp left": { + "default": "Entre à esquerda", + "name": "Entre à esquerda na {way_name}", + "destination": "Entre à esquerda em direção à {destination}" + }, + "sharp right": { + "default": "Entre à direita", + "name": "Entre à direita na {way_name}", + "destination": "Entre à direita em direção à {destination}" + }, + "uturn": { + "default": "Faça o retorno", + "name": "Faça o retorno em {way_name}", + "destination": "Faça o retorno sentido {destination}" + } + }, + "new name": { + "default": { + "default": "Continue {modifier}", + "name": "Continue {modifier} em {way_name}", + "destination": "Continue {modifier} sentido {destination}" + }, + "straight": { + "default": "Continue em frente", + "name": "Continue em {way_name}", + "destination": "Continue em direção à {destination}" + }, + "sharp left": { + "default": "Faça uma curva fechada à esquerda", + "name": "Faça uma curva fechada à esquerda em {way_name}", + "destination": "Faça uma curva fechada à esquerda sentido {destination}" + }, + "sharp right": { + "default": "Faça uma curva fechada à direita", + "name": "Faça uma curva fechada à direita em {way_name}", + "destination": "Faça uma curva fechada à direita sentido {destination}" + }, + "slight left": { + "default": "Continue ligeiramente à esquerda", + "name": "Continue ligeiramente à esquerda em {way_name}", + "destination": "Continue ligeiramente à esquerda sentido {destination}" + }, + "slight right": { + "default": "Continue ligeiramente à direita", + "name": "Continue ligeiramente à direita em {way_name}", + "destination": "Continue ligeiramente à direita sentido {destination}" + }, + "uturn": { + "default": "Faça o retorno", + "name": "Faça o retorno em {way_name}", + "destination": "Faça o retorno sentido {destination}" + } + }, + "notification": { + "default": { + "default": "Continue {modifier}", + "name": "Continue {modifier} em {way_name}", + "destination": "Continue {modifier} sentido {destination}" + }, + "uturn": { + "default": "Faça o retorno", + "name": "Faça o retorno em {way_name}", + "destination": "Faça o retorno sentido {destination}" + } + }, + "off ramp": { + "default": { + "default": "Pegue a rampa", + "name": "Pegue a rampa em {way_name}", + "destination": "Pegue a rampa sentido {destination}", + "exit": "Pegue a saída {exit}", + "exit_destination": "Pegue a saída {exit} em direção à {destination}" + }, + "left": { + "default": "Pegue a rampa à esquerda", + "name": "Pegue a rampa à esquerda em {way_name}", + "destination": "Pegue a rampa à esquerda sentido {destination}", + "exit": "Pegue a saída {exit} à esquerda", + "exit_destination": "Pegue a saída {exit} à esquerda em direção à {destination}" + }, + "right": { + "default": "Pegue a rampa à direita", + "name": "Pegue a rampa à direita em {way_name}", + "destination": "Pegue a rampa à direita sentido {destination}", + "exit": "Pegue a saída {exit} à direita", + "exit_destination": "Pegue a saída {exit} à direita em direção à {destination}" + }, + "sharp left": { + "default": "Pegue a rampa à esquerda", + "name": "Pegue a rampa à esquerda em {way_name}", + "destination": "Pegue a rampa à esquerda sentido {destination}", + "exit": "Pegue a saída {exit} à esquerda", + "exit_destination": "Pegue a saída {exit} à esquerda em direção à {destination}" + }, + "sharp right": { + "default": "Pegue a rampa à direita", + "name": "Pegue a rampa à direita em {way_name}", + "destination": "Pegue a rampa à direita sentido {destination}", + "exit": "Pegue a saída {exit} à direita", + "exit_destination": "Pegue a saída {exit} à direita em direção à {destination}" + }, + "slight left": { + "default": "Pegue a rampa à esquerda", + "name": "Pegue a rampa à esquerda em {way_name}", + "destination": "Pegue a rampa à esquerda sentido {destination}", + "exit": "Pegue a saída {exit} à esquerda", + "exit_destination": "Pegue a saída {exit} à esquerda em direção à {destination}" + }, + "slight right": { + "default": "Pegue a rampa à direita", + "name": "Pegue a rampa à direita em {way_name}", + "destination": "Pegue a rampa à direita sentido {destination}", + "exit": "Pegue a saída {exit} à direita", + "exit_destination": "Pegue a saída {exit} à direita em direção à {destination}" + } + }, + "on ramp": { + "default": { + "default": "Pegue a rampa", + "name": "Pegue a rampa em {way_name}", + "destination": "Pegue a rampa sentido {destination}" + }, + "left": { + "default": "Pegue a rampa à esquerda", + "name": "Pegue a rampa à esquerda em {way_name}", + "destination": "Pegue a rampa à esquerda sentido {destination}" + }, + "right": { + "default": "Pegue a rampa à direita", + "name": "Pegue a rampa à direita em {way_name}", + "destination": "Pegue a rampa à direita sentid {destination}" + }, + "sharp left": { + "default": "Pegue a rampa à esquerda", + "name": "Pegue a rampa à esquerda em {way_name}", + "destination": "Pegue a rampa à esquerda sentido {destination}" + }, + "sharp right": { + "default": "Pegue a rampa à direita", + "name": "Pegue a rampa à direita em {way_name}", + "destination": "Pegue a rampa à direita sentido {destination}" + }, + "slight left": { + "default": "Pegue a rampa à esquerda", + "name": "Pegue a rampa à esquerda em {way_name}", + "destination": "Pegue a rampa à esquerda sentido {destination}" + }, + "slight right": { + "default": "Pegue a rampa à direita", + "name": "Pegue a rampa à direita em {way_name}", + "destination": "Pegue a rampa à direita sentido {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Entre na rotatória", + "name": "Entre na rotatória e saia na {way_name}", + "destination": "Entre na rotatória e saia sentido {destination}" + }, + "name": { + "default": "Entre em {rotary_name}", + "name": "Entre em {rotary_name} e saia em {way_name}", + "destination": "Entre em {rotary_name} e saia sentido {destination}" + }, + "exit": { + "default": "Entre na rotatória e pegue a {exit_number} saída", + "name": "Entre na rotatória e pegue a {exit_number} saída na {way_name}", + "destination": "Entre na rotatória e pegue a {exit_number} saída sentido {destination}" + }, + "name_exit": { + "default": "Entre em {rotary_name} e saia na {exit_number} saída", + "name": "Entre em {rotary_name} e saia na {exit_number} saída em {way_name}", + "destination": "Entre em {rotary_name} e saia na {exit_number} saída sentido {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Entre na rotatória e pegue a {exit_number} saída", + "name": "Entre na rotatória e pegue a {exit_number} saída na {way_name}", + "destination": "Entre na rotatória e pegue a {exit_number} saída sentido {destination}" + }, + "default": { + "default": "Entre na rotatória", + "name": "Entre na rotatória e saia na {way_name}", + "destination": "Entre na rotatória e saia sentido {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Siga {modifier}", + "name": "Siga {modifier} em {way_name}", + "destination": "Siga {modifier} sentido {destination}" + }, + "left": { + "default": "Vire à esquerda", + "name": "Vire à esquerda em {way_name}", + "destination": "Vire à esquerda sentido {destination}" + }, + "right": { + "default": "Vire à direita", + "name": "Vire à direita em {way_name}", + "destination": "Vire à direita sentido {destination}" + }, + "straight": { + "default": "Continue em frente", + "name": "Continue em frente em {way_name}", + "destination": "Continue em frente sentido {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Saia da rotatória", + "name": "Exit the traffic circle onto {way_name}", + "destination": "Exit the traffic circle towards {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Saia da rotatória", + "name": "Exit the traffic circle onto {way_name}", + "destination": "Exit the traffic circle towards {destination}" + } + }, + "turn": { + "default": { + "default": "Siga {modifier}", + "name": "Siga {modifier} em {way_name}", + "destination": "Siga {modifier} sentido {destination}" + }, + "left": { + "default": "Vire à esquerda", + "name": "Vire à esquerda em {way_name}", + "destination": "Vire à esquerda sentido {destination}" + }, + "right": { + "default": "Vire à direita", + "name": "Vire à direita em {way_name}", + "destination": "Vire à direita sentido {destination}" + }, + "straight": { + "default": "Siga em frente", + "name": "Siga em frente em {way_name}", + "destination": "Siga em frente sentido {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Continue em frente" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],40:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1º", + "2": "2º", + "3": "3º", + "4": "4º", + "5": "5º", + "6": "6º", + "7": "7º", + "8": "8º", + "9": "9º", + "10": "10º" + }, + "direction": { + "north": "norte", + "northeast": "nordeste", + "east": "este", + "southeast": "sudeste", + "south": "sul", + "southwest": "sudoeste", + "west": "oeste", + "northwest": "noroeste" + }, + "modifier": { + "left": "à esquerda", + "right": "à direita", + "sharp left": "acentuadamente à esquerda", + "sharp right": "acentuadamente à direita", + "slight left": "ligeiramente à esquerda", + "slight right": "ligeiramente à direita", + "straight": "em frente", + "uturn": "inversão de marcha" + }, + "lanes": { + "xo": "Mantenha-se à direita", + "ox": "Mantenha-se à esquerda", + "xox": "Mantenha-se ao meio", + "oxo": "Mantenha-se à esquerda ou à direita" + } + }, + "modes": { + "ferry": { + "default": "Apanhe o ferry", + "name": "Apanhe o ferry {way_name}", + "destination": "Apanhe o ferry para {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, depois, a {distance}, {instruction_two}", + "two linked": "{instruction_one}, depois {instruction_two}", + "one in distance": "A {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "saída {exit}" + }, + "arrive": { + "default": { + "default": "Chegou ao seu {nth} destino", + "upcoming": "Está a chegar ao seu {nth} destino", + "short": "Chegou", + "short-upcoming": "Está a chegar", + "named": "Chegou a {waypoint_name}" + }, + "left": { + "default": "Chegou ao seu {nth} destino, à esquerda", + "upcoming": "Está a chegar ao seu {nth} destino, à esquerda", + "short": "Chegou", + "short-upcoming": "Está a chegar", + "named": "Chegou a {waypoint_name}, à esquerda" + }, + "right": { + "default": "Chegou ao seu {nth} destino, à direita", + "upcoming": "Está a chegar ao seu {nth} destino, à direita", + "short": "Chegou", + "short-upcoming": "Está a chegar", + "named": "Chegou a {waypoint_name}, à direita" + }, + "sharp left": { + "default": "Chegou ao seu {nth} destino, à esquerda", + "upcoming": "Está a chegar ao seu {nth} destino, à esquerda", + "short": "Chegou", + "short-upcoming": "Está a chegar", + "named": "Chegou a {waypoint_name}, à esquerda" + }, + "sharp right": { + "default": "Chegou ao seu {nth} destino, à direita", + "upcoming": "Está a chegar ao seu {nth} destino, à direita", + "short": "Chegou", + "short-upcoming": "Está a chegar", + "named": "Chegou a {waypoint_name}, à direita" + }, + "slight right": { + "default": "Chegou ao seu {nth} destino, à direita", + "upcoming": "Está a chegar ao seu {nth} destino, à direita", + "short": "Chegou", + "short-upcoming": "Está a chegar", + "named": "Chegou a {waypoint_name}, à direita" + }, + "slight left": { + "default": "Chegou ao seu {nth} destino, à esquerda", + "upcoming": "Está a chegar ao seu {nth} destino, à esquerda", + "short": "Chegou", + "short-upcoming": "Está a chegar", + "named": "Chegou a {waypoint_name}, à esquerda" + }, + "straight": { + "default": "Chegou ao seu {nth} destino, em frente", + "upcoming": "Está a chegar ao seu {nth} destino, em frente", + "short": "Chegou", + "short-upcoming": "Está a chegar", + "named": "Chegou a {waypoint_name}, em frente" + } + }, + "continue": { + "default": { + "default": "Vire {modifier}", + "name": "Vire {modifier} para se manter em {way_name}", + "destination": "Vire {modifier} em direção a {destination}", + "exit": "Vire {modifier} para {way_name}" + }, + "straight": { + "default": "Continue em frente", + "name": "Continue em frente para se manter em {way_name}", + "destination": "Continue em direção a {destination}", + "distance": "Continue em frente por {distance}", + "namedistance": "Continue em {way_name} por {distance}" + }, + "sharp left": { + "default": "Vire acentuadamente à esquerda", + "name": "Vire acentuadamente à esquerda para se manter em {way_name}", + "destination": "Vire acentuadamente à esquerda em direção a {destination}" + }, + "sharp right": { + "default": "Vire acentuadamente à direita", + "name": "Vire acentuadamente à direita para se manter em {way_name}", + "destination": "Vire acentuadamente à direita em direção a {destination}" + }, + "slight left": { + "default": "Vire ligeiramente à esquerda", + "name": "Vire ligeiramente à esquerda para se manter em {way_name}", + "destination": "Vire ligeiramente à esquerda em direção a {destination}" + }, + "slight right": { + "default": "Vire ligeiramente à direita", + "name": "Vire ligeiramente à direita para se manter em {way_name}", + "destination": "Vire ligeiramente à direita em direção a {destination}" + }, + "uturn": { + "default": "Faça inversão de marcha", + "name": "Faça inversão de marcha e continue em {way_name}", + "destination": "Faça inversão de marcha em direção a {destination}" + } + }, + "depart": { + "default": { + "default": "Dirija-se para {direction}", + "name": "Dirija-se para {direction} em {way_name}", + "namedistance": "Dirija-se para {direction} em {way_name} por {distance}" + } + }, + "end of road": { + "default": { + "default": "Vire {modifier}", + "name": "Vire {modifier} para {way_name}", + "destination": "Vire {modifier} em direção a {destination}" + }, + "straight": { + "default": "Continue em frente", + "name": "Continue em frente para {way_name}", + "destination": "Continue em frente em direção a {destination}" + }, + "uturn": { + "default": "No final da estrada faça uma inversão de marcha", + "name": "No final da estrada faça uma inversão de marcha para {way_name} ", + "destination": "No final da estrada faça uma inversão de marcha em direção a {destination}" + } + }, + "fork": { + "default": { + "default": "Na bifurcação mantenha-se {modifier}", + "name": "Mantenha-se {modifier} para {way_name}", + "destination": "Mantenha-se {modifier} em direção a {destination}" + }, + "slight left": { + "default": "Na bifurcação mantenha-se à esquerda", + "name": "Mantenha-se à esquerda para {way_name}", + "destination": "Mantenha-se à esquerda em direção a {destination}" + }, + "slight right": { + "default": "Na bifurcação mantenha-se à direita", + "name": "Mantenha-se à direita para {way_name}", + "destination": "Mantenha-se à direita em direção a {destination}" + }, + "sharp left": { + "default": "Na bifurcação vire acentuadamente à esquerda", + "name": "Vire acentuadamente à esquerda para {way_name}", + "destination": "Vire acentuadamente à esquerda em direção a {destination}" + }, + "sharp right": { + "default": "Na bifurcação vire acentuadamente à direita", + "name": "Vire acentuadamente à direita para {way_name}", + "destination": "Vire acentuadamente à direita em direção a {destination}" + }, + "uturn": { + "default": "Faça inversão de marcha", + "name": "Faça inversão de marcha para {way_name}", + "destination": "Faça inversão de marcha em direção a {destination}" + } + }, + "merge": { + "default": { + "default": "Una-se ao tráfego {modifier}", + "name": "Una-se ao tráfego {modifier} para {way_name}", + "destination": "Una-se ao tráfego {modifier} em direção a {destination}" + }, + "straight": { + "default": "Una-se ao tráfego", + "name": " Una-se ao tráfego para {way_name}", + "destination": "Una-se ao tráfego em direção a {destination}" + }, + "slight left": { + "default": "Una-se ao tráfego à esquerda", + "name": "Una-se ao tráfego à esquerda para {way_name}", + "destination": "Una-se ao tráfego à esquerda em direção a {destination}" + }, + "slight right": { + "default": "Una-se ao tráfego à direita", + "name": "Una-se ao tráfego à direita para {way_name}", + "destination": "Una-se ao tráfego à direita em direção a {destination}" + }, + "sharp left": { + "default": "Una-se ao tráfego à esquerda", + "name": "Una-se ao tráfego à esquerda para {way_name}", + "destination": "Una-se ao tráfego à esquerda em direção a {destination}" + }, + "sharp right": { + "default": "Una-se ao tráfego à direita", + "name": "Una-se ao tráfego à direita para {way_name}", + "destination": "Una-se ao tráfego à direita em direção a {destination}" + }, + "uturn": { + "default": "Faça inversão de marcha", + "name": "Faça inversão de marcha para {way_name}", + "destination": "Faça inversão de marcha em direção a {destination}" + } + }, + "new name": { + "default": { + "default": "Continue {modifier}", + "name": "Continue {modifier} para {way_name}", + "destination": "Continue {modifier} em direção a {destination}" + }, + "straight": { + "default": "Continue em frente", + "name": "Continue para {way_name}", + "destination": "Continue em direção a {destination}" + }, + "sharp left": { + "default": "Vire acentuadamente à esquerda", + "name": "Vire acentuadamente à esquerda para {way_name}", + "destination": "Vire acentuadamente à esquerda em direção a{destination}" + }, + "sharp right": { + "default": "Vire acentuadamente à direita", + "name": "Vire acentuadamente à direita para {way_name}", + "destination": "Vire acentuadamente à direita em direção a {destination}" + }, + "slight left": { + "default": "Continue ligeiramente à esquerda", + "name": "Continue ligeiramente à esquerda para {way_name}", + "destination": "Continue ligeiramente à esquerda em direção a {destination}" + }, + "slight right": { + "default": "Continue ligeiramente à direita", + "name": "Continue ligeiramente à direita para {way_name}", + "destination": "Continue ligeiramente à direita em direção a {destination}" + }, + "uturn": { + "default": "Faça inversão de marcha", + "name": "Faça inversão de marcha para {way_name}", + "destination": "Faça inversão de marcha em direção a {destination}" + } + }, + "notification": { + "default": { + "default": "Continue {modifier}", + "name": "Continue {modifier} para {way_name}", + "destination": "Continue {modifier} em direção a {destination}" + }, + "uturn": { + "default": "Faça inversão de marcha", + "name": "Faça inversão de marcha para {way_name}", + "destination": "Faça inversão de marcha em direção a {destination}" + } + }, + "off ramp": { + "default": { + "default": "Saia na saída", + "name": "Saia na saída para {way_name}", + "destination": "Saia na saída em direção a {destination}", + "exit": "Saia na saída {exit}", + "exit_destination": "Saia na saída {exit} em direção a {destination}" + }, + "left": { + "default": "Saia na saída à esquerda", + "name": "Saia na saída à esquerda para {way_name}", + "destination": "Saia na saída à esquerda em direção a {destination}", + "exit": "Saia na saída {exit} à esquerda", + "exit_destination": "Saia na saída {exit} à esquerda em direção a {destination}" + }, + "right": { + "default": "Saia na saída à direita", + "name": "Saia na saída à direita para {way_name}", + "destination": "Saia na saída à direita em direção a {destination}", + "exit": "Saia na saída {exit} à direita", + "exit_destination": "Saia na saída {exit} à direita em direção a {destination}" + }, + "sharp left": { + "default": "Saia na saída à esquerda", + "name": "Saia na saída à esquerda para {way_name}", + "destination": "Saia na saída à esquerda em direção a {destination}", + "exit": "Saia na saída {exit} à esquerda", + "exit_destination": "Saia na saída {exit} à esquerda em direção a {destination}" + }, + "sharp right": { + "default": "Saia na saída à direita", + "name": "Saia na saída à direita para {way_name}", + "destination": "Saia na saída à direita em direção a {destination}", + "exit": "Saia na saída {exit} à direita", + "exit_destination": "Saia na saída {exit} à direita em direção a {destination}" + }, + "slight left": { + "default": "Saia na saída à esquerda", + "name": "Saia na saída à esquerda para {way_name}", + "destination": "Saia na saída à esquerda em direção a {destination}", + "exit": "Saia na saída {exit} à esquerda", + "exit_destination": "Saia na saída {exit} à esquerda em direção a {destination}" + }, + "slight right": { + "default": "Saia na saída à direita", + "name": "Saia na saída à direita para {way_name}", + "destination": "Saia na saída à direita em direção a {destination}", + "exit": "Saia na saída {exit} à direita", + "exit_destination": "Saia na saída {exit} à direita em direção a {destination}" + } + }, + "on ramp": { + "default": { + "default": "Saia na saída", + "name": "Saia na saída para {way_name}", + "destination": "Saia na saída em direção a {destination}" + }, + "left": { + "default": "Saia na saída à esquerda", + "name": "Saia na saída à esquerda para {way_name}", + "destination": "Saia na saída à esquerda em direção a {destination}" + }, + "right": { + "default": "Saia na saída à direita", + "name": "Saia na saída à direita para {way_name}", + "destination": "Saia na saída à direita em direção a {destination}" + }, + "sharp left": { + "default": "Saia na saída à esquerda", + "name": "Saia na saída à esquerda para {way_name}", + "destination": "Saia na saída à esquerda em direção a {destination}" + }, + "sharp right": { + "default": "Saia na saída à direita", + "name": "Saia na saída à direita para {way_name}", + "destination": "Saia na saída à direita em direção a {destination}" + }, + "slight left": { + "default": "Saia na saída à esquerda", + "name": "Saia na saída à esquerda para {way_name}", + "destination": "Saia na saída à esquerda em direção a {destination}" + }, + "slight right": { + "default": "Saia na saída à direita", + "name": "Saia na saída à direita para {way_name}", + "destination": "Saia na saída à direita em direção a {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Entre na rotunda", + "name": "Entre na rotunda e saia para {way_name}", + "destination": "Entre na rotunda e saia em direção a {destination}" + }, + "name": { + "default": "Entre em {rotary_name}", + "name": "Entre em {rotary_name} e saia para {way_name}", + "destination": "Entre em {rotary_name} e saia em direção a {destination}" + }, + "exit": { + "default": "Entre na rotunda e saia na saída {exit_number}", + "name": "Entre na rotunda e saia na saída {exit_number} para {way_name}", + "destination": "Entre na rotunda e saia na saída {exit_number} em direção a {destination}" + }, + "name_exit": { + "default": "Entre em {rotary_name} e saia na saída {exit_number}", + "name": "Entre em {rotary_name} e saia na saída {exit_number} para {way_name}", + "destination": "Entre em{rotary_name} e saia na saída {exit_number} em direção a {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Entre na rotunda e saia na saída {exit_number}", + "name": "Entre na rotunda e saia na saída {exit_number} para {way_name}", + "destination": "Entre na rotunda e saia na saída {exit_number} em direção a {destination}" + }, + "default": { + "default": "Entre na rotunda", + "name": "Entre na rotunda e saia para {way_name}", + "destination": "Entre na rotunda e saia em direção a {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Siga {modifier}", + "name": "Siga {modifier} para {way_name}", + "destination": "Siga {modifier} em direção a {destination}" + }, + "left": { + "default": "Vire à esquerda", + "name": "Vire à esquerda para {way_name}", + "destination": "Vire à esquerda em direção a {destination}" + }, + "right": { + "default": "Vire à direita", + "name": "Vire à direita para {way_name}", + "destination": "Vire à direita em direção a {destination}" + }, + "straight": { + "default": "Continue em frente", + "name": "Continue em frente para {way_name}", + "destination": "Continue em frente em direção a {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Saia da rotunda", + "name": "Saia da rotunda para {way_name}", + "destination": "Saia da rotunda em direção a {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Saia da rotunda", + "name": "Saia da rotunda para {way_name}", + "destination": "Saia da rotunda em direção a {destination}" + } + }, + "turn": { + "default": { + "default": "Siga {modifier}", + "name": "Siga {modifier} para{way_name}", + "destination": "Siga {modifier} em direção a {destination}" + }, + "left": { + "default": "Vire à esquerda", + "name": "Vire à esquerda para {way_name}", + "destination": "Vire à esquerda em direção a {destination}" + }, + "right": { + "default": "Vire à direita", + "name": "Vire à direita para {way_name}", + "destination": "Vire à direita em direção a {destination}" + }, + "straight": { + "default": "Vá em frente", + "name": "Vá em frente para {way_name}", + "destination": "Vá em frente em direção a {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Continue em frente" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],41:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "prima", + "2": "a doua", + "3": "a treia", + "4": "a patra", + "5": "a cincea", + "6": "a șasea", + "7": "a șaptea", + "8": "a opta", + "9": "a noua", + "10": "a zecea" + }, + "direction": { + "north": "nord", + "northeast": "nord-est", + "east": "est", + "southeast": "sud-est", + "south": "sud", + "southwest": "sud-vest", + "west": "vest", + "northwest": "nord-vest" + }, + "modifier": { + "left": "stânga", + "right": "dreapta", + "sharp left": "puternic stânga", + "sharp right": "puternic dreapta", + "slight left": "ușor stânga", + "slight right": "ușor dreapta", + "straight": "înainte", + "uturn": "întoarcere" + }, + "lanes": { + "xo": "Țineți stânga", + "ox": "Țineți dreapta", + "xox": "Țineți pe mijloc", + "oxo": "Țineți pe laterale" + } + }, + "modes": { + "ferry": { + "default": "Luați feribotul", + "name": "Luați feribotul {way_name}", + "destination": "Luați feribotul spre {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, apoi în {distance}, {instruction_two}", + "two linked": "{instruction_one} apoi {instruction_two}", + "one in distance": "În {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "ieșirea {exit}" + }, + "arrive": { + "default": { + "default": "Ați ajuns la {nth} destinație", + "upcoming": "Ați ajuns la {nth} destinație", + "short": "Ați ajuns", + "short-upcoming": "Veți ajunge", + "named": "Ați ajuns {waypoint_name}" + }, + "left": { + "default": "Ați ajuns la {nth} destinație, pe stânga", + "upcoming": "Ați ajuns la {nth} destinație, pe stânga", + "short": "Ați ajuns", + "short-upcoming": "Veți ajunge", + "named": "Ați ajuns {waypoint_name}, pe stânga" + }, + "right": { + "default": "Ați ajuns la {nth} destinație, pe dreapta", + "upcoming": "Ați ajuns la {nth} destinație, pe dreapta", + "short": "Ați ajuns", + "short-upcoming": "Veți ajunge", + "named": "Ați ajuns {waypoint_name}, pe dreapta" + }, + "sharp left": { + "default": "Ați ajuns la {nth} destinație, pe stânga", + "upcoming": "Ați ajuns la {nth} destinație, pe stânga", + "short": "Ați ajuns", + "short-upcoming": "Veți ajunge", + "named": "Ați ajuns {waypoint_name}, pe stânga" + }, + "sharp right": { + "default": "Ați ajuns la {nth} destinație, pe dreapta", + "upcoming": "Ați ajuns la {nth} destinație, pe dreapta", + "short": "Ați ajuns", + "short-upcoming": "Veți ajunge", + "named": "Ați ajuns {waypoint_name}, pe dreapta" + }, + "slight right": { + "default": "Ați ajuns la {nth} destinație, pe dreapta", + "upcoming": "Ați ajuns la {nth} destinație, pe dreapta", + "short": "Ați ajuns", + "short-upcoming": "Veți ajunge", + "named": "Ați ajuns {waypoint_name}, pe dreapta" + }, + "slight left": { + "default": "Ați ajuns la {nth} destinație, pe stânga", + "upcoming": "Ați ajuns la {nth} destinație, pe stânga", + "short": "Ați ajuns", + "short-upcoming": "Veți ajunge", + "named": "Ați ajuns {waypoint_name}, pe stânga" + }, + "straight": { + "default": "Ați ajuns la {nth} destinație, în față", + "upcoming": "Ați ajuns la {nth} destinație, în față", + "short": "Ați ajuns", + "short-upcoming": "Veți ajunge", + "named": "Ați ajuns {waypoint_name}, în față" + } + }, + "continue": { + "default": { + "default": "Virați {modifier}", + "name": "Virați {modifier} pe {way_name}", + "destination": "Virați {modifier} spre {destination}", + "exit": "Virați {modifier} pe {way_name}" + }, + "straight": { + "default": "Mergeți înainte", + "name": "Mergeți înainte pe {way_name}", + "destination": "Continuați spre {destination}", + "distance": "Mergeți înainte pentru {distance}", + "namedistance": "Continuați pe {way_name} pentru {distance}" + }, + "sharp left": { + "default": "Virați puternic la stânga", + "name": "Virați puternic la stânga pe {way_name}", + "destination": "Virați puternic la stânga spre {destination}" + }, + "sharp right": { + "default": "Virați puternic la dreapta", + "name": "Virați puternic la dreapta pe {way_name}", + "destination": "Virați puternic la dreapta spre {destination}" + }, + "slight left": { + "default": "Virați ușor la stânga", + "name": "Virați ușor la stânga pe {way_name}", + "destination": "Virați ușor la stânga spre {destination}" + }, + "slight right": { + "default": "Virați ușor la dreapta", + "name": "Virați ușor la dreapta pe {way_name}", + "destination": "Virați ușor la dreapta spre {destination}" + }, + "uturn": { + "default": "Întoarceți-vă", + "name": "Întoarceți-vă și continuați pe {way_name}", + "destination": "Întoarceți-vă spre {destination}" + } + }, + "depart": { + "default": { + "default": "Mergeți spre {direction}", + "name": "Mergeți spre {direction} pe {way_name}", + "namedistance": "Mergeți spre {direction} pe {way_name} pentru {distance}" + } + }, + "end of road": { + "default": { + "default": "Virați {modifier}", + "name": "Virați {modifier} pe {way_name}", + "destination": "Virați {modifier} spre {destination}" + }, + "straight": { + "default": "Continuați înainte", + "name": "Continuați înainte pe {way_name}", + "destination": "Continuați înainte spre {destination}" + }, + "uturn": { + "default": "Întoarceți-vă la sfârșitul drumului", + "name": "Întoarceți-vă pe {way_name} la sfârșitul drumului", + "destination": "Întoarceți-vă spre {destination} la sfârșitul drumului" + } + }, + "fork": { + "default": { + "default": "Țineți {modifier} la bifurcație", + "name": "Țineți {modifier} la bifurcație pe {way_name}", + "destination": "Țineți {modifier} la bifurcație spre {destination}" + }, + "slight left": { + "default": "Țineți pe stânga la bifurcație", + "name": "Țineți pe stânga la bifurcație pe {way_name}", + "destination": "Țineți pe stânga la bifurcație spre {destination}" + }, + "slight right": { + "default": "Țineți pe dreapta la bifurcație", + "name": "Țineți pe dreapta la bifurcație pe {way_name}", + "destination": "Țineți pe dreapta la bifurcație spre {destination}" + }, + "sharp left": { + "default": "Virați puternic stânga la bifurcație", + "name": "Virați puternic stânga la bifurcație pe {way_name}", + "destination": "Virați puternic stânga la bifurcație spre {destination}" + }, + "sharp right": { + "default": "Virați puternic dreapta la bifurcație", + "name": "Virați puternic dreapta la bifurcație pe {way_name}", + "destination": "Virați puternic dreapta la bifurcație spre {destination}" + }, + "uturn": { + "default": "Întoarceți-vă", + "name": "Întoarceți-vă pe {way_name}", + "destination": "Întoarceți-vă spre {destination}" + } + }, + "merge": { + "default": { + "default": "Intrați în {modifier}", + "name": "Intrați în {modifier} pe {way_name}", + "destination": "Intrați în {modifier} spre {destination}" + }, + "straight": { + "default": "Intrați", + "name": "Intrați pe {way_name}", + "destination": "Intrați spre {destination}" + }, + "slight left": { + "default": "Intrați în stânga", + "name": "Intrați în stânga pe {way_name}", + "destination": "Intrați în stânga spre {destination}" + }, + "slight right": { + "default": "Intrați în dreapta", + "name": "Intrați în dreapta pe {way_name}", + "destination": "Intrați în dreapta spre {destination}" + }, + "sharp left": { + "default": "Intrați în stânga", + "name": "Intrați în stânga pe {way_name}", + "destination": "Intrați în stânga spre {destination}" + }, + "sharp right": { + "default": "Intrați în dreapta", + "name": "Intrați în dreapta pe {way_name}", + "destination": "Intrați în dreapta spre {destination}" + }, + "uturn": { + "default": "Întoarceți-vă", + "name": "Întoarceți-vă pe {way_name}", + "destination": "Întoarceți-vă spre {destination}" + } + }, + "new name": { + "default": { + "default": "Continuați {modifier}", + "name": "Continuați {modifier} pe {way_name}", + "destination": "Continuați {modifier} spre {destination}" + }, + "straight": { + "default": "Continuați înainte", + "name": "Continuați pe {way_name}", + "destination": "Continuați spre {destination}" + }, + "sharp left": { + "default": "Virați puternic la stânga", + "name": "Virați puternic la stânga pe {way_name}", + "destination": "Virați puternic la stânga spre {destination}" + }, + "sharp right": { + "default": "Virați puternic la dreapta", + "name": "Virați puternic la dreapta pe {way_name}", + "destination": "Virați puternic la dreapta spre {destination}" + }, + "slight left": { + "default": "Continuați ușor la stânga", + "name": "Continuați ușor la stânga pe {way_name}", + "destination": "Continuați ușor la stânga spre {destination}" + }, + "slight right": { + "default": "Continuați ușor la dreapta", + "name": "Continuați ușor la dreapta pe {way_name}", + "destination": "Continuați ușor la dreapta spre {destination}" + }, + "uturn": { + "default": "Întoarceți-vă", + "name": "Întoarceți-vă pe {way_name}", + "destination": "Întoarceți-vă spre {destination}" + } + }, + "notification": { + "default": { + "default": "Continuați {modifier}", + "name": "Continuați {modifier} pe {way_name}", + "destination": "Continuați {modifier} spre {destination}" + }, + "uturn": { + "default": "Întoarceți-vă", + "name": "Întoarceți-vă pe {way_name}", + "destination": "Întoarceți-vă spre {destination}" + } + }, + "off ramp": { + "default": { + "default": "Urmați breteaua", + "name": "Urmați breteaua pe {way_name}", + "destination": "Urmați breteaua spre {destination}", + "exit": "Urmați ieșirea {exit}", + "exit_destination": "Urmați ieșirea {exit} spre {destination}" + }, + "left": { + "default": "Urmați breteaua din stânga", + "name": "Urmați breteaua din stânga pe {way_name}", + "destination": "Urmați breteaua din stânga spre {destination}", + "exit": "Urmați ieșirea {exit} pe stânga", + "exit_destination": "Urmați ieșirea {exit} pe stânga spre {destination}" + }, + "right": { + "default": "Urmați breteaua din dreapta", + "name": "Urmați breteaua din dreapta pe {way_name}", + "destination": "Urmați breteaua din dreapta spre {destination}", + "exit": "Urmați ieșirea {exit} pe dreapta", + "exit_destination": "Urmați ieșirea {exit} pe dreapta spre {destination}" + }, + "sharp left": { + "default": "Urmați breteaua din stânga", + "name": "Urmați breteaua din stânga pe {way_name}", + "destination": "Urmați breteaua din stânga spre {destination}", + "exit": "Urmați ieșirea {exit} pe stânga", + "exit_destination": "Urmați ieșirea {exit} pe stânga spre {destination}" + }, + "sharp right": { + "default": "Urmați breteaua din dreapta", + "name": "Urmați breteaua din dreapta pe {way_name}", + "destination": "Urmați breteaua din dreapta spre {destination}", + "exit": "Urmați ieșirea {exit} pe dreapta", + "exit_destination": "Urmați ieșirea {exit} pe dreapta spre {destination}" + }, + "slight left": { + "default": "Urmați breteaua din stânga", + "name": "Urmați breteaua din stânga pe {way_name}", + "destination": "Urmați breteaua din stânga spre {destination}", + "exit": "Urmați ieșirea {exit} pe stânga", + "exit_destination": "Urmați ieșirea {exit} pe stânga spre {destination}" + }, + "slight right": { + "default": "Urmați breteaua din dreapta", + "name": "Urmați breteaua din dreapta pe {way_name}", + "destination": "Urmați breteaua din dreapta spre {destination}", + "exit": "Urmați ieșirea {exit} pe dreapta", + "exit_destination": "Urmați ieșirea {exit} pe dreapta spre {destination}" + } + }, + "on ramp": { + "default": { + "default": "Urmați breteaua de intrare", + "name": "Urmați breteaua pe {way_name}", + "destination": "Urmați breteaua spre {destination}" + }, + "left": { + "default": "Urmați breteaua din stânga", + "name": "Urmați breteaua din stânga pe {way_name}", + "destination": "Urmați breteaua din stânga spre {destination}" + }, + "right": { + "default": "Urmați breteaua din dreapta", + "name": "Urmați breteaua din dreapta pe {way_name}", + "destination": "Urmați breteaua din dreapta spre {destination}" + }, + "sharp left": { + "default": "Urmați breteaua din stânga", + "name": "Urmați breteaua din stânga pe {way_name}", + "destination": "Urmați breteaua din stânga spre {destination}" + }, + "sharp right": { + "default": "Urmați breteaua din dreapta", + "name": "Urmați breteaua din dreapta pe {way_name}", + "destination": "Urmați breteaua din dreapta spre {destination}" + }, + "slight left": { + "default": "Urmați breteaua din stânga", + "name": "Urmați breteaua din stânga pe {way_name}", + "destination": "Urmați breteaua din stânga spre {destination}" + }, + "slight right": { + "default": "Urmați breteaua din dreapta", + "name": "Urmați breteaua din dreapta pe {way_name}", + "destination": "Urmați breteaua din dreapta spre {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Intrați în sensul giratoriu", + "name": "Intrați în sensul giratoriu și ieșiți pe {way_name}", + "destination": "Intrați în sensul giratoriu și ieșiți spre {destination}" + }, + "name": { + "default": "Intrați în {rotary_name}", + "name": "Intrați în {rotary_name} și ieșiți pe {way_name}", + "destination": "Intrați în {rotary_name} și ieșiți spre {destination}" + }, + "exit": { + "default": "Intrați în sensul giratoriu și urmați {exit_number} ieșire", + "name": "Intrați în sensul giratoriu și urmați {exit_number} ieșire pe {way_name}", + "destination": "Intrați în sensul giratoriu și urmați {exit_number} ieșire spre {destination}" + }, + "name_exit": { + "default": "Intrați în {rotary_name} și urmați {exit_number} ieșire", + "name": "Intrați în {rotary_name} și urmați {exit_number} ieșire pe {way_name}", + "destination": "Intrați în {rotary_name} și urmați {exit_number} ieșire spre {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Intrați în sensul giratoriu și urmați {exit_number} ieșire", + "name": "Intrați în sensul giratoriu și urmați {exit_number} ieșire pe {way_name}", + "destination": "Intrați în sensul giratoriu și urmați {exit_number} ieșire spre {destination}" + }, + "default": { + "default": "Intrați în sensul giratoriu", + "name": "Intrați în sensul giratoriu și ieșiți pe {way_name}", + "destination": "Intrați în sensul giratoriu și ieșiți spre {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "La sensul giratoriu virați {modifier}", + "name": "La sensul giratoriu virați {modifier} pe {way_name}", + "destination": "La sensul giratoriu virați {modifier} spre {destination}" + }, + "left": { + "default": "La sensul giratoriu virați la stânga", + "name": "La sensul giratoriu virați la stânga pe {way_name}", + "destination": "La sensul giratoriu virați la stânga spre {destination}" + }, + "right": { + "default": "La sensul giratoriu virați la dreapta", + "name": "La sensul giratoriu virați la dreapta pe {way_name}", + "destination": "La sensul giratoriu virați la dreapta spre {destination}" + }, + "straight": { + "default": "La sensul giratoriu continuați înainte", + "name": "La sensul giratoriu continuați înainte pe {way_name}", + "destination": "La sensul giratoriu continuați înainte spre {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Ieșiți din sensul giratoriu", + "name": "Ieșiți din sensul giratoriu pe {way_name}", + "destination": "Ieșiți din sensul giratoriu spre {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Ieșiți din sensul giratoriu", + "name": "Ieșiți din sensul giratoriu pe {way_name}", + "destination": "Ieșiți din sensul giratoriu spre {destination}" + } + }, + "turn": { + "default": { + "default": "Virați {modifier}", + "name": "Virați {modifier} pe {way_name}", + "destination": "Virați {modifier} spre {destination}" + }, + "left": { + "default": "Virați la stânga", + "name": "Virați la stânga pe {way_name}", + "destination": "Virați la stânga spre {destination}" + }, + "right": { + "default": "Virați la dreapta", + "name": "Virați la dreapta pe {way_name}", + "destination": "Virați la dreapta spre {destination}" + }, + "straight": { + "default": "Mergeți înainte", + "name": "Mergeți înainte pe {way_name}", + "destination": "Mergeți înainte spre {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Mergeți înainte" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],42:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "первый", + "2": "второй", + "3": "третий", + "4": "четвёртый", + "5": "пятый", + "6": "шестой", + "7": "седьмой", + "8": "восьмой", + "9": "девятый", + "10": "десятый" + }, + "direction": { + "north": "северном", + "northeast": "северо-восточном", + "east": "восточном", + "southeast": "юго-восточном", + "south": "южном", + "southwest": "юго-западном", + "west": "западном", + "northwest": "северо-западном" + }, + "modifier": { + "left": "налево", + "right": "направо", + "sharp left": "налево", + "sharp right": "направо", + "slight left": "левее", + "slight right": "правее", + "straight": "прямо", + "uturn": "на разворот" + }, + "lanes": { + "xo": "Держитесь правее", + "ox": "Держитесь левее", + "xox": "Держитесь посередине", + "oxo": "Держитесь слева или справа" + } + }, + "modes": { + "ferry": { + "default": "Погрузитесь на паром", + "name": "Погрузитесь на паром {way_name}", + "destination": "Погрузитесь на паром в направлении {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, затем через {distance} {instruction_two}", + "two linked": "{instruction_one}, затем {instruction_two}", + "one in distance": "Через {distance} {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "съезд {exit}" + }, + "arrive": { + "default": { + "default": "Вы прибыли в {nth} пункт назначения", + "upcoming": "Вы прибудете в {nth} пункт назначения", + "short": "Вы прибыли", + "short-upcoming": "Вы скоро прибудете", + "named": "Вы прибыли в пункт назначения, {waypoint_name}" + }, + "left": { + "default": "Вы прибыли в {nth} пункт назначения, он находится слева", + "upcoming": "Вы прибудете в {nth} пункт назначения, он будет слева", + "short": "Вы прибыли", + "short-upcoming": "Вы скоро прибудете", + "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится слева" + }, + "right": { + "default": "Вы прибыли в {nth} пункт назначения, он находится справа", + "upcoming": "Вы прибудете в {nth} пункт назначения, он будет справа", + "short": "Вы прибыли", + "short-upcoming": "Вы скоро прибудете", + "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится справа" + }, + "sharp left": { + "default": "Вы прибыли в {nth} пункт назначения, он находится слева сзади", + "upcoming": "Вы прибудете в {nth} пункт назначения, он будет слева сзади", + "short": "Вы прибыли", + "short-upcoming": "Вы скоро прибудете", + "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится слева сзади" + }, + "sharp right": { + "default": "Вы прибыли в {nth} пункт назначения, он находится справа сзади", + "upcoming": "Вы прибудете в {nth} пункт назначения, он будет справа сзади", + "short": "Вы прибыли", + "short-upcoming": "Вы скоро прибудете", + "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится справа сзади" + }, + "slight right": { + "default": "Вы прибыли в {nth} пункт назначения, он находится справа впереди", + "upcoming": "Вы прибудете в {nth} пункт назначения, он будет справа впереди", + "short": "Вы прибыли", + "short-upcoming": "Вы скоро прибудете", + "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится справа впереди" + }, + "slight left": { + "default": "Вы прибыли в {nth} пункт назначения, он находится слева впереди", + "upcoming": "Вы прибудете в {nth} пункт назначения, он будет слева впереди", + "short": "Вы прибыли", + "short-upcoming": "Вы скоро прибудете", + "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится слева впереди" + }, + "straight": { + "default": "Вы прибыли в {nth} пункт назначения, он находится перед Вами", + "upcoming": "Вы прибудете в {nth} пункт назначения, он будет перед Вами", + "short": "Вы прибыли", + "short-upcoming": "Вы скоро прибудете", + "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится перед Вами" + } + }, + "continue": { + "default": { + "default": "Двигайтесь {modifier}", + "name": "Двигайтесь {modifier} по {way_name:dative}", + "destination": "Двигайтесь {modifier} в направлении {destination}", + "exit": "Двигайтесь {modifier} на {way_name:accusative}" + }, + "straight": { + "default": "Двигайтесь прямо", + "name": "Продолжите движение по {way_name:dative}", + "destination": "Продолжите движение в направлении {destination}", + "distance": "Двигайтесь прямо {distance}", + "namedistance": "Двигайтесь прямо {distance} по {way_name:dative}" + }, + "sharp left": { + "default": "Резко поверните налево", + "name": "Резко поверните налево на {way_name:accusative}", + "destination": "Резко поверните налево в направлении {destination}" + }, + "sharp right": { + "default": "Резко поверните направо", + "name": "Резко поверните направо на {way_name:accusative}", + "destination": "Резко поверните направо в направлении {destination}" + }, + "slight left": { + "default": "Плавно поверните налево", + "name": "Плавно поверните налево на {way_name:accusative}", + "destination": "Плавно поверните налево в направлении {destination}" + }, + "slight right": { + "default": "Плавно поверните направо", + "name": "Плавно поверните направо на {way_name:accusative}", + "destination": "Плавно поверните направо в направлении {destination}" + }, + "uturn": { + "default": "Развернитесь", + "name": "Развернитесь и продолжите движение по {way_name:dative}", + "destination": "Развернитесь в направлении {destination}" + } + }, + "depart": { + "default": { + "default": "Двигайтесь в {direction} направлении", + "name": "Двигайтесь в {direction} направлении по {way_name:dative}", + "namedistance": "Двигайтесь {distance} в {direction} направлении по {way_name:dative}" + } + }, + "end of road": { + "default": { + "default": "Поверните {modifier}", + "name": "Поверните {modifier} на {way_name:accusative}", + "destination": "Поверните {modifier} в направлении {destination}" + }, + "straight": { + "default": "Двигайтесь прямо", + "name": "Двигайтесь прямо по {way_name:dative}", + "destination": "Двигайтесь прямо в направлении {destination}" + }, + "uturn": { + "default": "В конце дороги развернитесь", + "name": "Развернитесь в конце {way_name:genitive}", + "destination": "В конце дороги развернитесь в направлении {destination}" + } + }, + "fork": { + "default": { + "default": "На развилке двигайтесь {modifier}", + "name": "На развилке двигайтесь {modifier} на {way_name:accusative}", + "destination": "На развилке двигайтесь {modifier} в направлении {destination}" + }, + "slight left": { + "default": "На развилке держитесь левее", + "name": "На развилке держитесь левее на {way_name:accusative}", + "destination": "На развилке держитесь левее и продолжите движение в направлении {destination}" + }, + "slight right": { + "default": "На развилке держитесь правее", + "name": "На развилке держитесь правее на {way_name:accusative}", + "destination": "На развилке держитесь правее и продолжите движение в направлении {destination}" + }, + "sharp left": { + "default": "На развилке резко поверните налево", + "name": "Резко поверните налево на {way_name:accusative}", + "destination": "Резко поверните налево и продолжите движение в направлении {destination}" + }, + "sharp right": { + "default": "На развилке резко поверните направо", + "name": "Резко поверните направо на {way_name:accusative}", + "destination": "Резко поверните направо и продолжите движение в направлении {destination}" + }, + "uturn": { + "default": "На развилке развернитесь", + "name": "На развилке развернитесь на {way_name:prepositional}", + "destination": "На развилке развернитесь и продолжите движение в направлении {destination}" + } + }, + "merge": { + "default": { + "default": "Перестройтесь {modifier}", + "name": "Перестройтесь {modifier} на {way_name:accusative}", + "destination": "Перестройтесь {modifier} в направлении {destination}" + }, + "straight": { + "default": "Двигайтесь прямо", + "name": "Продолжите движение по {way_name:dative}", + "destination": "Продолжите движение в направлении {destination}" + }, + "slight left": { + "default": "Перестройтесь левее", + "name": "Перестройтесь левее на {way_name:accusative}", + "destination": "Перестройтесь левее в направлении {destination}" + }, + "slight right": { + "default": "Перестройтесь правее", + "name": "Перестройтесь правее на {way_name:accusative}", + "destination": "Перестройтесь правее в направлении {destination}" + }, + "sharp left": { + "default": "Перестраивайтесь левее", + "name": "Перестраивайтесь левее на {way_name:accusative}", + "destination": "Перестраивайтесь левее в направлении {destination}" + }, + "sharp right": { + "default": "Перестраивайтесь правее", + "name": "Перестраивайтесь правее на {way_name:accusative}", + "destination": "Перестраивайтесь правее в направлении {destination}" + }, + "uturn": { + "default": "Развернитесь", + "name": "Развернитесь на {way_name:prepositional}", + "destination": "Развернитесь в направлении {destination}" + } + }, + "new name": { + "default": { + "default": "Двигайтесь {modifier}", + "name": "Двигайтесь {modifier} на {way_name:accusative}", + "destination": "Двигайтесь {modifier} в направлении {destination}" + }, + "straight": { + "default": "Двигайтесь прямо", + "name": "Продолжите движение по {way_name:dative}", + "destination": "Продолжите движение в направлении {destination}" + }, + "sharp left": { + "default": "Резко поверните налево", + "name": "Резко поверните налево на {way_name:accusative}", + "destination": "Резко поверните налево и продолжите движение в направлении {destination}" + }, + "sharp right": { + "default": "Резко поверните направо", + "name": "Резко поверните направо на {way_name:accusative}", + "destination": "Резко поверните направо и продолжите движение в направлении {destination}" + }, + "slight left": { + "default": "Плавно поверните налево", + "name": "Плавно поверните налево на {way_name:accusative}", + "destination": "Плавно поверните налево в направлении {destination}" + }, + "slight right": { + "default": "Плавно поверните направо", + "name": "Плавно поверните направо на {way_name:accusative}", + "destination": "Плавно поверните направо в направлении {destination}" + }, + "uturn": { + "default": "Развернитесь", + "name": "Развернитесь на {way_name:prepositional}", + "destination": "Развернитесь и продолжите движение в направлении {destination}" + } + }, + "notification": { + "default": { + "default": "Двигайтесь {modifier}", + "name": "Двигайтесь {modifier} по {way_name:dative}", + "destination": "Двигайтесь {modifier} в направлении {destination}" + }, + "uturn": { + "default": "Развернитесь", + "name": "Развернитесь на {way_name:prepositional}", + "destination": "Развернитесь и продолжите движение в направлении {destination}" + } + }, + "off ramp": { + "default": { + "default": "Сверните на съезд", + "name": "Сверните на съезд на {way_name:accusative}", + "destination": "Сверните на съезд в направлении {destination}", + "exit": "Сверните на съезд {exit}", + "exit_destination": "Сверните на съезд {exit} в направлении {destination}" + }, + "left": { + "default": "Сверните на левый съезд", + "name": "Сверните на левый съезд на {way_name:accusative}", + "destination": "Сверните на левый съезд в направлении {destination}", + "exit": "Сверните на съезд {exit} слева", + "exit_destination": "Сверните на съезд {exit} слева в направлении {destination}" + }, + "right": { + "default": "Сверните на правый съезд", + "name": "Сверните на правый съезд на {way_name:accusative}", + "destination": "Сверните на правый съезд в направлении {destination}", + "exit": "Сверните на съезд {exit} справа", + "exit_destination": "Сверните на съезд {exit} справа в направлении {destination}" + }, + "sharp left": { + "default": "Поверните налево на съезд", + "name": "Поверните налево на съезд на {way_name:accusative}", + "destination": "Поверните налево на съезд в направлении {destination}", + "exit": "Поверните налево на съезд {exit}", + "exit_destination": "Поверните налево на съезд {exit} в направлении {destination}" + }, + "sharp right": { + "default": "Поверните направо на съезд", + "name": "Поверните направо на съезд на {way_name:accusative}", + "destination": "Поверните направо на съезд в направлении {destination}", + "exit": "Поверните направо на съезд {exit}", + "exit_destination": "Поверните направо на съезд {exit} в направлении {destination}" + }, + "slight left": { + "default": "Перестройтесь левее на съезд", + "name": "Перестройтесь левее на съезд на {way_name:accusative}", + "destination": "Перестройтесь левее на съезд в направлении {destination}", + "exit": "Перестройтесь левее на {exit}", + "exit_destination": "Перестройтесь левее на съезд {exit} в направлении {destination}" + }, + "slight right": { + "default": "Перестройтесь правее на съезд", + "name": "Перестройтесь правее на съезд на {way_name:accusative}", + "destination": "Перестройтесь правее на съезд в направлении {destination}", + "exit": "Перестройтесь правее на съезд {exit}", + "exit_destination": "Перестройтесь правее на съезд {exit} в направлении {destination}" + } + }, + "on ramp": { + "default": { + "default": "Сверните на автомагистраль", + "name": "Сверните на въезд на {way_name:accusative}", + "destination": "Сверните на въезд на автомагистраль в направлении {destination}" + }, + "left": { + "default": "Сверните на левый въезд на автомагистраль", + "name": "Сверните на левый въезд на {way_name:accusative}", + "destination": "Сверните на левый въезд на автомагистраль в направлении {destination}" + }, + "right": { + "default": "Сверните на правый въезд на автомагистраль", + "name": "Сверните на правый въезд на {way_name:accusative}", + "destination": "Сверните на правый въезд на автомагистраль в направлении {destination}" + }, + "sharp left": { + "default": "Поверните на левый въезд на автомагистраль", + "name": "Поверните на левый въезд на {way_name:accusative}", + "destination": "Поверните на левый въезд на автомагистраль в направлении {destination}" + }, + "sharp right": { + "default": "Поверните на правый въезд на автомагистраль", + "name": "Поверните на правый въезд на {way_name:accusative}", + "destination": "Поверните на правый въезд на автомагистраль в направлении {destination}" + }, + "slight left": { + "default": "Перестройтесь левее на въезд на автомагистраль", + "name": "Перестройтесь левее на {way_name:accusative}", + "destination": "Перестройтесь левее на автомагистраль в направлении {destination}" + }, + "slight right": { + "default": "Перестройтесь правее на въезд на автомагистраль", + "name": "Перестройтесь правее на {way_name:accusative}", + "destination": "Перестройтесь правее на автомагистраль в направлении {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Продолжите движение по круговой развязке", + "name": "На круговой развязке сверните на {way_name:accusative}", + "destination": "На круговой развязке сверните в направлении {destination}" + }, + "name": { + "default": "Продолжите движение по {rotary_name:dative}", + "name": "На {rotary_name:prepositional} сверните на {way_name:accusative}", + "destination": "На {rotary_name:prepositional} сверните в направлении {destination}" + }, + "exit": { + "default": "На круговой развязке сверните на {exit_number} съезд", + "name": "На круговой развязке сверните на {exit_number} съезд на {way_name:accusative}", + "destination": "На круговой развязке сверните на {exit_number} съезд в направлении {destination}" + }, + "name_exit": { + "default": "На {rotary_name:prepositional} сверните на {exit_number} съезд", + "name": "На {rotary_name:prepositional} сверните на {exit_number} съезд на {way_name:accusative}", + "destination": "На {rotary_name:prepositional} сверните на {exit_number} съезд в направлении {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "На круговой развязке сверните на {exit_number} съезд", + "name": "На круговой развязке сверните на {exit_number} съезд на {way_name:accusative}", + "destination": "На круговой развязке сверните на {exit_number} съезд в направлении {destination}" + }, + "default": { + "default": "Продолжите движение по круговой развязке", + "name": "На круговой развязке сверните на {way_name:accusative}", + "destination": "На круговой развязке сверните в направлении {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Двигайтесь {modifier}", + "name": "Двигайтесь {modifier} на {way_name:accusative}", + "destination": "Двигайтесь {modifier} в направлении {destination}" + }, + "left": { + "default": "Сверните налево", + "name": "Сверните налево на {way_name:accusative}", + "destination": "Сверните налево в направлении {destination}" + }, + "right": { + "default": "Сверните направо", + "name": "Сверните направо на {way_name:accusative}", + "destination": "Сверните направо в направлении {destination}" + }, + "straight": { + "default": "Двигайтесь прямо", + "name": "Двигайтесь прямо по {way_name:dative}", + "destination": "Двигайтесь прямо в направлении {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Сверните с круговой развязки", + "name": "Сверните с круговой развязки на {way_name:accusative}", + "destination": "Сверните с круговой развязки в направлении {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Сверните с круговой развязки", + "name": "Сверните с круговой развязки на {way_name:accusative}", + "destination": "Сверните с круговой развязки в направлении {destination}" + } + }, + "turn": { + "default": { + "default": "Двигайтесь {modifier}", + "name": "Двигайтесь {modifier} на {way_name:accusative}", + "destination": "Двигайтесь {modifier} в направлении {destination}" + }, + "left": { + "default": "Поверните налево", + "name": "Поверните налево на {way_name:accusative}", + "destination": "Поверните налево в направлении {destination}" + }, + "right": { + "default": "Поверните направо", + "name": "Поверните направо на {way_name:accusative}", + "destination": "Поверните направо в направлении {destination}" + }, + "straight": { + "default": "Двигайтесь прямо", + "name": "Двигайтесь по {way_name:dative}", + "destination": "Двигайтесь в направлении {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Продолжайте движение прямо" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],43:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1:a", + "2": "2:a", + "3": "3:e", + "4": "4:e", + "5": "5:e", + "6": "6:e", + "7": "7:e", + "8": "8:e", + "9": "9:e", + "10": "10:e" + }, + "direction": { + "north": "norr", + "northeast": "nordost", + "east": "öster", + "southeast": "sydost", + "south": "söder", + "southwest": "sydväst", + "west": "väster", + "northwest": "nordväst" + }, + "modifier": { + "left": "vänster", + "right": "höger", + "sharp left": "vänster", + "sharp right": "höger", + "slight left": "vänster", + "slight right": "höger", + "straight": "rakt fram", + "uturn": "U-sväng" + }, + "lanes": { + "xo": "Håll till höger", + "ox": "Håll till vänster", + "xox": "Håll till mitten", + "oxo": "Håll till vänster eller höger" + } + }, + "modes": { + "ferry": { + "default": "Ta färjan", + "name": "Ta färjan på {way_name}", + "destination": "Ta färjan mot {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, sedan efter {distance}, {instruction_two}", + "two linked": "{instruction_one}, sedan {instruction_two}", + "one in distance": "Om {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "exit {exit}" + }, + "arrive": { + "default": { + "default": "Du är framme vid din {nth} destination", + "upcoming": "Du är snart framme vid din {nth} destination", + "short": "Du är framme", + "short-upcoming": "Du är snart framme", + "named": "Du är framme vid {waypoint_name}" + }, + "left": { + "default": "Du är framme vid din {nth} destination, till vänster", + "upcoming": "Du är snart framme vid din {nth} destination, till vänster", + "short": "Du är framme", + "short-upcoming": "Du är snart framme", + "named": "Du är framme vid {waypoint_name}, till vänster" + }, + "right": { + "default": "Du är framme vid din {nth} destination, till höger", + "upcoming": "Du är snart framme vid din {nth} destination, till höger", + "short": "Du är framme", + "short-upcoming": "Du är snart framme", + "named": "Du är framme vid {waypoint_name}, till höger" + }, + "sharp left": { + "default": "Du är framme vid din {nth} destination, till vänster", + "upcoming": "Du är snart framme vid din {nth} destination, till vänster", + "short": "Du är framme", + "short-upcoming": "Du är snart framme", + "named": "Du är framme vid {waypoint_name}, till vänster" + }, + "sharp right": { + "default": "Du är framme vid din {nth} destination, till höger", + "upcoming": "Du är snart framme vid din {nth} destination, till höger", + "short": "Du är framme", + "short-upcoming": "Du är snart framme", + "named": "Du är framme vid {waypoint_name}, till höger" + }, + "slight right": { + "default": "Du är framme vid din {nth} destination, till höger", + "upcoming": "Du är snart framme vid din {nth} destination, till höger", + "short": "Du är framme", + "short-upcoming": "Du är snart framme", + "named": "Du är framme vid {waypoint_name}, till höger" + }, + "slight left": { + "default": "Du är framme vid din {nth} destination, till vänster", + "upcoming": "Du är snart framme vid din {nth} destination, till vänster", + "short": "Du är framme", + "short-upcoming": "Du är snart framme", + "named": "Du är framme vid {waypoint_name}, till vänster" + }, + "straight": { + "default": "Du är framme vid din {nth} destination, rakt fram", + "upcoming": "Du är snart framme vid din {nth} destination, rakt fram", + "short": "Du är framme", + "short-upcoming": "Du är snart framme", + "named": "Du är framme vid {waypoint_name}, rakt fram" + } + }, + "continue": { + "default": { + "default": "Sväng {modifier}", + "name": "Sväng {modifier} och fortsätt på {way_name}", + "destination": "Sväng {modifier} mot {destination}", + "exit": "Sväng {modifier} in på {way_name}" + }, + "straight": { + "default": "Fortsätt rakt fram", + "name": "Kör rakt fram och fortsätt på {way_name}", + "destination": "Fortsätt mot {destination}", + "distance": "Fortsätt rakt fram i {distance}", + "namedistance": "Fortsätt på {way_name} i {distance}" + }, + "sharp left": { + "default": "Sväng vänster", + "name": "Sväng vänster och fortsätt på {way_name}", + "destination": "Sväng vänster mot {destination}" + }, + "sharp right": { + "default": "Sväng höger", + "name": "Sväng höger och fortsätt på {way_name}", + "destination": "Sväng höger mot {destination}" + }, + "slight left": { + "default": "Sväng vänster", + "name": "Sväng vänster och fortsätt på {way_name}", + "destination": "Sväng vänster mot {destination}" + }, + "slight right": { + "default": "Sväng höger", + "name": "Sväng höger och fortsätt på {way_name}", + "destination": "Sväng höger mot {destination}" + }, + "uturn": { + "default": "Gör en U-sväng", + "name": "Gör en U-sväng och fortsätt på {way_name}", + "destination": "Gör en U-sväng mot {destination}" + } + }, + "depart": { + "default": { + "default": "Kör åt {direction}", + "name": "Kör åt {direction} på {way_name}", + "namedistance": "Kör {distance} åt {direction} på {way_name}" + } + }, + "end of road": { + "default": { + "default": "Sväng {modifier}", + "name": "Sväng {modifier} in på {way_name}", + "destination": "Sväng {modifier} mot {destination}" + }, + "straight": { + "default": "Fortsätt rakt fram", + "name": "Fortsätt rakt fram in på {way_name}", + "destination": "Fortsätt rakt fram mot {destination}" + }, + "uturn": { + "default": "Gör en U-sväng i slutet av vägen", + "name": "Gör en U-sväng in på {way_name} i slutet av vägen", + "destination": "Gör en U-sväng mot {destination} i slutet av vägen" + } + }, + "fork": { + "default": { + "default": "Håll till {modifier} där vägen delar sig", + "name": "Håll till {modifier} in på {way_name}", + "destination": "Håll till {modifier} mot {destination}" + }, + "slight left": { + "default": "Håll till vänster där vägen delar sig", + "name": "Håll till vänster in på {way_name}", + "destination": "Håll till vänster mot {destination}" + }, + "slight right": { + "default": "Håll till höger där vägen delar sig", + "name": "Håll till höger in på {way_name}", + "destination": "Håll till höger mot {destination}" + }, + "sharp left": { + "default": "Sväng vänster där vägen delar sig", + "name": "Sväng vänster in på {way_name}", + "destination": "Sväng vänster mot {destination}" + }, + "sharp right": { + "default": "Sväng höger där vägen delar sig", + "name": "Sväng höger in på {way_name}", + "destination": "Sväng höger mot {destination}" + }, + "uturn": { + "default": "Gör en U-sväng", + "name": "Gör en U-sväng in på {way_name}", + "destination": "Gör en U-sväng mot {destination}" + } + }, + "merge": { + "default": { + "default": "Byt till {modifier} körfält", + "name": "Byt till {modifier} körfält, in på {way_name}", + "destination": "Byt till {modifier} körfält, mot {destination}" + }, + "straight": { + "default": "Fortsätt", + "name": "Kör in på {way_name}", + "destination": "Kör mot {destination}" + }, + "slight left": { + "default": "Byt till vänstra körfältet", + "name": "Byt till vänstra körfältet, in på {way_name}", + "destination": "Byt till vänstra körfältet, mot {destination}" + }, + "slight right": { + "default": "Byt till högra körfältet", + "name": "Byt till högra körfältet, in på {way_name}", + "destination": "Byt till högra körfältet, mot {destination}" + }, + "sharp left": { + "default": "Byt till vänstra körfältet", + "name": "Byt till vänstra körfältet, in på {way_name}", + "destination": "Byt till vänstra körfältet, mot {destination}" + }, + "sharp right": { + "default": "Byt till högra körfältet", + "name": "Byt till högra körfältet, in på {way_name}", + "destination": "Byt till högra körfältet, mot {destination}" + }, + "uturn": { + "default": "Gör en U-sväng", + "name": "Gör en U-sväng in på {way_name}", + "destination": "Gör en U-sväng mot {destination}" + } + }, + "new name": { + "default": { + "default": "Fortsätt {modifier}", + "name": "Fortsätt {modifier} på {way_name}", + "destination": "Fortsätt {modifier} mot {destination}" + }, + "straight": { + "default": "Fortsätt rakt fram", + "name": "Fortsätt in på {way_name}", + "destination": "Fortsätt mot {destination}" + }, + "sharp left": { + "default": "Gör en skarp vänstersväng", + "name": "Gör en skarp vänstersväng in på {way_name}", + "destination": "Gör en skarp vänstersväng mot {destination}" + }, + "sharp right": { + "default": "Gör en skarp högersväng", + "name": "Gör en skarp högersväng in på {way_name}", + "destination": "Gör en skarp högersväng mot {destination}" + }, + "slight left": { + "default": "Fortsätt med lätt vänstersväng", + "name": "Fortsätt med lätt vänstersväng in på {way_name}", + "destination": "Fortsätt med lätt vänstersväng mot {destination}" + }, + "slight right": { + "default": "Fortsätt med lätt högersväng", + "name": "Fortsätt med lätt högersväng in på {way_name}", + "destination": "Fortsätt med lätt högersväng mot {destination}" + }, + "uturn": { + "default": "Gör en U-sväng", + "name": "Gör en U-sväng in på {way_name}", + "destination": "Gör en U-sväng mot {destination}" + } + }, + "notification": { + "default": { + "default": "Fortsätt {modifier}", + "name": "Fortsätt {modifier} på {way_name}", + "destination": "Fortsätt {modifier} mot {destination}" + }, + "uturn": { + "default": "Gör en U-sväng", + "name": "Gör en U-sväng in på {way_name}", + "destination": "Gör en U-sväng mot {destination}" + } + }, + "off ramp": { + "default": { + "default": "Ta avfarten", + "name": "Ta avfarten in på {way_name}", + "destination": "Ta avfarten mot {destination}", + "exit": "Ta avfart {exit} ", + "exit_destination": "Ta avfart {exit} mot {destination}" + }, + "left": { + "default": "Ta avfarten till vänster", + "name": "Ta avfarten till vänster in på {way_name}", + "destination": "Ta avfarten till vänster mot {destination}", + "exit": "Ta avfart {exit} till vänster", + "exit_destination": "Ta avfart {exit} till vänster mot {destination}" + }, + "right": { + "default": "Ta avfarten till höger", + "name": "Ta avfarten till höger in på {way_name}", + "destination": "Ta avfarten till höger mot {destination}", + "exit": "Ta avfart {exit} till höger", + "exit_destination": "Ta avfart {exit} till höger mot {destination}" + }, + "sharp left": { + "default": "Ta avfarten till vänster", + "name": "Ta avfarten till vänster in på {way_name}", + "destination": "Ta avfarten till vänster mot {destination}", + "exit": "Ta avfart {exit} till vänster", + "exit_destination": "Ta avfart {exit} till vänster mot {destination}" + }, + "sharp right": { + "default": "Ta avfarten till höger", + "name": "Ta avfarten till höger in på {way_name}", + "destination": "Ta avfarten till höger mot {destination}", + "exit": "Ta avfart {exit} till höger", + "exit_destination": "Ta avfart {exit} till höger mot {destination}" + }, + "slight left": { + "default": "Ta avfarten till vänster", + "name": "Ta avfarten till vänster in på {way_name}", + "destination": "Ta avfarten till vänster mot {destination}", + "exit": "Ta avfart {exit} till vänster", + "exit_destination": "Ta avfart{exit} till vänster mot {destination}" + }, + "slight right": { + "default": "Ta avfarten till höger", + "name": "Ta avfarten till höger in på {way_name}", + "destination": "Ta avfarten till höger mot {destination}", + "exit": "Ta avfart {exit} till höger", + "exit_destination": "Ta avfart {exit} till höger mot {destination}" + } + }, + "on ramp": { + "default": { + "default": "Ta påfarten", + "name": "Ta påfarten in på {way_name}", + "destination": "Ta påfarten mot {destination}" + }, + "left": { + "default": "Ta påfarten till vänster", + "name": "Ta påfarten till vänster in på {way_name}", + "destination": "Ta påfarten till vänster mot {destination}" + }, + "right": { + "default": "Ta påfarten till höger", + "name": "Ta påfarten till höger in på {way_name}", + "destination": "Ta påfarten till höger mot {destination}" + }, + "sharp left": { + "default": "Ta påfarten till vänster", + "name": "Ta påfarten till vänster in på {way_name}", + "destination": "Ta påfarten till vänster mot {destination}" + }, + "sharp right": { + "default": "Ta påfarten till höger", + "name": "Ta påfarten till höger in på {way_name}", + "destination": "Ta påfarten till höger mot {destination}" + }, + "slight left": { + "default": "Ta påfarten till vänster", + "name": "Ta påfarten till vänster in på {way_name}", + "destination": "Ta påfarten till vänster mot {destination}" + }, + "slight right": { + "default": "Ta påfarten till höger", + "name": "Ta påfarten till höger in på {way_name}", + "destination": "Ta påfarten till höger mot {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Kör in i rondellen", + "name": "I rondellen, ta avfarten in på {way_name}", + "destination": "I rondellen, ta av mot {destination}" + }, + "name": { + "default": "Kör in i {rotary_name}", + "name": "I {rotary_name}, ta av in på {way_name}", + "destination": "I {rotary_name}, ta av mot {destination}" + }, + "exit": { + "default": "I rondellen, ta {exit_number} avfarten", + "name": "I rondellen, ta {exit_number} avfarten in på {way_name}", + "destination": "I rondellen, ta {exit_number} avfarten mot {destination}" + }, + "name_exit": { + "default": "I {rotary_name}, ta {exit_number} avfarten", + "name": "I {rotary_name}, ta {exit_number} avfarten in på {way_name}", + "destination": "I {rotary_name}, ta {exit_number} avfarten mot {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "I rondellen, ta {exit_number} avfarten", + "name": "I rondellen, ta {exit_number} avfarten in på {way_name}", + "destination": "I rondellen, ta {exit_number} avfarten mot {destination}" + }, + "default": { + "default": "Kör in i rondellen", + "name": "I rondellen, ta avfarten in på {way_name}", + "destination": "I rondellen, ta av mot {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Sväng {modifier}", + "name": "Sväng {modifier} in på {way_name}", + "destination": "Sväng {modifier} mot {destination}" + }, + "left": { + "default": "Sväng vänster", + "name": "Sväng vänster in på {way_name}", + "destination": "Sväng vänster mot {destination}" + }, + "right": { + "default": "Sväng höger", + "name": "Sväng höger in på {way_name}", + "destination": "Sväng höger mot {destination}" + }, + "straight": { + "default": "Fortsätt rakt fram", + "name": "Fortsätt rakt fram in på {way_name}", + "destination": "Fortsätt rakt fram mot {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Kör ut ur rondellen", + "name": "Kör ut ur rondellen in på {way_name}", + "destination": "Kör ut ur rondellen mot {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Kör ut ur rondellen", + "name": "Kör ut ur rondellen in på {way_name}", + "destination": "Kör ut ur rondellen mot {destination}" + } + }, + "turn": { + "default": { + "default": "Sväng {modifier}", + "name": "Sväng {modifier} in på {way_name}", + "destination": "Sväng {modifier} mot {destination}" + }, + "left": { + "default": "Sväng vänster", + "name": "Sväng vänster in på {way_name}", + "destination": "Sväng vänster mot {destination}" + }, + "right": { + "default": "Sväng höger", + "name": "Sväng höger in på {way_name}", + "destination": "Sväng höger mot {destination}" + }, + "straight": { + "default": "Kör rakt fram", + "name": "Kör rakt fram in på {way_name}", + "destination": "Kör rakt fram mot {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Fortsätt rakt fram" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],44:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "birinci", + "2": "ikinci", + "3": "üçüncü", + "4": "dördüncü", + "5": "beşinci", + "6": "altıncı", + "7": "yedinci", + "8": "sekizinci", + "9": "dokuzuncu", + "10": "onuncu" + }, + "direction": { + "north": "kuzey", + "northeast": "kuzeydoğu", + "east": "doğu", + "southeast": "güneydoğu", + "south": "güney", + "southwest": "güneybatı", + "west": "batı", + "northwest": "kuzeybatı" + }, + "modifier": { + "left": "sol", + "right": "sağ", + "sharp left": "keskin sol", + "sharp right": "keskin sağ", + "slight left": "hafif sol", + "slight right": "hafif sağ", + "straight": "düz", + "uturn": "U dönüşü" + }, + "lanes": { + "xo": "Sağda kalın", + "ox": "Solda kalın", + "xox": "Ortada kalın", + "oxo": "Solda veya sağda kalın" + } + }, + "modes": { + "ferry": { + "default": "Vapur kullan", + "name": "{way_name} vapurunu kullan", + "destination": "{destination} istikametine giden vapuru kullan" + } + }, + "phrase": { + "two linked by distance": "{instruction_one} ve {distance} sonra {instruction_two}", + "two linked": "{instruction_one} ve sonra {instruction_two}", + "one in distance": "{distance} sonra, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "exit {exit}" + }, + "arrive": { + "default": { + "default": "{nth} hedefinize ulaştınız", + "upcoming": "{nth} hedefinize ulaştınız", + "short": "{nth} hedefinize ulaştınız", + "short-upcoming": "{nth} hedefinize ulaştınız", + "named": "{waypoint_name} ulaştınız" + }, + "left": { + "default": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", + "upcoming": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", + "short": "{nth} hedefinize ulaştınız", + "short-upcoming": "{nth} hedefinize ulaştınız", + "named": "{waypoint_name} ulaştınız, hedefiniz solunuzdadır" + }, + "right": { + "default": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", + "upcoming": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", + "short": "{nth} hedefinize ulaştınız", + "short-upcoming": "{nth} hedefinize ulaştınız", + "named": "{waypoint_name} ulaştınız, hedefiniz sağınızdadır" + }, + "sharp left": { + "default": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", + "upcoming": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", + "short": "{nth} hedefinize ulaştınız", + "short-upcoming": "{nth} hedefinize ulaştınız", + "named": "{waypoint_name} ulaştınız, hedefiniz solunuzdadır" + }, + "sharp right": { + "default": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", + "upcoming": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", + "short": "{nth} hedefinize ulaştınız", + "short-upcoming": "{nth} hedefinize ulaştınız", + "named": "{waypoint_name} ulaştınız, hedefiniz sağınızdadır" + }, + "slight right": { + "default": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", + "upcoming": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", + "short": "{nth} hedefinize ulaştınız", + "short-upcoming": "{nth} hedefinize ulaştınız", + "named": "{waypoint_name} ulaştınız, hedefiniz sağınızdadır" + }, + "slight left": { + "default": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", + "upcoming": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", + "short": "{nth} hedefinize ulaştınız", + "short-upcoming": "{nth} hedefinize ulaştınız", + "named": "{waypoint_name} ulaştınız, hedefiniz solunuzdadır" + }, + "straight": { + "default": "{nth} hedefinize ulaştınız, hedefiniz karşınızdadır", + "upcoming": "{nth} hedefinize ulaştınız, hedefiniz karşınızdadır", + "short": "{nth} hedefinize ulaştınız", + "short-upcoming": "{nth} hedefinize ulaştınız", + "named": "{waypoint_name} ulaştınız, hedefiniz karşınızdadır" + } + }, + "continue": { + "default": { + "default": "{modifier} yöne dön", + "name": "{way_name} üzerinde kalmak için {modifier} yöne dön", + "destination": "{destination} istikametinde {modifier} yöne dön", + "exit": "{way_name} üzerinde {modifier} yöne dön" + }, + "straight": { + "default": "Düz devam edin", + "name": "{way_name} üzerinde kalmak için düz devam et", + "destination": "{destination} istikametinde devam et", + "distance": "{distance} boyunca düz devam et", + "namedistance": "{distance} boyunca {way_name} üzerinde devam et" + }, + "sharp left": { + "default": "Sola keskin dönüş yap", + "name": "{way_name} üzerinde kalmak için sola keskin dönüş yap", + "destination": "{destination} istikametinde sola keskin dönüş yap" + }, + "sharp right": { + "default": "Sağa keskin dönüş yap", + "name": "{way_name} üzerinde kalmak için sağa keskin dönüş yap", + "destination": "{destination} istikametinde sağa keskin dönüş yap" + }, + "slight left": { + "default": "Sola hafif dönüş yap", + "name": "{way_name} üzerinde kalmak için sola hafif dönüş yap", + "destination": "{destination} istikametinde sola hafif dönüş yap" + }, + "slight right": { + "default": "Sağa hafif dönüş yap", + "name": "{way_name} üzerinde kalmak için sağa hafif dönüş yap", + "destination": "{destination} istikametinde sağa hafif dönüş yap" + }, + "uturn": { + "default": "U dönüşü yapın", + "name": "Bir U-dönüşü yap ve {way_name} devam et", + "destination": "{destination} istikametinde bir U-dönüşü yap" + } + }, + "depart": { + "default": { + "default": "{direction} tarafına yönelin", + "name": "{way_name} üzerinde {direction} yöne git", + "namedistance": "Head {direction} on {way_name} for {distance}" + } + }, + "end of road": { + "default": { + "default": "{modifier} tarafa dönün", + "name": "{way_name} üzerinde {modifier} yöne dön", + "destination": "{destination} istikametinde {modifier} yöne dön" + }, + "straight": { + "default": "Düz devam edin", + "name": "{way_name} üzerinde düz devam et", + "destination": "{destination} istikametinde düz devam et" + }, + "uturn": { + "default": "Yolun sonunda U dönüşü yapın", + "name": "Yolun sonunda {way_name} üzerinde bir U-dönüşü yap", + "destination": "Yolun sonunda {destination} istikametinde bir U-dönüşü yap" + } + }, + "fork": { + "default": { + "default": "Yol ayrımında {modifier} yönde kal", + "name": "{way_name} üzerindeki yol ayrımında {modifier} yönde kal", + "destination": "{destination} istikametindeki yol ayrımında {modifier} yönde kal" + }, + "slight left": { + "default": "Çatalın solundan devam edin", + "name": "Çatalın solundan {way_name} yoluna doğru ", + "destination": "{destination} istikametindeki yol ayrımında solda kal" + }, + "slight right": { + "default": "Çatalın sağından devam edin", + "name": "{way_name} üzerindeki yol ayrımında sağda kal", + "destination": "{destination} istikametindeki yol ayrımında sağda kal" + }, + "sharp left": { + "default": "Çatalda keskin sola dönün", + "name": "{way_name} yoluna doğru sola keskin dönüş yapın", + "destination": "{destination} istikametinde sola keskin dönüş yap" + }, + "sharp right": { + "default": "Çatalda keskin sağa dönün", + "name": "{way_name} yoluna doğru sağa keskin dönüş yapın", + "destination": "{destination} istikametinde sağa keskin dönüş yap" + }, + "uturn": { + "default": "U dönüşü yapın", + "name": "{way_name} yoluna U dönüşü yapın", + "destination": "{destination} istikametinde bir U-dönüşü yap" + } + }, + "merge": { + "default": { + "default": "{modifier} yöne gir", + "name": "{way_name} üzerinde {modifier} yöne gir", + "destination": "{destination} istikametinde {modifier} yöne gir" + }, + "straight": { + "default": "düz yöne gir", + "name": "{way_name} üzerinde düz yöne gir", + "destination": "{destination} istikametinde düz yöne gir" + }, + "slight left": { + "default": "Sola gir", + "name": "{way_name} üzerinde sola gir", + "destination": "{destination} istikametinde sola gir" + }, + "slight right": { + "default": "Sağa gir", + "name": "{way_name} üzerinde sağa gir", + "destination": "{destination} istikametinde sağa gir" + }, + "sharp left": { + "default": "Sola gir", + "name": "{way_name} üzerinde sola gir", + "destination": "{destination} istikametinde sola gir" + }, + "sharp right": { + "default": "Sağa gir", + "name": "{way_name} üzerinde sağa gir", + "destination": "{destination} istikametinde sağa gir" + }, + "uturn": { + "default": "U dönüşü yapın", + "name": "{way_name} yoluna U dönüşü yapın", + "destination": "{destination} istikametinde bir U-dönüşü yap" + } + }, + "new name": { + "default": { + "default": "{modifier} yönde devam et", + "name": "{way_name} üzerinde {modifier} yönde devam et", + "destination": "{destination} istikametinde {modifier} yönde devam et" + }, + "straight": { + "default": "Düz devam et", + "name": "{way_name} üzerinde devam et", + "destination": "{destination} istikametinde devam et" + }, + "sharp left": { + "default": "Sola keskin dönüş yapın", + "name": "{way_name} yoluna doğru sola keskin dönüş yapın", + "destination": "{destination} istikametinde sola keskin dönüş yap" + }, + "sharp right": { + "default": "Sağa keskin dönüş yapın", + "name": "{way_name} yoluna doğru sağa keskin dönüş yapın", + "destination": "{destination} istikametinde sağa keskin dönüş yap" + }, + "slight left": { + "default": "Hafif soldan devam edin", + "name": "{way_name} üzerinde hafif solda devam et", + "destination": "{destination} istikametinde hafif solda devam et" + }, + "slight right": { + "default": "Hafif sağdan devam edin", + "name": "{way_name} üzerinde hafif sağda devam et", + "destination": "{destination} istikametinde hafif sağda devam et" + }, + "uturn": { + "default": "U dönüşü yapın", + "name": "{way_name} yoluna U dönüşü yapın", + "destination": "{destination} istikametinde bir U-dönüşü yap" + } + }, + "notification": { + "default": { + "default": "{modifier} yönde devam et", + "name": "{way_name} üzerinde {modifier} yönde devam et", + "destination": "{destination} istikametinde {modifier} yönde devam et" + }, + "uturn": { + "default": "U dönüşü yapın", + "name": "{way_name} yoluna U dönüşü yapın", + "destination": "{destination} istikametinde bir U-dönüşü yap" + } + }, + "off ramp": { + "default": { + "default": "Bağlantı yoluna geç", + "name": "{way_name} üzerindeki bağlantı yoluna geç", + "destination": "{destination} istikametine giden bağlantı yoluna geç", + "exit": "{exit} çıkış yoluna geç", + "exit_destination": "{destination} istikametindeki {exit} çıkış yoluna geç" + }, + "left": { + "default": "Soldaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sol bağlantı yoluna geç", + "destination": "{destination} istikametine giden sol bağlantı yoluna geç", + "exit": "Soldaki {exit} çıkış yoluna geç", + "exit_destination": "{destination} istikametindeki {exit} sol çıkış yoluna geç" + }, + "right": { + "default": "Sağdaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", + "destination": "{destination} istikametine giden sağ bağlantı yoluna geç", + "exit": "Sağdaki {exit} çıkış yoluna geç", + "exit_destination": "{destination} istikametindeki {exit} sağ çıkış yoluna geç" + }, + "sharp left": { + "default": "Soldaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sol bağlantı yoluna geç", + "destination": "{destination} istikametine giden sol bağlantı yoluna geç", + "exit": "Soldaki {exit} çıkış yoluna geç", + "exit_destination": "{destination} istikametindeki {exit} sol çıkış yoluna geç" + }, + "sharp right": { + "default": "Sağdaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", + "destination": "{destination} istikametine giden sağ bağlantı yoluna geç", + "exit": "Sağdaki {exit} çıkış yoluna geç", + "exit_destination": "{destination} istikametindeki {exit} sağ çıkış yoluna geç" + }, + "slight left": { + "default": "Soldaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sol bağlantı yoluna geç", + "destination": "{destination} istikametine giden sol bağlantı yoluna geç", + "exit": "Soldaki {exit} çıkış yoluna geç", + "exit_destination": "{destination} istikametindeki {exit} sol çıkış yoluna geç" + }, + "slight right": { + "default": "Sağdaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", + "destination": "{destination} istikametine giden sağ bağlantı yoluna geç", + "exit": "Sağdaki {exit} çıkış yoluna geç", + "exit_destination": "{destination} istikametindeki {exit} sağ çıkış yoluna geç" + } + }, + "on ramp": { + "default": { + "default": "Bağlantı yoluna geç", + "name": "{way_name} üzerindeki bağlantı yoluna geç", + "destination": "{destination} istikametine giden bağlantı yoluna geç" + }, + "left": { + "default": "Soldaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sol bağlantı yoluna geç", + "destination": "{destination} istikametine giden sol bağlantı yoluna geç" + }, + "right": { + "default": "Sağdaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", + "destination": "{destination} istikametine giden sağ bağlantı yoluna geç" + }, + "sharp left": { + "default": "Soldaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sol bağlantı yoluna geç", + "destination": "{destination} istikametine giden sol bağlantı yoluna geç" + }, + "sharp right": { + "default": "Sağdaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", + "destination": "{destination} istikametine giden sağ bağlantı yoluna geç" + }, + "slight left": { + "default": "Soldaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sol bağlantı yoluna geç", + "destination": "{destination} istikametine giden sol bağlantı yoluna geç" + }, + "slight right": { + "default": "Sağdaki bağlantı yoluna geç", + "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", + "destination": "{destination} istikametine giden sağ bağlantı yoluna geç" + } + }, + "rotary": { + "default": { + "default": { + "default": "Dönel kavşağa gir", + "name": "Dönel kavşağa gir ve {way_name} üzerinde çık", + "destination": "Dönel kavşağa gir ve {destination} istikametinde çık" + }, + "name": { + "default": "{rotary_name} dönel kavşağa gir", + "name": "{rotary_name} dönel kavşağa gir ve {way_name} üzerinde çık", + "destination": "{rotary_name} dönel kavşağa gir ve {destination} istikametinde çık" + }, + "exit": { + "default": "Dönel kavşağa gir ve {exit_number} numaralı çıkışa gir", + "name": "Dönel kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir", + "destination": "Dönel kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir" + }, + "name_exit": { + "default": "{rotary_name} dönel kavşağa gir ve {exit_number} numaralı çıkışa gir", + "name": "{rotary_name} dönel kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir", + "destination": "{rotary_name} dönel kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Göbekli kavşağa gir ve {exit_number} numaralı çıkışa gir", + "name": "Göbekli kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir", + "destination": "Göbekli kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir" + }, + "default": { + "default": "Göbekli kavşağa gir", + "name": "Göbekli kavşağa gir ve {way_name} üzerinde çık", + "destination": "Göbekli kavşağa gir ve {destination} istikametinde çık" + } + } + }, + "roundabout turn": { + "default": { + "default": "{modifier} yöne dön", + "name": "{way_name} üzerinde {modifier} yöne dön", + "destination": "{destination} istikametinde {modifier} yöne dön" + }, + "left": { + "default": "Sola dön", + "name": "{way_name} üzerinde sola dön", + "destination": "{destination} istikametinde sola dön" + }, + "right": { + "default": "Sağa dön", + "name": "{way_name} üzerinde sağa dön", + "destination": "{destination} istikametinde sağa dön" + }, + "straight": { + "default": "Düz devam et", + "name": "{way_name} üzerinde düz devam et", + "destination": "{destination} istikametinde düz devam et" + } + }, + "exit roundabout": { + "default": { + "default": "{modifier} yöne dön", + "name": "{way_name} üzerinde {modifier} yöne dön", + "destination": "{destination} istikametinde {modifier} yöne dön" + }, + "left": { + "default": "Sola dön", + "name": "{way_name} üzerinde sola dön", + "destination": "{destination} istikametinde sola dön" + }, + "right": { + "default": "Sağa dön", + "name": "{way_name} üzerinde sağa dön", + "destination": "{destination} istikametinde sağa dön" + }, + "straight": { + "default": "Düz devam et", + "name": "{way_name} üzerinde düz devam et", + "destination": "{destination} istikametinde düz devam et" + } + }, + "exit rotary": { + "default": { + "default": "{modifier} yöne dön", + "name": "{way_name} üzerinde {modifier} yöne dön", + "destination": "{destination} istikametinde {modifier} yöne dön" + }, + "left": { + "default": "Sola dön", + "name": "{way_name} üzerinde sola dön", + "destination": "{destination} istikametinde sola dön" + }, + "right": { + "default": "Sağa dön", + "name": "{way_name} üzerinde sağa dön", + "destination": "{destination} istikametinde sağa dön" + }, + "straight": { + "default": "Düz devam et", + "name": "{way_name} üzerinde düz devam et", + "destination": "{destination} istikametinde düz devam et" + } + }, + "turn": { + "default": { + "default": "{modifier} yöne dön", + "name": "{way_name} üzerinde {modifier} yöne dön", + "destination": "{destination} istikametinde {modifier} yöne dön" + }, + "left": { + "default": "Sola dönün", + "name": "{way_name} üzerinde sola dön", + "destination": "{destination} istikametinde sola dön" + }, + "right": { + "default": "Sağa dönün", + "name": "{way_name} üzerinde sağa dön", + "destination": "{destination} istikametinde sağa dön" + }, + "straight": { + "default": "Düz git", + "name": "{way_name} üzerinde düz git", + "destination": "{destination} istikametinde düz git" + } + }, + "use lane": { + "no_lanes": { + "default": "Düz devam edin" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],45:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "1й", + "2": "2й", + "3": "3й", + "4": "4й", + "5": "5й", + "6": "6й", + "7": "7й", + "8": "8й", + "9": "9й", + "10": "10й" + }, + "direction": { + "north": "північ", + "northeast": "північний схід", + "east": "схід", + "southeast": "південний схід", + "south": "південь", + "southwest": "південний захід", + "west": "захід", + "northwest": "північний захід" + }, + "modifier": { + "left": "ліворуч", + "right": "праворуч", + "sharp left": "різко ліворуч", + "sharp right": "різко праворуч", + "slight left": "плавно ліворуч", + "slight right": "плавно праворуч", + "straight": "прямо", + "uturn": "розворот" + }, + "lanes": { + "xo": "Тримайтесь праворуч", + "ox": "Тримайтесь ліворуч", + "xox": "Тримайтесь в середині", + "oxo": "Тримайтесь праворуч або ліворуч" + } + }, + "modes": { + "ferry": { + "default": "Скористайтесь поромом", + "name": "Скористайтесь поромом {way_name}", + "destination": "Скористайтесь поромом у напрямку {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, потім, через {distance}, {instruction_two}", + "two linked": "{instruction_one}, потім {instruction_two}", + "one in distance": "Через {distance}, {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "з'їзд {exit}" + }, + "arrive": { + "default": { + "default": "Ви прибули у ваш {nth} пункт призначення", + "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення", + "short": "Ви прибули", + "short-upcoming": "Ви прибудете", + "named": "Ви прибули у {waypoint_name}" + }, + "left": { + "default": "Ви прибули у ваш {nth} пункт призначення, він – ліворуч", + "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, ліворуч", + "short": "Ви прибули", + "short-upcoming": "Ви прибудете", + "named": "Ви прибули у {waypoint_name} ліворуч" + }, + "right": { + "default": "Ви прибули у ваш {nth} пункт призначення, він – праворуч", + "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, праворуч", + "short": "Ви прибули", + "short-upcoming": "Ви прибудете", + "named": "Ви прибули у {waypoint_name} праворуч" + }, + "sharp left": { + "default": "Ви прибули у ваш {nth} пункт призначення, він – ліворуч", + "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, ліворуч", + "short": "Ви прибули", + "short-upcoming": "Ви прибудете", + "named": "Ви прибули у {waypoint_name} ліворуч" + }, + "sharp right": { + "default": "Ви прибули у ваш {nth} пункт призначення, він – праворуч", + "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, праворуч", + "short": "Ви прибули", + "short-upcoming": "Ви прибудете", + "named": "Ви прибули у {waypoint_name} праворуч" + }, + "slight right": { + "default": "Ви прибули у ваш {nth} пункт призначення, він – праворуч", + "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, праворуч", + "short": "Ви прибули", + "short-upcoming": "Ви прибудете", + "named": "Ви прибули у {waypoint_name} праворуч" + }, + "slight left": { + "default": "Ви прибули у ваш {nth} пункт призначення, він – ліворуч", + "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, ліворуч", + "short": "Ви прибули", + "short-upcoming": "Ви прибудете", + "named": "Ви прибули у {waypoint_name} ліворуч" + }, + "straight": { + "default": "Ви прибули у ваш {nth} пункт призначення, він – прямо перед вами", + "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, прямо перед вами", + "short": "Ви прибули", + "short-upcoming": "Ви прибудете", + "named": "Ви прибули у {waypoint_name} прямо перед вами" + } + }, + "continue": { + "default": { + "default": "Поверніть {modifier}", + "name": "Поверніть{modifier} залишаючись на {way_name}", + "destination": "Поверніть {modifier} у напрямку {destination}", + "exit": "Поверніть {modifier} на {way_name}" + }, + "straight": { + "default": "Продовжуйте рух прямо", + "name": "Продовжуйте рух прямо залишаючись на {way_name}", + "destination": "Рухайтесь у напрямку {destination}", + "distance": "Продовжуйте рух прямо {distance}", + "namedistance": "Продовжуйте рух по {way_name} {distance}" + }, + "sharp left": { + "default": "Поверніть різко ліворуч", + "name": "Поверніть різко ліворуч щоб залишитись на {way_name}", + "destination": "Поверніть різко ліворуч у напрямку {destination}" + }, + "sharp right": { + "default": "Поверніть різко праворуч", + "name": "Поверніть різко праворуч щоб залишитись на {way_name}", + "destination": "Поверніть різко праворуч у напрямку {destination}" + }, + "slight left": { + "default": "Поверніть різко ліворуч", + "name": "Поверніть плавно ліворуч щоб залишитись на {way_name}", + "destination": "Поверніть плавно ліворуч у напрямку {destination}" + }, + "slight right": { + "default": "Поверніть плавно праворуч", + "name": "Поверніть плавно праворуч щоб залишитись на {way_name}", + "destination": "Поверніть плавно праворуч у напрямку {destination}" + }, + "uturn": { + "default": "Здійсніть розворот", + "name": "Здійсніть розворот та рухайтесь по {way_name}", + "destination": "Здійсніть розворот у напрямку {destination}" + } + }, + "depart": { + "default": { + "default": "Прямуйте на {direction}", + "name": "Прямуйте на {direction} по {way_name}", + "namedistance": "Прямуйте на {direction} по {way_name} {distance}" + } + }, + "end of road": { + "default": { + "default": "Поверніть {modifier}", + "name": "Поверніть {modifier} на {way_name}", + "destination": "Поверніть {modifier} у напрямку {destination}" + }, + "straight": { + "default": "Продовжуйте рух прямо", + "name": "Продовжуйте рух прямо до {way_name}", + "destination": "Продовжуйте рух прямо у напрямку {destination}" + }, + "uturn": { + "default": "Здійсніть розворот в кінці дороги", + "name": "Здійсніть розворот на {way_name} в кінці дороги", + "destination": "Здійсніть розворот у напрямку {destination} в кінці дороги" + } + }, + "fork": { + "default": { + "default": "На роздоріжжі тримайтеся {modifier}", + "name": "Тримайтеся {modifier} і рухайтесь на {way_name}", + "destination": "Тримайтеся {modifier} в напрямку {destination}" + }, + "slight left": { + "default": "На роздоріжжі тримайтеся ліворуч", + "name": "Тримайтеся ліворуч і рухайтесь на {way_name}", + "destination": "Тримайтеся ліворуч в напрямку {destination}" + }, + "slight right": { + "default": "На роздоріжжі тримайтеся праворуч", + "name": "Тримайтеся праворуч і рухайтесь на {way_name}", + "destination": "Тримайтеся праворуч в напрямку {destination}" + }, + "sharp left": { + "default": "На роздоріжжі різко поверніть ліворуч", + "name": "Прийміть різко ліворуч на {way_name}", + "destination": "Прийміть різко ліворуч у напрямку {destination}" + }, + "sharp right": { + "default": "На роздоріжжі різко поверніть праворуч", + "name": "Прийміть різко праворуч на {way_name}", + "destination": "Прийміть різко праворуч у напрямку {destination}" + }, + "uturn": { + "default": "Здійсніть розворот", + "name": "Здійсніть розворот на {way_name}", + "destination": "Здійсніть розворот у напрямку {destination}" + } + }, + "merge": { + "default": { + "default": "Приєднайтеся до потоку {modifier}", + "name": "Приєднайтеся до потоку {modifier} на {way_name}", + "destination": "Приєднайтеся до потоку {modifier} у напрямку {destination}" + }, + "straight": { + "default": "Приєднайтеся до потоку", + "name": "Приєднайтеся до потоку на {way_name}", + "destination": "Приєднайтеся до потоку у напрямку {destination}" + }, + "slight left": { + "default": "Приєднайтеся до потоку ліворуч", + "name": "Приєднайтеся до потоку ліворуч на {way_name}", + "destination": "Приєднайтеся до потоку ліворуч у напрямку {destination}" + }, + "slight right": { + "default": "Приєднайтеся до потоку праворуч", + "name": "Приєднайтеся до потоку праворуч на {way_name}", + "destination": "Приєднайтеся до потоку праворуч у напрямку {destination}" + }, + "sharp left": { + "default": "Приєднайтеся до потоку ліворуч", + "name": "Приєднайтеся до потоку ліворуч на {way_name}", + "destination": "Приєднайтеся до потоку ліворуч у напрямку {destination}" + }, + "sharp right": { + "default": "Приєднайтеся до потоку праворуч", + "name": "Приєднайтеся до потоку праворуч на {way_name}", + "destination": "Приєднайтеся до потоку праворуч у напрямку {destination}" + }, + "uturn": { + "default": "Здійсніть розворот", + "name": "Здійсніть розворот на {way_name}", + "destination": "Здійсніть розворот у напрямку {destination}" + } + }, + "new name": { + "default": { + "default": "Рухайтесь {modifier}", + "name": "Рухайтесь {modifier} на {way_name}", + "destination": "Рухайтесь {modifier} у напрямку {destination}" + }, + "straight": { + "default": "Рухайтесь прямо", + "name": "Рухайтесь по {way_name}", + "destination": "Рухайтесь у напрямку {destination}" + }, + "sharp left": { + "default": "Прийміть різко ліворуч", + "name": "Прийміть різко ліворуч на {way_name}", + "destination": "Прийміть різко ліворуч у напрямку {destination}" + }, + "sharp right": { + "default": "Прийміть різко праворуч", + "name": "Прийміть різко праворуч на {way_name}", + "destination": "Прийміть різко праворуч у напрямку {destination}" + }, + "slight left": { + "default": "Рухайтесь плавно ліворуч", + "name": "Рухайтесь плавно ліворуч на {way_name}", + "destination": "Рухайтесь плавно ліворуч у напрямку {destination}" + }, + "slight right": { + "default": "Рухайтесь плавно праворуч", + "name": "Рухайтесь плавно праворуч на {way_name}", + "destination": "Рухайтесь плавно праворуч у напрямку {destination}" + }, + "uturn": { + "default": "Здійсніть розворот", + "name": "Здійсніть розворот на {way_name}", + "destination": "Здійсніть розворот у напрямку {destination}" + } + }, + "notification": { + "default": { + "default": "Рухайтесь {modifier}", + "name": "Рухайтесь {modifier} на {way_name}", + "destination": "Рухайтесь {modifier} у напрямку {destination}" + }, + "uturn": { + "default": "Здійсніть розворот", + "name": "Здійсніть розворот на {way_name}", + "destination": "Здійсніть розворот у напрямку {destination}" + } + }, + "off ramp": { + "default": { + "default": "Рухайтесь на зʼїзд", + "name": "Рухайтесь на зʼїзд на {way_name}", + "destination": "Рухайтесь на зʼїзд у напрямку {destination}", + "exit": "Оберіть з'їзд {exit}", + "exit_destination": "Оберіть з'їзд {exit} у напрямку {destination}" + }, + "left": { + "default": "Рухайтесь на зʼїзд ліворуч", + "name": "Рухайтесь на зʼїзд ліворуч на {way_name}", + "destination": "Рухайтесь на зʼїзд ліворуч у напрямку {destination}", + "exit": "Оберіть з'їзд {exit} ліворуч", + "exit_destination": "Оберіть з'їзд {exit} ліворуч у напрямку {destination}" + }, + "right": { + "default": "Рухайтесь на зʼїзд праворуч", + "name": "Рухайтесь на зʼїзд праворуч на {way_name}", + "destination": "Рухайтесь на зʼїзд праворуч у напрямку {destination}", + "exit": "Оберіть з'їзд {exit} праворуч", + "exit_destination": "Оберіть з'їзд {exit} праворуч у напрямку {destination}" + }, + "sharp left": { + "default": "Рухайтесь на зʼїзд ліворуч", + "name": "Рухайтесь на зʼїзд ліворуч на {way_name}", + "destination": "Рухайтесь на зʼїзд ліворуч у напрямку {destination}", + "exit": "Оберіть з'їзд {exit} ліворуч", + "exit_destination": "Оберіть з'їзд {exit} ліворуч у напрямку {destination}" + }, + "sharp right": { + "default": "Рухайтесь на зʼїзд праворуч", + "name": "Рухайтесь на зʼїзд праворуч на {way_name}", + "destination": "Рухайтесь на зʼїзд праворуч у напрямку {destination}", + "exit": "Оберіть з'їзд {exit} праворуч", + "exit_destination": "Оберіть з'їзд {exit} праворуч у напрямку {destination}" + }, + "slight left": { + "default": "Рухайтесь на зʼїзд ліворуч", + "name": "Рухайтесь на зʼїзд ліворуч на {way_name}", + "destination": "Рухайтесь на зʼїзд ліворуч у напрямку {destination}", + "exit": "Оберіть з'їзд {exit} ліворуч", + "exit_destination": "Оберіть з'їзд {exit} ліворуч у напрямку {destination}" + }, + "slight right": { + "default": "Рухайтесь на зʼїзд праворуч", + "name": "Рухайтесь на зʼїзд праворуч на {way_name}", + "destination": "Рухайтесь на зʼїзд праворуч у напрямку {destination}", + "exit": "Оберіть з'їзд {exit} праворуч", + "exit_destination": "Оберіть з'їзд {exit} праворуч у напрямку {destination}" + } + }, + "on ramp": { + "default": { + "default": "Рухайтесь на вʼїзд", + "name": "Рухайтесь на вʼїзд на {way_name}", + "destination": "Рухайтесь на вʼїзд у напрямку {destination}" + }, + "left": { + "default": "Рухайтесь на вʼїзд ліворуч", + "name": "Рухайтесь на вʼїзд ліворуч на {way_name}", + "destination": "Рухайтесь на вʼїзд ліворуч у напрямку {destination}" + }, + "right": { + "default": "Рухайтесь на вʼїзд праворуч", + "name": "Рухайтесь на вʼїзд праворуч на {way_name}", + "destination": "Рухайтесь на вʼїзд праворуч у напрямку {destination}" + }, + "sharp left": { + "default": "Рухайтесь на вʼїзд ліворуч", + "name": "Рухайтесь на вʼїзд ліворуч на {way_name}", + "destination": "Рухайтесь на вʼїзд ліворуч у напрямку {destination}" + }, + "sharp right": { + "default": "Рухайтесь на вʼїзд праворуч", + "name": "Рухайтесь на вʼїзд праворуч на {way_name}", + "destination": "Рухайтесь на вʼїзд праворуч у напрямку {destination}" + }, + "slight left": { + "default": "Рухайтесь на вʼїзд ліворуч", + "name": "Рухайтесь на вʼїзд ліворуч на {way_name}", + "destination": "Рухайтесь на вʼїзд ліворуч у напрямку {destination}" + }, + "slight right": { + "default": "Рухайтесь на вʼїзд праворуч", + "name": "Рухайтесь на вʼїзд праворуч на {way_name}", + "destination": "Рухайтесь на вʼїзд праворуч у напрямку {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Рухайтесь по колу", + "name": "Рухайтесь по колу до {way_name}", + "destination": "Рухайтесь по колу в напрямку {destination}" + }, + "name": { + "default": "Рухайтесь по {rotary_name}", + "name": "Рухайтесь по {rotary_name} та поверніть на {way_name}", + "destination": "Рухайтесь по {rotary_name} та поверніть в напрямку {destination}" + }, + "exit": { + "default": "Рухайтесь по колу та повереніть у {exit_number} з'їзд", + "name": "Рухайтесь по колу та поверніть у {exit_number} з'їзд на {way_name}", + "destination": "Рухайтесь по колу та поверніть у {exit_number} з'їзд у напрямку {destination}" + }, + "name_exit": { + "default": "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд", + "name": "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд на {way_name}", + "destination": "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд в напрямку {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Рухайтесь по колу та повереніть у {exit_number} з'їзд", + "name": "Рухайтесь по колу та поверніть у {exit_number} з'їзд на {way_name}", + "destination": "Рухайтесь по колу та поверніть у {exit_number} з'їзд у напрямку {destination}" + }, + "default": { + "default": "Рухайтесь по колу", + "name": "Рухайтесь по колу до {way_name}", + "destination": "Рухайтесь по колу в напрямку {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Рухайтесь {modifier}", + "name": "Рухайтесь {modifier} на {way_name}", + "destination": "Рухайтесь {modifier} в напрямку {destination}" + }, + "left": { + "default": "Поверніть ліворуч", + "name": "Поверніть ліворуч на {way_name}", + "destination": "Поверніть ліворуч у напрямку {destination}" + }, + "right": { + "default": "Поверніть праворуч", + "name": "Поверніть праворуч на {way_name}", + "destination": "Поверніть праворуч у напрямку {destination}" + }, + "straight": { + "default": "Рухайтесь прямо", + "name": "Продовжуйте рух прямо до {way_name}", + "destination": "Продовжуйте рух прямо у напрямку {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Залишить коло", + "name": "Залишить коло на {way_name} зʼїзді", + "destination": "Залишить коло в напрямку {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Залишить коло", + "name": "Залишить коло на {way_name} зʼїзді", + "destination": "Залишить коло в напрямку {destination}" + } + }, + "turn": { + "default": { + "default": "Рухайтесь {modifier}", + "name": "Рухайтесь {modifier} на {way_name}", + "destination": "Рухайтесь {modifier} в напрямку {destination}" + }, + "left": { + "default": "Поверніть ліворуч", + "name": "Поверніть ліворуч на {way_name}", + "destination": "Поверніть ліворуч у напрямку {destination}" + }, + "right": { + "default": "Поверніть праворуч", + "name": "Поверніть праворуч на {way_name}", + "destination": "Поверніть праворуч у напрямку {destination}" + }, + "straight": { + "default": "Рухайтесь прямо", + "name": "Рухайтесь прямо по {way_name}", + "destination": "Рухайтесь прямо у напрямку {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Продовжуйте рух прямо" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],46:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": true + }, + "v5": { + "constants": { + "ordinalize": { + "1": "đầu tiên", + "2": "thứ 2", + "3": "thứ 3", + "4": "thứ 4", + "5": "thứ 5", + "6": "thú 6", + "7": "thứ 7", + "8": "thứ 8", + "9": "thứ 9", + "10": "thứ 10" + }, + "direction": { + "north": "bắc", + "northeast": "đông bắc", + "east": "đông", + "southeast": "đông nam", + "south": "nam", + "southwest": "tây nam", + "west": "tây", + "northwest": "tây bắc" + }, + "modifier": { + "left": "trái", + "right": "phải", + "sharp left": "trái gắt", + "sharp right": "phải gắt", + "slight left": "trái nghiêng", + "slight right": "phải nghiêng", + "straight": "thẳng", + "uturn": "ngược" + }, + "lanes": { + "xo": "Đi bên phải", + "ox": "Đi bên trái", + "xox": "Đi vào giữa", + "oxo": "Đi bên trái hay bên phải" + } + }, + "modes": { + "ferry": { + "default": "Lên phà", + "name": "Lên phà {way_name}", + "destination": "Lên phà đi {destination}" + } + }, + "phrase": { + "two linked by distance": "{instruction_one}, rồi {distance} nữa thì {instruction_two}", + "two linked": "{instruction_one}, rồi {instruction_two}", + "one in distance": "{distance} nữa thì {instruction_one}", + "name and ref": "{name} ({ref})", + "exit with number": "lối ra {exit}" + }, + "arrive": { + "default": { + "default": "Đến nơi {nth}", + "upcoming": "Đến nơi {nth}", + "short": "Đến nơi", + "short-upcoming": "Đến nơi", + "named": "Đến {waypoint_name}" + }, + "left": { + "default": "Đến nơi {nth} ở bên trái", + "upcoming": "Đến nơi {nth} ở bên trái", + "short": "Đến nơi", + "short-upcoming": "Đến nơi", + "named": "Đến {waypoint_name} ở bên trái" + }, + "right": { + "default": "Đến nơi {nth} ở bên phải", + "upcoming": "Đến nơi {nth} ở bên phải", + "short": "Đến nơi", + "short-upcoming": "Đến nơi", + "named": "Đến {waypoint_name} ở bên phải" + }, + "sharp left": { + "default": "Đến nơi {nth} ở bên trái", + "upcoming": "Đến nơi {nth} ở bên trái", + "short": "Đến nơi", + "short-upcoming": "Đến nơi", + "named": "Đến {waypoint_name} ở bên trái" + }, + "sharp right": { + "default": "Đến nơi {nth} ở bên phải", + "upcoming": "Đến nơi {nth} ở bên phải", + "short": "Đến nơi", + "short-upcoming": "Đến nơi", + "named": "Đến {waypoint_name} ở bên phải" + }, + "slight right": { + "default": "Đến nơi {nth} ở bên phải", + "upcoming": "Đến nơi {nth} ở bên phải", + "short": "Đến nơi", + "short-upcoming": "Đến nơi", + "named": "Đến {waypoint_name} ở bên phải" + }, + "slight left": { + "default": "Đến nơi {nth} ở bên trái", + "upcoming": "Đến nơi {nth} ở bên trái", + "short": "Đến nơi", + "short-upcoming": "Đến nơi", + "named": "Đến {waypoint_name} ở bên trái" + }, + "straight": { + "default": "Đến nơi {nth} ở trước mặt", + "upcoming": "Đến nơi {nth} ở trước mặt", + "short": "Đến nơi", + "short-upcoming": "Đến nơi", + "named": "Đến {waypoint_name} ở trước mặt" + } + }, + "continue": { + "default": { + "default": "Quẹo {modifier}", + "name": "Quẹo {modifier} để chạy tiếp trên {way_name}", + "destination": "Quẹo {modifier} về {destination}", + "exit": "Quẹo {modifier} vào {way_name}" + }, + "straight": { + "default": "Chạy thẳng", + "name": "Chạy tiếp trên {way_name}", + "destination": "Chạy tiếp về {destination}", + "distance": "Chạy thẳng cho {distance}", + "namedistance": "Chạy tiếp trên {way_name} cho {distance}" + }, + "sharp left": { + "default": "Quẹo gắt bên trái", + "name": "Quẹo gắt bên trái để chạy tiếp trên {way_name}", + "destination": "Quẹo gắt bên trái về {destination}" + }, + "sharp right": { + "default": "Quẹo gắt bên phải", + "name": "Quẹo gắt bên phải để chạy tiếp trên {way_name}", + "destination": "Quẹo gắt bên phải về {destination}" + }, + "slight left": { + "default": "Nghiêng về bên trái", + "name": "Nghiêng về bên trái để chạy tiếp trên {way_name}", + "destination": "Nghiêng về bên trái về {destination}" + }, + "slight right": { + "default": "Nghiêng về bên phải", + "name": "Nghiêng về bên phải để chạy tiếp trên {way_name}", + "destination": "Nghiêng về bên phải về {destination}" + }, + "uturn": { + "default": "Quẹo ngược lại", + "name": "Quẹo ngược lại trên {way_name}", + "destination": "Quẹo ngược về {destination}" + } + }, + "depart": { + "default": { + "default": "Đi về hướng {direction}", + "name": "Đi về hướng {direction} trên {way_name}", + "namedistance": "Đi về hướng {direction} trên {way_name} cho {distance}" + } + }, + "end of road": { + "default": { + "default": "Quẹo {modifier}", + "name": "Quẹo {modifier} vào {way_name}", + "destination": "Quẹo {modifier} về {destination}" + }, + "straight": { + "default": "Chạy thẳng", + "name": "Chạy tiếp trên {way_name}", + "destination": "Chạy tiếp về {destination}" + }, + "uturn": { + "default": "Quẹo ngược lại tại cuối đường", + "name": "Quẹo ngược vào {way_name} tại cuối đường", + "destination": "Quẹo ngược về {destination} tại cuối đường" + } + }, + "fork": { + "default": { + "default": "Đi bên {modifier} ở ngã ba", + "name": "Giữ bên {modifier} vào {way_name}", + "destination": "Giữ bên {modifier} về {destination}" + }, + "slight left": { + "default": "Nghiêng về bên trái ở ngã ba", + "name": "Giữ bên trái vào {way_name}", + "destination": "Giữ bên trái về {destination}" + }, + "slight right": { + "default": "Nghiêng về bên phải ở ngã ba", + "name": "Giữ bên phải vào {way_name}", + "destination": "Giữ bên phải về {destination}" + }, + "sharp left": { + "default": "Quẹo gắt bên trái ở ngã ba", + "name": "Quẹo gắt bên trái vào {way_name}", + "destination": "Quẹo gắt bên trái về {destination}" + }, + "sharp right": { + "default": "Quẹo gắt bên phải ở ngã ba", + "name": "Quẹo gắt bên phải vào {way_name}", + "destination": "Quẹo gắt bên phải về {destination}" + }, + "uturn": { + "default": "Quẹo ngược lại", + "name": "Quẹo ngược lại {way_name}", + "destination": "Quẹo ngược lại về {destination}" + } + }, + "merge": { + "default": { + "default": "Nhập sang {modifier}", + "name": "Nhập sang {modifier} vào {way_name}", + "destination": "Nhập sang {modifier} về {destination}" + }, + "straight": { + "default": "Nhập đường", + "name": "Nhập vào {way_name}", + "destination": "Nhập đường về {destination}" + }, + "slight left": { + "default": "Nhập sang trái", + "name": "Nhập sang trái vào {way_name}", + "destination": "Nhập sang trái về {destination}" + }, + "slight right": { + "default": "Nhập sang phải", + "name": "Nhập sang phải vào {way_name}", + "destination": "Nhập sang phải về {destination}" + }, + "sharp left": { + "default": "Nhập sang trái", + "name": "Nhập sang trái vào {way_name}", + "destination": "Nhập sang trái về {destination}" + }, + "sharp right": { + "default": "Nhập sang phải", + "name": "Nhập sang phải vào {way_name}", + "destination": "Nhập sang phải về {destination}" + }, + "uturn": { + "default": "Quẹo ngược lại", + "name": "Quẹo ngược lại {way_name}", + "destination": "Quẹo ngược lại về {destination}" + } + }, + "new name": { + "default": { + "default": "Chạy tiếp bên {modifier}", + "name": "Chạy tiếp bên {modifier} trên {way_name}", + "destination": "Chạy tiếp bên {modifier} về {destination}" + }, + "straight": { + "default": "Chạy thẳng", + "name": "Chạy tiếp trên {way_name}", + "destination": "Chạy tiếp về {destination}" + }, + "sharp left": { + "default": "Quẹo gắt bên trái", + "name": "Quẹo gắt bên trái vào {way_name}", + "destination": "Quẹo gắt bên trái về {destination}" + }, + "sharp right": { + "default": "Quẹo gắt bên phải", + "name": "Quẹo gắt bên phải vào {way_name}", + "destination": "Quẹo gắt bên phải về {destination}" + }, + "slight left": { + "default": "Nghiêng về bên trái", + "name": "Nghiêng về bên trái vào {way_name}", + "destination": "Nghiêng về bên trái về {destination}" + }, + "slight right": { + "default": "Nghiêng về bên phải", + "name": "Nghiêng về bên phải vào {way_name}", + "destination": "Nghiêng về bên phải về {destination}" + }, + "uturn": { + "default": "Quẹo ngược lại", + "name": "Quẹo ngược lại {way_name}", + "destination": "Quẹo ngược lại về {destination}" + } + }, + "notification": { + "default": { + "default": "Chạy tiếp bên {modifier}", + "name": "Chạy tiếp bên {modifier} trên {way_name}", + "destination": "Chạy tiếp bên {modifier} về {destination}" + }, + "uturn": { + "default": "Quẹo ngược lại", + "name": "Quẹo ngược lại {way_name}", + "destination": "Quẹo ngược lại về {destination}" + } + }, + "off ramp": { + "default": { + "default": "Đi đường nhánh", + "name": "Đi đường nhánh {way_name}", + "destination": "Đi đường nhánh về {destination}", + "exit": "Đi theo lối ra {exit}", + "exit_destination": "Đi theo lối ra {exit} về {destination}" + }, + "left": { + "default": "Đi đường nhánh bên trái", + "name": "Đi đường nhánh {way_name} bên trái", + "destination": "Đi đường nhánh bên trái về {destination}", + "exit": "Đi theo lối ra {exit} bên trái", + "exit_destination": "Đi theo lối ra {exit} bên trái về {destination}" + }, + "right": { + "default": "Đi đường nhánh bên phải", + "name": "Đi đường nhánh {way_name} bên phải", + "destination": "Đi đường nhánh bên phải về {destination}", + "exit": "Đi theo lối ra {exit} bên phải", + "exit_destination": "Đi theo lối ra {exit} bên phải về {destination}" + }, + "sharp left": { + "default": "Đi đường nhánh bên trái", + "name": "Đi đường nhánh {way_name} bên trái", + "destination": "Đi đường nhánh bên trái về {destination}", + "exit": "Đi theo lối ra {exit} bên trái", + "exit_destination": "Đi theo lối ra {exit} bên trái về {destination}" + }, + "sharp right": { + "default": "Đi đường nhánh bên phải", + "name": "Đi đường nhánh {way_name} bên phải", + "destination": "Đi đường nhánh bên phải về {destination}", + "exit": "Đi theo lối ra {exit} bên phải", + "exit_destination": "Đi theo lối ra {exit} bên phải về {destination}" + }, + "slight left": { + "default": "Đi đường nhánh bên trái", + "name": "Đi đường nhánh {way_name} bên trái", + "destination": "Đi đường nhánh bên trái về {destination}", + "exit": "Đi theo lối ra {exit} bên trái", + "exit_destination": "Đi theo lối ra {exit} bên trái về {destination}" + }, + "slight right": { + "default": "Đi đường nhánh bên phải", + "name": "Đi đường nhánh {way_name} bên phải", + "destination": "Đi đường nhánh bên phải về {destination}", + "exit": "Đi theo lối ra {exit} bên phải", + "exit_destination": "Đi theo lối ra {exit} bên phải về {destination}" + } + }, + "on ramp": { + "default": { + "default": "Đi đường nhánh", + "name": "Đi đường nhánh {way_name}", + "destination": "Đi đường nhánh về {destination}" + }, + "left": { + "default": "Đi đường nhánh bên trái", + "name": "Đi đường nhánh {way_name} bên trái", + "destination": "Đi đường nhánh bên trái về {destination}" + }, + "right": { + "default": "Đi đường nhánh bên phải", + "name": "Đi đường nhánh {way_name} bên phải", + "destination": "Đi đường nhánh bên phải về {destination}" + }, + "sharp left": { + "default": "Đi đường nhánh bên trái", + "name": "Đi đường nhánh {way_name} bên trái", + "destination": "Đi đường nhánh bên trái về {destination}" + }, + "sharp right": { + "default": "Đi đường nhánh bên phải", + "name": "Đi đường nhánh {way_name} bên phải", + "destination": "Đi đường nhánh bên phải về {destination}" + }, + "slight left": { + "default": "Đi đường nhánh bên trái", + "name": "Đi đường nhánh {way_name} bên trái", + "destination": "Đi đường nhánh bên trái về {destination}" + }, + "slight right": { + "default": "Đi đường nhánh bên phải", + "name": "Đi đường nhánh {way_name} bên phải", + "destination": "Đi đường nhánh bên phải về {destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "Đi vào bùng binh", + "name": "Đi vào bùng binh và ra tại {way_name}", + "destination": "Đi vào bùng binh và ra về {destination}" + }, + "name": { + "default": "Đi vào {rotary_name}", + "name": "Đi vào {rotary_name} và ra tại {way_name}", + "destination": "Đi và {rotary_name} và ra về {destination}" + }, + "exit": { + "default": "Đi vào bùng binh và ra tại đường {exit_number}", + "name": "Đi vào bùng binh và ra tại đường {exit_number} tức {way_name}", + "destination": "Đi vào bùng binh và ra tại đường {exit_number} về {destination}" + }, + "name_exit": { + "default": "Đi vào {rotary_name} và ra tại đường {exit_number}", + "name": "Đi vào {rotary_name} và ra tại đường {exit_number} tức {way_name}", + "destination": "Đi vào {rotary_name} và ra tại đường {exit_number} về {destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "Đi vào bùng binh và ra tại đường {exit_number}", + "name": "Đi vào bùng binh và ra tại đường {exit_number} tức {way_name}", + "destination": "Đi vào bùng binh và ra tại đường {exit_number} về {destination}" + }, + "default": { + "default": "Đi vào bùng binh", + "name": "Đi vào bùng binh và ra tại {way_name}", + "destination": "Đi vào bùng binh và ra về {destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "Quẹo {modifier}", + "name": "Quẹo {modifier} vào {way_name}", + "destination": "Quẹo {modifier} về {destination}" + }, + "left": { + "default": "Quẹo trái", + "name": "Quẹo trái vào {way_name}", + "destination": "Quẹo trái về {destination}" + }, + "right": { + "default": "Quẹo phải", + "name": "Quẹo phải vào {way_name}", + "destination": "Quẹo phải về {destination}" + }, + "straight": { + "default": "Chạy thẳng", + "name": "Chạy tiếp trên {way_name}", + "destination": "Chạy tiếp về {destination}" + } + }, + "exit roundabout": { + "default": { + "default": "Ra bùng binh", + "name": "Ra bùng binh vào {way_name}", + "destination": "Ra bùng binh về {destination}" + } + }, + "exit rotary": { + "default": { + "default": "Ra bùng binh", + "name": "Ra bùng binh vào {way_name}", + "destination": "Ra bùng binh về {destination}" + } + }, + "turn": { + "default": { + "default": "Quẹo {modifier}", + "name": "Quẹo {modifier} vào {way_name}", + "destination": "Quẹo {modifier} về {destination}" + }, + "left": { + "default": "Quẹo trái", + "name": "Quẹo trái vào {way_name}", + "destination": "Quẹo trái về {destination}" + }, + "right": { + "default": "Quẹo phải", + "name": "Quẹo phải vào {way_name}", + "destination": "Quẹo phải về {destination}" + }, + "straight": { + "default": "Chạy thẳng", + "name": "Chạy thẳng vào {way_name}", + "destination": "Chạy thẳng về {destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "Chạy thẳng" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],47:[function(_dereq_,module,exports){ +module.exports={ + "meta": { + "capitalizeFirstLetter": false + }, + "v5": { + "constants": { + "ordinalize": { + "1": "第一", + "2": "第二", + "3": "第三", + "4": "第四", + "5": "第五", + "6": "第六", + "7": "第七", + "8": "第八", + "9": "第九", + "10": "第十" + }, + "direction": { + "north": "北", + "northeast": "东北", + "east": "东", + "southeast": "东南", + "south": "南", + "southwest": "西南", + "west": "西", + "northwest": "西北" + }, + "modifier": { + "left": "向左", + "right": "向右", + "sharp left": "急向左", + "sharp right": "急向右", + "slight left": "稍向左", + "slight right": "稍向右", + "straight": "直行", + "uturn": "调头" + }, + "lanes": { + "xo": "靠右行驶", + "ox": "靠左行驶", + "xox": "保持在道路中间行驶", + "oxo": "保持在道路左侧或右侧行驶" + } + }, + "modes": { + "ferry": { + "default": "乘坐轮渡", + "name": "乘坐{way_name}轮渡", + "destination": "乘坐开往{destination}的轮渡" + } + }, + "phrase": { + "two linked by distance": "{instruction_one},{distance}后{instruction_two}", + "two linked": "{instruction_one},随后{instruction_two}", + "one in distance": "{distance}后{instruction_one}", + "name and ref": "{name}({ref})", + "exit with number": "出口{exit}" + }, + "arrive": { + "default": { + "default": "您已经到达您的{nth}个目的地", + "upcoming": "您即将到达您的{nth}个目的地", + "short": "已到达目的地", + "short-upcoming": "即将到达目的地", + "named": "您已到达{waypoint_name}" + }, + "left": { + "default": "您已经到达您的{nth}个目的地,目的地在道路左侧", + "upcoming": "您即将到达您的{nth}个目的地,目的地在道路左侧", + "short": "已到达目的地", + "short-upcoming": "即将到达目的地", + "named": "您已到达{waypoint_name},目的地在您左边。" + }, + "right": { + "default": "您已经到达您的{nth}个目的地,目的地在道路右侧", + "upcoming": "您即将到达您的{nth}个目的地,目的地在道路右侧", + "short": "已到达目的地", + "short-upcoming": "即将到达目的地", + "named": "您已到达{waypoint_name},目的地在您右边。" + }, + "sharp left": { + "default": "您已经到达您的{nth}个目的地,目的地在道路左侧", + "upcoming": "您即将到达您的{nth}个目的地,目的地在道路左侧", + "short": "已到达目的地", + "short-upcoming": "即将到达目的地", + "named": "您已到达{waypoint_name},目的地在您左边。" + }, + "sharp right": { + "default": "您已经到达您的{nth}个目的地,目的地在道路右侧", + "upcoming": "您即将到达您的{nth}个目的地,目的地在道路右侧", + "short": "已到达目的地", + "short-upcoming": "即将到达目的地", + "named": "您已到达{waypoint_name},目的地在您右边。" + }, + "slight right": { + "default": "您已经到达您的{nth}个目的地,目的地在道路左侧", + "upcoming": "您即将到达您的{nth}个目的地,目的地在道路左侧", + "short": "已到达目的地", + "short-upcoming": "即将到达目的地", + "named": "您已到达{waypoint_name},目的地在您右边。" + }, + "slight left": { + "default": "您已经到达您的{nth}个目的地,目的地在道路右侧", + "upcoming": "您即将到达您的{nth}个目的地,目的地在道路右侧", + "short": "已到达目的地", + "short-upcoming": "即将到达目的地", + "named": "您已到达{waypoint_name},目的地在您左边。" + }, + "straight": { + "default": "您已经到达您的{nth}个目的地,目的地在您正前方", + "upcoming": "您即将到达您的{nth}个目的地,目的地在您正前方", + "short": "已到达目的地", + "short-upcoming": "即将到达目的地", + "named": "您已到达{waypoint_name},目的地在您前方。" + } + }, + "continue": { + "default": { + "default": "{modifier}行驶", + "name": "在{way_name}上继续{modifier}行驶", + "destination": "{modifier}行驶,{destination}方向", + "exit": "{modifier}行驶,驶入{way_name}" + }, + "straight": { + "default": "继续直行", + "name": "在{way_name}上继续直行", + "destination": "继续直行,前往{destination}", + "distance": "继续直行{distance}", + "namedistance": "继续在{way_name}上直行{distance}" + }, + "sharp left": { + "default": "前方左急转弯", + "name": "前方左急转弯,继续在{way_name}上行驶", + "destination": "左急转弯,前往{destination}" + }, + "sharp right": { + "default": "前方右急转弯", + "name": "前方右急转弯,继续在{way_name}上行驶", + "destination": "右急转弯,前往{destination}" + }, + "slight left": { + "default": "前方稍向左转", + "name": "前方稍向左转,继续在{way_name}上行驶", + "destination": "稍向左转,前往{destination}" + }, + "slight right": { + "default": "前方稍向右转", + "name": "前方稍向右转,继续在{way_name}上行驶", + "destination": "前方稍向右转,前往{destination}" + }, + "uturn": { + "default": "前方调头", + "name": "前方调头,继续在{way_name}上行驶", + "destination": "前方调头,前往{destination}" + } + }, + "depart": { + "default": { + "default": "出发向{direction}", + "name": "出发向{direction},驶入{way_name}", + "namedistance": "出发向{direction},在{way_name}上继续行驶{distance}" + } + }, + "end of road": { + "default": { + "default": "{modifier}行驶", + "name": "{modifier}行驶,驶入{way_name}", + "destination": "{modifier}行驶,前往{destination}" + }, + "straight": { + "default": "继续直行", + "name": "继续直行,驶入{way_name}", + "destination": "继续直行,前往{destination}" + }, + "uturn": { + "default": "在道路尽头调头", + "name": "在道路尽头调头驶入{way_name}", + "destination": "在道路尽头调头,前往{destination}" + } + }, + "fork": { + "default": { + "default": "在岔道保持{modifier}", + "name": "在岔道口保持{modifier},驶入{way_name}", + "destination": "在岔道口保持{modifier},前往{destination}" + }, + "slight left": { + "default": "在岔道口保持左侧行驶", + "name": "在岔道口保持左侧行驶,驶入{way_name}", + "destination": "在岔道口保持左侧行驶,前往{destination}" + }, + "slight right": { + "default": "在岔道口保持右侧行驶", + "name": "在岔道口保持右侧行驶,驶入{way_name}", + "destination": "在岔道口保持右侧行驶,前往{destination}" + }, + "sharp left": { + "default": "在岔道口左急转弯", + "name": "在岔道口左急转弯,驶入{way_name}", + "destination": "在岔道口左急转弯,前往{destination}" + }, + "sharp right": { + "default": "在岔道口右急转弯", + "name": "在岔道口右急转弯,驶入{way_name}", + "destination": "在岔道口右急转弯,前往{destination}" + }, + "uturn": { + "default": "前方调头", + "name": "前方调头,驶入{way_name}", + "destination": "前方调头,前往{destination}" + } + }, + "merge": { + "default": { + "default": "{modifier}并道", + "name": "{modifier}并道,驶入{way_name}", + "destination": "{modifier}并道,前往{destination}" + }, + "straight": { + "default": "直行并道", + "name": "直行并道,驶入{way_name}", + "destination": "直行并道,前往{destination}" + }, + "slight left": { + "default": "稍向左并道", + "name": "稍向左并道,驶入{way_name}", + "destination": "稍向左并道,前往{destination}" + }, + "slight right": { + "default": "稍向右并道", + "name": "稍向右并道,驶入{way_name}", + "destination": "稍向右并道,前往{destination}" + }, + "sharp left": { + "default": "急向左并道", + "name": "急向左并道,驶入{way_name}", + "destination": "急向左并道,前往{destination}" + }, + "sharp right": { + "default": "急向右并道", + "name": "急向右并道,驶入{way_name}", + "destination": "急向右并道,前往{destination}" + }, + "uturn": { + "default": "前方调头", + "name": "前方调头,驶入{way_name}", + "destination": "前方调头,前往{destination}" + } + }, + "new name": { + "default": { + "default": "继续{modifier}", + "name": "继续{modifier},驶入{way_name}", + "destination": "继续{modifier},前往{destination}" + }, + "straight": { + "default": "继续直行", + "name": "继续在{way_name}上直行", + "destination": "继续直行,前往{destination}" + }, + "sharp left": { + "default": "前方左急转弯", + "name": "前方左急转弯,驶入{way_name}", + "destination": "左急转弯,前往{destination}" + }, + "sharp right": { + "default": "前方右急转弯", + "name": "前方右急转弯,驶入{way_name}", + "destination": "右急转弯,前往{destination}" + }, + "slight left": { + "default": "继续稍向左", + "name": "继续稍向左,驶入{way_name}", + "destination": "继续稍向左,前往{destination}" + }, + "slight right": { + "default": "继续稍向右", + "name": "继续稍向右,驶入{way_name}", + "destination": "继续稍向右,前往{destination}" + }, + "uturn": { + "default": "前方调头", + "name": "前方调头,上{way_name}", + "destination": "前方调头,前往{destination}" + } + }, + "notification": { + "default": { + "default": "继续{modifier}", + "name": "继续{modifier},驶入{way_name}", + "destination": "继续{modifier},前往{destination}" + }, + "uturn": { + "default": "前方调头", + "name": "前方调头,驶入{way_name}", + "destination": "前方调头,前往{destination}" + } + }, + "off ramp": { + "default": { + "default": "下匝道", + "name": "下匝道,驶入{way_name}", + "destination": "下匝道,前往{destination}", + "exit": "从{exit}出口驶出", + "exit_destination": "从{exit}出口驶出,前往{destination}" + }, + "left": { + "default": "下左侧匝道", + "name": "下左侧匝道,上{way_name}", + "destination": "下左侧匝道,前往{destination}", + "exit": "从左侧{exit}出口驶出", + "exit_destination": "从左侧{exit}出口驶出,前往{destination}" + }, + "right": { + "default": "下右侧匝道", + "name": "下右侧匝道,驶入{way_name}", + "destination": "下右侧匝道,前往{destination}", + "exit": "从右侧{exit}出口驶出", + "exit_destination": "从右侧{exit}出口驶出,前往{destination}" + }, + "sharp left": { + "default": "急向左下匝道", + "name": "急向左下匝道,驶入{way_name}", + "destination": "急向左下匝道,前往{destination}", + "exit": "从左侧{exit}出口驶出", + "exit_destination": "从左侧{exit}出口驶出,前往{destination}" + }, + "sharp right": { + "default": "急向右下匝道", + "name": "急向右下匝道,驶入{way_name}", + "destination": "急向右下匝道,前往{destination}", + "exit": "从右侧{exit}出口驶出", + "exit_destination": "从右侧{exit}出口驶出,前往{destination}" + }, + "slight left": { + "default": "稍向左下匝道", + "name": "稍向左下匝道,驶入{way_name}", + "destination": "稍向左下匝道,前往{destination}", + "exit": "从左侧{exit}出口驶出", + "exit_destination": "从左侧{exit}出口驶出,前往{destination}" + }, + "slight right": { + "default": "稍向右下匝道", + "name": "稍向右下匝道,驶入{way_name}", + "destination": "稍向右下匝道,前往{destination}", + "exit": "从右侧{exit}出口驶出", + "exit_destination": "从右侧{exit}出口驶出,前往{destination}" + } + }, + "on ramp": { + "default": { + "default": "上匝道", + "name": "上匝道,驶入{way_name}", + "destination": "上匝道,前往{destination}" + }, + "left": { + "default": "上左侧匝道", + "name": "上左侧匝道,驶入{way_name}", + "destination": "上左侧匝道,前往{destination}" + }, + "right": { + "default": "上右侧匝道", + "name": "上右侧匝道,驶入{way_name}", + "destination": "上右侧匝道,前往{destination}" + }, + "sharp left": { + "default": "急向左上匝道", + "name": "急向左上匝道,驶入{way_name}", + "destination": "急向左上匝道,前往{destination}" + }, + "sharp right": { + "default": "急向右上匝道", + "name": "急向右上匝道,驶入{way_name}", + "destination": "急向右上匝道,前往{destination}" + }, + "slight left": { + "default": "稍向左上匝道", + "name": "稍向左上匝道,驶入{way_name}", + "destination": "稍向左上匝道,前往{destination}" + }, + "slight right": { + "default": "稍向右上匝道", + "name": "稍向右上匝道,驶入{way_name}", + "destination": "稍向右上匝道,前往{destination}" + } + }, + "rotary": { + "default": { + "default": { + "default": "进入环岛", + "name": "通过环岛后驶入{way_name}", + "destination": "通过环岛后前往{destination}" + }, + "name": { + "default": "进入{rotary_name}环岛", + "name": "通过{rotary_name}环岛后驶入{way_name}", + "destination": "通过{rotary_name}环岛后前往{destination}" + }, + "exit": { + "default": "进入环岛后从{exit_number}出口驶出", + "name": "进入环岛后从{exit_number}出口驶出,上{way_name}", + "destination": "进入环岛后从{exit_number}出口驶出,前往{destination}" + }, + "name_exit": { + "default": "进入{rotary_name}环岛后从{exit_number}出口驶出", + "name": "进入{rotary_name}环岛后从{exit_number}出口驶出,上{way_name}", + "destination": "进入{rotary_name}环岛后从{exit_number}出口驶出,前往{destination}" + } + } + }, + "roundabout": { + "default": { + "exit": { + "default": "进入环岛后从{exit_number}出口驶出", + "name": "进入环岛后从{exit_number}出口驶出,上{way_name}", + "destination": "进入环岛后从{exit_number}出口驶出,前往{destination}" + }, + "default": { + "default": "进入环岛", + "name": "通过环岛后驶入{way_name}", + "destination": "通过环岛后前往{destination}" + } + } + }, + "roundabout turn": { + "default": { + "default": "{modifier}转弯", + "name": "{modifier}转弯,驶入{way_name}", + "destination": "{modifier}转弯,前往{destination}" + }, + "left": { + "default": "左转", + "name": "左转,驶入{way_name}", + "destination": "左转,前往{destination}" + }, + "right": { + "default": "右转", + "name": "右转,驶入{way_name}", + "destination": "右转,前往{destination}" + }, + "straight": { + "default": "继续直行", + "name": "继续直行,驶入{way_name}", + "destination": "继续直行,前往{destination}" + } + }, + "exit roundabout": { + "default": { + "default": "驶离环岛", + "name": "驶离环岛,驶入{way_name}", + "destination": "驶离环岛,前往{destination}" + } + }, + "exit rotary": { + "default": { + "default": "驶离环岛", + "name": "驶离环岛,驶入{way_name}", + "destination": "驶离环岛,前往{destination}" + } + }, + "turn": { + "default": { + "default": "{modifier}转弯", + "name": "{modifier}转弯,驶入{way_name}", + "destination": "{modifier}转弯,前往{destination}" + }, + "left": { + "default": "左转", + "name": "左转,驶入{way_name}", + "destination": "左转,前往{destination}" + }, + "right": { + "default": "右转", + "name": "右转,驶入{way_name}", + "destination": "右转,前往{destination}" + }, + "straight": { + "default": "直行", + "name": "直行,驶入{way_name}", + "destination": "直行,前往{destination}" + } + }, + "use lane": { + "no_lanes": { + "default": "继续直行" + }, + "default": { + "default": "{lane_instruction}" + } + } + } +} + +},{}],48:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + + module.exports = L.Class.extend({ + options: { + timeout: 500, + blurTimeout: 100, + noResultsMessage: 'No results found.' + }, + + initialize: function(elem, callback, context, options) { + L.setOptions(this, options); + + this._elem = elem; + this._resultFn = options.resultFn ? L.Util.bind(options.resultFn, options.resultContext) : null; + this._autocomplete = options.autocompleteFn ? L.Util.bind(options.autocompleteFn, options.autocompleteContext) : null; + this._selectFn = L.Util.bind(callback, context); + this._container = L.DomUtil.create('div', 'leaflet-routing-geocoder-result'); + this._resultTable = L.DomUtil.create('table', '', this._container); + + // TODO: looks a bit like a kludge to register same for input and keypress - + // browsers supporting both will get duplicate events; just registering + // input will not catch enter, though. + L.DomEvent.addListener(this._elem, 'input', this._keyPressed, this); + L.DomEvent.addListener(this._elem, 'keypress', this._keyPressed, this); + L.DomEvent.addListener(this._elem, 'keydown', this._keyDown, this); + L.DomEvent.addListener(this._elem, 'blur', function() { + if (this._isOpen) { + this.close(); + } + }, this); + }, + + close: function() { + L.DomUtil.removeClass(this._container, 'leaflet-routing-geocoder-result-open'); + this._isOpen = false; + }, + + _open: function() { + var rect = this._elem.getBoundingClientRect(); + if (!this._container.parentElement) { + // See notes section under https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollX + // This abomination is required to support all flavors of IE + var scrollX = (window.pageXOffset !== undefined) ? window.pageXOffset + : (document.documentElement || document.body.parentNode || document.body).scrollLeft; + var scrollY = (window.pageYOffset !== undefined) ? window.pageYOffset + : (document.documentElement || document.body.parentNode || document.body).scrollTop; + this._container.style.left = (rect.left + scrollX) + 'px'; + this._container.style.top = (rect.bottom + scrollY) + 'px'; + this._container.style.width = (rect.right - rect.left) + 'px'; + document.body.appendChild(this._container); + } + + L.DomUtil.addClass(this._container, 'leaflet-routing-geocoder-result-open'); + this._isOpen = true; + }, + + _setResults: function(results) { + var i, + tr, + td, + text; + + delete this._selection; + this._results = results; + + while (this._resultTable.firstChild) { + this._resultTable.removeChild(this._resultTable.firstChild); + } + + for (i = 0; i < results.length; i++) { + tr = L.DomUtil.create('tr', '', this._resultTable); + tr.setAttribute('data-result-index', i); + td = L.DomUtil.create('td', '', tr); + text = document.createTextNode(results[i].name); + td.appendChild(text); + // mousedown + click because: + // http://stackoverflow.com/questions/10652852/jquery-fire-click-before-blur-event + L.DomEvent.addListener(td, 'mousedown', L.DomEvent.preventDefault); + L.DomEvent.addListener(td, 'click', this._createClickListener(results[i])); + } + + if (!i) { + tr = L.DomUtil.create('tr', '', this._resultTable); + td = L.DomUtil.create('td', 'leaflet-routing-geocoder-no-results', tr); + td.innerHTML = this.options.noResultsMessage; + } + + this._open(); + + if (results.length > 0) { + // Select the first entry + this._select(1); + } + }, + + _createClickListener: function(r) { + var resultSelected = this._resultSelected(r); + return L.bind(function() { + this._elem.blur(); + resultSelected(); + }, this); + }, + + _resultSelected: function(r) { + return L.bind(function() { + this.close(); + this._elem.value = r.name; + this._lastCompletedText = r.name; + this._selectFn(r); + }, this); + }, + + _keyPressed: function(e) { + var index; + + if (this._isOpen && e.keyCode === 13 && this._selection) { + index = parseInt(this._selection.getAttribute('data-result-index'), 10); + this._resultSelected(this._results[index])(); + L.DomEvent.preventDefault(e); + return; + } + + if (e.keyCode === 13) { + L.DomEvent.preventDefault(e); + this._complete(this._resultFn, true); + return; + } + + if (this._autocomplete && document.activeElement === this._elem) { + if (this._timer) { + clearTimeout(this._timer); + } + this._timer = setTimeout(L.Util.bind(function() { this._complete(this._autocomplete); }, this), + this.options.timeout); + return; + } + + this._unselect(); + }, + + _select: function(dir) { + var sel = this._selection; + if (sel) { + L.DomUtil.removeClass(sel.firstChild, 'leaflet-routing-geocoder-selected'); + sel = sel[dir > 0 ? 'nextSibling' : 'previousSibling']; + } + if (!sel) { + sel = this._resultTable[dir > 0 ? 'firstChild' : 'lastChild']; + } + + if (sel) { + L.DomUtil.addClass(sel.firstChild, 'leaflet-routing-geocoder-selected'); + this._selection = sel; + } + }, + + _unselect: function() { + if (this._selection) { + L.DomUtil.removeClass(this._selection.firstChild, 'leaflet-routing-geocoder-selected'); + } + delete this._selection; + }, + + _keyDown: function(e) { + if (this._isOpen) { + switch (e.keyCode) { + // Escape + case 27: + this.close(); + L.DomEvent.preventDefault(e); + return; + // Up + case 38: + this._select(-1); + L.DomEvent.preventDefault(e); + return; + // Down + case 40: + this._select(1); + L.DomEvent.preventDefault(e); + return; + } + } + }, + + _complete: function(completeFn, trySelect) { + var v = this._elem.value; + function completeResults(results) { + this._lastCompletedText = v; + if (trySelect && results.length === 1) { + this._resultSelected(results[0])(); + } else { + this._setResults(results); + } + } + + if (!v) { + return; + } + + if (v !== this._lastCompletedText) { + completeFn(v, completeResults, this); + } else if (trySelect) { + completeResults.call(this, this._results); + } + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],49:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + + var Itinerary = _dereq_('./itinerary'); + var Line = _dereq_('./line'); + var Plan = _dereq_('./plan'); + var OSRMv1 = _dereq_('./osrm-v1'); + + module.exports = Itinerary.extend({ + options: { + fitSelectedRoutes: 'smart', + routeLine: function(route, options) { return new Line(route, options); }, + autoRoute: true, + routeWhileDragging: false, + routeDragInterval: 500, + waypointMode: 'connect', + showAlternatives: false, + defaultErrorHandler: function(e) { + console.error('Routing error:', e.error); + } + }, + + initialize: function(options) { + L.Util.setOptions(this, options); + + this._router = this.options.router || new OSRMv1(options); + this._plan = this.options.plan || new Plan(this.options.waypoints, options); + this._requestCount = 0; + + Itinerary.prototype.initialize.call(this, options); + + this.on('routeselected', this._routeSelected, this); + if (this.options.defaultErrorHandler) { + this.on('routingerror', this.options.defaultErrorHandler); + } + this._plan.on('waypointschanged', this._onWaypointsChanged, this); + if (options.routeWhileDragging) { + this._setupRouteDragging(); + } + }, + + _onZoomEnd: function() { + if (!this._selectedRoute || + !this._router.requiresMoreDetail) { + return; + } + + var map = this._map; + if (this._router.requiresMoreDetail(this._selectedRoute, + map.getZoom(), map.getBounds())) { + this.route({ + callback: L.bind(function(err, routes) { + var i; + if (!err) { + for (i = 0; i < routes.length; i++) { + this._routes[i].properties = routes[i].properties; + } + this._updateLineCallback(err, routes); + } + + }, this), + simplifyGeometry: false, + geometryOnly: true + }); + } + }, + + onAdd: function(map) { + if (this.options.autoRoute) { + this.route(); + } + + var container = Itinerary.prototype.onAdd.call(this, map); + + this._map = map; + this._map.addLayer(this._plan); + + this._map.on('zoomend', this._onZoomEnd, this); + + if (this._plan.options.geocoder) { + container.insertBefore(this._plan.createGeocoders(), container.firstChild); + } + + return container; + }, + + onRemove: function(map) { + map.off('zoomend', this._onZoomEnd, this); + if (this._line) { + map.removeLayer(this._line); + } + map.removeLayer(this._plan); + if (this._alternatives && this._alternatives.length > 0) { + for (var i = 0, len = this._alternatives.length; i < len; i++) { + map.removeLayer(this._alternatives[i]); + } + } + return Itinerary.prototype.onRemove.call(this, map); + }, + + getWaypoints: function() { + return this._plan.getWaypoints(); + }, + + setWaypoints: function(waypoints) { + this._plan.setWaypoints(waypoints); + return this; + }, + + spliceWaypoints: function() { + var removed = this._plan.spliceWaypoints.apply(this._plan, arguments); + return removed; + }, + + getPlan: function() { + return this._plan; + }, + + getRouter: function() { + return this._router; + }, + + _routeSelected: function(e) { + var route = this._selectedRoute = e.route, + alternatives = this.options.showAlternatives && e.alternatives, + fitMode = this.options.fitSelectedRoutes, + fitBounds = + (fitMode === 'smart' && !this._waypointsVisible()) || + (fitMode !== 'smart' && fitMode); + + this._updateLines({route: route, alternatives: alternatives}); + + if (fitBounds) { + this._map.fitBounds(this._line.getBounds()); + } + + if (this.options.waypointMode === 'snap') { + this._plan.off('waypointschanged', this._onWaypointsChanged, this); + this.setWaypoints(route.waypoints); + this._plan.on('waypointschanged', this._onWaypointsChanged, this); + } + }, + + _waypointsVisible: function() { + var wps = this.getWaypoints(), + mapSize, + bounds, + boundsSize, + i, + p; + + try { + mapSize = this._map.getSize(); + + for (i = 0; i < wps.length; i++) { + p = this._map.latLngToLayerPoint(wps[i].latLng); + + if (bounds) { + bounds.extend(p); + } else { + bounds = L.bounds([p]); + } + } + + boundsSize = bounds.getSize(); + return (boundsSize.x > mapSize.x / 5 || + boundsSize.y > mapSize.y / 5) && this._waypointsInViewport(); + + } catch (e) { + return false; + } + }, + + _waypointsInViewport: function() { + var wps = this.getWaypoints(), + mapBounds, + i; + + try { + mapBounds = this._map.getBounds(); + } catch (e) { + return false; + } + + for (i = 0; i < wps.length; i++) { + if (mapBounds.contains(wps[i].latLng)) { + return true; + } + } + + return false; + }, + + _updateLines: function(routes) { + var addWaypoints = this.options.addWaypoints !== undefined ? + this.options.addWaypoints : true; + this._clearLines(); + + // add alternatives first so they lie below the main route + this._alternatives = []; + if (routes.alternatives) routes.alternatives.forEach(function(alt, i) { + this._alternatives[i] = this.options.routeLine(alt, + L.extend({ + isAlternative: true + }, this.options.altLineOptions || this.options.lineOptions)); + this._alternatives[i].addTo(this._map); + this._hookAltEvents(this._alternatives[i]); + }, this); + + this._line = this.options.routeLine(routes.route, + L.extend({ + addWaypoints: addWaypoints, + extendToWaypoints: this.options.waypointMode === 'connect' + }, this.options.lineOptions)); + this._line.addTo(this._map); + this._hookEvents(this._line); + }, + + _hookEvents: function(l) { + l.on('linetouched', function(e) { + this._plan.dragNewWaypoint(e); + }, this); + }, + + _hookAltEvents: function(l) { + l.on('linetouched', function(e) { + var alts = this._routes.slice(); + var selected = alts.splice(e.target._route.routesIndex, 1)[0]; + this.fire('routeselected', {route: selected, alternatives: alts}); + }, this); + }, + + _onWaypointsChanged: function(e) { + if (this.options.autoRoute) { + this.route({}); + } + if (!this._plan.isReady()) { + this._clearLines(); + this._clearAlts(); + } + this.fire('waypointschanged', {waypoints: e.waypoints}); + }, + + _setupRouteDragging: function() { + var timer = 0, + waypoints; + + this._plan.on('waypointdrag', L.bind(function(e) { + waypoints = e.waypoints; + + if (!timer) { + timer = setTimeout(L.bind(function() { + this.route({ + waypoints: waypoints, + geometryOnly: true, + callback: L.bind(this._updateLineCallback, this) + }); + timer = undefined; + }, this), this.options.routeDragInterval); + } + }, this)); + this._plan.on('waypointdragend', function() { + if (timer) { + clearTimeout(timer); + timer = undefined; + } + this.route(); + }, this); + }, + + _updateLineCallback: function(err, routes) { + if (!err) { + routes = routes.slice(); + var selected = routes.splice(this._selectedRoute.routesIndex, 1)[0]; + this._updateLines({ + route: selected, + alternatives: this.options.showAlternatives ? routes : [] + }); + } else if (err.type !== 'abort') { + this._clearLines(); + } + }, + + route: function(options) { + var ts = ++this._requestCount, + wps; + + if (this._pendingRequest && this._pendingRequest.abort) { + this._pendingRequest.abort(); + this._pendingRequest = null; + } + + options = options || {}; + + if (this._plan.isReady()) { + if (this.options.useZoomParameter) { + options.z = this._map && this._map.getZoom(); + } + + wps = options && options.waypoints || this._plan.getWaypoints(); + this.fire('routingstart', {waypoints: wps}); + this._pendingRequest = this._router.route(wps, function(err, routes) { + this._pendingRequest = null; + + if (options.callback) { + return options.callback.call(this, err, routes); + } + + // Prevent race among multiple requests, + // by checking the current request's count + // against the last request's; ignore result if + // this isn't the last request. + if (ts === this._requestCount) { + this._clearLines(); + this._clearAlts(); + if (err && err.type !== 'abort') { + this.fire('routingerror', {error: err}); + return; + } + + routes.forEach(function(route, i) { route.routesIndex = i; }); + + if (!options.geometryOnly) { + this.fire('routesfound', {waypoints: wps, routes: routes}); + this.setAlternatives(routes); + } else { + var selectedRoute = routes.splice(0,1)[0]; + this._routeSelected({route: selectedRoute, alternatives: routes}); + } + } + }, this, options); + } + }, + + _clearLines: function() { + if (this._line) { + this._map.removeLayer(this._line); + delete this._line; + } + if (this._alternatives && this._alternatives.length) { + for (var i in this._alternatives) { + this._map.removeLayer(this._alternatives[i]); + } + this._alternatives = []; + } + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./itinerary":55,"./line":56,"./osrm-v1":59,"./plan":60}],50:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + + module.exports = L.Control.extend({ + options: { + header: 'Routing error', + formatMessage: function(error) { + if (error.status < 0) { + return 'Calculating the route caused an error. Technical description follows:
' +
+                        error.message + '
= 1000) { + data = { + value: round(d / 1609.344, sensitivity), + unit: un.miles + }; + } else { + data = { + value: round(yards, sensitivity), + unit: un.yards + }; + } + } else { + v = round(d, sensitivity); + data = { + value: v >= 1000 ? (v / 1000) : v, + unit: v >= 1000 ? un.kilometers : un.meters + }; + } + + if (simpleRounding) { + data.value = data.value.toFixed(-sensitivity); + } + + return L.Util.template(this.options.distanceTemplate, data); + }, + + _round: function(d, sensitivity) { + var s = sensitivity || this.options.roundingSensitivity, + pow10 = Math.pow(10, (Math.floor(d / s) + '').length - 1), + r = Math.floor(d / pow10), + p = (r > 5) ? pow10 : pow10 / 2; + + return Math.round(d / p) * p; + }, + + formatTime: function(t /* Number (seconds) */) { + var un = this.options.unitNames || this._localization.localize('units'); + // More than 30 seconds precision looks ridiculous + t = Math.round(t / 30) * 30; + + if (t > 86400) { + return Math.round(t / 3600) + ' ' + un.hours; + } else if (t > 3600) { + return Math.floor(t / 3600) + ' ' + un.hours + ' ' + + Math.round((t % 3600) / 60) + ' ' + un.minutes; + } else if (t > 300) { + return Math.round(t / 60) + ' ' + un.minutes; + } else if (t > 60) { + return Math.floor(t / 60) + ' ' + un.minutes + + (t % 60 !== 0 ? ' ' + (t % 60) + ' ' + un.seconds : ''); + } else { + return t + ' ' + un.seconds; + } + }, + + formatInstruction: function(instr, i) { + if (instr.text === undefined) { + return this.capitalize(L.Util.template(this._getInstructionTemplate(instr, i), + L.extend({}, instr, { + exitStr: instr.exit ? this._localization.localize('formatOrder')(instr.exit) : '', + dir: this._localization.localize(['directions', instr.direction]), + modifier: this._localization.localize(['directions', instr.modifier]) + }))); + } else { + return instr.text; + } + }, + + getIconName: function(instr, i) { + switch (instr.type) { + case 'Head': + if (i === 0) { + return 'depart'; + } + break; + case 'WaypointReached': + return 'via'; + case 'Roundabout': + return 'enter-roundabout'; + case 'DestinationReached': + return 'arrive'; + } + + switch (instr.modifier) { + case 'Straight': + return 'continue'; + case 'SlightRight': + return 'bear-right'; + case 'Right': + return 'turn-right'; + case 'SharpRight': + return 'sharp-right'; + case 'TurnAround': + case 'Uturn': + return 'u-turn'; + case 'SharpLeft': + return 'sharp-left'; + case 'Left': + return 'turn-left'; + case 'SlightLeft': + return 'bear-left'; + } + }, + + capitalize: function(s) { + return s.charAt(0).toUpperCase() + s.substring(1); + }, + + _getInstructionTemplate: function(instr, i) { + var type = instr.type === 'Straight' ? (i === 0 ? 'Head' : 'Continue') : instr.type, + strings = this._localization.localize(['instructions', type]); + + if (!strings) { + strings = [ + this._localization.localize(['directions', type]), + ' ' + this._localization.localize(['instructions', 'Onto']) + ]; + } + + return strings[0] + (strings.length > 1 && instr.road ? strings[1] : ''); + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./localization":57}],52:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + var Autocomplete = _dereq_('./autocomplete'); + var Localization = _dereq_('./localization'); + + function selectInputText(input) { + if (input.setSelectionRange) { + // On iOS, select() doesn't work + input.setSelectionRange(0, 9999); + } else { + // On at least IE8, setSeleectionRange doesn't exist + input.select(); + } + } + + module.exports = L.Class.extend({ + includes: ((typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events), + + options: { + createGeocoder: function(i, nWps, options) { + var container = L.DomUtil.create('div', 'leaflet-routing-geocoder'), + input = L.DomUtil.create('input', '', container), + remove = options.addWaypoints ? L.DomUtil.create('span', 'leaflet-routing-remove-waypoint', container) : undefined; + + input.disabled = !options.addWaypoints; + + return { + container: container, + input: input, + closeButton: remove + }; + }, + geocoderPlaceholder: function(i, numberWaypoints, geocoderElement) { + var l = new Localization(geocoderElement.options.language).localize('ui'); + return i === 0 ? + l.startPlaceholder : + (i < numberWaypoints - 1 ? + L.Util.template(l.viaPlaceholder, {viaNumber: i}) : + l.endPlaceholder); + }, + + geocoderClass: function() { + return ''; + }, + + waypointNameFallback: function(latLng) { + var ns = latLng.lat < 0 ? 'S' : 'N', + ew = latLng.lng < 0 ? 'W' : 'E', + lat = (Math.round(Math.abs(latLng.lat) * 10000) / 10000).toString(), + lng = (Math.round(Math.abs(latLng.lng) * 10000) / 10000).toString(); + return ns + lat + ', ' + ew + lng; + }, + maxGeocoderTolerance: 200, + autocompleteOptions: {}, + language: 'en', + }, + + initialize: function(wp, i, nWps, options) { + L.setOptions(this, options); + + var g = this.options.createGeocoder(i, nWps, this.options), + closeButton = g.closeButton, + geocoderInput = g.input; + geocoderInput.setAttribute('placeholder', this.options.geocoderPlaceholder(i, nWps, this)); + geocoderInput.className = this.options.geocoderClass(i, nWps); + + this._element = g; + this._waypoint = wp; + + this.update(); + // This has to be here, or geocoder's value will not be properly + // initialized. + // TODO: look into why and make _updateWaypointName fix this. + geocoderInput.value = wp.name; + + L.DomEvent.addListener(geocoderInput, 'click', function() { + selectInputText(this); + }, geocoderInput); + + if (closeButton) { + L.DomEvent.addListener(closeButton, 'click', function() { + this.fire('delete', { waypoint: this._waypoint }); + }, this); + } + + new Autocomplete(geocoderInput, function(r) { + geocoderInput.value = r.name; + wp.name = r.name; + wp.latLng = r.center; + this.fire('geocoded', { waypoint: wp, value: r }); + }, this, L.extend({ + resultFn: this.options.geocoder.geocode, + resultContext: this.options.geocoder, + autocompleteFn: this.options.geocoder.suggest, + autocompleteContext: this.options.geocoder + }, this.options.autocompleteOptions)); + }, + + getContainer: function() { + return this._element.container; + }, + + setValue: function(v) { + this._element.input.value = v; + }, + + update: function(force) { + var wp = this._waypoint, + wpCoords; + + wp.name = wp.name || ''; + + if (wp.latLng && (force || !wp.name)) { + wpCoords = this.options.waypointNameFallback(wp.latLng); + if (this.options.geocoder && this.options.geocoder.reverse) { + this.options.geocoder.reverse(wp.latLng, 67108864 /* zoom 18 */, function(rs) { + if (rs.length > 0 && rs[0].center.distanceTo(wp.latLng) < this.options.maxGeocoderTolerance) { + wp.name = rs[0].name; + } else { + wp.name = wpCoords; + } + this._update(); + }, this); + } else { + wp.name = wpCoords; + this._update(); + } + } + }, + + focus: function() { + var input = this._element.input; + input.focus(); + selectInputText(input); + }, + + _update: function() { + var wp = this._waypoint, + value = wp && wp.name ? wp.name : ''; + this.setValue(value); + this.fire('reversegeocoded', {waypoint: wp, value: value}); + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./autocomplete":48,"./localization":57}],53:[function(_dereq_,module,exports){ +(function (global){ +var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null), + Control = _dereq_('./control'), + Itinerary = _dereq_('./itinerary'), + Line = _dereq_('./line'), + OSRMv1 = _dereq_('./osrm-v1'), + Plan = _dereq_('./plan'), + Waypoint = _dereq_('./waypoint'), + Autocomplete = _dereq_('./autocomplete'), + Formatter = _dereq_('./formatter'), + GeocoderElement = _dereq_('./geocoder-element'), + Localization = _dereq_('./localization'), + ItineraryBuilder = _dereq_('./itinerary-builder'), + Mapbox = _dereq_('./mapbox'), + ErrorControl = _dereq_('./error-control'); + +L.routing = { + control: function(options) { return new Control(options); }, + itinerary: function(options) { + return Itinerary(options); + }, + line: function(route, options) { + return new Line(route, options); + }, + plan: function(waypoints, options) { + return new Plan(waypoints, options); + }, + waypoint: function(latLng, name, options) { + return new Waypoint(latLng, name, options); + }, + osrmv1: function(options) { + return new OSRMv1(options); + }, + localization: function(options) { + return new Localization(options); + }, + formatter: function(options) { + return new Formatter(options); + }, + geocoderElement: function(wp, i, nWps, plan) { + return new L.Routing.GeocoderElement(wp, i, nWps, plan); + }, + itineraryBuilder: function(options) { + return new ItineraryBuilder(options); + }, + mapbox: function(accessToken, options) { + return new Mapbox(accessToken, options); + }, + errorControl: function(routingControl, options) { + return new ErrorControl(routingControl, options); + }, + autocomplete: function(elem, callback, context, options) { + return new Autocomplete(elem, callback, context, options); + } +}; + +module.exports = L.Routing = { + Control: Control, + Itinerary: Itinerary, + Line: Line, + OSRMv1: OSRMv1, + Plan: Plan, + Waypoint: Waypoint, + Autocomplete: Autocomplete, + Formatter: Formatter, + GeocoderElement: GeocoderElement, + Localization: Localization, + Formatter: Formatter, + ItineraryBuilder: ItineraryBuilder, + + // Legacy; remove these in next major release + control: L.routing.control, + itinerary: L.routing.itinerary, + line: L.routing.line, + plan: L.routing.plan, + waypoint: L.routing.waypoint, + osrmv1: L.routing.osrmv1, + geocoderElement: L.routing.geocoderElement, + mapbox: L.routing.mapbox, + errorControl: L.routing.errorControl, +}; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./autocomplete":48,"./control":49,"./error-control":50,"./formatter":51,"./geocoder-element":52,"./itinerary":55,"./itinerary-builder":54,"./line":56,"./localization":57,"./mapbox":58,"./osrm-v1":59,"./plan":60,"./waypoint":61}],54:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + + module.exports = L.Class.extend({ + options: { + containerClassName: '' + }, + + initialize: function(options) { + L.setOptions(this, options); + }, + + createContainer: function(className) { + var table = L.DomUtil.create('table', (className || '') + ' ' + this.options.containerClassName), + colgroup = L.DomUtil.create('colgroup', '', table); + + L.DomUtil.create('col', 'leaflet-routing-instruction-icon', colgroup); + L.DomUtil.create('col', 'leaflet-routing-instruction-text', colgroup); + L.DomUtil.create('col', 'leaflet-routing-instruction-distance', colgroup); + + return table; + }, + + createStepsContainer: function() { + return L.DomUtil.create('tbody', ''); + }, + + createStep: function(text, distance, icon, steps) { + var row = L.DomUtil.create('tr', '', steps), + span, + td; + td = L.DomUtil.create('td', '', row); + span = L.DomUtil.create('span', 'leaflet-routing-icon leaflet-routing-icon-'+icon, td); + td.appendChild(span); + td = L.DomUtil.create('td', '', row); + td.appendChild(document.createTextNode(text)); + td = L.DomUtil.create('td', '', row); + td.appendChild(document.createTextNode(distance)); + return row; + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],55:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + var Formatter = _dereq_('./formatter'); + var ItineraryBuilder = _dereq_('./itinerary-builder'); + + module.exports = L.Control.extend({ + includes: ((typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events), + + options: { + pointMarkerStyle: { + radius: 5, + color: '#03f', + fillColor: 'white', + opacity: 1, + fillOpacity: 0.7 + }, + summaryTemplate: '

{name}

{distance}, {time}

', + timeTemplate: '{time}', + containerClassName: '', + alternativeClassName: '', + minimizedClassName: '', + itineraryClassName: '', + totalDistanceRoundingSensitivity: -1, + show: true, + collapsible: undefined, + collapseBtn: function(itinerary) { + var collapseBtn = L.DomUtil.create('span', itinerary.options.collapseBtnClass); + L.DomEvent.on(collapseBtn, 'click', itinerary._toggle, itinerary); + itinerary._container.insertBefore(collapseBtn, itinerary._container.firstChild); + }, + collapseBtnClass: 'leaflet-routing-collapse-btn' + }, + + initialize: function(options) { + L.setOptions(this, options); + this._formatter = this.options.formatter || new Formatter(this.options); + this._itineraryBuilder = this.options.itineraryBuilder || new ItineraryBuilder({ + containerClassName: this.options.itineraryClassName + }); + }, + + onAdd: function(map) { + var collapsible = this.options.collapsible; + + collapsible = collapsible || (collapsible === undefined && map.getSize().x <= 640); + + this._container = L.DomUtil.create('div', 'leaflet-routing-container leaflet-bar ' + + (!this.options.show ? 'leaflet-routing-container-hide ' : '') + + (collapsible ? 'leaflet-routing-collapsible ' : '') + + this.options.containerClassName); + this._altContainer = this.createAlternativesContainer(); + this._container.appendChild(this._altContainer); + L.DomEvent.disableClickPropagation(this._container); + L.DomEvent.addListener(this._container, 'mousewheel', function(e) { + L.DomEvent.stopPropagation(e); + }); + + if (collapsible) { + this.options.collapseBtn(this); + } + + return this._container; + }, + + onRemove: function() { + }, + + createAlternativesContainer: function() { + return L.DomUtil.create('div', 'leaflet-routing-alternatives-container'); + }, + + setAlternatives: function(routes) { + var i, + alt, + altDiv; + + this._clearAlts(); + + this._routes = routes; + + for (i = 0; i < this._routes.length; i++) { + alt = this._routes[i]; + altDiv = this._createAlternative(alt, i); + this._altContainer.appendChild(altDiv); + this._altElements.push(altDiv); + } + + this._selectRoute({route: this._routes[0], alternatives: this._routes.slice(1)}); + + return this; + }, + + show: function() { + L.DomUtil.removeClass(this._container, 'leaflet-routing-container-hide'); + }, + + hide: function() { + L.DomUtil.addClass(this._container, 'leaflet-routing-container-hide'); + }, + + _toggle: function() { + var collapsed = L.DomUtil.hasClass(this._container, 'leaflet-routing-container-hide'); + this[collapsed ? 'show' : 'hide'](); + }, + + _createAlternative: function(alt, i) { + var altDiv = L.DomUtil.create('div', 'leaflet-routing-alt ' + + this.options.alternativeClassName + + (i > 0 ? ' leaflet-routing-alt-minimized ' + this.options.minimizedClassName : '')), + template = this.options.summaryTemplate, + data = L.extend({ + name: alt.name, + distance: this._formatter.formatDistance(alt.summary.totalDistance, this.options.totalDistanceRoundingSensitivity), + time: this._formatter.formatTime(alt.summary.totalTime) + }, alt); + altDiv.innerHTML = typeof(template) === 'function' ? template(data) : L.Util.template(template, data); + L.DomEvent.addListener(altDiv, 'click', this._onAltClicked, this); + this.on('routeselected', this._selectAlt, this); + + altDiv.appendChild(this._createItineraryContainer(alt)); + return altDiv; + }, + + _clearAlts: function() { + var el = this._altContainer; + while (el && el.firstChild) { + el.removeChild(el.firstChild); + } + + this._altElements = []; + }, + + _createItineraryContainer: function(r) { + var container = this._itineraryBuilder.createContainer(), + steps = this._itineraryBuilder.createStepsContainer(), + i, + instr, + step, + distance, + text, + icon; + + container.appendChild(steps); + + for (i = 0; i < r.instructions.length; i++) { + instr = r.instructions[i]; + text = this._formatter.formatInstruction(instr, i); + distance = this._formatter.formatDistance(instr.distance); + icon = this._formatter.getIconName(instr, i); + step = this._itineraryBuilder.createStep(text, distance, icon, steps); + + if(instr.index) { + this._addRowListeners(step, r.coordinates[instr.index]); + } + } + + return container; + }, + + _addRowListeners: function(row, coordinate) { + L.DomEvent.addListener(row, 'mouseover', function() { + this._marker = L.circleMarker(coordinate, + this.options.pointMarkerStyle).addTo(this._map); + }, this); + L.DomEvent.addListener(row, 'mouseout', function() { + if (this._marker) { + this._map.removeLayer(this._marker); + delete this._marker; + } + }, this); + L.DomEvent.addListener(row, 'click', function(e) { + this._map.panTo(coordinate); + L.DomEvent.stopPropagation(e); + }, this); + }, + + _onAltClicked: function(e) { + var altElem = e.target || window.event.srcElement; + while (!L.DomUtil.hasClass(altElem, 'leaflet-routing-alt')) { + altElem = altElem.parentElement; + } + + var j = this._altElements.indexOf(altElem); + var alts = this._routes.slice(); + var route = alts.splice(j, 1)[0]; + + this.fire('routeselected', { + route: route, + alternatives: alts + }); + }, + + _selectAlt: function(e) { + var altElem, + j, + n, + classFn; + + altElem = this._altElements[e.route.routesIndex]; + + if (L.DomUtil.hasClass(altElem, 'leaflet-routing-alt-minimized')) { + for (j = 0; j < this._altElements.length; j++) { + n = this._altElements[j]; + classFn = j === e.route.routesIndex ? 'removeClass' : 'addClass'; + L.DomUtil[classFn](n, 'leaflet-routing-alt-minimized'); + if (this.options.minimizedClassName) { + L.DomUtil[classFn](n, this.options.minimizedClassName); + } + + if (j !== e.route.routesIndex) n.scrollTop = 0; + } + } + + L.DomEvent.stop(e); + }, + + _selectRoute: function(routes) { + if (this._marker) { + this._map.removeLayer(this._marker); + delete this._marker; + } + this.fire('routeselected', routes); + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./formatter":51,"./itinerary-builder":54}],56:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + + module.exports = L.LayerGroup.extend({ + includes: ((typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events), + + options: { + styles: [ + {color: 'black', opacity: 0.15, weight: 9}, + {color: 'white', opacity: 0.8, weight: 6}, + {color: 'red', opacity: 1, weight: 2} + ], + missingRouteStyles: [ + {color: 'black', opacity: 0.15, weight: 7}, + {color: 'white', opacity: 0.6, weight: 4}, + {color: 'gray', opacity: 0.8, weight: 2, dashArray: '7,12'} + ], + addWaypoints: true, + extendToWaypoints: true, + missingRouteTolerance: 10 + }, + + initialize: function(route, options) { + L.setOptions(this, options); + L.LayerGroup.prototype.initialize.call(this, options); + this._route = route; + + if (this.options.extendToWaypoints) { + this._extendToWaypoints(); + } + + this._addSegment( + route.coordinates, + this.options.styles, + this.options.addWaypoints); + }, + + getBounds: function() { + return L.latLngBounds(this._route.coordinates); + }, + + _findWaypointIndices: function() { + var wps = this._route.inputWaypoints, + indices = [], + i; + for (i = 0; i < wps.length; i++) { + indices.push(this._findClosestRoutePoint(wps[i].latLng)); + } + + return indices; + }, + + _findClosestRoutePoint: function(latlng) { + var minDist = Number.MAX_VALUE, + minIndex, + i, + d; + + for (i = this._route.coordinates.length - 1; i >= 0 ; i--) { + // TODO: maybe do this in pixel space instead? + d = latlng.distanceTo(this._route.coordinates[i]); + if (d < minDist) { + minIndex = i; + minDist = d; + } + } + + return minIndex; + }, + + _extendToWaypoints: function() { + var wps = this._route.inputWaypoints, + wpIndices = this._getWaypointIndices(), + i, + wpLatLng, + routeCoord; + + for (i = 0; i < wps.length; i++) { + wpLatLng = wps[i].latLng; + routeCoord = L.latLng(this._route.coordinates[wpIndices[i]]); + if (wpLatLng.distanceTo(routeCoord) > + this.options.missingRouteTolerance) { + this._addSegment([wpLatLng, routeCoord], + this.options.missingRouteStyles); + } + } + }, + + _addSegment: function(coords, styles, mouselistener) { + var i, + pl; + + for (i = 0; i < styles.length; i++) { + pl = L.polyline(coords, styles[i]); + this.addLayer(pl); + if (mouselistener) { + pl.on('mousedown', this._onLineTouched, this); + } + } + }, + + _findNearestWpBefore: function(i) { + var wpIndices = this._getWaypointIndices(), + j = wpIndices.length - 1; + while (j >= 0 && wpIndices[j] > i) { + j--; + } + + return j; + }, + + _onLineTouched: function(e) { + var afterIndex = this._findNearestWpBefore(this._findClosestRoutePoint(e.latlng)); + this.fire('linetouched', { + afterIndex: afterIndex, + latlng: e.latlng + }); + L.DomEvent.stop(e); + }, + + _getWaypointIndices: function() { + if (!this._wpIndices) { + this._wpIndices = this._route.waypointIndices || this._findWaypointIndices(); + } + + return this._wpIndices; + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],57:[function(_dereq_,module,exports){ +/* + NOTICE + Since version 3.2.5, the functionality in this file is by + default NOT used for localizing OSRM instructions. + Instead, we rely on the module osrm-text-instructions (https://github.com/Project-OSRM/osrm-text-instructions/). + + This file can still be used for other routing backends, or if you specify the + stepToText option in the OSRMv1 class. +*/ + +(function() { + 'use strict'; + + var spanish = { + directions: { + N: 'norte', + NE: 'noreste', + E: 'este', + SE: 'sureste', + S: 'sur', + SW: 'suroeste', + W: 'oeste', + NW: 'noroeste', + SlightRight: 'leve giro a la derecha', + Right: 'derecha', + SharpRight: 'giro pronunciado a la derecha', + SlightLeft: 'leve giro a la izquierda', + Left: 'izquierda', + SharpLeft: 'giro pronunciado a la izquierda', + Uturn: 'media vuelta' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Derecho {dir}', ' sobre {road}'], + 'Continue': + ['Continuar {dir}', ' en {road}'], + 'TurnAround': + ['Dar vuelta'], + 'WaypointReached': + ['Llegó a un punto del camino'], + 'Roundabout': + ['Tomar {exitStr} salida en la rotonda', ' en {road}'], + 'DestinationReached': + ['Llegada a destino'], + 'Fork': ['En el cruce gira a {modifier}', ' hacia {road}'], + 'Merge': ['Incorpórate {modifier}', ' hacia {road}'], + 'OnRamp': ['Gira {modifier} en la salida', ' hacia {road}'], + 'OffRamp': ['Toma la salida {modifier}', ' hacia {road}'], + 'EndOfRoad': ['Gira {modifier} al final de la carretera', ' hacia {road}'], + 'Onto': 'hacia {road}' + }, + formatOrder: function(n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Inicio', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Destino' + }, + units: { + meters: 'm', + kilometers: 'km', + yards: 'yd', + miles: 'mi', + hours: 'h', + minutes: 'min', + seconds: 's' + } + }; + + L.Routing = L.Routing || {}; + + var Localization = L.Class.extend({ + initialize: function(langs) { + this._langs = L.Util.isArray(langs) ? langs.slice() : [langs, 'en']; + + for (var i = 0, l = this._langs.length; i < l; i++) { + var generalizedCode = /([A-Za-z]+)/.exec(this._langs[i])[1] + if (!Localization[this._langs[i]]) { + if (Localization[generalizedCode]) { + this._langs[i] = generalizedCode; + } else { + throw new Error('No localization for language "' + this._langs[i] + '".'); + } + } + } + }, + + localize: function(keys) { + var dict, + key, + value; + + keys = L.Util.isArray(keys) ? keys : [keys]; + + for (var i = 0, l = this._langs.length; i < l; i++) { + dict = Localization[this._langs[i]]; + for (var j = 0, nKeys = keys.length; dict && j < nKeys; j++) { + key = keys[j]; + value = dict[key]; + dict = value; + } + + if (value) { + return value; + } + } + } + }); + + module.exports = L.extend(Localization, { + 'en': { + directions: { + N: 'north', + NE: 'northeast', + E: 'east', + SE: 'southeast', + S: 'south', + SW: 'southwest', + W: 'west', + NW: 'northwest', + SlightRight: 'slight right', + Right: 'right', + SharpRight: 'sharp right', + SlightLeft: 'slight left', + Left: 'left', + SharpLeft: 'sharp left', + Uturn: 'Turn around' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Head {dir}', ' on {road}'], + 'Continue': + ['Continue {dir}'], + 'TurnAround': + ['Turn around'], + 'WaypointReached': + ['Waypoint reached'], + 'Roundabout': + ['Take the {exitStr} exit in the roundabout', ' onto {road}'], + 'DestinationReached': + ['Destination reached'], + 'Fork': ['At the fork, turn {modifier}', ' onto {road}'], + 'Merge': ['Merge {modifier}', ' onto {road}'], + 'OnRamp': ['Turn {modifier} on the ramp', ' onto {road}'], + 'OffRamp': ['Take the ramp on the {modifier}', ' onto {road}'], + 'EndOfRoad': ['Turn {modifier} at the end of the road', ' onto {road}'], + 'Onto': 'onto {road}' + }, + formatOrder: function(n) { + var i = n % 10 - 1, + suffix = ['st', 'nd', 'rd']; + + return suffix[i] ? n + suffix[i] : n + 'th'; + }, + ui: { + startPlaceholder: 'Start', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'End' + }, + units: { + meters: 'm', + kilometers: 'km', + yards: 'yd', + miles: 'mi', + hours: 'h', + minutes: 'min', + seconds: 's' + } + }, + + 'de': { + directions: { + N: 'Norden', + NE: 'Nordosten', + E: 'Osten', + SE: 'Südosten', + S: 'Süden', + SW: 'Südwesten', + W: 'Westen', + NW: 'Nordwesten', + SlightRight: 'leicht rechts', + Right: 'rechts', + SharpRight: 'scharf rechts', + SlightLeft: 'leicht links', + Left: 'links', + SharpLeft: 'scharf links', + Uturn: 'Wenden' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Richtung {dir}', ' auf {road}'], + 'Continue': + ['Geradeaus Richtung {dir}', ' auf {road}'], + 'SlightRight': + ['Leicht rechts abbiegen', ' auf {road}'], + 'Right': + ['Rechts abbiegen', ' auf {road}'], + 'SharpRight': + ['Scharf rechts abbiegen', ' auf {road}'], + 'TurnAround': + ['Wenden'], + 'SharpLeft': + ['Scharf links abbiegen', ' auf {road}'], + 'Left': + ['Links abbiegen', ' auf {road}'], + 'SlightLeft': + ['Leicht links abbiegen', ' auf {road}'], + 'WaypointReached': + ['Zwischenhalt erreicht'], + 'Roundabout': + ['Nehmen Sie die {exitStr} Ausfahrt im Kreisverkehr', ' auf {road}'], + 'DestinationReached': + ['Sie haben ihr Ziel erreicht'], + 'Fork': ['An der Kreuzung {modifier}', ' auf {road}'], + 'Merge': ['Fahren Sie {modifier} weiter', ' auf {road}'], + 'OnRamp': ['Fahren Sie {modifier} auf die Auffahrt', ' auf {road}'], + 'OffRamp': ['Nehmen Sie die Ausfahrt {modifier}', ' auf {road}'], + 'EndOfRoad': ['Fahren Sie {modifier} am Ende der Straße', ' auf {road}'], + 'Onto': 'auf {road}' + }, + formatOrder: function(n) { + return n + '.'; + }, + ui: { + startPlaceholder: 'Start', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Ziel' + } + }, + + 'sv': { + directions: { + N: 'norr', + NE: 'nordost', + E: 'öst', + SE: 'sydost', + S: 'syd', + SW: 'sydväst', + W: 'väst', + NW: 'nordväst', + SlightRight: 'svagt höger', + Right: 'höger', + SharpRight: 'skarpt höger', + SlightLeft: 'svagt vänster', + Left: 'vänster', + SharpLeft: 'skarpt vänster', + Uturn: 'Vänd' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Åk åt {dir}', ' till {road}'], + 'Continue': + ['Fortsätt {dir}'], + 'SlightRight': + ['Svagt höger', ' till {road}'], + 'Right': + ['Sväng höger', ' till {road}'], + 'SharpRight': + ['Skarpt höger', ' till {road}'], + 'TurnAround': + ['Vänd'], + 'SharpLeft': + ['Skarpt vänster', ' till {road}'], + 'Left': + ['Sväng vänster', ' till {road}'], + 'SlightLeft': + ['Svagt vänster', ' till {road}'], + 'WaypointReached': + ['Viapunkt nådd'], + 'Roundabout': + ['Tag {exitStr} avfarten i rondellen', ' till {road}'], + 'DestinationReached': + ['Framme vid resans mål'], + 'Fork': ['Tag av {modifier}', ' till {road}'], + 'Merge': ['Anslut {modifier} ', ' till {road}'], + 'OnRamp': ['Tag påfarten {modifier}', ' till {road}'], + 'OffRamp': ['Tag avfarten {modifier}', ' till {road}'], + 'EndOfRoad': ['Sväng {modifier} vid vägens slut', ' till {road}'], + 'Onto': 'till {road}' + }, + formatOrder: function(n) { + return ['första', 'andra', 'tredje', 'fjärde', 'femte', + 'sjätte', 'sjunde', 'åttonde', 'nionde', 'tionde' + /* Can't possibly be more than ten exits, can there? */][n - 1]; + }, + ui: { + startPlaceholder: 'Från', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Till' + } + }, + + 'es': spanish, + 'sp': spanish, + + 'nl': { + directions: { + N: 'noordelijke', + NE: 'noordoostelijke', + E: 'oostelijke', + SE: 'zuidoostelijke', + S: 'zuidelijke', + SW: 'zuidewestelijke', + W: 'westelijke', + NW: 'noordwestelijke' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Vertrek in {dir} richting', ' de {road} op'], + 'Continue': + ['Ga in {dir} richting', ' de {road} op'], + 'SlightRight': + ['Volg de weg naar rechts', ' de {road} op'], + 'Right': + ['Ga rechtsaf', ' de {road} op'], + 'SharpRight': + ['Ga scherpe bocht naar rechts', ' de {road} op'], + 'TurnAround': + ['Keer om'], + 'SharpLeft': + ['Ga scherpe bocht naar links', ' de {road} op'], + 'Left': + ['Ga linksaf', ' de {road} op'], + 'SlightLeft': + ['Volg de weg naar links', ' de {road} op'], + 'WaypointReached': + ['Aangekomen bij tussenpunt'], + 'Roundabout': + ['Neem de {exitStr} afslag op de rotonde', ' de {road} op'], + 'DestinationReached': + ['Aangekomen op eindpunt'], + }, + formatOrder: function(n) { + if (n === 1 || n >= 20) { + return n + 'ste'; + } else { + return n + 'de'; + } + }, + ui: { + startPlaceholder: 'Vertrekpunt', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Bestemming' + } + }, + 'fr': { + directions: { + N: 'nord', + NE: 'nord-est', + E: 'est', + SE: 'sud-est', + S: 'sud', + SW: 'sud-ouest', + W: 'ouest', + NW: 'nord-ouest' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Tout droit au {dir}', ' sur {road}'], + 'Continue': + ['Continuer au {dir}', ' sur {road}'], + 'SlightRight': + ['Légèrement à droite', ' sur {road}'], + 'Right': + ['A droite', ' sur {road}'], + 'SharpRight': + ['Complètement à droite', ' sur {road}'], + 'TurnAround': + ['Faire demi-tour'], + 'SharpLeft': + ['Complètement à gauche', ' sur {road}'], + 'Left': + ['A gauche', ' sur {road}'], + 'SlightLeft': + ['Légèrement à gauche', ' sur {road}'], + 'WaypointReached': + ['Point d\'étape atteint'], + 'Roundabout': + ['Au rond-point, prenez la {exitStr} sortie', ' sur {road}'], + 'DestinationReached': + ['Destination atteinte'], + }, + formatOrder: function(n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Départ', + viaPlaceholder: 'Intermédiaire {viaNumber}', + endPlaceholder: 'Arrivée' + } + }, + 'it': { + directions: { + N: 'nord', + NE: 'nord-est', + E: 'est', + SE: 'sud-est', + S: 'sud', + SW: 'sud-ovest', + W: 'ovest', + NW: 'nord-ovest' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Dritto verso {dir}', ' su {road}'], + 'Continue': + ['Continuare verso {dir}', ' su {road}'], + 'SlightRight': + ['Mantenere la destra', ' su {road}'], + 'Right': + ['A destra', ' su {road}'], + 'SharpRight': + ['Strettamente a destra', ' su {road}'], + 'TurnAround': + ['Fare inversione di marcia'], + 'SharpLeft': + ['Strettamente a sinistra', ' su {road}'], + 'Left': + ['A sinistra', ' sur {road}'], + 'SlightLeft': + ['Mantenere la sinistra', ' su {road}'], + 'WaypointReached': + ['Punto di passaggio raggiunto'], + 'Roundabout': + ['Alla rotonda, prendere la {exitStr} uscita'], + 'DestinationReached': + ['Destinazione raggiunta'], + }, + formatOrder: function(n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Partenza', + viaPlaceholder: 'Intermedia {viaNumber}', + endPlaceholder: 'Destinazione' + } + }, + 'pt': { + directions: { + N: 'norte', + NE: 'nordeste', + E: 'leste', + SE: 'sudeste', + S: 'sul', + SW: 'sudoeste', + W: 'oeste', + NW: 'noroeste', + SlightRight: 'curva ligeira a direita', + Right: 'direita', + SharpRight: 'curva fechada a direita', + SlightLeft: 'ligeira a esquerda', + Left: 'esquerda', + SharpLeft: 'curva fechada a esquerda', + Uturn: 'Meia volta' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Siga {dir}', ' na {road}'], + 'Continue': + ['Continue {dir}', ' na {road}'], + 'SlightRight': + ['Curva ligeira a direita', ' na {road}'], + 'Right': + ['Curva a direita', ' na {road}'], + 'SharpRight': + ['Curva fechada a direita', ' na {road}'], + 'TurnAround': + ['Retorne'], + 'SharpLeft': + ['Curva fechada a esquerda', ' na {road}'], + 'Left': + ['Curva a esquerda', ' na {road}'], + 'SlightLeft': + ['Curva ligueira a esquerda', ' na {road}'], + 'WaypointReached': + ['Ponto de interesse atingido'], + 'Roundabout': + ['Pegue a {exitStr} saída na rotatória', ' na {road}'], + 'DestinationReached': + ['Destino atingido'], + 'Fork': ['Na encruzilhada, vire a {modifier}', ' na {road}'], + 'Merge': ['Entre à {modifier}', ' na {road}'], + 'OnRamp': ['Vire {modifier} na rampa', ' na {road}'], + 'OffRamp': ['Entre na rampa na {modifier}', ' na {road}'], + 'EndOfRoad': ['Vire {modifier} no fim da rua', ' na {road}'], + 'Onto': 'na {road}' + }, + formatOrder: function(n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Origem', + viaPlaceholder: 'Intermédio {viaNumber}', + endPlaceholder: 'Destino' + } + }, + 'sk': { + directions: { + N: 'sever', + NE: 'serverovýchod', + E: 'východ', + SE: 'juhovýchod', + S: 'juh', + SW: 'juhozápad', + W: 'západ', + NW: 'serverozápad' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Mierte na {dir}', ' na {road}'], + 'Continue': + ['Pokračujte na {dir}', ' na {road}'], + 'SlightRight': + ['Mierne doprava', ' na {road}'], + 'Right': + ['Doprava', ' na {road}'], + 'SharpRight': + ['Prudko doprava', ' na {road}'], + 'TurnAround': + ['Otočte sa'], + 'SharpLeft': + ['Prudko doľava', ' na {road}'], + 'Left': + ['Doľava', ' na {road}'], + 'SlightLeft': + ['Mierne doľava', ' na {road}'], + 'WaypointReached': + ['Ste v prejazdovom bode.'], + 'Roundabout': + ['Odbočte na {exitStr} výjazde', ' na {road}'], + 'DestinationReached': + ['Prišli ste do cieľa.'], + }, + formatOrder: function(n) { + var i = n % 10 - 1, + suffix = ['.', '.', '.']; + + return suffix[i] ? n + suffix[i] : n + '.'; + }, + ui: { + startPlaceholder: 'Začiatok', + viaPlaceholder: 'Cez {viaNumber}', + endPlaceholder: 'Koniec' + } + }, + 'el': { + directions: { + N: 'βόρεια', + NE: 'βορειοανατολικά', + E: 'ανατολικά', + SE: 'νοτιοανατολικά', + S: 'νότια', + SW: 'νοτιοδυτικά', + W: 'δυτικά', + NW: 'βορειοδυτικά' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Κατευθυνθείτε {dir}', ' στην {road}'], + 'Continue': + ['Συνεχίστε {dir}', ' στην {road}'], + 'SlightRight': + ['Ελαφρώς δεξιά', ' στην {road}'], + 'Right': + ['Δεξιά', ' στην {road}'], + 'SharpRight': + ['Απότομη δεξιά στροφή', ' στην {road}'], + 'TurnAround': + ['Κάντε αναστροφή'], + 'SharpLeft': + ['Απότομη αριστερή στροφή', ' στην {road}'], + 'Left': + ['Αριστερά', ' στην {road}'], + 'SlightLeft': + ['Ελαφρώς αριστερά', ' στην {road}'], + 'WaypointReached': + ['Φτάσατε στο σημείο αναφοράς'], + 'Roundabout': + ['Ακολουθήστε την {exitStr} έξοδο στο κυκλικό κόμβο', ' στην {road}'], + 'DestinationReached': + ['Φτάσατε στον προορισμό σας'], + }, + formatOrder: function(n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Αφετηρία', + viaPlaceholder: 'μέσω {viaNumber}', + endPlaceholder: 'Προορισμός' + } + }, + 'ca': { + directions: { + N: 'nord', + NE: 'nord-est', + E: 'est', + SE: 'sud-est', + S: 'sud', + SW: 'sud-oest', + W: 'oest', + NW: 'nord-oest', + SlightRight: 'lleu gir a la dreta', + Right: 'dreta', + SharpRight: 'gir pronunciat a la dreta', + SlightLeft: 'gir pronunciat a l\'esquerra', + Left: 'esquerra', + SharpLeft: 'lleu gir a l\'esquerra', + Uturn: 'mitja volta' + }, + instructions: { + 'Head': + ['Recte {dir}', ' sobre {road}'], + 'Continue': + ['Continuar {dir}'], + 'TurnAround': + ['Donar la volta'], + 'WaypointReached': + ['Ha arribat a un punt del camí'], + 'Roundabout': + ['Agafar {exitStr} sortida a la rotonda', ' a {road}'], + 'DestinationReached': + ['Arribada al destí'], + 'Fork': ['A la cruïlla gira a la {modifier}', ' cap a {road}'], + 'Merge': ['Incorpora\'t {modifier}', ' a {road}'], + 'OnRamp': ['Gira {modifier} a la sortida', ' cap a {road}'], + 'OffRamp': ['Pren la sortida {modifier}', ' cap a {road}'], + 'EndOfRoad': ['Gira {modifier} al final de la carretera', ' cap a {road}'], + 'Onto': 'cap a {road}' + }, + formatOrder: function(n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Origen', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Destí' + }, + units: { + meters: 'm', + kilometers: 'km', + yards: 'yd', + miles: 'mi', + hours: 'h', + minutes: 'min', + seconds: 's' + } + }, + 'ru': { + directions: { + N: 'север', + NE: 'северовосток', + E: 'восток', + SE: 'юговосток', + S: 'юг', + SW: 'югозапад', + W: 'запад', + NW: 'северозапад', + SlightRight: 'плавно направо', + Right: 'направо', + SharpRight: 'резко направо', + SlightLeft: 'плавно налево', + Left: 'налево', + SharpLeft: 'резко налево', + Uturn: 'развернуться' + }, + instructions: { + 'Head': + ['Начать движение на {dir}', ' по {road}'], + 'Continue': + ['Продолжать движение на {dir}', ' по {road}'], + 'SlightRight': + ['Плавный поворот направо', ' на {road}'], + 'Right': + ['Направо', ' на {road}'], + 'SharpRight': + ['Резкий поворот направо', ' на {road}'], + 'TurnAround': + ['Развернуться'], + 'SharpLeft': + ['Резкий поворот налево', ' на {road}'], + 'Left': + ['Поворот налево', ' на {road}'], + 'SlightLeft': + ['Плавный поворот налево', ' на {road}'], + 'WaypointReached': + ['Точка достигнута'], + 'Roundabout': + ['{exitStr} съезд с кольца', ' на {road}'], + 'DestinationReached': + ['Окончание маршрута'], + 'Fork': ['На развилке поверните {modifier}', ' на {road}'], + 'Merge': ['Перестройтесь {modifier}', ' на {road}'], + 'OnRamp': ['Поверните {modifier} на съезд', ' на {road}'], + 'OffRamp': ['Съезжайте на {modifier}', ' на {road}'], + 'EndOfRoad': ['Поверните {modifier} в конце дороги', ' на {road}'], + 'Onto': 'на {road}' + }, + formatOrder: function(n) { + return n + '-й'; + }, + ui: { + startPlaceholder: 'Начало', + viaPlaceholder: 'Через {viaNumber}', + endPlaceholder: 'Конец' + }, + units: { + meters: 'м', + kilometers: 'км', + yards: 'ярд', + miles: 'ми', + hours: 'ч', + minutes: 'м', + seconds: 'с' + } + }, + + 'pl': { + directions: { + N: 'północ', + NE: 'północny wschód', + E: 'wschód', + SE: 'południowy wschód', + S: 'południe', + SW: 'południowy zachód', + W: 'zachód', + NW: 'północny zachód', + SlightRight: 'lekko w prawo', + Right: 'w prawo', + SharpRight: 'ostro w prawo', + SlightLeft: 'lekko w lewo', + Left: 'w lewo', + SharpLeft: 'ostro w lewo', + Uturn: 'zawróć' + }, + instructions: { + // instruction, postfix if the road is named + 'Head': + ['Kieruj się na {dir}', ' na {road}'], + 'Continue': + ['Jedź dalej przez {dir}'], + 'TurnAround': + ['Zawróć'], + 'WaypointReached': + ['Punkt pośredni'], + 'Roundabout': + ['Wyjedź {exitStr} zjazdem na rondzie', ' na {road}'], + 'DestinationReached': + ['Dojechano do miejsca docelowego'], + 'Fork': ['Na rozwidleniu {modifier}', ' na {road}'], + 'Merge': ['Zjedź {modifier}', ' na {road}'], + 'OnRamp': ['Wjazd {modifier}', ' na {road}'], + 'OffRamp': ['Zjazd {modifier}', ' na {road}'], + 'EndOfRoad': ['Skręć {modifier} na końcu drogi', ' na {road}'], + 'Onto': 'na {road}' + }, + formatOrder: function(n) { + return n + '.'; + }, + ui: { + startPlaceholder: 'Początek', + viaPlaceholder: 'Przez {viaNumber}', + endPlaceholder: 'Koniec' + }, + units: { + meters: 'm', + kilometers: 'km', + yards: 'yd', + miles: 'mi', + hours: 'godz', + minutes: 'min', + seconds: 's' + } + } + }); +})(); + +},{}],58:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + + var OSRMv1 = _dereq_('./osrm-v1'); + + /** + * Works against OSRM's new API in version 5.0; this has + * the API version v1. + */ + module.exports = OSRMv1.extend({ + options: { + serviceUrl: 'https://api.mapbox.com/directions/v5', + profile: 'mapbox/driving', + useHints: false + }, + + initialize: function(accessToken, options) { + L.Routing.OSRMv1.prototype.initialize.call(this, options); + this.options.requestParameters = this.options.requestParameters || {}; + /* jshint camelcase: false */ + this.options.requestParameters.access_token = accessToken; + /* jshint camelcase: true */ + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./osrm-v1":59}],59:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null), + corslite = _dereq_('@mapbox/corslite'), + polyline = _dereq_('@mapbox/polyline'), + osrmTextInstructions = _dereq_('osrm-text-instructions')('v5'); + + // Ignore camelcase naming for this file, since OSRM's API uses + // underscores. + /* jshint camelcase: false */ + + var Waypoint = _dereq_('./waypoint'); + + /** + * Works against OSRM's new API in version 5.0; this has + * the API version v1. + */ + module.exports = L.Class.extend({ + options: { + serviceUrl: 'https://router.project-osrm.org/route/v1', + profile: 'driving', + timeout: 30 * 1000, + routingOptions: { + alternatives: true, + steps: true + }, + polylinePrecision: 5, + useHints: true, + suppressDemoServerWarning: false, + language: 'en' + }, + + initialize: function(options) { + L.Util.setOptions(this, options); + this._hints = { + locations: {} + }; + + if (!this.options.suppressDemoServerWarning && + this.options.serviceUrl.indexOf('//router.project-osrm.org') >= 0) { + console.warn('You are using OSRM\'s demo server. ' + + 'Please note that it is **NOT SUITABLE FOR PRODUCTION USE**.\n' + + 'Refer to the demo server\'s usage policy: ' + + 'https://github.com/Project-OSRM/osrm-backend/wiki/Api-usage-policy\n\n' + + 'To change, set the serviceUrl option.\n\n' + + 'Please do not report issues with this server to neither ' + + 'Leaflet Routing Machine or OSRM - it\'s for\n' + + 'demo only, and will sometimes not be available, or work in ' + + 'unexpected ways.\n\n' + + 'Please set up your own OSRM server, or use a paid service ' + + 'provider for production.'); + } + }, + + route: function(waypoints, callback, context, options) { + var timedOut = false, + wps = [], + url, + timer, + wp, + i, + xhr; + + options = L.extend({}, this.options.routingOptions, options); + url = this.buildRouteUrl(waypoints, options); + if (this.options.requestParameters) { + url += L.Util.getParamString(this.options.requestParameters, url); + } + + timer = setTimeout(function() { + timedOut = true; + callback.call(context || callback, { + status: -1, + message: 'OSRM request timed out.' + }); + }, this.options.timeout); + + // Create a copy of the waypoints, since they + // might otherwise be asynchronously modified while + // the request is being processed. + for (i = 0; i < waypoints.length; i++) { + wp = waypoints[i]; + wps.push(new Waypoint(wp.latLng, wp.name, wp.options)); + } + + return xhr = corslite(url, L.bind(function(err, resp) { + var data, + error = {}; + + clearTimeout(timer); + if (!timedOut) { + if (!err) { + try { + data = JSON.parse(resp.responseText); + try { + return this._routeDone(data, wps, options, callback, context); + } catch (ex) { + error.status = -3; + error.message = ex.toString(); + } + } catch (ex) { + error.status = -2; + error.message = 'Error parsing OSRM response: ' + ex.toString(); + } + } else { + error.message = 'HTTP request failed: ' + err.type + + (err.target && err.target.status ? ' HTTP ' + err.target.status + ': ' + err.target.statusText : ''); + error.url = url; + error.status = -1; + error.target = err; + } + + callback.call(context || callback, error); + } else { + xhr.abort(); + } + }, this)); + }, + + requiresMoreDetail: function(route, zoom, bounds) { + if (!route.properties.isSimplified) { + return false; + } + + var waypoints = route.inputWaypoints, + i; + for (i = 0; i < waypoints.length; ++i) { + if (!bounds.contains(waypoints[i].latLng)) { + return true; + } + } + + return false; + }, + + _routeDone: function(response, inputWaypoints, options, callback, context) { + var alts = [], + actualWaypoints, + i, + route; + + context = context || callback; + if (response.code !== 'Ok') { + callback.call(context, { + status: response.code + }); + return; + } + + actualWaypoints = this._toWaypoints(inputWaypoints, response.waypoints); + + for (i = 0; i < response.routes.length; i++) { + route = this._convertRoute(response.routes[i]); + route.inputWaypoints = inputWaypoints; + route.waypoints = actualWaypoints; + route.properties = {isSimplified: !options || !options.geometryOnly || options.simplifyGeometry}; + alts.push(route); + } + + this._saveHintData(response.waypoints, inputWaypoints); + + callback.call(context, null, alts); + }, + + _convertRoute: function(responseRoute) { + var result = { + name: '', + coordinates: [], + instructions: [], + summary: { + totalDistance: responseRoute.distance, + totalTime: responseRoute.duration + } + }, + legNames = [], + waypointIndices = [], + index = 0, + legCount = responseRoute.legs.length, + hasSteps = responseRoute.legs[0].steps.length > 0, + i, + j, + leg, + step, + geometry, + type, + modifier, + text, + stepToText; + + if (this.options.stepToText) { + stepToText = this.options.stepToText; + } else { + stepToText = L.bind(osrmTextInstructions.compile, osrmTextInstructions, this.options.language); + } + + for (i = 0; i < legCount; i++) { + leg = responseRoute.legs[i]; + legNames.push(leg.summary && leg.summary.charAt(0).toUpperCase() + leg.summary.substring(1)); + for (j = 0; j < leg.steps.length; j++) { + step = leg.steps[j]; + geometry = this._decodePolyline(step.geometry); + result.coordinates.push.apply(result.coordinates, geometry); + type = this._maneuverToInstructionType(step.maneuver, i === legCount - 1); + modifier = this._maneuverToModifier(step.maneuver); + text = stepToText(step, {legCount: legCount, legIndex: i}); + + if (type) { + if ((i == 0 && step.maneuver.type == 'depart') || step.maneuver.type == 'arrive') { + waypointIndices.push(index); + } + + result.instructions.push({ + type: type, + distance: step.distance, + time: step.duration, + road: step.name, + direction: this._bearingToDirection(step.maneuver.bearing_after), + exit: step.maneuver.exit, + index: index, + mode: step.mode, + modifier: modifier, + text: text + }); + } + + index += geometry.length; + } + } + + result.name = legNames.join(', '); + if (!hasSteps) { + result.coordinates = this._decodePolyline(responseRoute.geometry); + } else { + result.waypointIndices = waypointIndices; + } + + return result; + }, + + _bearingToDirection: function(bearing) { + var oct = Math.round(bearing / 45) % 8; + return ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'][oct]; + }, + + _maneuverToInstructionType: function(maneuver, lastLeg) { + switch (maneuver.type) { + case 'new name': + return 'Continue'; + case 'depart': + return 'Head'; + case 'arrive': + return lastLeg ? 'DestinationReached' : 'WaypointReached'; + case 'roundabout': + case 'rotary': + return 'Roundabout'; + case 'merge': + case 'fork': + case 'on ramp': + case 'off ramp': + case 'end of road': + return this._camelCase(maneuver.type); + // These are all reduced to the same instruction in the current model + //case 'turn': + //case 'ramp': // deprecated in v5.1 + default: + return this._camelCase(maneuver.modifier); + } + }, + + _maneuverToModifier: function(maneuver) { + var modifier = maneuver.modifier; + + switch (maneuver.type) { + case 'merge': + case 'fork': + case 'on ramp': + case 'off ramp': + case 'end of road': + modifier = this._leftOrRight(modifier); + } + + return modifier && this._camelCase(modifier); + }, + + _camelCase: function(s) { + var words = s.split(' '), + result = ''; + for (var i = 0, l = words.length; i < l; i++) { + result += words[i].charAt(0).toUpperCase() + words[i].substring(1); + } + + return result; + }, + + _leftOrRight: function(d) { + return d.indexOf('left') >= 0 ? 'Left' : 'Right'; + }, + + _decodePolyline: function(routeGeometry) { + var cs = polyline.decode(routeGeometry, this.options.polylinePrecision), + result = new Array(cs.length), + i; + for (i = cs.length - 1; i >= 0; i--) { + result[i] = L.latLng(cs[i]); + } + + return result; + }, + + _toWaypoints: function(inputWaypoints, vias) { + var wps = [], + i, + viaLoc; + for (i = 0; i < vias.length; i++) { + viaLoc = vias[i].location; + wps.push(new Waypoint(L.latLng(viaLoc[1], viaLoc[0]), + inputWaypoints[i].name, + inputWaypoints[i].options)); + } + + return wps; + }, + + buildRouteUrl: function(waypoints, options) { + var locs = [], + hints = [], + wp, + latLng, + computeInstructions, + computeAlternative = true; + + for (var i = 0; i < waypoints.length; i++) { + wp = waypoints[i]; + latLng = wp.latLng; + locs.push(latLng.lng + ',' + latLng.lat); + hints.push(this._hints.locations[this._locationKey(latLng)] || ''); + } + + computeInstructions = + true; + + return this.options.serviceUrl + '/' + this.options.profile + '/' + + locs.join(';') + '?' + + (options.geometryOnly ? (options.simplifyGeometry ? '' : 'overview=full') : 'overview=false') + + '&alternatives=' + computeAlternative.toString() + + '&steps=' + computeInstructions.toString() + + (this.options.useHints ? '&hints=' + hints.join(';') : '') + + (options.allowUTurns ? '&continue_straight=' + !options.allowUTurns : ''); + }, + + _locationKey: function(location) { + return location.lat + ',' + location.lng; + }, + + _saveHintData: function(actualWaypoints, waypoints) { + var loc; + this._hints = { + locations: {} + }; + for (var i = actualWaypoints.length - 1; i >= 0; i--) { + loc = waypoints[i].latLng; + this._hints.locations[this._locationKey(loc)] = actualWaypoints[i].hint; + } + }, + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./waypoint":61,"@mapbox/corslite":1,"@mapbox/polyline":2,"osrm-text-instructions":3}],60:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + var GeocoderElement = _dereq_('./geocoder-element'); + var Waypoint = _dereq_('./waypoint'); + + module.exports = (L.Layer || L.Class).extend({ + includes: ((typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events), + + options: { + dragStyles: [ + {color: 'black', opacity: 0.15, weight: 9}, + {color: 'white', opacity: 0.8, weight: 6}, + {color: 'red', opacity: 1, weight: 2, dashArray: '7,12'} + ], + draggableWaypoints: true, + routeWhileDragging: false, + addWaypoints: true, + reverseWaypoints: false, + addButtonClassName: '', + language: 'en', + createGeocoderElement: function(wp, i, nWps, plan) { + return new GeocoderElement(wp, i, nWps, plan); + }, + createMarker: function(i, wp) { + var options = { + draggable: this.draggableWaypoints + }, + marker = L.marker(wp.latLng, options); + + return marker; + }, + geocodersClassName: '' + }, + + initialize: function(waypoints, options) { + L.Util.setOptions(this, options); + this._waypoints = []; + this.setWaypoints(waypoints); + }, + + isReady: function() { + var i; + for (i = 0; i < this._waypoints.length; i++) { + if (!this._waypoints[i].latLng) { + return false; + } + } + + return true; + }, + + getWaypoints: function() { + var i, + wps = []; + + for (i = 0; i < this._waypoints.length; i++) { + wps.push(this._waypoints[i]); + } + + return wps; + }, + + setWaypoints: function(waypoints) { + var args = [0, this._waypoints.length].concat(waypoints); + this.spliceWaypoints.apply(this, args); + return this; + }, + + spliceWaypoints: function() { + var args = [arguments[0], arguments[1]], + i; + + for (i = 2; i < arguments.length; i++) { + args.push(arguments[i] && arguments[i].hasOwnProperty('latLng') ? arguments[i] : new Waypoint(arguments[i])); + } + + [].splice.apply(this._waypoints, args); + + // Make sure there's always at least two waypoints + while (this._waypoints.length < 2) { + this.spliceWaypoints(this._waypoints.length, 0, null); + } + + this._updateMarkers(); + this._fireChanged.apply(this, args); + }, + + onAdd: function(map) { + this._map = map; + this._updateMarkers(); + }, + + onRemove: function() { + var i; + this._removeMarkers(); + + if (this._newWp) { + for (i = 0; i < this._newWp.lines.length; i++) { + this._map.removeLayer(this._newWp.lines[i]); + } + } + + delete this._map; + }, + + createGeocoders: function() { + var container = L.DomUtil.create('div', 'leaflet-routing-geocoders ' + this.options.geocodersClassName), + waypoints = this._waypoints, + addWpBtn, + reverseBtn; + + this._geocoderContainer = container; + this._geocoderElems = []; + + + if (this.options.addWaypoints) { + addWpBtn = L.DomUtil.create('button', 'leaflet-routing-add-waypoint ' + this.options.addButtonClassName, container); + addWpBtn.setAttribute('type', 'button'); + L.DomEvent.addListener(addWpBtn, 'click', function() { + this.spliceWaypoints(waypoints.length, 0, null); + }, this); + } + + if (this.options.reverseWaypoints) { + reverseBtn = L.DomUtil.create('button', 'leaflet-routing-reverse-waypoints', container); + reverseBtn.setAttribute('type', 'button'); + L.DomEvent.addListener(reverseBtn, 'click', function() { + this._waypoints.reverse(); + this.setWaypoints(this._waypoints); + }, this); + } + + this._updateGeocoders(); + this.on('waypointsspliced', this._updateGeocoders); + + return container; + }, + + _createGeocoder: function(i) { + var geocoder = this.options.createGeocoderElement(this._waypoints[i], i, this._waypoints.length, this.options); + geocoder + .on('delete', function() { + if (i > 0 || this._waypoints.length > 2) { + this.spliceWaypoints(i, 1); + } else { + this.spliceWaypoints(i, 1, new Waypoint()); + } + }, this) + .on('geocoded', function(e) { + this._updateMarkers(); + this._fireChanged(); + this._focusGeocoder(i + 1); + this.fire('waypointgeocoded', { + waypointIndex: i, + waypoint: e.waypoint + }); + }, this) + .on('reversegeocoded', function(e) { + this.fire('waypointgeocoded', { + waypointIndex: i, + waypoint: e.waypoint + }); + }, this); + + return geocoder; + }, + + _updateGeocoders: function() { + var elems = [], + i, + geocoderElem; + + for (i = 0; i < this._geocoderElems.length; i++) { + this._geocoderContainer.removeChild(this._geocoderElems[i].getContainer()); + } + + for (i = this._waypoints.length - 1; i >= 0; i--) { + geocoderElem = this._createGeocoder(i); + this._geocoderContainer.insertBefore(geocoderElem.getContainer(), this._geocoderContainer.firstChild); + elems.push(geocoderElem); + } + + this._geocoderElems = elems.reverse(); + }, + + _removeMarkers: function() { + var i; + if (this._markers) { + for (i = 0; i < this._markers.length; i++) { + if (this._markers[i]) { + this._map.removeLayer(this._markers[i]); + } + } + } + this._markers = []; + }, + + _updateMarkers: function() { + var i, + m; + + if (!this._map) { + return; + } + + this._removeMarkers(); + + for (i = 0; i < this._waypoints.length; i++) { + if (this._waypoints[i].latLng) { + m = this.options.createMarker(i, this._waypoints[i], this._waypoints.length); + if (m) { + m.addTo(this._map); + if (this.options.draggableWaypoints) { + this._hookWaypointEvents(m, i); + } + } + } else { + m = null; + } + this._markers.push(m); + } + }, + + _fireChanged: function() { + this.fire('waypointschanged', {waypoints: this.getWaypoints()}); + + if (arguments.length >= 2) { + this.fire('waypointsspliced', { + index: Array.prototype.shift.call(arguments), + nRemoved: Array.prototype.shift.call(arguments), + added: arguments + }); + } + }, + + _hookWaypointEvents: function(m, i, trackMouseMove) { + var eventLatLng = function(e) { + return trackMouseMove ? e.latlng : e.target.getLatLng(); + }, + dragStart = L.bind(function(e) { + this.fire('waypointdragstart', {index: i, latlng: eventLatLng(e)}); + }, this), + drag = L.bind(function(e) { + this._waypoints[i].latLng = eventLatLng(e); + this.fire('waypointdrag', {index: i, latlng: eventLatLng(e)}); + }, this), + dragEnd = L.bind(function(e) { + this._waypoints[i].latLng = eventLatLng(e); + this._waypoints[i].name = ''; + if (this._geocoderElems) { + this._geocoderElems[i].update(true); + } + this.fire('waypointdragend', {index: i, latlng: eventLatLng(e)}); + this._fireChanged(); + }, this), + mouseMove, + mouseUp; + + if (trackMouseMove) { + mouseMove = L.bind(function(e) { + this._markers[i].setLatLng(e.latlng); + drag(e); + }, this); + mouseUp = L.bind(function(e) { + this._map.dragging.enable(); + this._map.off('mouseup', mouseUp); + this._map.off('mousemove', mouseMove); + dragEnd(e); + }, this); + this._map.dragging.disable(); + this._map.on('mousemove', mouseMove); + this._map.on('mouseup', mouseUp); + dragStart({latlng: this._waypoints[i].latLng}); + } else { + m.on('dragstart', dragStart); + m.on('drag', drag); + m.on('dragend', dragEnd); + } + }, + + dragNewWaypoint: function(e) { + var newWpIndex = e.afterIndex + 1; + if (this.options.routeWhileDragging) { + this.spliceWaypoints(newWpIndex, 0, e.latlng); + this._hookWaypointEvents(this._markers[newWpIndex], newWpIndex, true); + } else { + this._dragNewWaypoint(newWpIndex, e.latlng); + } + }, + + _dragNewWaypoint: function(newWpIndex, initialLatLng) { + var wp = new Waypoint(initialLatLng), + prevWp = this._waypoints[newWpIndex - 1], + nextWp = this._waypoints[newWpIndex], + marker = this.options.createMarker(newWpIndex, wp, this._waypoints.length + 1), + lines = [], + draggingEnabled = this._map.dragging.enabled(), + mouseMove = L.bind(function(e) { + var i, + latLngs; + if (marker) { + marker.setLatLng(e.latlng); + } + for (i = 0; i < lines.length; i++) { + latLngs = lines[i].getLatLngs(); + latLngs.splice(1, 1, e.latlng); + lines[i].setLatLngs(latLngs); + } + + L.DomEvent.stop(e); + }, this), + mouseUp = L.bind(function(e) { + var i; + if (marker) { + this._map.removeLayer(marker); + } + for (i = 0; i < lines.length; i++) { + this._map.removeLayer(lines[i]); + } + this._map.off('mousemove', mouseMove); + this._map.off('mouseup', mouseUp); + this.spliceWaypoints(newWpIndex, 0, e.latlng); + if (draggingEnabled) { + this._map.dragging.enable(); + } + + L.DomEvent.stop(e); + }, this), + i; + + if (marker) { + marker.addTo(this._map); + } + + for (i = 0; i < this.options.dragStyles.length; i++) { + lines.push(L.polyline([prevWp.latLng, initialLatLng, nextWp.latLng], + this.options.dragStyles[i]).addTo(this._map)); + } + + if (draggingEnabled) { + this._map.dragging.disable(); + } + + this._map.on('mousemove', mouseMove); + this._map.on('mouseup', mouseUp); + }, + + _focusGeocoder: function(i) { + if (this._geocoderElems[i]) { + this._geocoderElems[i].focus(); + } else { + document.activeElement.blur(); + } + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{"./geocoder-element":52,"./waypoint":61}],61:[function(_dereq_,module,exports){ +(function (global){ +(function() { + 'use strict'; + + var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); + + module.exports = L.Class.extend({ + options: { + allowUTurn: false, + }, + initialize: function(latLng, name, options) { + L.Util.setOptions(this, options); + this.latLng = L.latLng(latLng); + this.name = name; + } + }); +})(); + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}]},{},[53]); diff --git a/src/Files/Leaflet/Leaflet.css b/src/Files/Leaflet/Leaflet.css new file mode 100644 index 0000000..cc99cba --- /dev/null +++ b/src/Files/Leaflet/Leaflet.css @@ -0,0 +1,739 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; +} + +.leaflet-container { + overflow: hidden; +} + +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; +} + +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; +} + +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; +} + +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; +} + +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg { + max-width: none !important; + max-height: none !important; +} + +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + width: auto; + padding: 0; +} + + +.leaflet-container img.leaflet-tile { + /* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */ + mix-blend-mode: plus-lighter; +} +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; +} + +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; +} + +.leaflet-tile-loaded { + visibility: inherit; +} + +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; +} + +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; +} + +.leaflet-pane { z-index: 400; } +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; +} + +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; +} + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; +} + +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; +} + +.leaflet-top { + top: 0; +} + +.leaflet-right { + right: 0; +} + +.leaflet-bottom { + bottom: 0; +} + +.leaflet-left { + left: 0; +} + +.leaflet-control { + float: left; + clear: both; +} + +.leaflet-right .leaflet-control { + float: right; +} + +.leaflet-top .leaflet-control { + margin-top: 10px; +} + +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; +} + +.leaflet-left .leaflet-control { + margin-left: 10px; +} + +.leaflet-right .leaflet-control { + margin-right: 10px; +} + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; +} + +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; +} + +svg.leaflet-zoom-animated { + will-change: transform; +} + +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); +} + +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; +} + + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; +} + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; +} + +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; +} + +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; +} + +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; +} + +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; +} + + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; +} + + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; +} + + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline-offset: 1px; +} + +.leaflet-container a { + color: #0078A8; +} + +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); +} + +/* general typography */ +.leaflet-container { + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-size: 12px; + font-size: 0.75rem; + line-height: 1.5; +} + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; +} + +.leaflet-bar a { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; +} + +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; +} + +.leaflet-bar a:hover, +.leaflet-bar a:focus { + background-color: #f4f4f4; +} + +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; +} + +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; +} + + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; +} + +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} + +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; +} + + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; +} + + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; +} + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; +} + +.leaflet-control-layers-toggle { + background-image: url(img/layers.png); + width: 36px; + height: 36px; +} + +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(img/layers2x.png); + background-size: 26px 26px; +} + +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; +} + +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; +} + +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; +} + +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; +} + +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; +} + +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; +} + +.leaflet-control-layers label { + display: block; + font-size: 13px; + font-size: 1.08333em; +} + +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; +} + + +/* Default icon URLs */ +.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ + background-image: url(img/markericon.png); +} + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.8); + margin: 0; +} + +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + line-height: 1.4; +} + +.leaflet-control-attribution a { + text-decoration: none; +} + +.leaflet-control-attribution a:hover, +.leaflet-control-attribution a:focus { + text-decoration: underline; +} + +.leaflet-attribution-flag { + display: inline !important; + vertical-align: baseline !important; + width: 1em; + height: 0.6669em; +} + +.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; + line-height: 1.1; + padding: 2px 5px 1px; + white-space: nowrap; + -moz-box-sizing: border-box; + box-sizing: border-box; + background: rgba(255, 255, 255, 0.8); + text-shadow: 1px 1px #fff; +} + +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + 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, +.leaflet-touch .leaflet-bar { + box-shadow: none; +} + +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; +} + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; +} + +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; +} + +.leaflet-popup-content { + margin: 13px 24px 13px 20px; + line-height: 1.3; + font-size: 13px; + font-size: 1.08333em; + min-height: 1px; +} + +.leaflet-popup-content p { + margin: 17px 0; + margin: 1.3em 0; +} + +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-top: -1px; + margin-left: -20px; + overflow: hidden; + pointer-events: none; +} + +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + pointer-events: auto; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); +} + +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + border: none; + text-align: center; + width: 24px; + height: 24px; + font: 16px/24px Tahoma, Verdana, sans-serif; + color: #757575; + text-decoration: none; + background: transparent; +} + +.leaflet-container a.leaflet-popup-close-button:hover, +.leaflet-container a.leaflet-popup-close-button:focus { + color: #585858; +} + +.leaflet-popup-scrolled { + overflow: auto; +} + + +.leaflet-oldie .leaflet-popup-content-wrapper { + -ms-zoom: 1; +} + +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); +} + + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; +} + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; +} + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); +} + +.leaflet-tooltip.leaflet-interactive { + cursor: pointer; + pointer-events: auto; +} + +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; +} + + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; +} + +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; +} + +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; +} +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; +} + +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; +} + +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; +} + +/* Printing */ + +@media print { + /* Prevent printers from removing background-images of controls. */ + .leaflet-control { + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } + +} diff --git a/src/Files/Leaflet/Leaflet.min.js b/src/Files/Leaflet/Leaflet.min.js new file mode 100644 index 0000000..a3bf693 --- /dev/null +++ b/src/Files/Leaflet/Leaflet.min.js @@ -0,0 +1,6 @@ +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var e,i,n=1,o=arguments.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Ft=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,"click",O),this.expand(),this);setTimeout(function(){k(t,"click",O),e._preventClick=!1})}})),qe=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?"touchstart mousedown":"mousedown",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Vi("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Vi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=qi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=qi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1 Date: Thu, 14 Nov 2024 14:53:14 +0100 Subject: [PATCH 2/3] Adding missing Path Drag file --- src/Files/Leaflet/Leaflet.Path.Drag.min.js | 286 +++++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 src/Files/Leaflet/Leaflet.Path.Drag.min.js diff --git a/src/Files/Leaflet/Leaflet.Path.Drag.min.js b/src/Files/Leaflet/Leaflet.Path.Drag.min.js new file mode 100644 index 0000000..561718f --- /dev/null +++ b/src/Files/Leaflet/Leaflet.Path.Drag.min.js @@ -0,0 +1,286 @@ +(function (n, u) { + typeof exports == 'object' && typeof module < 'u' + ? (module.exports = u(require('leaflet'))) + : typeof define == 'function' && define.amd + ? define(['leaflet'], u) + : ((n = typeof globalThis < 'u' ? globalThis : n || self), (n['leaflet-path-drag'] = u(n.L))); +})(this, function (n) { + 'use strict'; + n.SVG.include({ + _resetTransformPath: function (t) { + t._path.setAttributeNS(null, 'transform', ''); + }, + transformPath: function (t, s) { + t._path.setAttributeNS(null, 'transform', 'matrix(' + s.join(' ') + ')'); + }, + }), + n.SVG.include( + n.Browser.vml + ? { + _resetTransformPath: function (t) { + t._skew && ((t._skew.on = !1), t._path.removeChild(t._skew), (t._skew = null)); + }, + transformPath: function (t, s) { + let i = t._skew; + i || + ((i = n.SVG.create('skew')), + t._path.appendChild(i), + (i.style.behavior = 'url(#default#VML)'), + (t._skew = i)); + const a = + s[0].toFixed(8) + + ' ' + + s[1].toFixed(8) + + ' ' + + s[2].toFixed(8) + + ' ' + + s[3].toFixed(8) + + ' 0 0', + h = Math.floor(s[4]).toFixed() + ', ' + Math.floor(s[5]).toFixed(), + o = this._path.style; + let e = parseFloat(o.left), + r = parseFloat(o.top), + _ = parseFloat(o.width), + p = parseFloat(o.height); + isNaN(e) && (e = 0), + isNaN(r) && (r = 0), + (isNaN(_) || !_) && (_ = 1), + (isNaN(p) || !p) && (p = 1); + const m = (-e / _ - 0.5).toFixed(8) + ' ' + (-r / p - 0.5).toFixed(8); + (i.on = 'f'), (i.matrix = a), (i.origin = m), (i.offset = h), (i.on = !0); + }, + } + : {} + ); + function u() { + return !0; + } + n.Canvas.include({ + _resetTransformPath: function (t) { + this._containerCopy && + (delete this._containerCopy, + t._containsPoint_ && + ((t._containsPoint = t._containsPoint_), delete t._containsPoint_, this._requestRedraw(t))); + }, + transformPath: function (t, s) { + let i = this._containerCopy; + const a = this._ctx; + let h; + const o = n.Browser.retina ? 2 : 1, + e = this._bounds, + r = e.getSize(), + _ = e.min; + i || + ((i = this._containerCopy = document.createElement('canvas')), + (h = i.getContext('2d')), + (i.width = o * r.x), + (i.height = o * r.y), + this._removePath(t), + this._redraw(), + h.translate(o * e.min.x, o * e.min.y), + h.drawImage(this._container, 0, 0), + this._initPath(t), + (t._containsPoint_ = t._containsPoint), + (t._containsPoint = u)), + a.save(), + a.clearRect(_.x, _.y, r.x * o, r.y * o), + a.setTransform(1, 0, 0, 1, 0, 0), + a.restore(), + a.save(), + a.drawImage(this._containerCopy, 0, 0, r.x, r.y), + a.transform.apply(a, s), + (this._drawing = !0), + t._updatePath(), + (this._drawing = !1), + a.restore(); + }, + }); + /** + * Leaflet vector features drag functionality + * @author Alexander Milevski + * @preserve + */ + n.Path.include({ + _transform: function (t) { + return ( + this._renderer && + (t + ? this._renderer.transformPath(this, t) + : (this._renderer._resetTransformPath(this), this._update())), + this + ); + }, + _onMouseClick: function (t) { + (this.dragging && this.dragging.moved()) || + (this._map.dragging && this._map.dragging.moved()) || + this._fireMouseEvent(t); + }, + }); + const f = { mousedown: 'mouseup', touchstart: 'touchend', pointerdown: 'touchend', MSPointerDown: 'touchend' }, + l = { mousedown: 'mousemove', touchstart: 'touchmove', pointerdown: 'touchmove', MSPointerDown: 'touchmove' }; + function P(t, s) { + const i = t.x - s.x, + a = t.y - s.y; + return Math.sqrt(i * i + a * a); + } + return ( + (n.Handler.PathDrag = n.Handler.extend({ + statics: { DRAGGING_CLS: 'leaflet-path-draggable' }, + initialize: function (t) { + (this._path = t), + (this._matrix = null), + (this._startPoint = null), + (this._dragStartPoint = null), + (this._mapDraggingWasEnabled = !1), + (this._path._dragMoved = !1); + }, + addHooks: function () { + this._path.on('mousedown', this._onDragStart, this), + (this._path.options.className = this._path.options.className + ? this._path.options.className + ' ' + n.Handler.PathDrag.DRAGGING_CLS + : n.Handler.PathDrag.DRAGGING_CLS), + this._path._path && n.DomUtil.addClass(this._path._path, n.Handler.PathDrag.DRAGGING_CLS); + }, + removeHooks: function () { + this._path.off('mousedown', this._onDragStart, this), + (this._path.options.className = this._path.options.className.replace( + new RegExp('\\s+' + n.Handler.PathDrag.DRAGGING_CLS), + '' + )), + this._path._path && n.DomUtil.removeClass(this._path._path, n.Handler.PathDrag.DRAGGING_CLS); + }, + moved: function () { + return this._path._dragMoved; + }, + _onDragStart: function (t) { + const s = t.originalEvent._simulated ? 'touchstart' : t.originalEvent.type; + (this._mapDraggingWasEnabled = !1), + (this._startPoint = t.containerPoint.clone()), + (this._dragStartPoint = t.containerPoint.clone()), + (this._matrix = [1, 0, 0, 1, 0, 0]), + n.DomEvent.stop(t.originalEvent), + n.DomUtil.addClass(this._path._renderer._container, 'leaflet-interactive'), + n.DomEvent.on(document, l[s], this._onDrag, this).on(document, f[s], this._onDragEnd, this), + this._path._map.dragging.enabled() && + (this._path._map.dragging.disable(), (this._mapDraggingWasEnabled = !0)), + (this._path._dragMoved = !1), + this._path._popup && this._path._popup.close(), + this._replaceCoordGetters(t); + }, + _onDrag: function (t) { + n.DomEvent.stop(t); + const s = t.touches && t.touches.length >= 1 ? t.touches[0] : t, + i = this._path._map.mouseEventToContainerPoint(s); + if ( + t.type === 'touchmove' && + !this._path._dragMoved && + this._dragStartPoint.distanceTo(i) <= this._path._map.options.tapTolerance + ) + return; + const a = i.x, + h = i.y, + o = a - this._startPoint.x, + e = h - this._startPoint.y; + (o || e) && + (this._path._dragMoved || + ((this._path._dragMoved = !0), + (this._path.options.interactive = !1), + (this._path._map.dragging._draggable._moved = !0), + this._path.fire('dragstart', t), + this._path.bringToFront()), + (this._matrix[4] += o), + (this._matrix[5] += e), + (this._startPoint.x = a), + (this._startPoint.y = h), + this._path.fire('predrag', t), + this._path._transform(this._matrix), + this._path.fire('drag', t)); + }, + _onDragEnd: function (t) { + const s = this._path._map.mouseEventToContainerPoint(t), + i = this.moved(); + if ( + (i && + (this._transformPoints(this._matrix), + this._path._updatePath(), + this._path._project(), + this._path._transform(null), + n.DomEvent.stop(t)), + n.DomEvent.off(document, 'mousemove touchmove', this._onDrag, this), + n.DomEvent.off(document, 'mouseup touchend', this._onDragEnd, this), + this._restoreCoordGetters(), + i) + ) { + this._path.fire('dragend', { distance: P(this._dragStartPoint, s) }); + const a = this._path._containsPoint; + (this._path._containsPoint = n.Util.falseFn), + n.Util.requestAnimFrame(function () { + (this._path._dragMoved = !1), + (this._path.options.interactive = !0), + (this._path._containsPoint = a); + }, this); + } + this._mapDraggingWasEnabled && this._path._map.dragging.enable(); + }, + _transformPoints: function (t, s) { + const i = this._path, + a = L.point(t[4], t[5]), + h = i._map.options.crs, + o = h.transformation, + e = h.scale(i._map.getZoom()), + r = h.projection, + _ = o.untransform(a, e).subtract(o.untransform(n.point(0, 0), e)), + p = !s; + if (((i._bounds = new n.LatLngBounds()), i._point)) + (s = r.unproject(r.project(i._latlng)._add(_))), p && ((i._latlng = s), i._point._add(a)); + else if (i._rings || i._parts) { + const m = i._rings || i._parts; + let d = i._latlngs; + (s = s || d), n.Util.isArray(d[0]) || ((d = [d]), (s = [s])); + for (let g = 0, D = m.length; g < D; g++) { + s[g] = s[g] || []; + for (let c = 0, x = m[g].length; c < x; c++) { + const v = d[g][c]; + (s[g][c] = r.unproject(r.project(v)._add(_))), + p && (i._bounds.extend(d[g][c]), m[g][c]._add(a)); + } + } + } + return s; + }, + _replaceCoordGetters: function () { + this._path.getLatLng + ? ((this._path.getLatLng_ = this._path.getLatLng), + (this._path.getLatLng = n.Util.bind(function () { + return this.dragging._transformPoints(this.dragging._matrix, {}); + }, this._path))) + : this._path.getLatLngs && + ((this._path.getLatLngs_ = this._path.getLatLngs), + (this._path.getLatLngs = n.Util.bind(function () { + return this.dragging._transformPoints(this.dragging._matrix, []); + }, this._path))); + }, + _restoreCoordGetters: function () { + this._path.getLatLng_ + ? ((this._path.getLatLng = this._path.getLatLng_), delete this._path.getLatLng_) + : this._path.getLatLngs_ && + ((this._path.getLatLngs = this._path.getLatLngs_), delete this._path.getLatLngs_); + }, + })), + (n.Handler.PathDrag.makeDraggable = function (t) { + return (t.dragging = new n.Handler.PathDrag(t)), t; + }), + (n.Path.prototype.makeDraggable = function () { + return n.Handler.PathDrag.makeDraggable(this); + }), + n.Path.addInitHook(function () { + this.options.draggable + ? ((this.options.interactive = !0), + this.dragging + ? this.dragging.enable() + : (n.Handler.PathDrag.makeDraggable(this), this.dragging.enable())) + : this.dragging && this.dragging.disable(); + }), + n.Handler.PathDrag + ); +}); From a70200b3d7b5a61cd77e3d2ace97cd7e1a7a64e6 Mon Sep 17 00:00:00 2001 From: rug Date: Thu, 14 Nov 2024 14:53:57 +0100 Subject: [PATCH 3/3] File identation --- src/Files/Leaflet/Leaflet.Draw.min.js | 2439 +- src/Files/Leaflet/Leaflet.Editable.js | 4117 +- src/Files/Leaflet/Leaflet.Routing.Machine.js | 37938 +++++++++-------- src/Files/Leaflet/Leaflet.min.js | 6381 ++- src/Files/Leaflet/README.MD | 6 + 5 files changed, 30161 insertions(+), 20720 deletions(-) diff --git a/src/Files/Leaflet/Leaflet.Draw.min.js b/src/Files/Leaflet/Leaflet.Draw.min.js index 71aeb33..3e2b69a 100644 --- a/src/Files/Leaflet/Leaflet.Draw.min.js +++ b/src/Files/Leaflet/Leaflet.Draw.min.js @@ -5,6 +5,2439 @@ https://github.com/Leaflet/Leaflet.draw http://leafletjs.com */ -!function(t,e,i){function o(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}L.drawVersion="1.0.4",L.Draw={},L.drawLocal={draw:{toolbar:{actions:{title:"Cancel drawing",text:"Cancel"},finish:{title:"Finish drawing",text:"Finish"},undo:{title:"Delete last point drawn",text:"Delete last point"},buttons:{polyline:"Draw a polyline",polygon:"Draw a polygon",rectangle:"Draw a rectangle",circle:"Draw a circle",marker:"Draw a marker",circlemarker:"Draw a circlemarker"}},handlers:{circle:{tooltip:{start:"Click and drag to draw circle."},radius:"Radius"},circlemarker:{tooltip:{start:"Click map to place circle marker."}},marker:{tooltip:{start:"Click map to place marker."}},polygon:{tooltip:{start:"Click to start drawing shape.",cont:"Click to continue drawing shape.",end:"Click first point to close this shape."}},polyline:{error:"Error: shape edges cannot cross!",tooltip:{start:"Click to start drawing line.",cont:"Click to continue drawing line.",end:"Click last point to finish line."}},rectangle:{tooltip:{start:"Click and drag to draw rectangle."}},simpleshape:{tooltip:{end:"Release mouse to finish drawing."}}}},edit:{toolbar:{actions:{save:{title:"Save changes",text:"Save"},cancel:{title:"Cancel editing, discards all changes",text:"Cancel"},clearAll:{title:"Clear all layers",text:"Clear All"}},buttons:{edit:"Edit layers",editDisabled:"No layers to edit",remove:"Delete layers",removeDisabled:"No layers to delete"}},handlers:{edit:{tooltip:{text:"Drag handles or markers to edit features.",subtext:"Click cancel to undo changes."}},remove:{tooltip:{text:"Click on a feature to remove."}}}}},L.Draw.Event={},L.Draw.Event.CREATED="draw:created",L.Draw.Event.EDITED="draw:edited",L.Draw.Event.DELETED="draw:deleted",L.Draw.Event.DRAWSTART="draw:drawstart",L.Draw.Event.DRAWSTOP="draw:drawstop",L.Draw.Event.DRAWVERTEX="draw:drawvertex",L.Draw.Event.EDITSTART="draw:editstart",L.Draw.Event.EDITMOVE="draw:editmove",L.Draw.Event.EDITRESIZE="draw:editresize",L.Draw.Event.EDITVERTEX="draw:editvertex",L.Draw.Event.EDITSTOP="draw:editstop",L.Draw.Event.DELETESTART="draw:deletestart",L.Draw.Event.DELETESTOP="draw:deletestop",L.Draw.Event.TOOLBAROPENED="draw:toolbaropened",L.Draw.Event.TOOLBARCLOSED="draw:toolbarclosed",L.Draw.Event.MARKERCONTEXT="draw:markercontext",L.Draw=L.Draw||{},L.Draw.Feature=L.Handler.extend({initialize:function(t,e){this._map=t,this._container=t._container,this._overlayPane=t._panes.overlayPane,this._popupPane=t._panes.popupPane,e&&e.shapeOptions&&(e.shapeOptions=L.Util.extend({},this.options.shapeOptions,e.shapeOptions)),L.setOptions(this,e);var i=L.version.split(".");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.Draw.Feature.include(L.Evented.prototype):L.Draw.Feature.include(L.Mixin.Events)},enable:function(){this._enabled||(L.Handler.prototype.enable.call(this),this.fire("enabled",{handler:this.type}),this._map.fire(L.Draw.Event.DRAWSTART,{layerType:this.type}))},disable:function(){this._enabled&&(L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.DRAWSTOP,{layerType:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(L.DomUtil.disableTextSelection(),t.getContainer().focus(),this._tooltip=new L.Draw.Tooltip(this._map),L.DomEvent.on(this._container,"keyup",this._cancelDrawing,this))},removeHooks:function(){this._map&&(L.DomUtil.enableTextSelection(),this._tooltip.dispose(),this._tooltip=null,L.DomEvent.off(this._container,"keyup",this._cancelDrawing,this))},setOptions:function(t){L.setOptions(this,t)},_fireCreatedEvent:function(t){this._map.fire(L.Draw.Event.CREATED,{layer:t,layerType:this.type})},_cancelDrawing:function(t){27===t.keyCode&&(this._map.fire("draw:canceled",{layerType:this.type}),this.disable())}}),L.Draw.Polyline=L.Draw.Feature.extend({statics:{TYPE:"polyline"},Poly:L.Polyline,options:{allowIntersection:!0,repeatMode:!1,drawError:{color:"#b00b00",timeout:2500},icon:new L.DivIcon({iconSize:new L.Point(8,8),className:"leaflet-div-icon leaflet-editing-icon"}),touchIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon"}),guidelineDistance:20,maxGuideLineLength:4e3,shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!1,clickable:!0},metric:!0,feet:!0,nautic:!1,showLength:!0,zIndexOffset:2e3,factor:1,maxPoints:0},initialize:function(t,e){L.Browser.touch&&(this.options.icon=this.options.touchIcon),this.options.drawError.message=L.drawLocal.draw.handlers.polyline.error,e&&e.drawError&&(e.drawError=L.Util.extend({},this.options.drawError,e.drawError)),this.type=L.Draw.Polyline.TYPE,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._markers=[],this._markerGroup=new L.LayerGroup,this._map.addLayer(this._markerGroup),this._poly=new L.Polyline([],this.options.shapeOptions),this._tooltip.updateContent(this._getTooltipText()),this._mouseMarker||(this._mouseMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:"leaflet-mouse-marker",iconAnchor:[20,20],iconSize:[40,40]}),opacity:0,zIndexOffset:this.options.zIndexOffset})),this._mouseMarker.on("mouseout",this._onMouseOut,this).on("mousemove",this._onMouseMove,this).on("mousedown",this._onMouseDown,this).on("mouseup",this._onMouseUp,this).addTo(this._map),this._map.on("mouseup",this._onMouseUp,this).on("mousemove",this._onMouseMove,this).on("zoomlevelschange",this._onZoomEnd,this).on("touchstart",this._onTouch,this).on("zoomend",this._onZoomEnd,this))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._clearHideErrorTimeout(),this._cleanUpShape(),this._map.removeLayer(this._markerGroup),delete this._markerGroup,delete this._markers,this._map.removeLayer(this._poly),delete this._poly,this._mouseMarker.off("mousedown",this._onMouseDown,this).off("mouseout",this._onMouseOut,this).off("mouseup",this._onMouseUp,this).off("mousemove",this._onMouseMove,this),this._map.removeLayer(this._mouseMarker),delete this._mouseMarker,this._clearGuides(),this._map.off("mouseup",this._onMouseUp,this).off("mousemove",this._onMouseMove,this).off("zoomlevelschange",this._onZoomEnd,this).off("zoomend",this._onZoomEnd,this).off("touchstart",this._onTouch,this).off("click",this._onTouch,this)},deleteLastVertex:function(){if(!(this._markers.length<=1)){var t=this._markers.pop(),e=this._poly,i=e.getLatLngs(),o=i.splice(-1,1)[0];this._poly.setLatLngs(i),this._markerGroup.removeLayer(t),e.getLatLngs().length<2&&this._map.removeLayer(e),this._vertexChanged(o,!1)}},addVertex:function(t){if(this._markers.length>=2&&!this.options.allowIntersection&&this._poly.newLatLngIntersects(t))return void this._showErrorTooltip();this._errorShown&&this._hideErrorTooltip(),this._markers.push(this._createMarker(t)),this._poly.addLatLng(t),2===this._poly.getLatLngs().length&&this._map.addLayer(this._poly),this._vertexChanged(t,!0)},completeShape:function(){this._markers.length<=1||!this._shapeIsValid()||(this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable())},_finishShape:function(){var t=this._poly._defaultShape?this._poly._defaultShape():this._poly.getLatLngs(),e=this._poly.newLatLngIntersects(t[t.length-1]);if(!this.options.allowIntersection&&e||!this._shapeIsValid())return void this._showErrorTooltip();this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()},_shapeIsValid:function(){return!0},_onZoomEnd:function(){null!==this._markers&&this._updateGuide()},_onMouseMove:function(t){var e=this._map.mouseEventToLayerPoint(t.originalEvent),i=this._map.layerPointToLatLng(e);this._currentLatLng=i,this._updateTooltip(i),this._updateGuide(e),this._mouseMarker.setLatLng(i),L.DomEvent.preventDefault(t.originalEvent)},_vertexChanged:function(t,e){this._map.fire(L.Draw.Event.DRAWVERTEX,{layers:this._markerGroup}),this._updateFinishHandler(),this._updateRunningMeasure(t,e),this._clearGuides(),this._updateTooltip()},_onMouseDown:function(t){if(!this._clickHandled&&!this._touchHandled&&!this._disableMarkers){this._onMouseMove(t),this._clickHandled=!0,this._disableNewMarkers();var e=t.originalEvent,i=e.clientX,o=e.clientY;this._startPoint.call(this,i,o)}},_startPoint:function(t,e){this._mouseDownOrigin=L.point(t,e)},_onMouseUp:function(t){var e=t.originalEvent,i=e.clientX,o=e.clientY;this._endPoint.call(this,i,o,t),this._clickHandled=null},_endPoint:function(e,i,o){if(this._mouseDownOrigin){var a=L.point(e,i).distanceTo(this._mouseDownOrigin),n=this._calculateFinishDistance(o.latlng);this.options.maxPoints>1&&this.options.maxPoints==this._markers.length+1?(this.addVertex(o.latlng),this._finishShape()):n<10&&L.Browser.touch?this._finishShape():Math.abs(a)<9*(t.devicePixelRatio||1)&&this.addVertex(o.latlng),this._enableNewMarkers()}this._mouseDownOrigin=null},_onTouch:function(t){var e,i,o=t.originalEvent;!o.touches||!o.touches[0]||this._clickHandled||this._touchHandled||this._disableMarkers||(e=o.touches[0].clientX,i=o.touches[0].clientY,this._disableNewMarkers(),this._touchHandled=!0,this._startPoint.call(this,e,i),this._endPoint.call(this,e,i,t),this._touchHandled=null),this._clickHandled=null},_onMouseOut:function(){this._tooltip&&this._tooltip._onMouseOut.call(this._tooltip)},_calculateFinishDistance:function(t){var e;if(this._markers.length>0){var i;if(this.type===L.Draw.Polyline.TYPE)i=this._markers[this._markers.length-1];else{if(this.type!==L.Draw.Polygon.TYPE)return 1/0;i=this._markers[0]}var o=this._map.latLngToContainerPoint(i.getLatLng()),a=new L.Marker(t,{icon:this.options.icon,zIndexOffset:2*this.options.zIndexOffset}),n=this._map.latLngToContainerPoint(a.getLatLng());e=o.distanceTo(n)}else e=1/0;return e},_updateFinishHandler:function(){var t=this._markers.length;t>1&&this._markers[t-1].on("click",this._finishShape,this),t>2&&this._markers[t-2].off("click",this._finishShape,this)},_createMarker:function(t){var e=new L.Marker(t,{icon:this.options.icon,zIndexOffset:2*this.options.zIndexOffset});return this._markerGroup.addLayer(e),e},_updateGuide:function(t){var e=this._markers?this._markers.length:0;e>0&&(t=t||this._map.latLngToLayerPoint(this._currentLatLng),this._clearGuides(),this._drawGuide(this._map.latLngToLayerPoint(this._markers[e-1].getLatLng()),t))},_updateTooltip:function(t){var e=this._getTooltipText();t&&this._tooltip.updatePosition(t),this._errorShown||this._tooltip.updateContent(e)},_drawGuide:function(t,e){var i,o,a,n=Math.floor(Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))),s=this.options.guidelineDistance,r=this.options.maxGuideLineLength,l=n>r?n-r:s;for(this._guidesContainer||(this._guidesContainer=L.DomUtil.create("div","leaflet-draw-guides",this._overlayPane));l1&&this._markers[this._markers.length-1].off("click",this._finishShape,this)},_fireCreatedEvent:function(){var t=new this.Poly(this._poly.getLatLngs(),this.options.shapeOptions);L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)}}),L.Draw.Polygon=L.Draw.Polyline.extend({statics:{TYPE:"polygon"},Poly:L.Polygon,options:{showArea:!1,showLength:!1,shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},metric:!0,feet:!0,nautic:!1,precision:{}},initialize:function(t,e){L.Draw.Polyline.prototype.initialize.call(this,t,e),this.type=L.Draw.Polygon.TYPE},_updateFinishHandler:function(){var t=this._markers.length;1===t&&this._markers[0].on("click",this._finishShape,this),t>2&&(this._markers[t-1].on("dblclick",this._finishShape,this),t>3&&this._markers[t-2].off("dblclick",this._finishShape,this))},_getTooltipText:function(){var t,e;return 0===this._markers.length?t=L.drawLocal.draw.handlers.polygon.tooltip.start:this._markers.length<3?(t=L.drawLocal.draw.handlers.polygon.tooltip.cont,e=this._getMeasurementString()):(t=L.drawLocal.draw.handlers.polygon.tooltip.end,e=this._getMeasurementString()),{text:t,subtext:e}},_getMeasurementString:function(){var t=this._area,e="";return t||this.options.showLength?(this.options.showLength&&(e=L.Draw.Polyline.prototype._getMeasurementString.call(this)),t&&(e+="
"+L.GeometryUtil.readableArea(t,this.options.metric,this.options.precision)),e):null},_shapeIsValid:function(){return this._markers.length>=3},_vertexChanged:function(t,e){var i;!this.options.allowIntersection&&this.options.showArea&&(i=this._poly.getLatLngs(),this._area=L.GeometryUtil.geodesicArea(i)),L.Draw.Polyline.prototype._vertexChanged.call(this,t,e)},_cleanUpShape:function(){var t=this._markers.length;t>0&&(this._markers[0].off("click",this._finishShape,this),t>2&&this._markers[t-1].off("dblclick",this._finishShape,this))}}),L.SimpleShape={},L.Draw.SimpleShape=L.Draw.Feature.extend({options:{repeatMode:!1},initialize:function(t,e){this._endLabelText=L.drawLocal.draw.handlers.simpleshape.tooltip.end,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._mapDraggable=this._map.dragging.enabled(),this._mapDraggable&&this._map.dragging.disable(),this._container.style.cursor="crosshair",this._tooltip.updateContent({text:this._initialLabelText}),this._map.on("mousedown",this._onMouseDown,this).on("mousemove",this._onMouseMove,this).on("touchstart",this._onMouseDown,this).on("touchmove",this._onMouseMove,this),e.addEventListener("touchstart",L.DomEvent.preventDefault,{passive:!1}))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._map&&(this._mapDraggable&&this._map.dragging.enable(),this._container.style.cursor="",this._map.off("mousedown",this._onMouseDown,this).off("mousemove",this._onMouseMove,this).off("touchstart",this._onMouseDown,this).off("touchmove",this._onMouseMove,this),L.DomEvent.off(e,"mouseup",this._onMouseUp,this),L.DomEvent.off(e,"touchend",this._onMouseUp,this),e.removeEventListener("touchstart",L.DomEvent.preventDefault),this._shape&&(this._map.removeLayer(this._shape),delete this._shape)),this._isDrawing=!1},_getTooltipText:function(){return{text:this._endLabelText}},_onMouseDown:function(t){this._isDrawing=!0,this._startLatLng=t.latlng,L.DomEvent.on(e,"mouseup",this._onMouseUp,this).on(e,"touchend",this._onMouseUp,this).preventDefault(t.originalEvent)},_onMouseMove:function(t){var e=t.latlng;this._tooltip.updatePosition(e),this._isDrawing&&(this._tooltip.updateContent(this._getTooltipText()),this._drawShape(e))},_onMouseUp:function(){this._shape&&this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()}}),L.Draw.Rectangle=L.Draw.SimpleShape.extend({statics:{TYPE:"rectangle"},options:{shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},showArea:!0,metric:!0},initialize:function(t,e){this.type=L.Draw.Rectangle.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.rectangle.tooltip.start,L.Draw.SimpleShape.prototype.initialize.call(this,t,e)},disable:function(){this._enabled&&(this._isCurrentlyTwoClickDrawing=!1,L.Draw.SimpleShape.prototype.disable.call(this))},_onMouseUp:function(t){if(!this._shape&&!this._isCurrentlyTwoClickDrawing)return void(this._isCurrentlyTwoClickDrawing=!0);this._isCurrentlyTwoClickDrawing&&!o(t.target,"leaflet-pane")||L.Draw.SimpleShape.prototype._onMouseUp.call(this)},_drawShape:function(t){this._shape?this._shape.setBounds(new L.LatLngBounds(this._startLatLng,t)):(this._shape=new L.Rectangle(new L.LatLngBounds(this._startLatLng,t),this.options.shapeOptions),this._map.addLayer(this._shape))},_fireCreatedEvent:function(){var t=new L.Rectangle(this._shape.getBounds(),this.options.shapeOptions);L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this,t)},_getTooltipText:function(){var t,e,i,o=L.Draw.SimpleShape.prototype._getTooltipText.call(this),a=this._shape,n=this.options.showArea;return a&&(t=this._shape._defaultShape?this._shape._defaultShape():this._shape.getLatLngs(),e=L.GeometryUtil.geodesicArea(t),i=n?L.GeometryUtil.readableArea(e,this.options.metric):""),{text:o.text,subtext:i}}}),L.Draw.Marker=L.Draw.Feature.extend({statics:{TYPE:"marker"},options:{icon:new L.Icon.Default,repeatMode:!1,zIndexOffset:2e3},initialize:function(t,e){this.type=L.Draw.Marker.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.marker.tooltip.start,L.Draw.Feature.prototype.initialize.call(this,t,e)},addHooks:function(){L.Draw.Feature.prototype.addHooks.call(this),this._map&&(this._tooltip.updateContent({text:this._initialLabelText}),this._mouseMarker||(this._mouseMarker=L.marker(this._map.getCenter(),{icon:L.divIcon({className:"leaflet-mouse-marker",iconAnchor:[20,20],iconSize:[40,40]}),opacity:0,zIndexOffset:this.options.zIndexOffset})),this._mouseMarker.on("click",this._onClick,this).addTo(this._map),this._map.on("mousemove",this._onMouseMove,this),this._map.on("click",this._onTouch,this))},removeHooks:function(){L.Draw.Feature.prototype.removeHooks.call(this),this._map&&(this._map.off("click",this._onClick,this).off("click",this._onTouch,this),this._marker&&(this._marker.off("click",this._onClick,this),this._map.removeLayer(this._marker),delete this._marker),this._mouseMarker.off("click",this._onClick,this),this._map.removeLayer(this._mouseMarker),delete this._mouseMarker,this._map.off("mousemove",this._onMouseMove,this))},_onMouseMove:function(t){var e=t.latlng;this._tooltip.updatePosition(e),this._mouseMarker.setLatLng(e),this._marker?(e=this._mouseMarker.getLatLng(),this._marker.setLatLng(e)):(this._marker=this._createMarker(e),this._marker.on("click",this._onClick,this),this._map.on("click",this._onClick,this).addLayer(this._marker))},_createMarker:function(t){return new L.Marker(t,{icon:this.options.icon,zIndexOffset:this.options.zIndexOffset})},_onClick:function(){this._fireCreatedEvent(),this.disable(),this.options.repeatMode&&this.enable()},_onTouch:function(t){this._onMouseMove(t),this._onClick()},_fireCreatedEvent:function(){var t=new L.Marker.Touch(this._marker.getLatLng(),{icon:this.options.icon});L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)}}),L.Draw.CircleMarker=L.Draw.Marker.extend({statics:{TYPE:"circlemarker"},options:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0,zIndexOffset:2e3},initialize:function(t,e){this.type=L.Draw.CircleMarker.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.circlemarker.tooltip.start,L.Draw.Feature.prototype.initialize.call(this,t,e)},_fireCreatedEvent:function(){var t=new L.CircleMarker(this._marker.getLatLng(),this.options);L.Draw.Feature.prototype._fireCreatedEvent.call(this,t)},_createMarker:function(t){return new L.CircleMarker(t,this.options)}}),L.Draw.Circle=L.Draw.SimpleShape.extend({statics:{TYPE:"circle"},options:{shapeOptions:{stroke:!0,color:"#3388ff",weight:4,opacity:.5,fill:!0,fillColor:null,fillOpacity:.2,clickable:!0},showRadius:!0,metric:!0,feet:!0,nautic:!1},initialize:function(t,e){this.type=L.Draw.Circle.TYPE,this._initialLabelText=L.drawLocal.draw.handlers.circle.tooltip.start,L.Draw.SimpleShape.prototype.initialize.call(this,t,e)},_drawShape:function(t){if(L.GeometryUtil.isVersion07x())var e=this._startLatLng.distanceTo(t);else var e=this._map.distance(this._startLatLng,t);this._shape?this._shape.setRadius(e):(this._shape=new L.Circle(this._startLatLng,e,this.options.shapeOptions),this._map.addLayer(this._shape))},_fireCreatedEvent:function(){var t=new L.Circle(this._startLatLng,this._shape.getRadius(),this.options.shapeOptions);L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this,t)},_onMouseMove:function(t){var e,i=t.latlng,o=this.options.showRadius,a=this.options.metric;if(this._tooltip.updatePosition(i),this._isDrawing){this._drawShape(i),e=this._shape.getRadius().toFixed(1);var n="";o&&(n=L.drawLocal.draw.handlers.circle.radius+": "+L.GeometryUtil.readableDistance(e,a,this.options.feet,this.options.nautic)),this._tooltip.updateContent({text:this._endLabelText,subtext:n})}}}),L.Edit=L.Edit||{},L.Edit.Marker=L.Handler.extend({initialize:function(t,e){this._marker=t,L.setOptions(this,e)},addHooks:function(){var t=this._marker;t.dragging.enable(),t.on("dragend",this._onDragEnd,t),this._toggleMarkerHighlight()},removeHooks:function(){var t=this._marker;t.dragging.disable(),t.off("dragend",this._onDragEnd,t),this._toggleMarkerHighlight()},_onDragEnd:function(t){var e=t.target;e.edited=!0,this._map.fire(L.Draw.Event.EDITMOVE,{layer:e})},_toggleMarkerHighlight:function(){var t=this._marker._icon;t&&(t.style.display="none",L.DomUtil.hasClass(t,"leaflet-edit-marker-selected")?(L.DomUtil.removeClass(t,"leaflet-edit-marker-selected"),this._offsetMarker(t,-4)):(L.DomUtil.addClass(t,"leaflet-edit-marker-selected"),this._offsetMarker(t,4)),t.style.display="")},_offsetMarker:function(t,e){var i=parseInt(t.style.marginTop,10)-e,o=parseInt(t.style.marginLeft,10)-e;t.style.marginTop=i+"px",t.style.marginLeft=o+"px"}}),L.Marker.addInitHook(function(){L.Edit.Marker&&(this.editing=new L.Edit.Marker(this),this.options.editable&&this.editing.enable())}),L.Edit=L.Edit||{},L.Edit.Poly=L.Handler.extend({initialize:function(t){this.latlngs=[t._latlngs],t._holes&&(this.latlngs=this.latlngs.concat(t._holes)),this._poly=t,this._poly.on("revert-edited",this._updateLatLngs,this)},_defaultShape:function(){return L.Polyline._flat?L.Polyline._flat(this._poly._latlngs)?this._poly._latlngs:this._poly._latlngs[0]:this._poly._latlngs},_eachVertexHandler:function(t){for(var e=0;et&&(i._index+=e)})},_createMiddleMarker:function(t,e){var i,o,a,n=this._getMiddleLatLng(t,e),s=this._createMarker(n);s.setOpacity(.6),t._middleRight=e._middleLeft=s,o=function(){s.off("touchmove",o,this);var a=e._index;s._index=a,s.off("click",i,this).on("click",this._onMarkerClick,this),n.lat=s.getLatLng().lat,n.lng=s.getLatLng().lng,this._spliceLatLngs(a,0,n),this._markers.splice(a,0,s),s.setOpacity(1),this._updateIndexes(a,1),e._index++,this._updatePrevNext(t,s),this._updatePrevNext(s,e),this._poly.fire("editstart")},a=function(){s.off("dragstart",o,this),s.off("dragend",a,this),s.off("touchmove",o,this),this._createMiddleMarker(t,s),this._createMiddleMarker(s,e)},i=function(){o.call(this),a.call(this),this._fireEdit()},s.on("click",i,this).on("dragstart",o,this).on("dragend",a,this).on("touchmove",o,this),this._markerGroup.addLayer(s)},_updatePrevNext:function(t,e){t&&(t._next=e),e&&(e._prev=t)},_getMiddleLatLng:function(t,e){var i=this._poly._map,o=i.project(t.getLatLng()),a=i.project(e.getLatLng());return i.unproject(o._add(a)._divideBy(2))}}),L.Polyline.addInitHook(function(){this.editing||(L.Edit.Poly&&(this.editing=new L.Edit.Poly(this),this.options.editable&&this.editing.enable()),this.on("add",function(){this.editing&&this.editing.enabled()&&this.editing.addHooks()}),this.on("remove",function(){this.editing&&this.editing.enabled()&&this.editing.removeHooks()}))}),L.Edit=L.Edit||{},L.Edit.SimpleShape=L.Handler.extend({options:{moveIcon:new L.DivIcon({iconSize:new L.Point(8,8),className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-move"}),resizeIcon:new L.DivIcon({iconSize:new L.Point(8,8), -className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize"}),touchMoveIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-move leaflet-touch-icon"}),touchResizeIcon:new L.DivIcon({iconSize:new L.Point(20,20),className:"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize leaflet-touch-icon"})},initialize:function(t,e){L.Browser.touch&&(this.options.moveIcon=this.options.touchMoveIcon,this.options.resizeIcon=this.options.touchResizeIcon),this._shape=t,L.Util.setOptions(this,e)},addHooks:function(){var t=this._shape;this._shape._map&&(this._map=this._shape._map,t.setStyle(t.options.editing),t._map&&(this._map=t._map,this._markerGroup||this._initMarkers(),this._map.addLayer(this._markerGroup)))},removeHooks:function(){var t=this._shape;if(t.setStyle(t.options.original),t._map){this._unbindMarker(this._moveMarker);for(var e=0,i=this._resizeMarkers.length;e"+L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.draw.handlers.circle.radius+": "+L.GeometryUtil.readableDistance(radius,!0,this.options.feet,this.options.nautic)}),this._shape.setRadius(radius),this._map.fire(L.Draw.Event.EDITRESIZE,{layer:this._shape})}}),L.Circle.addInitHook(function(){L.Edit.Circle&&(this.editing=new L.Edit.Circle(this),this.options.editable&&this.editing.enable())}),L.Map.mergeOptions({touchExtend:!0}),L.Map.TouchExtend=L.Handler.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane},addHooks:function(){L.DomEvent.on(this._container,"touchstart",this._onTouchStart,this),L.DomEvent.on(this._container,"touchend",this._onTouchEnd,this),L.DomEvent.on(this._container,"touchmove",this._onTouchMove,this),this._detectIE()?(L.DomEvent.on(this._container,"MSPointerDown",this._onTouchStart,this),L.DomEvent.on(this._container,"MSPointerUp",this._onTouchEnd,this),L.DomEvent.on(this._container,"MSPointerMove",this._onTouchMove,this),L.DomEvent.on(this._container,"MSPointerCancel",this._onTouchCancel,this)):(L.DomEvent.on(this._container,"touchcancel",this._onTouchCancel,this),L.DomEvent.on(this._container,"touchleave",this._onTouchLeave,this))},removeHooks:function(){L.DomEvent.off(this._container,"touchstart",this._onTouchStart,this),L.DomEvent.off(this._container,"touchend",this._onTouchEnd,this),L.DomEvent.off(this._container,"touchmove",this._onTouchMove,this),this._detectIE()?(L.DomEvent.off(this._container,"MSPointerDown",this._onTouchStart,this),L.DomEvent.off(this._container,"MSPointerUp",this._onTouchEnd,this),L.DomEvent.off(this._container,"MSPointerMove",this._onTouchMove,this),L.DomEvent.off(this._container,"MSPointerCancel",this._onTouchCancel,this)):(L.DomEvent.off(this._container,"touchcancel",this._onTouchCancel,this),L.DomEvent.off(this._container,"touchleave",this._onTouchLeave,this))},_touchEvent:function(t,e){var i={};if(void 0!==t.touches){if(!t.touches.length)return;i=t.touches[0]}else{if("touch"!==t.pointerType)return;if(i=t,!this._filterClick(t))return}var o=this._map.mouseEventToContainerPoint(i),a=this._map.mouseEventToLayerPoint(i),n=this._map.layerPointToLatLng(a);this._map.fire(e,{latlng:n,layerPoint:a,containerPoint:o,pageX:i.pageX,pageY:i.pageY,originalEvent:t})},_filterClick:function(t){var e=t.timeStamp||t.originalEvent.timeStamp,i=L.DomEvent._lastClick&&e-L.DomEvent._lastClick;return i&&i>100&&i<500||t.target._simulatedClick&&!t._simulated?(L.DomEvent.stop(t),!1):(L.DomEvent._lastClick=e,!0)},_onTouchStart:function(t){if(this._map._loaded){this._touchEvent(t,"touchstart")}},_onTouchEnd:function(t){if(this._map._loaded){this._touchEvent(t,"touchend")}},_onTouchCancel:function(t){if(this._map._loaded){var e="touchcancel";this._detectIE()&&(e="pointercancel"),this._touchEvent(t,e)}},_onTouchLeave:function(t){if(this._map._loaded){this._touchEvent(t,"touchleave")}},_onTouchMove:function(t){if(this._map._loaded){this._touchEvent(t,"touchmove")}},_detectIE:function(){var e=t.navigator.userAgent,i=e.indexOf("MSIE ");if(i>0)return parseInt(e.substring(i+5,e.indexOf(".",i)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var a=e.indexOf("Edge/");return a>0&&parseInt(e.substring(a+5,e.indexOf(".",a)),10)}}),L.Map.addInitHook("addHandler","touchExtend",L.Map.TouchExtend),L.Marker.Touch=L.Marker.extend({_initInteraction:function(){return this.addInteractiveTarget?L.Marker.prototype._initInteraction.apply(this):this._initInteractionLegacy()},_initInteractionLegacy:function(){if(this.options.clickable){var t=this._icon,e=["dblclick","mousedown","mouseover","mouseout","contextmenu","touchstart","touchend","touchmove"];this._detectIE?e.concat(["MSPointerDown","MSPointerUp","MSPointerMove","MSPointerCancel"]):e.concat(["touchcancel"]),L.DomUtil.addClass(t,"leaflet-clickable"),L.DomEvent.on(t,"click",this._onMouseClick,this),L.DomEvent.on(t,"keypress",this._onKeyPress,this);for(var i=0;i0)return parseInt(e.substring(i+5,e.indexOf(".",i)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var a=e.indexOf("Edge/");return a>0&&parseInt(e.substring(a+5,e.indexOf(".",a)),10)}}),L.LatLngUtil={cloneLatLngs:function(t){for(var e=[],i=0,o=t.length;i2){for(var s=0;s1&&(i=i+s+r[1])}return i},readableArea:function(e,i,o){var a,n,o=L.Util.extend({},t,o);return i?(n=["ha","m"],type=typeof i,"string"===type?n=[i]:"boolean"!==type&&(n=i),a=e>=1e6&&-1!==n.indexOf("km")?L.GeometryUtil.formattedNumber(1e-6*e,o.km)+" km²":e>=1e4&&-1!==n.indexOf("ha")?L.GeometryUtil.formattedNumber(1e-4*e,o.ha)+" ha":L.GeometryUtil.formattedNumber(e,o.m)+" m²"):(e/=.836127,a=e>=3097600?L.GeometryUtil.formattedNumber(e/3097600,o.mi)+" mi²":e>=4840?L.GeometryUtil.formattedNumber(e/4840,o.ac)+" acres":L.GeometryUtil.formattedNumber(e,o.yd)+" yd²"),a},readableDistance:function(e,i,o,a,n){var s,n=L.Util.extend({},t,n);switch(i?"string"==typeof i?i:"metric":o?"feet":a?"nauticalMile":"yards"){case"metric":s=e>1e3?L.GeometryUtil.formattedNumber(e/1e3,n.km)+" km":L.GeometryUtil.formattedNumber(e,n.m)+" m";break;case"feet":e*=3.28083,s=L.GeometryUtil.formattedNumber(e,n.ft)+" ft";break;case"nauticalMile":e*=.53996,s=L.GeometryUtil.formattedNumber(e/1e3,n.nm)+" nm";break;case"yards":default:e*=1.09361,s=e>1760?L.GeometryUtil.formattedNumber(e/1760,n.mi)+" miles":L.GeometryUtil.formattedNumber(e,n.yd)+" yd"}return s},isVersion07x:function(){var t=L.version.split(".");return 0===parseInt(t[0],10)&&7===parseInt(t[1],10)}})}(),L.Util.extend(L.LineUtil,{segmentsIntersect:function(t,e,i,o){return this._checkCounterclockwise(t,i,o)!==this._checkCounterclockwise(e,i,o)&&this._checkCounterclockwise(t,e,i)!==this._checkCounterclockwise(t,e,o)},_checkCounterclockwise:function(t,e,i){return(i.y-t.y)*(e.x-t.x)>(e.y-t.y)*(i.x-t.x)}}),L.Polyline.include({intersects:function(){var t,e,i,o=this._getProjectedPoints(),a=o?o.length:0;if(this._tooFewPointsForIntersection())return!1;for(t=a-1;t>=3;t--)if(e=o[t-1],i=o[t],this._lineSegmentsIntersectsRange(e,i,t-2))return!0;return!1},newLatLngIntersects:function(t,e){return!!this._map&&this.newPointIntersects(this._map.latLngToLayerPoint(t),e)},newPointIntersects:function(t,e){var i=this._getProjectedPoints(),o=i?i.length:0,a=i?i[o-1]:null,n=o-2;return!this._tooFewPointsForIntersection(1)&&this._lineSegmentsIntersectsRange(a,t,n,e?1:0)},_tooFewPointsForIntersection:function(t){var e=this._getProjectedPoints(),i=e?e.length:0;return i+=t||0,!e||i<=3},_lineSegmentsIntersectsRange:function(t,e,i,o){var a,n,s=this._getProjectedPoints();o=o||0;for(var r=i;r>o;r--)if(a=s[r-1],n=s[r],L.LineUtil.segmentsIntersect(t,e,a,n))return!0;return!1},_getProjectedPoints:function(){if(!this._defaultShape)return this._originalPoints;for(var t=[],e=this._defaultShape(),i=0;i=2?L.Toolbar.include(L.Evented.prototype):L.Toolbar.include(L.Mixin.Events)},enabled:function(){return null!==this._activeMode},disable:function(){this.enabled()&&this._activeMode.handler.disable()},addToolbar:function(t){var e,i=L.DomUtil.create("div","leaflet-draw-section"),o=0,a=this._toolbarClass||"",n=this.getModeHandlers(t);for(this._toolbarContainer=L.DomUtil.create("div","leaflet-draw-toolbar leaflet-bar"),this._map=t,e=0;e0&&this._singleLineLabel&&(L.DomUtil.removeClass(this._container,"leaflet-draw-tooltip-single"),this._singleLineLabel=!1):(L.DomUtil.addClass(this._container,"leaflet-draw-tooltip-single"),this._singleLineLabel=!0),this._container.innerHTML=(t.subtext.length>0?''+t.subtext+"
":"")+""+t.text+"",t.text||t.subtext?(this._visible=!0,this._container.style.visibility="inherit"):(this._visible=!1,this._container.style.visibility="hidden"),this):this},updatePosition:function(t){var e=this._map.latLngToLayerPoint(t),i=this._container;return this._container&&(this._visible&&(i.style.visibility="inherit"),L.DomUtil.setPosition(i,e)),this},showAsError:function(){return this._container&&L.DomUtil.addClass(this._container,"leaflet-error-draw-tooltip"),this},removeError:function(){return this._container&&L.DomUtil.removeClass(this._container,"leaflet-error-draw-tooltip"),this},_onMouseOut:function(){this._container&&(this._container.style.visibility="hidden")}}),L.DrawToolbar=L.Toolbar.extend({statics:{TYPE:"draw"},options:{polyline:{},polygon:{},rectangle:{},circle:{},marker:{},circlemarker:{}},initialize:function(t){for(var e in this.options)this.options.hasOwnProperty(e)&&t[e]&&(t[e]=L.extend({},this.options[e],t[e]));this._toolbarClass="leaflet-draw-draw",L.Toolbar.prototype.initialize.call(this,t)},getModeHandlers:function(t){return[{enabled:this.options.polyline,handler:new L.Draw.Polyline(t,this.options.polyline),title:L.drawLocal.draw.toolbar.buttons.polyline},{enabled:this.options.polygon,handler:new L.Draw.Polygon(t,this.options.polygon),title:L.drawLocal.draw.toolbar.buttons.polygon},{enabled:this.options.rectangle,handler:new L.Draw.Rectangle(t,this.options.rectangle),title:L.drawLocal.draw.toolbar.buttons.rectangle},{enabled:this.options.circle,handler:new L.Draw.Circle(t,this.options.circle),title:L.drawLocal.draw.toolbar.buttons.circle},{enabled:this.options.marker,handler:new L.Draw.Marker(t,this.options.marker),title:L.drawLocal.draw.toolbar.buttons.marker},{enabled:this.options.circlemarker,handler:new L.Draw.CircleMarker(t,this.options.circlemarker),title:L.drawLocal.draw.toolbar.buttons.circlemarker}]},getActions:function(t){return[{enabled:t.completeShape,title:L.drawLocal.draw.toolbar.finish.title,text:L.drawLocal.draw.toolbar.finish.text,callback:t.completeShape,context:t},{enabled:t.deleteLastVertex,title:L.drawLocal.draw.toolbar.undo.title,text:L.drawLocal.draw.toolbar.undo.text,callback:t.deleteLastVertex,context:t},{title:L.drawLocal.draw.toolbar.actions.title,text:L.drawLocal.draw.toolbar.actions.text,callback:this.disable,context:this}]},setOptions:function(t){L.setOptions(this,t);for(var e in this._modes)this._modes.hasOwnProperty(e)&&t.hasOwnProperty(e)&&this._modes[e].handler.setOptions(t[e])}}),L.EditToolbar=L.Toolbar.extend({statics:{TYPE:"edit"},options:{edit:{selectedPathOptions:{dashArray:"10, 10",fill:!0,fillColor:"#fe57a1",fillOpacity:.1,maintainColor:!1}},remove:{},poly:null,featureGroup:null},initialize:function(t){t.edit&&(void 0===t.edit.selectedPathOptions&&(t.edit.selectedPathOptions=this.options.edit.selectedPathOptions),t.edit.selectedPathOptions=L.extend({},this.options.edit.selectedPathOptions,t.edit.selectedPathOptions)),t.remove&&(t.remove=L.extend({},this.options.remove,t.remove)),t.poly&&(t.poly=L.extend({},this.options.poly,t.poly)),this._toolbarClass="leaflet-draw-edit",L.Toolbar.prototype.initialize.call(this,t),this._selectedFeatureCount=0},getModeHandlers:function(t){var e=this.options.featureGroup;return[{enabled:this.options.edit,handler:new L.EditToolbar.Edit(t,{featureGroup:e,selectedPathOptions:this.options.edit.selectedPathOptions,poly:this.options.poly}),title:L.drawLocal.edit.toolbar.buttons.edit},{enabled:this.options.remove,handler:new L.EditToolbar.Delete(t,{featureGroup:e}),title:L.drawLocal.edit.toolbar.buttons.remove}]},getActions:function(t){var e=[{title:L.drawLocal.edit.toolbar.actions.save.title,text:L.drawLocal.edit.toolbar.actions.save.text,callback:this._save,context:this},{title:L.drawLocal.edit.toolbar.actions.cancel.title,text:L.drawLocal.edit.toolbar.actions.cancel.text,callback:this.disable,context:this}];return t.removeAllLayers&&e.push({title:L.drawLocal.edit.toolbar.actions.clearAll.title,text:L.drawLocal.edit.toolbar.actions.clearAll.text,callback:this._clearAllLayers,context:this}),e},addToolbar:function(t){var e=L.Toolbar.prototype.addToolbar.call(this,t);return this._checkDisabled(),this.options.featureGroup.on("layeradd layerremove",this._checkDisabled,this),e},removeToolbar:function(){this.options.featureGroup.off("layeradd layerremove",this._checkDisabled,this),L.Toolbar.prototype.removeToolbar.call(this)},disable:function(){this.enabled()&&(this._activeMode.handler.revertLayers(),L.Toolbar.prototype.disable.call(this))},_save:function(){this._activeMode.handler.save(),this._activeMode&&this._activeMode.handler.disable()},_clearAllLayers:function(){this._activeMode.handler.removeAllLayers(),this._activeMode&&this._activeMode.handler.disable()},_checkDisabled:function(){var t,e=this.options.featureGroup,i=0!==e.getLayers().length;this.options.edit&&(t=this._modes[L.EditToolbar.Edit.TYPE].button,i?L.DomUtil.removeClass(t,"leaflet-disabled"):L.DomUtil.addClass(t,"leaflet-disabled"),t.setAttribute("title",i?L.drawLocal.edit.toolbar.buttons.edit:L.drawLocal.edit.toolbar.buttons.editDisabled)),this.options.remove&&(t=this._modes[L.EditToolbar.Delete.TYPE].button,i?L.DomUtil.removeClass(t,"leaflet-disabled"):L.DomUtil.addClass(t,"leaflet-disabled"),t.setAttribute("title",i?L.drawLocal.edit.toolbar.buttons.remove:L.drawLocal.edit.toolbar.buttons.removeDisabled))}}),L.EditToolbar.Edit=L.Handler.extend({statics:{TYPE:"edit"},initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.setOptions(this,e),this._featureGroup=e.featureGroup,!(this._featureGroup instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this._uneditedLayerProps={},this.type=L.EditToolbar.Edit.TYPE;var i=L.version.split(".");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.EditToolbar.Edit.include(L.Evented.prototype):L.EditToolbar.Edit.include(L.Mixin.Events)},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire(L.Draw.Event.EDITSTART,{handler:this.type}),L.Handler.prototype.enable.call(this),this._featureGroup.on("layeradd",this._enableLayerEdit,this).on("layerremove",this._disableLayerEdit,this))},disable:function(){this._enabled&&(this._featureGroup.off("layeradd",this._enableLayerEdit,this).off("layerremove",this._disableLayerEdit,this),L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.EDITSTOP,{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._featureGroup.eachLayer(this._enableLayerEdit,this),this._tooltip=new L.Draw.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext}),t._editTooltip=this._tooltip,this._updateTooltip(),this._map.on("mousemove",this._onMouseMove,this).on("touchmove",this._onMouseMove,this).on("MSPointerMove",this._onMouseMove,this).on(L.Draw.Event.EDITVERTEX,this._updateTooltip,this))},removeHooks:function(){this._map&&(this._featureGroup.eachLayer(this._disableLayerEdit,this),this._uneditedLayerProps={},this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this).off("touchmove",this._onMouseMove,this).off("MSPointerMove",this._onMouseMove,this).off(L.Draw.Event.EDITVERTEX,this._updateTooltip,this))},revertLayers:function(){this._featureGroup.eachLayer(function(t){this._revertLayer(t)},this)},save:function(){var t=new L.LayerGroup;this._featureGroup.eachLayer(function(e){e.edited&&(t.addLayer(e),e.edited=!1)}),this._map.fire(L.Draw.Event.EDITED,{layers:t})},_backupLayer:function(t){var e=L.Util.stamp(t);this._uneditedLayerProps[e]||(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?this._uneditedLayerProps[e]={latlngs:L.LatLngUtil.cloneLatLngs(t.getLatLngs())}:t instanceof L.Circle?this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng()),radius:t.getRadius()}:(t instanceof L.Marker||t instanceof L.CircleMarker)&&(this._uneditedLayerProps[e]={latlng:L.LatLngUtil.cloneLatLng(t.getLatLng())}))},_getTooltipText:function(){return{text:L.drawLocal.edit.handlers.edit.tooltip.text,subtext:L.drawLocal.edit.handlers.edit.tooltip.subtext}},_updateTooltip:function(){this._tooltip.updateContent(this._getTooltipText())},_revertLayer:function(t){var e=L.Util.stamp(t);t.edited=!1,this._uneditedLayerProps.hasOwnProperty(e)&&(t instanceof L.Polyline||t instanceof L.Polygon||t instanceof L.Rectangle?t.setLatLngs(this._uneditedLayerProps[e].latlngs):t instanceof L.Circle?(t.setLatLng(this._uneditedLayerProps[e].latlng),t.setRadius(this._uneditedLayerProps[e].radius)):(t instanceof L.Marker||t instanceof L.CircleMarker)&&t.setLatLng(this._uneditedLayerProps[e].latlng),t.fire("revert-edited",{layer:t}))},_enableLayerEdit:function(t){var e,i,o=t.layer||t.target||t;this._backupLayer(o),this.options.poly&&(i=L.Util.extend({},this.options.poly),o.options.poly=i),this.options.selectedPathOptions&&(e=L.Util.extend({},this.options.selectedPathOptions),e.maintainColor&&(e.color=o.options.color,e.fillColor=o.options.fillColor),o.options.original=L.extend({},o.options),o.options.editing=e),o instanceof L.Marker?(o.editing&&o.editing.enable(),o.dragging.enable(),o.on("dragend",this._onMarkerDragEnd).on("touchmove",this._onTouchMove,this).on("MSPointerMove",this._onTouchMove,this).on("touchend",this._onMarkerDragEnd,this).on("MSPointerUp",this._onMarkerDragEnd,this)):o.editing.enable()},_disableLayerEdit:function(t){var e=t.layer||t.target||t;e.edited=!1,e.editing&&e.editing.disable(),delete e.options.editing,delete e.options.original, -this._selectedPathOptions&&(e instanceof L.Marker?this._toggleMarkerHighlight(e):(e.setStyle(e.options.previousOptions),delete e.options.previousOptions)),e instanceof L.Marker?(e.dragging.disable(),e.off("dragend",this._onMarkerDragEnd,this).off("touchmove",this._onTouchMove,this).off("MSPointerMove",this._onTouchMove,this).off("touchend",this._onMarkerDragEnd,this).off("MSPointerUp",this._onMarkerDragEnd,this)):e.editing.disable()},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_onMarkerDragEnd:function(t){var e=t.target;e.edited=!0,this._map.fire(L.Draw.Event.EDITMOVE,{layer:e})},_onTouchMove:function(t){var e=t.originalEvent.changedTouches[0],i=this._map.mouseEventToLayerPoint(e),o=this._map.layerPointToLatLng(i);t.target.setLatLng(o)},_hasAvailableLayers:function(){return 0!==this._featureGroup.getLayers().length}}),L.EditToolbar.Delete=L.Handler.extend({statics:{TYPE:"remove"},initialize:function(t,e){if(L.Handler.prototype.initialize.call(this,t),L.Util.setOptions(this,e),this._deletableLayers=this.options.featureGroup,!(this._deletableLayers instanceof L.FeatureGroup))throw new Error("options.featureGroup must be a L.FeatureGroup");this.type=L.EditToolbar.Delete.TYPE;var i=L.version.split(".");1===parseInt(i[0],10)&&parseInt(i[1],10)>=2?L.EditToolbar.Delete.include(L.Evented.prototype):L.EditToolbar.Delete.include(L.Mixin.Events)},enable:function(){!this._enabled&&this._hasAvailableLayers()&&(this.fire("enabled",{handler:this.type}),this._map.fire(L.Draw.Event.DELETESTART,{handler:this.type}),L.Handler.prototype.enable.call(this),this._deletableLayers.on("layeradd",this._enableLayerDelete,this).on("layerremove",this._disableLayerDelete,this))},disable:function(){this._enabled&&(this._deletableLayers.off("layeradd",this._enableLayerDelete,this).off("layerremove",this._disableLayerDelete,this),L.Handler.prototype.disable.call(this),this._map.fire(L.Draw.Event.DELETESTOP,{handler:this.type}),this.fire("disabled",{handler:this.type}))},addHooks:function(){var t=this._map;t&&(t.getContainer().focus(),this._deletableLayers.eachLayer(this._enableLayerDelete,this),this._deletedLayers=new L.LayerGroup,this._tooltip=new L.Draw.Tooltip(this._map),this._tooltip.updateContent({text:L.drawLocal.edit.handlers.remove.tooltip.text}),this._map.on("mousemove",this._onMouseMove,this))},removeHooks:function(){this._map&&(this._deletableLayers.eachLayer(this._disableLayerDelete,this),this._deletedLayers=null,this._tooltip.dispose(),this._tooltip=null,this._map.off("mousemove",this._onMouseMove,this))},revertLayers:function(){this._deletedLayers.eachLayer(function(t){this._deletableLayers.addLayer(t),t.fire("revert-deleted",{layer:t})},this)},save:function(){this._map.fire(L.Draw.Event.DELETED,{layers:this._deletedLayers})},removeAllLayers:function(){this._deletableLayers.eachLayer(function(t){this._removeLayer({layer:t})},this),this.save()},_enableLayerDelete:function(t){(t.layer||t.target||t).on("click",this._removeLayer,this)},_disableLayerDelete:function(t){var e=t.layer||t.target||t;e.off("click",this._removeLayer,this),this._deletedLayers.removeLayer(e)},_removeLayer:function(t){var e=t.layer||t.target||t;this._deletableLayers.removeLayer(e),this._deletedLayers.addLayer(e),e.fire("deleted")},_onMouseMove:function(t){this._tooltip.updatePosition(t.latlng)},_hasAvailableLayers:function(){return 0!==this._deletableLayers.getLayers().length}})}(window,document); \ No newline at end of file +!(function (t, e, i) { + function o(t, e) { + for (; (t = t.parentElement) && !t.classList.contains(e); ); + return t; + } + (L.drawVersion = '1.0.4'), + (L.Draw = {}), + (L.drawLocal = { + draw: { + toolbar: { + actions: { title: 'Cancel drawing', text: 'Cancel' }, + finish: { title: 'Finish drawing', text: 'Finish' }, + undo: { title: 'Delete last point drawn', text: 'Delete last point' }, + buttons: { + polyline: 'Draw a polyline', + polygon: 'Draw a polygon', + rectangle: 'Draw a rectangle', + circle: 'Draw a circle', + marker: 'Draw a marker', + circlemarker: 'Draw a circlemarker', + }, + }, + handlers: { + circle: { tooltip: { start: 'Click and drag to draw circle.' }, radius: 'Radius' }, + circlemarker: { tooltip: { start: 'Click map to place circle marker.' } }, + marker: { tooltip: { start: 'Click map to place marker.' } }, + polygon: { + tooltip: { + start: 'Click to start drawing shape.', + cont: 'Click to continue drawing shape.', + end: 'Click first point to close this shape.', + }, + }, + polyline: { + error: 'Error: shape edges cannot cross!', + tooltip: { + start: 'Click to start drawing line.', + cont: 'Click to continue drawing line.', + end: 'Click last point to finish line.', + }, + }, + rectangle: { tooltip: { start: 'Click and drag to draw rectangle.' } }, + simpleshape: { tooltip: { end: 'Release mouse to finish drawing.' } }, + }, + }, + edit: { + toolbar: { + actions: { + save: { title: 'Save changes', text: 'Save' }, + cancel: { title: 'Cancel editing, discards all changes', text: 'Cancel' }, + clearAll: { title: 'Clear all layers', text: 'Clear All' }, + }, + buttons: { + edit: 'Edit layers', + editDisabled: 'No layers to edit', + remove: 'Delete layers', + removeDisabled: 'No layers to delete', + }, + }, + handlers: { + edit: { + tooltip: { + text: 'Drag handles or markers to edit features.', + subtext: 'Click cancel to undo changes.', + }, + }, + remove: { tooltip: { text: 'Click on a feature to remove.' } }, + }, + }, + }), + (L.Draw.Event = {}), + (L.Draw.Event.CREATED = 'draw:created'), + (L.Draw.Event.EDITED = 'draw:edited'), + (L.Draw.Event.DELETED = 'draw:deleted'), + (L.Draw.Event.DRAWSTART = 'draw:drawstart'), + (L.Draw.Event.DRAWSTOP = 'draw:drawstop'), + (L.Draw.Event.DRAWVERTEX = 'draw:drawvertex'), + (L.Draw.Event.EDITSTART = 'draw:editstart'), + (L.Draw.Event.EDITMOVE = 'draw:editmove'), + (L.Draw.Event.EDITRESIZE = 'draw:editresize'), + (L.Draw.Event.EDITVERTEX = 'draw:editvertex'), + (L.Draw.Event.EDITSTOP = 'draw:editstop'), + (L.Draw.Event.DELETESTART = 'draw:deletestart'), + (L.Draw.Event.DELETESTOP = 'draw:deletestop'), + (L.Draw.Event.TOOLBAROPENED = 'draw:toolbaropened'), + (L.Draw.Event.TOOLBARCLOSED = 'draw:toolbarclosed'), + (L.Draw.Event.MARKERCONTEXT = 'draw:markercontext'), + (L.Draw = L.Draw || {}), + (L.Draw.Feature = L.Handler.extend({ + initialize: function (t, e) { + (this._map = t), + (this._container = t._container), + (this._overlayPane = t._panes.overlayPane), + (this._popupPane = t._panes.popupPane), + e && + e.shapeOptions && + (e.shapeOptions = L.Util.extend({}, this.options.shapeOptions, e.shapeOptions)), + L.setOptions(this, e); + var i = L.version.split('.'); + 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 + ? L.Draw.Feature.include(L.Evented.prototype) + : L.Draw.Feature.include(L.Mixin.Events); + }, + enable: function () { + this._enabled || + (L.Handler.prototype.enable.call(this), + this.fire('enabled', { handler: this.type }), + this._map.fire(L.Draw.Event.DRAWSTART, { layerType: this.type })); + }, + disable: function () { + this._enabled && + (L.Handler.prototype.disable.call(this), + this._map.fire(L.Draw.Event.DRAWSTOP, { layerType: this.type }), + this.fire('disabled', { handler: this.type })); + }, + addHooks: function () { + var t = this._map; + t && + (L.DomUtil.disableTextSelection(), + t.getContainer().focus(), + (this._tooltip = new L.Draw.Tooltip(this._map)), + L.DomEvent.on(this._container, 'keyup', this._cancelDrawing, this)); + }, + removeHooks: function () { + this._map && + (L.DomUtil.enableTextSelection(), + this._tooltip.dispose(), + (this._tooltip = null), + L.DomEvent.off(this._container, 'keyup', this._cancelDrawing, this)); + }, + setOptions: function (t) { + L.setOptions(this, t); + }, + _fireCreatedEvent: function (t) { + this._map.fire(L.Draw.Event.CREATED, { layer: t, layerType: this.type }); + }, + _cancelDrawing: function (t) { + 27 === t.keyCode && (this._map.fire('draw:canceled', { layerType: this.type }), this.disable()); + }, + })), + (L.Draw.Polyline = L.Draw.Feature.extend({ + statics: { TYPE: 'polyline' }, + Poly: L.Polyline, + options: { + allowIntersection: !0, + repeatMode: !1, + drawError: { color: '#b00b00', timeout: 2500 }, + icon: new L.DivIcon({ + iconSize: new L.Point(8, 8), + className: 'leaflet-div-icon leaflet-editing-icon', + }), + touchIcon: new L.DivIcon({ + iconSize: new L.Point(20, 20), + className: 'leaflet-div-icon leaflet-editing-icon leaflet-touch-icon', + }), + guidelineDistance: 20, + maxGuideLineLength: 4e3, + shapeOptions: { stroke: !0, color: '#3388ff', weight: 4, opacity: 0.5, fill: !1, clickable: !0 }, + metric: !0, + feet: !0, + nautic: !1, + showLength: !0, + zIndexOffset: 2e3, + factor: 1, + maxPoints: 0, + }, + initialize: function (t, e) { + L.Browser.touch && (this.options.icon = this.options.touchIcon), + (this.options.drawError.message = L.drawLocal.draw.handlers.polyline.error), + e && e.drawError && (e.drawError = L.Util.extend({}, this.options.drawError, e.drawError)), + (this.type = L.Draw.Polyline.TYPE), + L.Draw.Feature.prototype.initialize.call(this, t, e); + }, + addHooks: function () { + L.Draw.Feature.prototype.addHooks.call(this), + this._map && + ((this._markers = []), + (this._markerGroup = new L.LayerGroup()), + this._map.addLayer(this._markerGroup), + (this._poly = new L.Polyline([], this.options.shapeOptions)), + this._tooltip.updateContent(this._getTooltipText()), + this._mouseMarker || + (this._mouseMarker = L.marker(this._map.getCenter(), { + icon: L.divIcon({ + className: 'leaflet-mouse-marker', + iconAnchor: [20, 20], + iconSize: [40, 40], + }), + opacity: 0, + zIndexOffset: this.options.zIndexOffset, + })), + this._mouseMarker + .on('mouseout', this._onMouseOut, this) + .on('mousemove', this._onMouseMove, this) + .on('mousedown', this._onMouseDown, this) + .on('mouseup', this._onMouseUp, this) + .addTo(this._map), + this._map + .on('mouseup', this._onMouseUp, this) + .on('mousemove', this._onMouseMove, this) + .on('zoomlevelschange', this._onZoomEnd, this) + .on('touchstart', this._onTouch, this) + .on('zoomend', this._onZoomEnd, this)); + }, + removeHooks: function () { + L.Draw.Feature.prototype.removeHooks.call(this), + this._clearHideErrorTimeout(), + this._cleanUpShape(), + this._map.removeLayer(this._markerGroup), + delete this._markerGroup, + delete this._markers, + this._map.removeLayer(this._poly), + delete this._poly, + this._mouseMarker + .off('mousedown', this._onMouseDown, this) + .off('mouseout', this._onMouseOut, this) + .off('mouseup', this._onMouseUp, this) + .off('mousemove', this._onMouseMove, this), + this._map.removeLayer(this._mouseMarker), + delete this._mouseMarker, + this._clearGuides(), + this._map + .off('mouseup', this._onMouseUp, this) + .off('mousemove', this._onMouseMove, this) + .off('zoomlevelschange', this._onZoomEnd, this) + .off('zoomend', this._onZoomEnd, this) + .off('touchstart', this._onTouch, this) + .off('click', this._onTouch, this); + }, + deleteLastVertex: function () { + if (!(this._markers.length <= 1)) { + var t = this._markers.pop(), + e = this._poly, + i = e.getLatLngs(), + o = i.splice(-1, 1)[0]; + this._poly.setLatLngs(i), + this._markerGroup.removeLayer(t), + e.getLatLngs().length < 2 && this._map.removeLayer(e), + this._vertexChanged(o, !1); + } + }, + addVertex: function (t) { + if (this._markers.length >= 2 && !this.options.allowIntersection && this._poly.newLatLngIntersects(t)) + return void this._showErrorTooltip(); + this._errorShown && this._hideErrorTooltip(), + this._markers.push(this._createMarker(t)), + this._poly.addLatLng(t), + 2 === this._poly.getLatLngs().length && this._map.addLayer(this._poly), + this._vertexChanged(t, !0); + }, + completeShape: function () { + this._markers.length <= 1 || + !this._shapeIsValid() || + (this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable()); + }, + _finishShape: function () { + var t = this._poly._defaultShape ? this._poly._defaultShape() : this._poly.getLatLngs(), + e = this._poly.newLatLngIntersects(t[t.length - 1]); + if ((!this.options.allowIntersection && e) || !this._shapeIsValid()) + return void this._showErrorTooltip(); + this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable(); + }, + _shapeIsValid: function () { + return !0; + }, + _onZoomEnd: function () { + null !== this._markers && this._updateGuide(); + }, + _onMouseMove: function (t) { + var e = this._map.mouseEventToLayerPoint(t.originalEvent), + i = this._map.layerPointToLatLng(e); + (this._currentLatLng = i), + this._updateTooltip(i), + this._updateGuide(e), + this._mouseMarker.setLatLng(i), + L.DomEvent.preventDefault(t.originalEvent); + }, + _vertexChanged: function (t, e) { + this._map.fire(L.Draw.Event.DRAWVERTEX, { layers: this._markerGroup }), + this._updateFinishHandler(), + this._updateRunningMeasure(t, e), + this._clearGuides(), + this._updateTooltip(); + }, + _onMouseDown: function (t) { + if (!this._clickHandled && !this._touchHandled && !this._disableMarkers) { + this._onMouseMove(t), (this._clickHandled = !0), this._disableNewMarkers(); + var e = t.originalEvent, + i = e.clientX, + o = e.clientY; + this._startPoint.call(this, i, o); + } + }, + _startPoint: function (t, e) { + this._mouseDownOrigin = L.point(t, e); + }, + _onMouseUp: function (t) { + var e = t.originalEvent, + i = e.clientX, + o = e.clientY; + this._endPoint.call(this, i, o, t), (this._clickHandled = null); + }, + _endPoint: function (e, i, o) { + if (this._mouseDownOrigin) { + var a = L.point(e, i).distanceTo(this._mouseDownOrigin), + n = this._calculateFinishDistance(o.latlng); + this.options.maxPoints > 1 && this.options.maxPoints == this._markers.length + 1 + ? (this.addVertex(o.latlng), this._finishShape()) + : n < 10 && L.Browser.touch + ? this._finishShape() + : Math.abs(a) < 9 * (t.devicePixelRatio || 1) && this.addVertex(o.latlng), + this._enableNewMarkers(); + } + this._mouseDownOrigin = null; + }, + _onTouch: function (t) { + var e, + i, + o = t.originalEvent; + !o.touches || + !o.touches[0] || + this._clickHandled || + this._touchHandled || + this._disableMarkers || + ((e = o.touches[0].clientX), + (i = o.touches[0].clientY), + this._disableNewMarkers(), + (this._touchHandled = !0), + this._startPoint.call(this, e, i), + this._endPoint.call(this, e, i, t), + (this._touchHandled = null)), + (this._clickHandled = null); + }, + _onMouseOut: function () { + this._tooltip && this._tooltip._onMouseOut.call(this._tooltip); + }, + _calculateFinishDistance: function (t) { + var e; + if (this._markers.length > 0) { + var i; + if (this.type === L.Draw.Polyline.TYPE) i = this._markers[this._markers.length - 1]; + else { + if (this.type !== L.Draw.Polygon.TYPE) return 1 / 0; + i = this._markers[0]; + } + var o = this._map.latLngToContainerPoint(i.getLatLng()), + a = new L.Marker(t, { icon: this.options.icon, zIndexOffset: 2 * this.options.zIndexOffset }), + n = this._map.latLngToContainerPoint(a.getLatLng()); + e = o.distanceTo(n); + } else e = 1 / 0; + return e; + }, + _updateFinishHandler: function () { + var t = this._markers.length; + t > 1 && this._markers[t - 1].on('click', this._finishShape, this), + t > 2 && this._markers[t - 2].off('click', this._finishShape, this); + }, + _createMarker: function (t) { + var e = new L.Marker(t, { icon: this.options.icon, zIndexOffset: 2 * this.options.zIndexOffset }); + return this._markerGroup.addLayer(e), e; + }, + _updateGuide: function (t) { + var e = this._markers ? this._markers.length : 0; + e > 0 && + ((t = t || this._map.latLngToLayerPoint(this._currentLatLng)), + this._clearGuides(), + this._drawGuide(this._map.latLngToLayerPoint(this._markers[e - 1].getLatLng()), t)); + }, + _updateTooltip: function (t) { + var e = this._getTooltipText(); + t && this._tooltip.updatePosition(t), this._errorShown || this._tooltip.updateContent(e); + }, + _drawGuide: function (t, e) { + var i, + o, + a, + n = Math.floor(Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2))), + s = this.options.guidelineDistance, + r = this.options.maxGuideLineLength, + l = n > r ? n - r : s; + for ( + this._guidesContainer || + (this._guidesContainer = L.DomUtil.create('div', 'leaflet-draw-guides', this._overlayPane)); + l < n; + l += this.options.guidelineDistance + ) + (i = l / n), + (o = { x: Math.floor(t.x * (1 - i) + i * e.x), y: Math.floor(t.y * (1 - i) + i * e.y) }), + (a = L.DomUtil.create('div', 'leaflet-draw-guide-dash', this._guidesContainer)), + (a.style.backgroundColor = this._errorShown + ? this.options.drawError.color + : this.options.shapeOptions.color), + L.DomUtil.setPosition(a, o); + }, + _updateGuideColor: function (t) { + if (this._guidesContainer) + for (var e = 0, i = this._guidesContainer.childNodes.length; e < i; e++) + this._guidesContainer.childNodes[e].style.backgroundColor = t; + }, + _clearGuides: function () { + if (this._guidesContainer) + for (; this._guidesContainer.firstChild; ) + this._guidesContainer.removeChild(this._guidesContainer.firstChild); + }, + _getTooltipText: function () { + var t, + e, + i = this.options.showLength; + return ( + 0 === this._markers.length + ? (t = { text: L.drawLocal.draw.handlers.polyline.tooltip.start }) + : ((e = i ? this._getMeasurementString() : ''), + (t = + 1 === this._markers.length + ? { text: L.drawLocal.draw.handlers.polyline.tooltip.cont, subtext: e } + : { text: L.drawLocal.draw.handlers.polyline.tooltip.end, subtext: e })), + t + ); + }, + _updateRunningMeasure: function (t, e) { + var i, + o, + a = this._markers.length; + 1 === this._markers.length + ? (this._measurementRunningTotal = 0) + : ((i = a - (e ? 2 : 1)), + (o = L.GeometryUtil.isVersion07x() + ? t.distanceTo(this._markers[i].getLatLng()) * (this.options.factor || 1) + : this._map.distance(t, this._markers[i].getLatLng()) * (this.options.factor || 1)), + (this._measurementRunningTotal += o * (e ? 1 : -1))); + }, + _getMeasurementString: function () { + var t, + e = this._currentLatLng, + i = this._markers[this._markers.length - 1].getLatLng(); + return ( + (t = L.GeometryUtil.isVersion07x() + ? i && e && e.distanceTo + ? this._measurementRunningTotal + e.distanceTo(i) * (this.options.factor || 1) + : this._measurementRunningTotal || 0 + : i && e + ? this._measurementRunningTotal + this._map.distance(e, i) * (this.options.factor || 1) + : this._measurementRunningTotal || 0), + L.GeometryUtil.readableDistance( + t, + this.options.metric, + this.options.feet, + this.options.nautic, + this.options.precision + ) + ); + }, + _showErrorTooltip: function () { + (this._errorShown = !0), + this._tooltip.showAsError().updateContent({ text: this.options.drawError.message }), + this._updateGuideColor(this.options.drawError.color), + this._poly.setStyle({ color: this.options.drawError.color }), + this._clearHideErrorTimeout(), + (this._hideErrorTimeout = setTimeout( + L.Util.bind(this._hideErrorTooltip, this), + this.options.drawError.timeout + )); + }, + _hideErrorTooltip: function () { + (this._errorShown = !1), + this._clearHideErrorTimeout(), + this._tooltip.removeError().updateContent(this._getTooltipText()), + this._updateGuideColor(this.options.shapeOptions.color), + this._poly.setStyle({ color: this.options.shapeOptions.color }); + }, + _clearHideErrorTimeout: function () { + this._hideErrorTimeout && (clearTimeout(this._hideErrorTimeout), (this._hideErrorTimeout = null)); + }, + _disableNewMarkers: function () { + this._disableMarkers = !0; + }, + _enableNewMarkers: function () { + setTimeout( + function () { + this._disableMarkers = !1; + }.bind(this), + 50 + ); + }, + _cleanUpShape: function () { + this._markers.length > 1 && + this._markers[this._markers.length - 1].off('click', this._finishShape, this); + }, + _fireCreatedEvent: function () { + var t = new this.Poly(this._poly.getLatLngs(), this.options.shapeOptions); + L.Draw.Feature.prototype._fireCreatedEvent.call(this, t); + }, + })), + (L.Draw.Polygon = L.Draw.Polyline.extend({ + statics: { TYPE: 'polygon' }, + Poly: L.Polygon, + options: { + showArea: !1, + showLength: !1, + shapeOptions: { + stroke: !0, + color: '#3388ff', + weight: 4, + opacity: 0.5, + fill: !0, + fillColor: null, + fillOpacity: 0.2, + clickable: !0, + }, + metric: !0, + feet: !0, + nautic: !1, + precision: {}, + }, + initialize: function (t, e) { + L.Draw.Polyline.prototype.initialize.call(this, t, e), (this.type = L.Draw.Polygon.TYPE); + }, + _updateFinishHandler: function () { + var t = this._markers.length; + 1 === t && this._markers[0].on('click', this._finishShape, this), + t > 2 && + (this._markers[t - 1].on('dblclick', this._finishShape, this), + t > 3 && this._markers[t - 2].off('dblclick', this._finishShape, this)); + }, + _getTooltipText: function () { + var t, e; + return ( + 0 === this._markers.length + ? (t = L.drawLocal.draw.handlers.polygon.tooltip.start) + : this._markers.length < 3 + ? ((t = L.drawLocal.draw.handlers.polygon.tooltip.cont), (e = this._getMeasurementString())) + : ((t = L.drawLocal.draw.handlers.polygon.tooltip.end), (e = this._getMeasurementString())), + { text: t, subtext: e } + ); + }, + _getMeasurementString: function () { + var t = this._area, + e = ''; + return t || this.options.showLength + ? (this.options.showLength && (e = L.Draw.Polyline.prototype._getMeasurementString.call(this)), + t && + (e += '
' + L.GeometryUtil.readableArea(t, this.options.metric, this.options.precision)), + e) + : null; + }, + _shapeIsValid: function () { + return this._markers.length >= 3; + }, + _vertexChanged: function (t, e) { + var i; + !this.options.allowIntersection && + this.options.showArea && + ((i = this._poly.getLatLngs()), (this._area = L.GeometryUtil.geodesicArea(i))), + L.Draw.Polyline.prototype._vertexChanged.call(this, t, e); + }, + _cleanUpShape: function () { + var t = this._markers.length; + t > 0 && + (this._markers[0].off('click', this._finishShape, this), + t > 2 && this._markers[t - 1].off('dblclick', this._finishShape, this)); + }, + })), + (L.SimpleShape = {}), + (L.Draw.SimpleShape = L.Draw.Feature.extend({ + options: { repeatMode: !1 }, + initialize: function (t, e) { + (this._endLabelText = L.drawLocal.draw.handlers.simpleshape.tooltip.end), + L.Draw.Feature.prototype.initialize.call(this, t, e); + }, + addHooks: function () { + L.Draw.Feature.prototype.addHooks.call(this), + this._map && + ((this._mapDraggable = this._map.dragging.enabled()), + this._mapDraggable && this._map.dragging.disable(), + (this._container.style.cursor = 'crosshair'), + this._tooltip.updateContent({ text: this._initialLabelText }), + this._map + .on('mousedown', this._onMouseDown, this) + .on('mousemove', this._onMouseMove, this) + .on('touchstart', this._onMouseDown, this) + .on('touchmove', this._onMouseMove, this), + e.addEventListener('touchstart', L.DomEvent.preventDefault, { passive: !1 })); + }, + removeHooks: function () { + L.Draw.Feature.prototype.removeHooks.call(this), + this._map && + (this._mapDraggable && this._map.dragging.enable(), + (this._container.style.cursor = ''), + this._map + .off('mousedown', this._onMouseDown, this) + .off('mousemove', this._onMouseMove, this) + .off('touchstart', this._onMouseDown, this) + .off('touchmove', this._onMouseMove, this), + L.DomEvent.off(e, 'mouseup', this._onMouseUp, this), + L.DomEvent.off(e, 'touchend', this._onMouseUp, this), + e.removeEventListener('touchstart', L.DomEvent.preventDefault), + this._shape && (this._map.removeLayer(this._shape), delete this._shape)), + (this._isDrawing = !1); + }, + _getTooltipText: function () { + return { text: this._endLabelText }; + }, + _onMouseDown: function (t) { + (this._isDrawing = !0), + (this._startLatLng = t.latlng), + L.DomEvent.on(e, 'mouseup', this._onMouseUp, this) + .on(e, 'touchend', this._onMouseUp, this) + .preventDefault(t.originalEvent); + }, + _onMouseMove: function (t) { + var e = t.latlng; + this._tooltip.updatePosition(e), + this._isDrawing && (this._tooltip.updateContent(this._getTooltipText()), this._drawShape(e)); + }, + _onMouseUp: function () { + this._shape && this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable(); + }, + })), + (L.Draw.Rectangle = L.Draw.SimpleShape.extend({ + statics: { TYPE: 'rectangle' }, + options: { + shapeOptions: { + stroke: !0, + color: '#3388ff', + weight: 4, + opacity: 0.5, + fill: !0, + fillColor: null, + fillOpacity: 0.2, + clickable: !0, + }, + showArea: !0, + metric: !0, + }, + initialize: function (t, e) { + (this.type = L.Draw.Rectangle.TYPE), + (this._initialLabelText = L.drawLocal.draw.handlers.rectangle.tooltip.start), + L.Draw.SimpleShape.prototype.initialize.call(this, t, e); + }, + disable: function () { + this._enabled && + ((this._isCurrentlyTwoClickDrawing = !1), L.Draw.SimpleShape.prototype.disable.call(this)); + }, + _onMouseUp: function (t) { + if (!this._shape && !this._isCurrentlyTwoClickDrawing) + return void (this._isCurrentlyTwoClickDrawing = !0); + (this._isCurrentlyTwoClickDrawing && !o(t.target, 'leaflet-pane')) || + L.Draw.SimpleShape.prototype._onMouseUp.call(this); + }, + _drawShape: function (t) { + this._shape + ? this._shape.setBounds(new L.LatLngBounds(this._startLatLng, t)) + : ((this._shape = new L.Rectangle( + new L.LatLngBounds(this._startLatLng, t), + this.options.shapeOptions + )), + this._map.addLayer(this._shape)); + }, + _fireCreatedEvent: function () { + var t = new L.Rectangle(this._shape.getBounds(), this.options.shapeOptions); + L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t); + }, + _getTooltipText: function () { + var t, + e, + i, + o = L.Draw.SimpleShape.prototype._getTooltipText.call(this), + a = this._shape, + n = this.options.showArea; + return ( + a && + ((t = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs()), + (e = L.GeometryUtil.geodesicArea(t)), + (i = n ? L.GeometryUtil.readableArea(e, this.options.metric) : '')), + { text: o.text, subtext: i } + ); + }, + })), + (L.Draw.Marker = L.Draw.Feature.extend({ + statics: { TYPE: 'marker' }, + options: { icon: new L.Icon.Default(), repeatMode: !1, zIndexOffset: 2e3 }, + initialize: function (t, e) { + (this.type = L.Draw.Marker.TYPE), + (this._initialLabelText = L.drawLocal.draw.handlers.marker.tooltip.start), + L.Draw.Feature.prototype.initialize.call(this, t, e); + }, + addHooks: function () { + L.Draw.Feature.prototype.addHooks.call(this), + this._map && + (this._tooltip.updateContent({ text: this._initialLabelText }), + this._mouseMarker || + (this._mouseMarker = L.marker(this._map.getCenter(), { + icon: L.divIcon({ + className: 'leaflet-mouse-marker', + iconAnchor: [20, 20], + iconSize: [40, 40], + }), + opacity: 0, + zIndexOffset: this.options.zIndexOffset, + })), + this._mouseMarker.on('click', this._onClick, this).addTo(this._map), + this._map.on('mousemove', this._onMouseMove, this), + this._map.on('click', this._onTouch, this)); + }, + removeHooks: function () { + L.Draw.Feature.prototype.removeHooks.call(this), + this._map && + (this._map.off('click', this._onClick, this).off('click', this._onTouch, this), + this._marker && + (this._marker.off('click', this._onClick, this), + this._map.removeLayer(this._marker), + delete this._marker), + this._mouseMarker.off('click', this._onClick, this), + this._map.removeLayer(this._mouseMarker), + delete this._mouseMarker, + this._map.off('mousemove', this._onMouseMove, this)); + }, + _onMouseMove: function (t) { + var e = t.latlng; + this._tooltip.updatePosition(e), + this._mouseMarker.setLatLng(e), + this._marker + ? ((e = this._mouseMarker.getLatLng()), this._marker.setLatLng(e)) + : ((this._marker = this._createMarker(e)), + this._marker.on('click', this._onClick, this), + this._map.on('click', this._onClick, this).addLayer(this._marker)); + }, + _createMarker: function (t) { + return new L.Marker(t, { icon: this.options.icon, zIndexOffset: this.options.zIndexOffset }); + }, + _onClick: function () { + this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable(); + }, + _onTouch: function (t) { + this._onMouseMove(t), this._onClick(); + }, + _fireCreatedEvent: function () { + var t = new L.Marker.Touch(this._marker.getLatLng(), { icon: this.options.icon }); + L.Draw.Feature.prototype._fireCreatedEvent.call(this, t); + }, + })), + (L.Draw.CircleMarker = L.Draw.Marker.extend({ + statics: { TYPE: 'circlemarker' }, + options: { + stroke: !0, + color: '#3388ff', + weight: 4, + opacity: 0.5, + fill: !0, + fillColor: null, + fillOpacity: 0.2, + clickable: !0, + zIndexOffset: 2e3, + }, + initialize: function (t, e) { + (this.type = L.Draw.CircleMarker.TYPE), + (this._initialLabelText = L.drawLocal.draw.handlers.circlemarker.tooltip.start), + L.Draw.Feature.prototype.initialize.call(this, t, e); + }, + _fireCreatedEvent: function () { + var t = new L.CircleMarker(this._marker.getLatLng(), this.options); + L.Draw.Feature.prototype._fireCreatedEvent.call(this, t); + }, + _createMarker: function (t) { + return new L.CircleMarker(t, this.options); + }, + })), + (L.Draw.Circle = L.Draw.SimpleShape.extend({ + statics: { TYPE: 'circle' }, + options: { + shapeOptions: { + stroke: !0, + color: '#3388ff', + weight: 4, + opacity: 0.5, + fill: !0, + fillColor: null, + fillOpacity: 0.2, + clickable: !0, + }, + showRadius: !0, + metric: !0, + feet: !0, + nautic: !1, + }, + initialize: function (t, e) { + (this.type = L.Draw.Circle.TYPE), + (this._initialLabelText = L.drawLocal.draw.handlers.circle.tooltip.start), + L.Draw.SimpleShape.prototype.initialize.call(this, t, e); + }, + _drawShape: function (t) { + if (L.GeometryUtil.isVersion07x()) var e = this._startLatLng.distanceTo(t); + else var e = this._map.distance(this._startLatLng, t); + this._shape + ? this._shape.setRadius(e) + : ((this._shape = new L.Circle(this._startLatLng, e, this.options.shapeOptions)), + this._map.addLayer(this._shape)); + }, + _fireCreatedEvent: function () { + var t = new L.Circle(this._startLatLng, this._shape.getRadius(), this.options.shapeOptions); + L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t); + }, + _onMouseMove: function (t) { + var e, + i = t.latlng, + o = this.options.showRadius, + a = this.options.metric; + if ((this._tooltip.updatePosition(i), this._isDrawing)) { + this._drawShape(i), (e = this._shape.getRadius().toFixed(1)); + var n = ''; + o && + (n = + L.drawLocal.draw.handlers.circle.radius + + ': ' + + L.GeometryUtil.readableDistance(e, a, this.options.feet, this.options.nautic)), + this._tooltip.updateContent({ text: this._endLabelText, subtext: n }); + } + }, + })), + (L.Edit = L.Edit || {}), + (L.Edit.Marker = L.Handler.extend({ + initialize: function (t, e) { + (this._marker = t), L.setOptions(this, e); + }, + addHooks: function () { + var t = this._marker; + t.dragging.enable(), t.on('dragend', this._onDragEnd, t), this._toggleMarkerHighlight(); + }, + removeHooks: function () { + var t = this._marker; + t.dragging.disable(), t.off('dragend', this._onDragEnd, t), this._toggleMarkerHighlight(); + }, + _onDragEnd: function (t) { + var e = t.target; + (e.edited = !0), this._map.fire(L.Draw.Event.EDITMOVE, { layer: e }); + }, + _toggleMarkerHighlight: function () { + var t = this._marker._icon; + t && + ((t.style.display = 'none'), + L.DomUtil.hasClass(t, 'leaflet-edit-marker-selected') + ? (L.DomUtil.removeClass(t, 'leaflet-edit-marker-selected'), this._offsetMarker(t, -4)) + : (L.DomUtil.addClass(t, 'leaflet-edit-marker-selected'), this._offsetMarker(t, 4)), + (t.style.display = '')); + }, + _offsetMarker: function (t, e) { + var i = parseInt(t.style.marginTop, 10) - e, + o = parseInt(t.style.marginLeft, 10) - e; + (t.style.marginTop = i + 'px'), (t.style.marginLeft = o + 'px'); + }, + })), + L.Marker.addInitHook(function () { + L.Edit.Marker && ((this.editing = new L.Edit.Marker(this)), this.options.editable && this.editing.enable()); + }), + (L.Edit = L.Edit || {}), + (L.Edit.Poly = L.Handler.extend({ + initialize: function (t) { + (this.latlngs = [t._latlngs]), + t._holes && (this.latlngs = this.latlngs.concat(t._holes)), + (this._poly = t), + this._poly.on('revert-edited', this._updateLatLngs, this); + }, + _defaultShape: function () { + return L.Polyline._flat + ? L.Polyline._flat(this._poly._latlngs) + ? this._poly._latlngs + : this._poly._latlngs[0] + : this._poly._latlngs; + }, + _eachVertexHandler: function (t) { + for (var e = 0; e < this._verticesHandlers.length; e++) t(this._verticesHandlers[e]); + }, + addHooks: function () { + this._initHandlers(), + this._eachVertexHandler(function (t) { + t.addHooks(); + }); + }, + removeHooks: function () { + this._eachVertexHandler(function (t) { + t.removeHooks(); + }); + }, + updateMarkers: function () { + this._eachVertexHandler(function (t) { + t.updateMarkers(); + }); + }, + _initHandlers: function () { + this._verticesHandlers = []; + for (var t = 0; t < this.latlngs.length; t++) + this._verticesHandlers.push( + new L.Edit.PolyVerticesEdit(this._poly, this.latlngs[t], this._poly.options.poly) + ); + }, + _updateLatLngs: function (t) { + (this.latlngs = [t.layer._latlngs]), + t.layer._holes && (this.latlngs = this.latlngs.concat(t.layer._holes)); + }, + })), + (L.Edit.PolyVerticesEdit = L.Handler.extend({ + options: { + icon: new L.DivIcon({ + iconSize: new L.Point(8, 8), + className: 'leaflet-div-icon leaflet-editing-icon', + }), + touchIcon: new L.DivIcon({ + iconSize: new L.Point(20, 20), + className: 'leaflet-div-icon leaflet-editing-icon leaflet-touch-icon', + }), + drawError: { color: '#b00b00', timeout: 1e3 }, + }, + initialize: function (t, e, i) { + L.Browser.touch && (this.options.icon = this.options.touchIcon), + (this._poly = t), + i && i.drawError && (i.drawError = L.Util.extend({}, this.options.drawError, i.drawError)), + (this._latlngs = e), + L.setOptions(this, i); + }, + _defaultShape: function () { + return L.Polyline._flat + ? L.Polyline._flat(this._latlngs) + ? this._latlngs + : this._latlngs[0] + : this._latlngs; + }, + addHooks: function () { + var t = this._poly, + e = t._path; + t instanceof L.Polygon || ((t.options.fill = !1), t.options.editing && (t.options.editing.fill = !1)), + e && + t.options.editing && + t.options.editing.className && + (t.options.original.className && + t.options.original.className.split(' ').forEach(function (t) { + L.DomUtil.removeClass(e, t); + }), + t.options.editing.className.split(' ').forEach(function (t) { + L.DomUtil.addClass(e, t); + })), + t.setStyle(t.options.editing), + this._poly._map && + ((this._map = this._poly._map), + this._markerGroup || this._initMarkers(), + this._poly._map.addLayer(this._markerGroup)); + }, + removeHooks: function () { + var t = this._poly, + e = t._path; + e && + t.options.editing && + t.options.editing.className && + (t.options.editing.className.split(' ').forEach(function (t) { + L.DomUtil.removeClass(e, t); + }), + t.options.original.className && + t.options.original.className.split(' ').forEach(function (t) { + L.DomUtil.addClass(e, t); + })), + t.setStyle(t.options.original), + t._map && (t._map.removeLayer(this._markerGroup), delete this._markerGroup, delete this._markers); + }, + updateMarkers: function () { + this._markerGroup.clearLayers(), this._initMarkers(); + }, + _initMarkers: function () { + this._markerGroup || (this._markerGroup = new L.LayerGroup()), (this._markers = []); + var t, + e, + i, + o, + a = this._defaultShape(); + for (t = 0, i = a.length; t < i; t++) + (o = this._createMarker(a[t], t)), + o.on('click', this._onMarkerClick, this), + o.on('contextmenu', this._onContextMenu, this), + this._markers.push(o); + var n, s; + for (t = 0, e = i - 1; t < i; e = t++) + (0 !== t || (L.Polygon && this._poly instanceof L.Polygon)) && + ((n = this._markers[e]), + (s = this._markers[t]), + this._createMiddleMarker(n, s), + this._updatePrevNext(n, s)); + }, + _createMarker: function (t, e) { + var i = new L.Marker.Touch(t, { draggable: !0, icon: this.options.icon }); + return ( + (i._origLatLng = t), + (i._index = e), + i + .on('dragstart', this._onMarkerDragStart, this) + .on('drag', this._onMarkerDrag, this) + .on('dragend', this._fireEdit, this) + .on('touchmove', this._onTouchMove, this) + .on('touchend', this._fireEdit, this) + .on('MSPointerMove', this._onTouchMove, this) + .on('MSPointerUp', this._fireEdit, this), + this._markerGroup.addLayer(i), + i + ); + }, + _onMarkerDragStart: function () { + this._poly.fire('editstart'); + }, + _spliceLatLngs: function () { + var t = this._defaultShape(), + e = [].splice.apply(t, arguments); + return this._poly._convertLatLngs(t, !0), this._poly.redraw(), e; + }, + _removeMarker: function (t) { + var e = t._index; + this._markerGroup.removeLayer(t), + this._markers.splice(e, 1), + this._spliceLatLngs(e, 1), + this._updateIndexes(e, -1), + t + .off('dragstart', this._onMarkerDragStart, this) + .off('drag', this._onMarkerDrag, this) + .off('dragend', this._fireEdit, this) + .off('touchmove', this._onMarkerDrag, this) + .off('touchend', this._fireEdit, this) + .off('click', this._onMarkerClick, this) + .off('MSPointerMove', this._onTouchMove, this) + .off('MSPointerUp', this._fireEdit, this); + }, + _fireEdit: function () { + (this._poly.edited = !0), + this._poly.fire('edit'), + this._poly._map.fire(L.Draw.Event.EDITVERTEX, { layers: this._markerGroup, poly: this._poly }); + }, + _onMarkerDrag: function (t) { + var e = t.target, + i = this._poly, + o = L.LatLngUtil.cloneLatLng(e._origLatLng); + if ((L.extend(e._origLatLng, e._latlng), i.options.poly)) { + var a = i._map._editTooltip; + if (!i.options.poly.allowIntersection && i.intersects()) { + L.extend(e._origLatLng, o), e.setLatLng(o); + var n = i.options.color; + i.setStyle({ color: this.options.drawError.color }), + a && a.updateContent({ text: L.drawLocal.draw.handlers.polyline.error }), + setTimeout(function () { + i.setStyle({ color: n }), + a && + a.updateContent({ + text: L.drawLocal.edit.handlers.edit.tooltip.text, + subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext, + }); + }, 1e3); + } + } + e._middleLeft && e._middleLeft.setLatLng(this._getMiddleLatLng(e._prev, e)), + e._middleRight && e._middleRight.setLatLng(this._getMiddleLatLng(e, e._next)), + (this._poly._bounds._southWest = L.latLng(1 / 0, 1 / 0)), + (this._poly._bounds._northEast = L.latLng(-1 / 0, -1 / 0)); + var s = this._poly.getLatLngs(); + this._poly._convertLatLngs(s, !0), this._poly.redraw(), this._poly.fire('editdrag'); + }, + _onMarkerClick: function (t) { + var e = L.Polygon && this._poly instanceof L.Polygon ? 4 : 3, + i = t.target; + this._defaultShape().length < e || + (this._removeMarker(i), + this._updatePrevNext(i._prev, i._next), + i._middleLeft && this._markerGroup.removeLayer(i._middleLeft), + i._middleRight && this._markerGroup.removeLayer(i._middleRight), + i._prev && i._next + ? this._createMiddleMarker(i._prev, i._next) + : i._prev + ? i._next || (i._prev._middleRight = null) + : (i._next._middleLeft = null), + this._fireEdit()); + }, + _onContextMenu: function (t) { + var e = t.target; + this._poly; + this._poly._map.fire(L.Draw.Event.MARKERCONTEXT, { + marker: e, + layers: this._markerGroup, + poly: this._poly, + }), + L.DomEvent.stopPropagation; + }, + _onTouchMove: function (t) { + var e = this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]), + i = this._map.layerPointToLatLng(e), + o = t.target; + L.extend(o._origLatLng, i), + o._middleLeft && o._middleLeft.setLatLng(this._getMiddleLatLng(o._prev, o)), + o._middleRight && o._middleRight.setLatLng(this._getMiddleLatLng(o, o._next)), + this._poly.redraw(), + this.updateMarkers(); + }, + _updateIndexes: function (t, e) { + this._markerGroup.eachLayer(function (i) { + i._index > t && (i._index += e); + }); + }, + _createMiddleMarker: function (t, e) { + var i, + o, + a, + n = this._getMiddleLatLng(t, e), + s = this._createMarker(n); + s.setOpacity(0.6), + (t._middleRight = e._middleLeft = s), + (o = function () { + s.off('touchmove', o, this); + var a = e._index; + (s._index = a), + s.off('click', i, this).on('click', this._onMarkerClick, this), + (n.lat = s.getLatLng().lat), + (n.lng = s.getLatLng().lng), + this._spliceLatLngs(a, 0, n), + this._markers.splice(a, 0, s), + s.setOpacity(1), + this._updateIndexes(a, 1), + e._index++, + this._updatePrevNext(t, s), + this._updatePrevNext(s, e), + this._poly.fire('editstart'); + }), + (a = function () { + s.off('dragstart', o, this), + s.off('dragend', a, this), + s.off('touchmove', o, this), + this._createMiddleMarker(t, s), + this._createMiddleMarker(s, e); + }), + (i = function () { + o.call(this), a.call(this), this._fireEdit(); + }), + s.on('click', i, this).on('dragstart', o, this).on('dragend', a, this).on('touchmove', o, this), + this._markerGroup.addLayer(s); + }, + _updatePrevNext: function (t, e) { + t && (t._next = e), e && (e._prev = t); + }, + _getMiddleLatLng: function (t, e) { + var i = this._poly._map, + o = i.project(t.getLatLng()), + a = i.project(e.getLatLng()); + return i.unproject(o._add(a)._divideBy(2)); + }, + })), + L.Polyline.addInitHook(function () { + this.editing || + (L.Edit.Poly && + ((this.editing = new L.Edit.Poly(this)), this.options.editable && this.editing.enable()), + this.on('add', function () { + this.editing && this.editing.enabled() && this.editing.addHooks(); + }), + this.on('remove', function () { + this.editing && this.editing.enabled() && this.editing.removeHooks(); + })); + }), + (L.Edit = L.Edit || {}), + (L.Edit.SimpleShape = L.Handler.extend({ + options: { + moveIcon: new L.DivIcon({ + iconSize: new L.Point(8, 8), + className: 'leaflet-div-icon leaflet-editing-icon leaflet-edit-move', + }), + resizeIcon: new L.DivIcon({ + iconSize: new L.Point(8, 8), + className: 'leaflet-div-icon leaflet-editing-icon leaflet-edit-resize', + }), + touchMoveIcon: new L.DivIcon({ + iconSize: new L.Point(20, 20), + className: 'leaflet-div-icon leaflet-editing-icon leaflet-edit-move leaflet-touch-icon', + }), + touchResizeIcon: new L.DivIcon({ + iconSize: new L.Point(20, 20), + className: 'leaflet-div-icon leaflet-editing-icon leaflet-edit-resize leaflet-touch-icon', + }), + }, + initialize: function (t, e) { + L.Browser.touch && + ((this.options.moveIcon = this.options.touchMoveIcon), + (this.options.resizeIcon = this.options.touchResizeIcon)), + (this._shape = t), + L.Util.setOptions(this, e); + }, + addHooks: function () { + var t = this._shape; + this._shape._map && + ((this._map = this._shape._map), + t.setStyle(t.options.editing), + t._map && + ((this._map = t._map), + this._markerGroup || this._initMarkers(), + this._map.addLayer(this._markerGroup))); + }, + removeHooks: function () { + var t = this._shape; + if ((t.setStyle(t.options.original), t._map)) { + this._unbindMarker(this._moveMarker); + for (var e = 0, i = this._resizeMarkers.length; e < i; e++) + this._unbindMarker(this._resizeMarkers[e]); + (this._resizeMarkers = null), this._map.removeLayer(this._markerGroup), delete this._markerGroup; + } + this._map = null; + }, + updateMarkers: function () { + this._markerGroup.clearLayers(), this._initMarkers(); + }, + _initMarkers: function () { + this._markerGroup || (this._markerGroup = new L.LayerGroup()), + this._createMoveMarker(), + this._createResizeMarker(); + }, + _createMoveMarker: function () {}, + _createResizeMarker: function () {}, + _createMarker: function (t, e) { + var i = new L.Marker.Touch(t, { draggable: !0, icon: e, zIndexOffset: 10 }); + return this._bindMarker(i), this._markerGroup.addLayer(i), i; + }, + _bindMarker: function (t) { + t.on('dragstart', this._onMarkerDragStart, this) + .on('drag', this._onMarkerDrag, this) + .on('dragend', this._onMarkerDragEnd, this) + .on('touchstart', this._onTouchStart, this) + .on('touchmove', this._onTouchMove, this) + .on('MSPointerMove', this._onTouchMove, this) + .on('touchend', this._onTouchEnd, this) + .on('MSPointerUp', this._onTouchEnd, this); + }, + _unbindMarker: function (t) { + t.off('dragstart', this._onMarkerDragStart, this) + .off('drag', this._onMarkerDrag, this) + .off('dragend', this._onMarkerDragEnd, this) + .off('touchstart', this._onTouchStart, this) + .off('touchmove', this._onTouchMove, this) + .off('MSPointerMove', this._onTouchMove, this) + .off('touchend', this._onTouchEnd, this) + .off('MSPointerUp', this._onTouchEnd, this); + }, + _onMarkerDragStart: function (t) { + t.target.setOpacity(0), this._shape.fire('editstart'); + }, + _fireEdit: function () { + (this._shape.edited = !0), this._shape.fire('edit'); + }, + _onMarkerDrag: function (t) { + var e = t.target, + i = e.getLatLng(); + e === this._moveMarker ? this._move(i) : this._resize(i), + this._shape.redraw(), + this._shape.fire('editdrag'); + }, + _onMarkerDragEnd: function (t) { + t.target.setOpacity(1), this._fireEdit(); + }, + _onTouchStart: function (t) { + if ( + (L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t), + 'function' == typeof this._getCorners) + ) { + var e = this._getCorners(), + i = t.target, + o = i._cornerIndex; + i.setOpacity(0), (this._oppositeCorner = e[(o + 2) % 4]), this._toggleCornerMarkers(0, o); + } + this._shape.fire('editstart'); + }, + _onTouchMove: function (t) { + var e = this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]), + i = this._map.layerPointToLatLng(e); + return t.target === this._moveMarker ? this._move(i) : this._resize(i), this._shape.redraw(), !1; + }, + _onTouchEnd: function (t) { + t.target.setOpacity(1), this.updateMarkers(), this._fireEdit(); + }, + _move: function () {}, + _resize: function () {}, + })), + (L.Edit = L.Edit || {}), + (L.Edit.Rectangle = L.Edit.SimpleShape.extend({ + _createMoveMarker: function () { + var t = this._shape.getBounds(), + e = t.getCenter(); + this._moveMarker = this._createMarker(e, this.options.moveIcon); + }, + _createResizeMarker: function () { + var t = this._getCorners(); + this._resizeMarkers = []; + for (var e = 0, i = t.length; e < i; e++) + this._resizeMarkers.push(this._createMarker(t[e], this.options.resizeIcon)), + (this._resizeMarkers[e]._cornerIndex = e); + }, + _onMarkerDragStart: function (t) { + L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t); + var e = this._getCorners(), + i = t.target, + o = i._cornerIndex; + (this._oppositeCorner = e[(o + 2) % 4]), this._toggleCornerMarkers(0, o); + }, + _onMarkerDragEnd: function (t) { + var e, + i, + o = t.target; + o === this._moveMarker && ((e = this._shape.getBounds()), (i = e.getCenter()), o.setLatLng(i)), + this._toggleCornerMarkers(1), + this._repositionCornerMarkers(), + L.Edit.SimpleShape.prototype._onMarkerDragEnd.call(this, t); + }, + _move: function (t) { + for ( + var e, + i = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs(), + o = this._shape.getBounds(), + a = o.getCenter(), + n = [], + s = 0, + r = i.length; + s < r; + s++ + ) + (e = [i[s].lat - a.lat, i[s].lng - a.lng]), n.push([t.lat + e[0], t.lng + e[1]]); + this._shape.setLatLngs(n), + this._repositionCornerMarkers(), + this._map.fire(L.Draw.Event.EDITMOVE, { layer: this._shape }); + }, + _resize: function (t) { + var e; + this._shape.setBounds(L.latLngBounds(t, this._oppositeCorner)), + (e = this._shape.getBounds()), + this._moveMarker.setLatLng(e.getCenter()), + this._map.fire(L.Draw.Event.EDITRESIZE, { layer: this._shape }); + }, + _getCorners: function () { + var t = this._shape.getBounds(); + return [t.getNorthWest(), t.getNorthEast(), t.getSouthEast(), t.getSouthWest()]; + }, + _toggleCornerMarkers: function (t) { + for (var e = 0, i = this._resizeMarkers.length; e < i; e++) this._resizeMarkers[e].setOpacity(t); + }, + _repositionCornerMarkers: function () { + for (var t = this._getCorners(), e = 0, i = this._resizeMarkers.length; e < i; e++) + this._resizeMarkers[e].setLatLng(t[e]); + }, + })), + L.Rectangle.addInitHook(function () { + L.Edit.Rectangle && + ((this.editing = new L.Edit.Rectangle(this)), this.options.editable && this.editing.enable()); + }), + (L.Edit = L.Edit || {}), + (L.Edit.CircleMarker = L.Edit.SimpleShape.extend({ + _createMoveMarker: function () { + var t = this._shape.getLatLng(); + this._moveMarker = this._createMarker(t, this.options.moveIcon); + }, + _createResizeMarker: function () { + this._resizeMarkers = []; + }, + _move: function (t) { + if (this._resizeMarkers.length) { + var e = this._getResizeMarkerPoint(t); + this._resizeMarkers[0].setLatLng(e); + } + this._shape.setLatLng(t), this._map.fire(L.Draw.Event.EDITMOVE, { layer: this._shape }); + }, + })), + L.CircleMarker.addInitHook(function () { + L.Edit.CircleMarker && + ((this.editing = new L.Edit.CircleMarker(this)), this.options.editable && this.editing.enable()), + this.on('add', function () { + this.editing && this.editing.enabled() && this.editing.addHooks(); + }), + this.on('remove', function () { + this.editing && this.editing.enabled() && this.editing.removeHooks(); + }); + }), + (L.Edit = L.Edit || {}), + (L.Edit.Circle = L.Edit.CircleMarker.extend({ + _createResizeMarker: function () { + var t = this._shape.getLatLng(), + e = this._getResizeMarkerPoint(t); + (this._resizeMarkers = []), this._resizeMarkers.push(this._createMarker(e, this.options.resizeIcon)); + }, + _getResizeMarkerPoint: function (t) { + var e = this._shape._radius * Math.cos(Math.PI / 4), + i = this._map.project(t); + return this._map.unproject([i.x + e, i.y - e]); + }, + _resize: function (t) { + var e = this._moveMarker.getLatLng(); + L.GeometryUtil.isVersion07x() ? (radius = e.distanceTo(t)) : (radius = this._map.distance(e, t)), + this._shape.setRadius(radius), + this._map.editTooltip && + this._map._editTooltip.updateContent({ + text: + L.drawLocal.edit.handlers.edit.tooltip.subtext + + '
' + + L.drawLocal.edit.handlers.edit.tooltip.text, + subtext: + L.drawLocal.draw.handlers.circle.radius + + ': ' + + L.GeometryUtil.readableDistance(radius, !0, this.options.feet, this.options.nautic), + }), + this._shape.setRadius(radius), + this._map.fire(L.Draw.Event.EDITRESIZE, { layer: this._shape }); + }, + })), + L.Circle.addInitHook(function () { + L.Edit.Circle && ((this.editing = new L.Edit.Circle(this)), this.options.editable && this.editing.enable()); + }), + L.Map.mergeOptions({ touchExtend: !0 }), + (L.Map.TouchExtend = L.Handler.extend({ + initialize: function (t) { + (this._map = t), (this._container = t._container), (this._pane = t._panes.overlayPane); + }, + addHooks: function () { + L.DomEvent.on(this._container, 'touchstart', this._onTouchStart, this), + L.DomEvent.on(this._container, 'touchend', this._onTouchEnd, this), + L.DomEvent.on(this._container, 'touchmove', this._onTouchMove, this), + this._detectIE() + ? (L.DomEvent.on(this._container, 'MSPointerDown', this._onTouchStart, this), + L.DomEvent.on(this._container, 'MSPointerUp', this._onTouchEnd, this), + L.DomEvent.on(this._container, 'MSPointerMove', this._onTouchMove, this), + L.DomEvent.on(this._container, 'MSPointerCancel', this._onTouchCancel, this)) + : (L.DomEvent.on(this._container, 'touchcancel', this._onTouchCancel, this), + L.DomEvent.on(this._container, 'touchleave', this._onTouchLeave, this)); + }, + removeHooks: function () { + L.DomEvent.off(this._container, 'touchstart', this._onTouchStart, this), + L.DomEvent.off(this._container, 'touchend', this._onTouchEnd, this), + L.DomEvent.off(this._container, 'touchmove', this._onTouchMove, this), + this._detectIE() + ? (L.DomEvent.off(this._container, 'MSPointerDown', this._onTouchStart, this), + L.DomEvent.off(this._container, 'MSPointerUp', this._onTouchEnd, this), + L.DomEvent.off(this._container, 'MSPointerMove', this._onTouchMove, this), + L.DomEvent.off(this._container, 'MSPointerCancel', this._onTouchCancel, this)) + : (L.DomEvent.off(this._container, 'touchcancel', this._onTouchCancel, this), + L.DomEvent.off(this._container, 'touchleave', this._onTouchLeave, this)); + }, + _touchEvent: function (t, e) { + var i = {}; + if (void 0 !== t.touches) { + if (!t.touches.length) return; + i = t.touches[0]; + } else { + if ('touch' !== t.pointerType) return; + if (((i = t), !this._filterClick(t))) return; + } + var o = this._map.mouseEventToContainerPoint(i), + a = this._map.mouseEventToLayerPoint(i), + n = this._map.layerPointToLatLng(a); + this._map.fire(e, { + latlng: n, + layerPoint: a, + containerPoint: o, + pageX: i.pageX, + pageY: i.pageY, + originalEvent: t, + }); + }, + _filterClick: function (t) { + var e = t.timeStamp || t.originalEvent.timeStamp, + i = L.DomEvent._lastClick && e - L.DomEvent._lastClick; + return (i && i > 100 && i < 500) || (t.target._simulatedClick && !t._simulated) + ? (L.DomEvent.stop(t), !1) + : ((L.DomEvent._lastClick = e), !0); + }, + _onTouchStart: function (t) { + if (this._map._loaded) { + this._touchEvent(t, 'touchstart'); + } + }, + _onTouchEnd: function (t) { + if (this._map._loaded) { + this._touchEvent(t, 'touchend'); + } + }, + _onTouchCancel: function (t) { + if (this._map._loaded) { + var e = 'touchcancel'; + this._detectIE() && (e = 'pointercancel'), this._touchEvent(t, e); + } + }, + _onTouchLeave: function (t) { + if (this._map._loaded) { + this._touchEvent(t, 'touchleave'); + } + }, + _onTouchMove: function (t) { + if (this._map._loaded) { + this._touchEvent(t, 'touchmove'); + } + }, + _detectIE: function () { + var e = t.navigator.userAgent, + i = e.indexOf('MSIE '); + if (i > 0) return parseInt(e.substring(i + 5, e.indexOf('.', i)), 10); + if (e.indexOf('Trident/') > 0) { + var o = e.indexOf('rv:'); + return parseInt(e.substring(o + 3, e.indexOf('.', o)), 10); + } + var a = e.indexOf('Edge/'); + return a > 0 && parseInt(e.substring(a + 5, e.indexOf('.', a)), 10); + }, + })), + L.Map.addInitHook('addHandler', 'touchExtend', L.Map.TouchExtend), + (L.Marker.Touch = L.Marker.extend({ + _initInteraction: function () { + return this.addInteractiveTarget + ? L.Marker.prototype._initInteraction.apply(this) + : this._initInteractionLegacy(); + }, + _initInteractionLegacy: function () { + if (this.options.clickable) { + var t = this._icon, + e = [ + 'dblclick', + 'mousedown', + 'mouseover', + 'mouseout', + 'contextmenu', + 'touchstart', + 'touchend', + 'touchmove', + ]; + this._detectIE + ? e.concat(['MSPointerDown', 'MSPointerUp', 'MSPointerMove', 'MSPointerCancel']) + : e.concat(['touchcancel']), + L.DomUtil.addClass(t, 'leaflet-clickable'), + L.DomEvent.on(t, 'click', this._onMouseClick, this), + L.DomEvent.on(t, 'keypress', this._onKeyPress, this); + for (var i = 0; i < e.length; i++) L.DomEvent.on(t, e[i], this._fireMouseEvent, this); + L.Handler.MarkerDrag && + ((this.dragging = new L.Handler.MarkerDrag(this)), + this.options.draggable && this.dragging.enable()); + } + }, + _detectIE: function () { + var e = t.navigator.userAgent, + i = e.indexOf('MSIE '); + if (i > 0) return parseInt(e.substring(i + 5, e.indexOf('.', i)), 10); + if (e.indexOf('Trident/') > 0) { + var o = e.indexOf('rv:'); + return parseInt(e.substring(o + 3, e.indexOf('.', o)), 10); + } + var a = e.indexOf('Edge/'); + return a > 0 && parseInt(e.substring(a + 5, e.indexOf('.', a)), 10); + }, + })), + (L.LatLngUtil = { + cloneLatLngs: function (t) { + for (var e = [], i = 0, o = t.length; i < o; i++) + Array.isArray(t[i]) ? e.push(L.LatLngUtil.cloneLatLngs(t[i])) : e.push(this.cloneLatLng(t[i])); + return e; + }, + cloneLatLng: function (t) { + return L.latLng(t.lat, t.lng); + }, + }), + (function () { + var t = { km: 2, ha: 2, m: 0, mi: 2, ac: 2, yd: 0, ft: 0, nm: 2 }; + L.GeometryUtil = L.extend(L.GeometryUtil || {}, { + geodesicArea: function (t) { + var e, + i, + o = t.length, + a = 0, + n = Math.PI / 180; + if (o > 2) { + for (var s = 0; s < o; s++) + (e = t[s]), + (i = t[(s + 1) % o]), + (a += (i.lng - e.lng) * n * (2 + Math.sin(e.lat * n) + Math.sin(i.lat * n))); + a = (6378137 * a * 6378137) / 2; + } + return Math.abs(a); + }, + formattedNumber: function (t, e) { + var i = parseFloat(t).toFixed(e), + o = L.drawLocal.format && L.drawLocal.format.numeric, + a = o && o.delimiters, + n = a && a.thousands, + s = a && a.decimal; + if (n || s) { + var r = i.split('.'); + (i = n ? r[0].replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1' + n) : r[0]), + (s = s || '.'), + r.length > 1 && (i = i + s + r[1]); + } + return i; + }, + readableArea: function (e, i, o) { + var a, + n, + o = L.Util.extend({}, t, o); + return ( + i + ? ((n = ['ha', 'm']), + (type = typeof i), + 'string' === type ? (n = [i]) : 'boolean' !== type && (n = i), + (a = + e >= 1e6 && -1 !== n.indexOf('km') + ? L.GeometryUtil.formattedNumber(1e-6 * e, o.km) + ' km²' + : e >= 1e4 && -1 !== n.indexOf('ha') + ? L.GeometryUtil.formattedNumber(1e-4 * e, o.ha) + ' ha' + : L.GeometryUtil.formattedNumber(e, o.m) + ' m²')) + : ((e /= 0.836127), + (a = + e >= 3097600 + ? L.GeometryUtil.formattedNumber(e / 3097600, o.mi) + ' mi²' + : e >= 4840 + ? L.GeometryUtil.formattedNumber(e / 4840, o.ac) + ' acres' + : L.GeometryUtil.formattedNumber(e, o.yd) + ' yd²')), + a + ); + }, + readableDistance: function (e, i, o, a, n) { + var s, + n = L.Util.extend({}, t, n); + switch (i ? ('string' == typeof i ? i : 'metric') : o ? 'feet' : a ? 'nauticalMile' : 'yards') { + case 'metric': + s = + e > 1e3 + ? L.GeometryUtil.formattedNumber(e / 1e3, n.km) + ' km' + : L.GeometryUtil.formattedNumber(e, n.m) + ' m'; + break; + case 'feet': + (e *= 3.28083), (s = L.GeometryUtil.formattedNumber(e, n.ft) + ' ft'); + break; + case 'nauticalMile': + (e *= 0.53996), (s = L.GeometryUtil.formattedNumber(e / 1e3, n.nm) + ' nm'); + break; + case 'yards': + default: + (e *= 1.09361), + (s = + e > 1760 + ? L.GeometryUtil.formattedNumber(e / 1760, n.mi) + ' miles' + : L.GeometryUtil.formattedNumber(e, n.yd) + ' yd'); + } + return s; + }, + isVersion07x: function () { + var t = L.version.split('.'); + return 0 === parseInt(t[0], 10) && 7 === parseInt(t[1], 10); + }, + }); + })(), + L.Util.extend(L.LineUtil, { + segmentsIntersect: function (t, e, i, o) { + return ( + this._checkCounterclockwise(t, i, o) !== this._checkCounterclockwise(e, i, o) && + this._checkCounterclockwise(t, e, i) !== this._checkCounterclockwise(t, e, o) + ); + }, + _checkCounterclockwise: function (t, e, i) { + return (i.y - t.y) * (e.x - t.x) > (e.y - t.y) * (i.x - t.x); + }, + }), + L.Polyline.include({ + intersects: function () { + var t, + e, + i, + o = this._getProjectedPoints(), + a = o ? o.length : 0; + if (this._tooFewPointsForIntersection()) return !1; + for (t = a - 1; t >= 3; t--) + if (((e = o[t - 1]), (i = o[t]), this._lineSegmentsIntersectsRange(e, i, t - 2))) return !0; + return !1; + }, + newLatLngIntersects: function (t, e) { + return !!this._map && this.newPointIntersects(this._map.latLngToLayerPoint(t), e); + }, + newPointIntersects: function (t, e) { + var i = this._getProjectedPoints(), + o = i ? i.length : 0, + a = i ? i[o - 1] : null, + n = o - 2; + return !this._tooFewPointsForIntersection(1) && this._lineSegmentsIntersectsRange(a, t, n, e ? 1 : 0); + }, + _tooFewPointsForIntersection: function (t) { + var e = this._getProjectedPoints(), + i = e ? e.length : 0; + return (i += t || 0), !e || i <= 3; + }, + _lineSegmentsIntersectsRange: function (t, e, i, o) { + var a, + n, + s = this._getProjectedPoints(); + o = o || 0; + for (var r = i; r > o; r--) + if (((a = s[r - 1]), (n = s[r]), L.LineUtil.segmentsIntersect(t, e, a, n))) return !0; + return !1; + }, + _getProjectedPoints: function () { + if (!this._defaultShape) return this._originalPoints; + for (var t = [], e = this._defaultShape(), i = 0; i < e.length; i++) + t.push(this._map.latLngToLayerPoint(e[i])); + return t; + }, + }), + L.Polygon.include({ + intersects: function () { + var t, + e, + i, + o, + a = this._getProjectedPoints(); + return ( + !this._tooFewPointsForIntersection() && + (!!L.Polyline.prototype.intersects.call(this) || + ((t = a.length), + (e = a[0]), + (i = a[t - 1]), + (o = t - 2), + this._lineSegmentsIntersectsRange(i, e, o, 1))) + ); + }, + }), + (L.Control.Draw = L.Control.extend({ + options: { position: 'topleft', draw: {}, edit: !1 }, + initialize: function (t) { + if (L.version < '0.7') + throw new Error( + 'Leaflet.draw 0.2.3+ requires Leaflet 0.7.0+. Download latest from https://github.com/Leaflet/Leaflet/' + ); + L.Control.prototype.initialize.call(this, t); + var e; + (this._toolbars = {}), + L.DrawToolbar && + this.options.draw && + ((e = new L.DrawToolbar(this.options.draw)), + (this._toolbars[L.DrawToolbar.TYPE] = e), + this._toolbars[L.DrawToolbar.TYPE].on('enable', this._toolbarEnabled, this)), + L.EditToolbar && + this.options.edit && + ((e = new L.EditToolbar(this.options.edit)), + (this._toolbars[L.EditToolbar.TYPE] = e), + this._toolbars[L.EditToolbar.TYPE].on('enable', this._toolbarEnabled, this)), + (L.toolbar = this); + }, + onAdd: function (t) { + var e, + i = L.DomUtil.create('div', 'leaflet-draw'), + o = !1; + for (var a in this._toolbars) + this._toolbars.hasOwnProperty(a) && + (e = this._toolbars[a].addToolbar(t)) && + (o || + (L.DomUtil.hasClass(e, 'leaflet-draw-toolbar-top') || + L.DomUtil.addClass(e.childNodes[0], 'leaflet-draw-toolbar-top'), + (o = !0)), + i.appendChild(e)); + return i; + }, + onRemove: function () { + for (var t in this._toolbars) this._toolbars.hasOwnProperty(t) && this._toolbars[t].removeToolbar(); + }, + setDrawingOptions: function (t) { + for (var e in this._toolbars) + this._toolbars[e] instanceof L.DrawToolbar && this._toolbars[e].setOptions(t); + }, + _toolbarEnabled: function (t) { + var e = t.target; + for (var i in this._toolbars) this._toolbars[i] !== e && this._toolbars[i].disable(); + }, + })), + L.Map.mergeOptions({ drawControlTooltips: !0, drawControl: !1 }), + L.Map.addInitHook(function () { + this.options.drawControl && ((this.drawControl = new L.Control.Draw()), this.addControl(this.drawControl)); + }), + (L.Toolbar = L.Class.extend({ + initialize: function (t) { + L.setOptions(this, t), (this._modes = {}), (this._actionButtons = []), (this._activeMode = null); + var e = L.version.split('.'); + 1 === parseInt(e[0], 10) && parseInt(e[1], 10) >= 2 + ? L.Toolbar.include(L.Evented.prototype) + : L.Toolbar.include(L.Mixin.Events); + }, + enabled: function () { + return null !== this._activeMode; + }, + disable: function () { + this.enabled() && this._activeMode.handler.disable(); + }, + addToolbar: function (t) { + var e, + i = L.DomUtil.create('div', 'leaflet-draw-section'), + o = 0, + a = this._toolbarClass || '', + n = this.getModeHandlers(t); + for ( + this._toolbarContainer = L.DomUtil.create('div', 'leaflet-draw-toolbar leaflet-bar'), + this._map = t, + e = 0; + e < n.length; + e++ + ) + n[e].enabled && this._initModeHandler(n[e].handler, this._toolbarContainer, o++, a, n[e].title); + if (o) + return ( + (this._lastButtonIndex = --o), + (this._actionsContainer = L.DomUtil.create('ul', 'leaflet-draw-actions')), + i.appendChild(this._toolbarContainer), + i.appendChild(this._actionsContainer), + i + ); + }, + removeToolbar: function () { + for (var t in this._modes) + this._modes.hasOwnProperty(t) && + (this._disposeButton( + this._modes[t].button, + this._modes[t].handler.enable, + this._modes[t].handler + ), + this._modes[t].handler.disable(), + this._modes[t].handler + .off('enabled', this._handlerActivated, this) + .off('disabled', this._handlerDeactivated, this)); + this._modes = {}; + for (var e = 0, i = this._actionButtons.length; e < i; e++) + this._disposeButton(this._actionButtons[e].button, this._actionButtons[e].callback, this); + (this._actionButtons = []), (this._actionsContainer = null); + }, + _initModeHandler: function (t, e, i, o, a) { + var n = t.type; + (this._modes[n] = {}), + (this._modes[n].handler = t), + (this._modes[n].button = this._createButton({ + type: n, + title: a, + className: o + '-' + n, + container: e, + callback: this._modes[n].handler.enable, + context: this._modes[n].handler, + })), + (this._modes[n].buttonIndex = i), + this._modes[n].handler + .on('enabled', this._handlerActivated, this) + .on('disabled', this._handlerDeactivated, this); + }, + _detectIOS: function () { + return /iPad|iPhone|iPod/.test(navigator.userAgent) && !t.MSStream; + }, + _createButton: function (t) { + var e = L.DomUtil.create('a', t.className || '', t.container), + i = L.DomUtil.create('span', 'sr-only', t.container); + (e.href = '#'), + e.appendChild(i), + t.title && ((e.title = t.title), (i.innerHTML = t.title)), + t.text && ((e.innerHTML = t.text), (i.innerHTML = t.text)); + var o = this._detectIOS() ? 'touchstart' : 'click'; + return ( + L.DomEvent.on(e, 'click', L.DomEvent.stopPropagation) + .on(e, 'mousedown', L.DomEvent.stopPropagation) + .on(e, 'dblclick', L.DomEvent.stopPropagation) + .on(e, 'touchstart', L.DomEvent.stopPropagation) + .on(e, 'click', L.DomEvent.preventDefault) + .on(e, o, t.callback, t.context), + e + ); + }, + _disposeButton: function (t, e) { + var i = this._detectIOS() ? 'touchstart' : 'click'; + L.DomEvent.off(t, 'click', L.DomEvent.stopPropagation) + .off(t, 'mousedown', L.DomEvent.stopPropagation) + .off(t, 'dblclick', L.DomEvent.stopPropagation) + .off(t, 'touchstart', L.DomEvent.stopPropagation) + .off(t, 'click', L.DomEvent.preventDefault) + .off(t, i, e); + }, + _handlerActivated: function (t) { + this.disable(), + (this._activeMode = this._modes[t.handler]), + L.DomUtil.addClass(this._activeMode.button, 'leaflet-draw-toolbar-button-enabled'), + this._showActionsToolbar(), + this.fire('enable'); + }, + _handlerDeactivated: function () { + this._hideActionsToolbar(), + L.DomUtil.removeClass(this._activeMode.button, 'leaflet-draw-toolbar-button-enabled'), + (this._activeMode = null), + this.fire('disable'); + }, + _createActions: function (t) { + var e, + i, + o, + a, + n = this._actionsContainer, + s = this.getActions(t), + r = s.length; + for (i = 0, o = this._actionButtons.length; i < o; i++) + this._disposeButton(this._actionButtons[i].button, this._actionButtons[i].callback); + for (this._actionButtons = []; n.firstChild; ) n.removeChild(n.firstChild); + for (var l = 0; l < r; l++) + ('enabled' in s[l] && !s[l].enabled) || + ((e = L.DomUtil.create('li', '', n)), + (a = this._createButton({ + title: s[l].title, + text: s[l].text, + container: e, + callback: s[l].callback, + context: s[l].context, + })), + this._actionButtons.push({ button: a, callback: s[l].callback })); + }, + _showActionsToolbar: function () { + var t = this._activeMode.buttonIndex, + e = this._lastButtonIndex, + i = this._activeMode.button.offsetTop - 1; + this._createActions(this._activeMode.handler), + (this._actionsContainer.style.top = i + 'px'), + 0 === t && + (L.DomUtil.addClass(this._toolbarContainer, 'leaflet-draw-toolbar-notop'), + L.DomUtil.addClass(this._actionsContainer, 'leaflet-draw-actions-top')), + t === e && + (L.DomUtil.addClass(this._toolbarContainer, 'leaflet-draw-toolbar-nobottom'), + L.DomUtil.addClass(this._actionsContainer, 'leaflet-draw-actions-bottom')), + (this._actionsContainer.style.display = 'block'), + this._map.fire(L.Draw.Event.TOOLBAROPENED); + }, + _hideActionsToolbar: function () { + (this._actionsContainer.style.display = 'none'), + L.DomUtil.removeClass(this._toolbarContainer, 'leaflet-draw-toolbar-notop'), + L.DomUtil.removeClass(this._toolbarContainer, 'leaflet-draw-toolbar-nobottom'), + L.DomUtil.removeClass(this._actionsContainer, 'leaflet-draw-actions-top'), + L.DomUtil.removeClass(this._actionsContainer, 'leaflet-draw-actions-bottom'), + this._map.fire(L.Draw.Event.TOOLBARCLOSED); + }, + })), + (L.Draw = L.Draw || {}), + (L.Draw.Tooltip = L.Class.extend({ + initialize: function (t) { + (this._map = t), + (this._popupPane = t._panes.popupPane), + (this._visible = !1), + (this._container = t.options.drawControlTooltips + ? L.DomUtil.create('div', 'leaflet-draw-tooltip', this._popupPane) + : null), + (this._singleLineLabel = !1), + this._map.on('mouseout', this._onMouseOut, this); + }, + dispose: function () { + this._map.off('mouseout', this._onMouseOut, this), + this._container && (this._popupPane.removeChild(this._container), (this._container = null)); + }, + updateContent: function (t) { + return this._container + ? ((t.subtext = t.subtext || ''), + 0 !== t.subtext.length || this._singleLineLabel + ? t.subtext.length > 0 && + this._singleLineLabel && + (L.DomUtil.removeClass(this._container, 'leaflet-draw-tooltip-single'), + (this._singleLineLabel = !1)) + : (L.DomUtil.addClass(this._container, 'leaflet-draw-tooltip-single'), + (this._singleLineLabel = !0)), + (this._container.innerHTML = + (t.subtext.length > 0 + ? '' + t.subtext + '
' + : '') + + '' + + t.text + + ''), + t.text || t.subtext + ? ((this._visible = !0), (this._container.style.visibility = 'inherit')) + : ((this._visible = !1), (this._container.style.visibility = 'hidden')), + this) + : this; + }, + updatePosition: function (t) { + var e = this._map.latLngToLayerPoint(t), + i = this._container; + return ( + this._container && (this._visible && (i.style.visibility = 'inherit'), L.DomUtil.setPosition(i, e)), + this + ); + }, + showAsError: function () { + return this._container && L.DomUtil.addClass(this._container, 'leaflet-error-draw-tooltip'), this; + }, + removeError: function () { + return this._container && L.DomUtil.removeClass(this._container, 'leaflet-error-draw-tooltip'), this; + }, + _onMouseOut: function () { + this._container && (this._container.style.visibility = 'hidden'); + }, + })), + (L.DrawToolbar = L.Toolbar.extend({ + statics: { TYPE: 'draw' }, + options: { polyline: {}, polygon: {}, rectangle: {}, circle: {}, marker: {}, circlemarker: {} }, + initialize: function (t) { + for (var e in this.options) + this.options.hasOwnProperty(e) && t[e] && (t[e] = L.extend({}, this.options[e], t[e])); + (this._toolbarClass = 'leaflet-draw-draw'), L.Toolbar.prototype.initialize.call(this, t); + }, + getModeHandlers: function (t) { + return [ + { + enabled: this.options.polyline, + handler: new L.Draw.Polyline(t, this.options.polyline), + title: L.drawLocal.draw.toolbar.buttons.polyline, + }, + { + enabled: this.options.polygon, + handler: new L.Draw.Polygon(t, this.options.polygon), + title: L.drawLocal.draw.toolbar.buttons.polygon, + }, + { + enabled: this.options.rectangle, + handler: new L.Draw.Rectangle(t, this.options.rectangle), + title: L.drawLocal.draw.toolbar.buttons.rectangle, + }, + { + enabled: this.options.circle, + handler: new L.Draw.Circle(t, this.options.circle), + title: L.drawLocal.draw.toolbar.buttons.circle, + }, + { + enabled: this.options.marker, + handler: new L.Draw.Marker(t, this.options.marker), + title: L.drawLocal.draw.toolbar.buttons.marker, + }, + { + enabled: this.options.circlemarker, + handler: new L.Draw.CircleMarker(t, this.options.circlemarker), + title: L.drawLocal.draw.toolbar.buttons.circlemarker, + }, + ]; + }, + getActions: function (t) { + return [ + { + enabled: t.completeShape, + title: L.drawLocal.draw.toolbar.finish.title, + text: L.drawLocal.draw.toolbar.finish.text, + callback: t.completeShape, + context: t, + }, + { + enabled: t.deleteLastVertex, + title: L.drawLocal.draw.toolbar.undo.title, + text: L.drawLocal.draw.toolbar.undo.text, + callback: t.deleteLastVertex, + context: t, + }, + { + title: L.drawLocal.draw.toolbar.actions.title, + text: L.drawLocal.draw.toolbar.actions.text, + callback: this.disable, + context: this, + }, + ]; + }, + setOptions: function (t) { + L.setOptions(this, t); + for (var e in this._modes) + this._modes.hasOwnProperty(e) && t.hasOwnProperty(e) && this._modes[e].handler.setOptions(t[e]); + }, + })), + (L.EditToolbar = L.Toolbar.extend({ + statics: { TYPE: 'edit' }, + options: { + edit: { + selectedPathOptions: { + dashArray: '10, 10', + fill: !0, + fillColor: '#fe57a1', + fillOpacity: 0.1, + maintainColor: !1, + }, + }, + remove: {}, + poly: null, + featureGroup: null, + }, + initialize: function (t) { + t.edit && + (void 0 === t.edit.selectedPathOptions && + (t.edit.selectedPathOptions = this.options.edit.selectedPathOptions), + (t.edit.selectedPathOptions = L.extend( + {}, + this.options.edit.selectedPathOptions, + t.edit.selectedPathOptions + ))), + t.remove && (t.remove = L.extend({}, this.options.remove, t.remove)), + t.poly && (t.poly = L.extend({}, this.options.poly, t.poly)), + (this._toolbarClass = 'leaflet-draw-edit'), + L.Toolbar.prototype.initialize.call(this, t), + (this._selectedFeatureCount = 0); + }, + getModeHandlers: function (t) { + var e = this.options.featureGroup; + return [ + { + enabled: this.options.edit, + handler: new L.EditToolbar.Edit(t, { + featureGroup: e, + selectedPathOptions: this.options.edit.selectedPathOptions, + poly: this.options.poly, + }), + title: L.drawLocal.edit.toolbar.buttons.edit, + }, + { + enabled: this.options.remove, + handler: new L.EditToolbar.Delete(t, { featureGroup: e }), + title: L.drawLocal.edit.toolbar.buttons.remove, + }, + ]; + }, + getActions: function (t) { + var e = [ + { + title: L.drawLocal.edit.toolbar.actions.save.title, + text: L.drawLocal.edit.toolbar.actions.save.text, + callback: this._save, + context: this, + }, + { + title: L.drawLocal.edit.toolbar.actions.cancel.title, + text: L.drawLocal.edit.toolbar.actions.cancel.text, + callback: this.disable, + context: this, + }, + ]; + return ( + t.removeAllLayers && + e.push({ + title: L.drawLocal.edit.toolbar.actions.clearAll.title, + text: L.drawLocal.edit.toolbar.actions.clearAll.text, + callback: this._clearAllLayers, + context: this, + }), + e + ); + }, + addToolbar: function (t) { + var e = L.Toolbar.prototype.addToolbar.call(this, t); + return ( + this._checkDisabled(), + this.options.featureGroup.on('layeradd layerremove', this._checkDisabled, this), + e + ); + }, + removeToolbar: function () { + this.options.featureGroup.off('layeradd layerremove', this._checkDisabled, this), + L.Toolbar.prototype.removeToolbar.call(this); + }, + disable: function () { + this.enabled() && (this._activeMode.handler.revertLayers(), L.Toolbar.prototype.disable.call(this)); + }, + _save: function () { + this._activeMode.handler.save(), this._activeMode && this._activeMode.handler.disable(); + }, + _clearAllLayers: function () { + this._activeMode.handler.removeAllLayers(), this._activeMode && this._activeMode.handler.disable(); + }, + _checkDisabled: function () { + var t, + e = this.options.featureGroup, + i = 0 !== e.getLayers().length; + this.options.edit && + ((t = this._modes[L.EditToolbar.Edit.TYPE].button), + i ? L.DomUtil.removeClass(t, 'leaflet-disabled') : L.DomUtil.addClass(t, 'leaflet-disabled'), + t.setAttribute( + 'title', + i ? L.drawLocal.edit.toolbar.buttons.edit : L.drawLocal.edit.toolbar.buttons.editDisabled + )), + this.options.remove && + ((t = this._modes[L.EditToolbar.Delete.TYPE].button), + i ? L.DomUtil.removeClass(t, 'leaflet-disabled') : L.DomUtil.addClass(t, 'leaflet-disabled'), + t.setAttribute( + 'title', + i + ? L.drawLocal.edit.toolbar.buttons.remove + : L.drawLocal.edit.toolbar.buttons.removeDisabled + )); + }, + })), + (L.EditToolbar.Edit = L.Handler.extend({ + statics: { TYPE: 'edit' }, + initialize: function (t, e) { + if ( + (L.Handler.prototype.initialize.call(this, t), + L.setOptions(this, e), + (this._featureGroup = e.featureGroup), + !(this._featureGroup instanceof L.FeatureGroup)) + ) + throw new Error('options.featureGroup must be a L.FeatureGroup'); + (this._uneditedLayerProps = {}), (this.type = L.EditToolbar.Edit.TYPE); + var i = L.version.split('.'); + 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 + ? L.EditToolbar.Edit.include(L.Evented.prototype) + : L.EditToolbar.Edit.include(L.Mixin.Events); + }, + enable: function () { + !this._enabled && + this._hasAvailableLayers() && + (this.fire('enabled', { handler: this.type }), + this._map.fire(L.Draw.Event.EDITSTART, { handler: this.type }), + L.Handler.prototype.enable.call(this), + this._featureGroup + .on('layeradd', this._enableLayerEdit, this) + .on('layerremove', this._disableLayerEdit, this)); + }, + disable: function () { + this._enabled && + (this._featureGroup + .off('layeradd', this._enableLayerEdit, this) + .off('layerremove', this._disableLayerEdit, this), + L.Handler.prototype.disable.call(this), + this._map.fire(L.Draw.Event.EDITSTOP, { handler: this.type }), + this.fire('disabled', { handler: this.type })); + }, + addHooks: function () { + var t = this._map; + t && + (t.getContainer().focus(), + this._featureGroup.eachLayer(this._enableLayerEdit, this), + (this._tooltip = new L.Draw.Tooltip(this._map)), + this._tooltip.updateContent({ + text: L.drawLocal.edit.handlers.edit.tooltip.text, + subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext, + }), + (t._editTooltip = this._tooltip), + this._updateTooltip(), + this._map + .on('mousemove', this._onMouseMove, this) + .on('touchmove', this._onMouseMove, this) + .on('MSPointerMove', this._onMouseMove, this) + .on(L.Draw.Event.EDITVERTEX, this._updateTooltip, this)); + }, + removeHooks: function () { + this._map && + (this._featureGroup.eachLayer(this._disableLayerEdit, this), + (this._uneditedLayerProps = {}), + this._tooltip.dispose(), + (this._tooltip = null), + this._map + .off('mousemove', this._onMouseMove, this) + .off('touchmove', this._onMouseMove, this) + .off('MSPointerMove', this._onMouseMove, this) + .off(L.Draw.Event.EDITVERTEX, this._updateTooltip, this)); + }, + revertLayers: function () { + this._featureGroup.eachLayer(function (t) { + this._revertLayer(t); + }, this); + }, + save: function () { + var t = new L.LayerGroup(); + this._featureGroup.eachLayer(function (e) { + e.edited && (t.addLayer(e), (e.edited = !1)); + }), + this._map.fire(L.Draw.Event.EDITED, { layers: t }); + }, + _backupLayer: function (t) { + var e = L.Util.stamp(t); + this._uneditedLayerProps[e] || + (t instanceof L.Polyline || t instanceof L.Polygon || t instanceof L.Rectangle + ? (this._uneditedLayerProps[e] = { latlngs: L.LatLngUtil.cloneLatLngs(t.getLatLngs()) }) + : t instanceof L.Circle + ? (this._uneditedLayerProps[e] = { + latlng: L.LatLngUtil.cloneLatLng(t.getLatLng()), + radius: t.getRadius(), + }) + : (t instanceof L.Marker || t instanceof L.CircleMarker) && + (this._uneditedLayerProps[e] = { latlng: L.LatLngUtil.cloneLatLng(t.getLatLng()) })); + }, + _getTooltipText: function () { + return { + text: L.drawLocal.edit.handlers.edit.tooltip.text, + subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext, + }; + }, + _updateTooltip: function () { + this._tooltip.updateContent(this._getTooltipText()); + }, + _revertLayer: function (t) { + var e = L.Util.stamp(t); + (t.edited = !1), + this._uneditedLayerProps.hasOwnProperty(e) && + (t instanceof L.Polyline || t instanceof L.Polygon || t instanceof L.Rectangle + ? t.setLatLngs(this._uneditedLayerProps[e].latlngs) + : t instanceof L.Circle + ? (t.setLatLng(this._uneditedLayerProps[e].latlng), + t.setRadius(this._uneditedLayerProps[e].radius)) + : (t instanceof L.Marker || t instanceof L.CircleMarker) && + t.setLatLng(this._uneditedLayerProps[e].latlng), + t.fire('revert-edited', { layer: t })); + }, + _enableLayerEdit: function (t) { + var e, + i, + o = t.layer || t.target || t; + this._backupLayer(o), + this.options.poly && ((i = L.Util.extend({}, this.options.poly)), (o.options.poly = i)), + this.options.selectedPathOptions && + ((e = L.Util.extend({}, this.options.selectedPathOptions)), + e.maintainColor && ((e.color = o.options.color), (e.fillColor = o.options.fillColor)), + (o.options.original = L.extend({}, o.options)), + (o.options.editing = e)), + o instanceof L.Marker + ? (o.editing && o.editing.enable(), + o.dragging.enable(), + o + .on('dragend', this._onMarkerDragEnd) + .on('touchmove', this._onTouchMove, this) + .on('MSPointerMove', this._onTouchMove, this) + .on('touchend', this._onMarkerDragEnd, this) + .on('MSPointerUp', this._onMarkerDragEnd, this)) + : o.editing.enable(); + }, + _disableLayerEdit: function (t) { + var e = t.layer || t.target || t; + (e.edited = !1), + e.editing && e.editing.disable(), + delete e.options.editing, + delete e.options.original, + this._selectedPathOptions && + (e instanceof L.Marker + ? this._toggleMarkerHighlight(e) + : (e.setStyle(e.options.previousOptions), delete e.options.previousOptions)), + e instanceof L.Marker + ? (e.dragging.disable(), + e + .off('dragend', this._onMarkerDragEnd, this) + .off('touchmove', this._onTouchMove, this) + .off('MSPointerMove', this._onTouchMove, this) + .off('touchend', this._onMarkerDragEnd, this) + .off('MSPointerUp', this._onMarkerDragEnd, this)) + : e.editing.disable(); + }, + _onMouseMove: function (t) { + this._tooltip.updatePosition(t.latlng); + }, + _onMarkerDragEnd: function (t) { + var e = t.target; + (e.edited = !0), this._map.fire(L.Draw.Event.EDITMOVE, { layer: e }); + }, + _onTouchMove: function (t) { + var e = t.originalEvent.changedTouches[0], + i = this._map.mouseEventToLayerPoint(e), + o = this._map.layerPointToLatLng(i); + t.target.setLatLng(o); + }, + _hasAvailableLayers: function () { + return 0 !== this._featureGroup.getLayers().length; + }, + })), + (L.EditToolbar.Delete = L.Handler.extend({ + statics: { TYPE: 'remove' }, + initialize: function (t, e) { + if ( + (L.Handler.prototype.initialize.call(this, t), + L.Util.setOptions(this, e), + (this._deletableLayers = this.options.featureGroup), + !(this._deletableLayers instanceof L.FeatureGroup)) + ) + throw new Error('options.featureGroup must be a L.FeatureGroup'); + this.type = L.EditToolbar.Delete.TYPE; + var i = L.version.split('.'); + 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 + ? L.EditToolbar.Delete.include(L.Evented.prototype) + : L.EditToolbar.Delete.include(L.Mixin.Events); + }, + enable: function () { + !this._enabled && + this._hasAvailableLayers() && + (this.fire('enabled', { handler: this.type }), + this._map.fire(L.Draw.Event.DELETESTART, { handler: this.type }), + L.Handler.prototype.enable.call(this), + this._deletableLayers + .on('layeradd', this._enableLayerDelete, this) + .on('layerremove', this._disableLayerDelete, this)); + }, + disable: function () { + this._enabled && + (this._deletableLayers + .off('layeradd', this._enableLayerDelete, this) + .off('layerremove', this._disableLayerDelete, this), + L.Handler.prototype.disable.call(this), + this._map.fire(L.Draw.Event.DELETESTOP, { handler: this.type }), + this.fire('disabled', { handler: this.type })); + }, + addHooks: function () { + var t = this._map; + t && + (t.getContainer().focus(), + this._deletableLayers.eachLayer(this._enableLayerDelete, this), + (this._deletedLayers = new L.LayerGroup()), + (this._tooltip = new L.Draw.Tooltip(this._map)), + this._tooltip.updateContent({ text: L.drawLocal.edit.handlers.remove.tooltip.text }), + this._map.on('mousemove', this._onMouseMove, this)); + }, + removeHooks: function () { + this._map && + (this._deletableLayers.eachLayer(this._disableLayerDelete, this), + (this._deletedLayers = null), + this._tooltip.dispose(), + (this._tooltip = null), + this._map.off('mousemove', this._onMouseMove, this)); + }, + revertLayers: function () { + this._deletedLayers.eachLayer(function (t) { + this._deletableLayers.addLayer(t), t.fire('revert-deleted', { layer: t }); + }, this); + }, + save: function () { + this._map.fire(L.Draw.Event.DELETED, { layers: this._deletedLayers }); + }, + removeAllLayers: function () { + this._deletableLayers.eachLayer(function (t) { + this._removeLayer({ layer: t }); + }, this), + this.save(); + }, + _enableLayerDelete: function (t) { + (t.layer || t.target || t).on('click', this._removeLayer, this); + }, + _disableLayerDelete: function (t) { + var e = t.layer || t.target || t; + e.off('click', this._removeLayer, this), this._deletedLayers.removeLayer(e); + }, + _removeLayer: function (t) { + var e = t.layer || t.target || t; + this._deletableLayers.removeLayer(e), this._deletedLayers.addLayer(e), e.fire('deleted'); + }, + _onMouseMove: function (t) { + this._tooltip.updatePosition(t.latlng); + }, + _hasAvailableLayers: function () { + return 0 !== this._deletableLayers.getLayers().length; + }, + })); +})(window, document); diff --git a/src/Files/Leaflet/Leaflet.Editable.js b/src/Files/Leaflet/Leaflet.Editable.js index 2ef57f2..9c6fafc 100644 --- a/src/Files/Leaflet/Leaflet.Editable.js +++ b/src/Files/Leaflet/Leaflet.Editable.js @@ -1,2089 +1,2042 @@ 'use strict'; ((factory, window) => { - /*globals define, module, require*/ + /*globals define, module, require*/ - // define an AMD module that relies on 'leaflet' - if (typeof define === 'function' && define.amd) { - define(['leaflet'], factory) + // define an AMD module that relies on 'leaflet' + if (typeof define === 'function' && define.amd) { + define(['leaflet'], factory); - // define a Common JS module that relies on 'leaflet' - } else if (typeof exports === 'object') { - module.exports = factory(require('leaflet')) - } + // define a Common JS module that relies on 'leaflet' + } else if (typeof exports === 'object') { + module.exports = factory(require('leaflet')); + } - // attach your plugin to the global 'L' variable - if (typeof window !== 'undefined' && window.L) { - factory(window.L) - } + // attach your plugin to the global 'L' variable + if (typeof window !== 'undefined' && window.L) { + factory(window.L); + } })((L) => { - // 🍂miniclass CancelableEvent (Event objects) - // 🍂method cancel() - // Cancel any subsequent action. - - // 🍂miniclass VertexEvent (Event objects) - // 🍂property vertex: VertexMarker - // The vertex that fires the event. - - // 🍂miniclass ShapeEvent (Event objects) - // 🍂property shape: Array - // The shape (LatLngs array) subject of the action. - - // 🍂miniclass CancelableVertexEvent (Event objects) - // 🍂inherits VertexEvent - // 🍂inherits CancelableEvent - - // 🍂miniclass CancelableShapeEvent (Event objects) - // 🍂inherits ShapeEvent - // 🍂inherits CancelableEvent - - // 🍂miniclass LayerEvent (Event objects) - // 🍂property layer: object - // The Layer (Marker, Polyline…) subject of the action. - - // 🍂namespace Editable; 🍂class Editable; 🍂aka L.Editable - // Main edition handler. By default, it is attached to the map - // as `map.editTools` property. - // Leaflet.Editable is made to be fully extendable. You have three ways to customize - // the behaviour: using options, listening to events, or extending. - L.Editable = L.Evented.extend({ - statics: { - FORWARD: 1, - BACKWARD: -1, - }, - - options: { - // You can pass them when creating a map using the `editOptions` key. - // 🍂option zIndex: int = 1000 - // The default zIndex of the editing tools. - zIndex: 1000, - - // 🍂option polygonClass: class = L.Polygon - // Class to be used when creating a new Polygon. - polygonClass: L.Polygon, - - // 🍂option polylineClass: class = L.Polyline - // Class to be used when creating a new Polyline. - polylineClass: L.Polyline, - - // 🍂option markerClass: class = L.Marker - // Class to be used when creating a new Marker. - markerClass: L.Marker, - - // 🍂option circleMarkerClass: class = L.CircleMarker - // Class to be used when creating a new CircleMarker. - circleMarkerClass: L.CircleMarker, - - // 🍂option rectangleClass: class = L.Rectangle - // Class to be used when creating a new Rectangle. - rectangleClass: L.Rectangle, - - // 🍂option circleClass: class = L.Circle - // Class to be used when creating a new Circle. - circleClass: L.Circle, - - // 🍂option drawingCSSClass: string = 'leaflet-editable-drawing' - // CSS class to be added to the map container while drawing. - drawingCSSClass: 'leaflet-editable-drawing', - - // 🍂option drawingCursor: const = 'crosshair' - // Cursor mode set to the map while drawing. - drawingCursor: 'crosshair', - - // 🍂option editLayer: Layer = new L.LayerGroup() - // Layer used to store edit tools (vertex, line guide…). - editLayer: undefined, - - // 🍂option featuresLayer: Layer = new L.LayerGroup() - // Default layer used to store drawn features (Marker, Polyline…). - featuresLayer: undefined, - - // 🍂option polylineEditorClass: class = PolylineEditor - // Class to be used as Polyline editor. - polylineEditorClass: undefined, - - // 🍂option polygonEditorClass: class = PolygonEditor - // Class to be used as Polygon editor. - polygonEditorClass: undefined, - - // 🍂option markerEditorClass: class = MarkerEditor - // Class to be used as Marker editor. - markerEditorClass: undefined, - - // 🍂option circleMarkerEditorClass: class = CircleMarkerEditor - // Class to be used as CircleMarker editor. - circleMarkerEditorClass: undefined, - - // 🍂option rectangleEditorClass: class = RectangleEditor - // Class to be used as Rectangle editor. - rectangleEditorClass: undefined, - - // 🍂option circleEditorClass: class = CircleEditor - // Class to be used as Circle editor. - circleEditorClass: undefined, - - // 🍂option lineGuideOptions: hash = {} - // Options to be passed to the line guides. - lineGuideOptions: {}, - - // 🍂option skipMiddleMarkers: boolean = false - // Set this to true if you don't want middle markers. - skipMiddleMarkers: false, - }, - - initialize: function (map, options) { - L.setOptions(this, options) - this._lastZIndex = this.options.zIndex - this.map = map - this.editLayer = this.createEditLayer() - this.featuresLayer = this.createFeaturesLayer() - this.forwardLineGuide = this.createLineGuide() - this.backwardLineGuide = this.createLineGuide() - }, - - fireAndForward: function (type, e) { - e = e || {} - e.editTools = this - this.fire(type, e) - this.map.fire(type, e) - }, - - createLineGuide: function () { - const options = L.extend( - { dashArray: '5,10', weight: 1, interactive: false }, - this.options.lineGuideOptions - ) - return L.polyline([], options) - }, - - createVertexIcon: (options) => - L.Browser.mobile && L.Browser.touch - ? new L.Editable.TouchVertexIcon(options) - : new L.Editable.VertexIcon(options), - - createEditLayer: function () { - return this.options.editLayer || new L.LayerGroup().addTo(this.map) - }, - - createFeaturesLayer: function () { - return this.options.featuresLayer || new L.LayerGroup().addTo(this.map) - }, - - moveForwardLineGuide: function (latlng) { - if (this.forwardLineGuide._latlngs.length) { - this.forwardLineGuide._latlngs[1] = latlng - this.forwardLineGuide._bounds.extend(latlng) - this.forwardLineGuide.redraw() - } - }, - - moveBackwardLineGuide: function (latlng) { - if (this.backwardLineGuide._latlngs.length) { - this.backwardLineGuide._latlngs[1] = latlng - this.backwardLineGuide._bounds.extend(latlng) - this.backwardLineGuide.redraw() - } - }, - - anchorForwardLineGuide: function (latlng) { - this.forwardLineGuide._latlngs[0] = latlng - this.forwardLineGuide._bounds.extend(latlng) - this.forwardLineGuide.redraw() - }, - - anchorBackwardLineGuide: function (latlng) { - this.backwardLineGuide._latlngs[0] = latlng - this.backwardLineGuide._bounds.extend(latlng) - this.backwardLineGuide.redraw() - }, - - attachForwardLineGuide: function () { - this.editLayer.addLayer(this.forwardLineGuide) - }, - - attachBackwardLineGuide: function () { - this.editLayer.addLayer(this.backwardLineGuide) - }, - - detachForwardLineGuide: function () { - this.forwardLineGuide.setLatLngs([]) - this.editLayer.removeLayer(this.forwardLineGuide) - }, - - detachBackwardLineGuide: function () { - this.backwardLineGuide.setLatLngs([]) - this.editLayer.removeLayer(this.backwardLineGuide) - }, - - blockEvents: function () { - // Hack: force map not to listen to other layers events while drawing. - if (!this._oldTargets) { - this._oldTargets = this.map._targets - this.map._targets = {} - } - }, - - unblockEvents: function () { - if (this._oldTargets) { - // Reset, but keep targets created while drawing. - this.map._targets = L.extend(this.map._targets, this._oldTargets) - delete this._oldTargets - } - }, - - registerForDrawing: function (editor) { - if (this._drawingEditor) this.unregisterForDrawing(this._drawingEditor) - this.blockEvents() - editor.reset() // Make sure editor tools still receive events. - this._drawingEditor = editor - this.map.on('mousemove touchmove', editor.onDrawingMouseMove, editor) - this.map.on('mousedown', this.onMousedown, this) - this.map.on('mouseup', this.onMouseup, this) - L.DomUtil.addClass(this.map._container, this.options.drawingCSSClass) - this.defaultMapCursor = this.map._container.style.cursor - this.map._container.style.cursor = this.options.drawingCursor - }, - - unregisterForDrawing: function (editor) { - this.unblockEvents() - L.DomUtil.removeClass(this.map._container, this.options.drawingCSSClass) - this.map._container.style.cursor = this.defaultMapCursor - editor = editor || this._drawingEditor - if (!editor) return - this.map.off('mousemove touchmove', editor.onDrawingMouseMove, editor) - this.map.off('mousedown', this.onMousedown, this) - this.map.off('mouseup', this.onMouseup, this) - if (editor !== this._drawingEditor) return - delete this._drawingEditor - if (editor._drawing) editor.cancelDrawing() - }, - - onMousedown: function (e) { - if (e.originalEvent.which != 1) return - this._mouseDown = e - this._drawingEditor.onDrawingMouseDown(e) - }, - - onMouseup: function (e) { - if (this._mouseDown) { - const editor = this._drawingEditor - const mouseDown = this._mouseDown - this._mouseDown = null - editor.onDrawingMouseUp(e) - if (this._drawingEditor !== editor) return // onDrawingMouseUp may call unregisterFromDrawing. - const origin = L.point( - mouseDown.originalEvent.clientX, - mouseDown.originalEvent.clientY - ) - const distance = L.point( - e.originalEvent.clientX, - e.originalEvent.clientY - ).distanceTo(origin) - if (Math.abs(distance) < 9 * (window.devicePixelRatio || 1)) - this._drawingEditor.onDrawingClick(e) - } - }, - - // 🍂section Public methods - // You will generally access them by the `map.editTools` - // instance: - // - // `map.editTools.startPolyline();` - - // 🍂method drawing(): boolean - // Return true if any drawing action is ongoing. - drawing: function () { - return this._drawingEditor?.drawing() - }, - - // 🍂method stopDrawing() - // When you need to stop any ongoing drawing, without needing to know which editor is active. - stopDrawing: function () { - this.unregisterForDrawing() - }, - - // 🍂method commitDrawing() - // When you need to commit any ongoing drawing, without needing to know which editor is active. - commitDrawing: function (e) { - if (!this._drawingEditor) return - this._drawingEditor.commitDrawing(e) - }, - - connectCreatedToMap: function (layer) { - return this.featuresLayer.addLayer(layer) - }, - - // 🍂method startPolyline(latlng: L.LatLng, options: hash): L.Polyline - // Start drawing a Polyline. If `latlng` is given, a first point will be added. In any case, continuing on user click. - // If `options` is given, it will be passed to the Polyline class constructor. - startPolyline: function (latlng, options) { - const line = this.createPolyline([], options) - line.enableEdit(this.map).newShape(latlng) - return line - }, - - // 🍂method startPolygon(latlng: L.LatLng, options: hash): L.Polygon - // Start drawing a Polygon. If `latlng` is given, a first point will be added. In any case, continuing on user click. - // If `options` is given, it will be passed to the Polygon class constructor. - startPolygon: function (latlng, options) { - const polygon = this.createPolygon([], options) - polygon.enableEdit(this.map).newShape(latlng) - return polygon - }, - - // 🍂method startMarker(latlng: L.LatLng, options: hash): L.Marker - // Start adding a Marker. If `latlng` is given, the Marker will be shown first at this point. - // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch). - // If `options` is given, it will be passed to the Marker class constructor. - startMarker: function (latlng, options) { - latlng = latlng || this.map.getCenter().clone() - const marker = this.createMarker(latlng, options) - marker.enableEdit(this.map).startDrawing() - return marker - }, - - // 🍂method startCircleMarker(latlng: L.LatLng, options: hash): L.CircleMarker - // Start adding a CircleMarker. If `latlng` is given, the CircleMarker will be shown first at this point. - // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch). - // If `options` is given, it will be passed to the CircleMarker class constructor. - startCircleMarker: function (latlng, options) { - latlng = latlng || this.map.getCenter().clone() - const marker = this.createCircleMarker(latlng, options) - marker.enableEdit(this.map).startDrawing() - return marker - }, - - // 🍂method startRectangle(latlng: L.LatLng, options: hash): L.Rectangle - // Start drawing a Rectangle. If `latlng` is given, the Rectangle anchor will be added. In any case, continuing on user drag. - // If `options` is given, it will be passed to the Rectangle class constructor. - startRectangle: function (latlng, options) { - const corner = latlng || L.latLng([0, 0]) - const bounds = new L.LatLngBounds(corner, corner) - const rectangle = this.createRectangle(bounds, options) - rectangle.enableEdit(this.map).startDrawing() - return rectangle - }, - - // 🍂method startCircle(latlng: L.LatLng, options: hash): L.Circle - // Start drawing a Circle. If `latlng` is given, the Circle anchor will be added. In any case, continuing on user drag. - // If `options` is given, it will be passed to the Circle class constructor. - startCircle: function (latlng, options) { - latlng = latlng || this.map.getCenter().clone() - const circle = this.createCircle(latlng, options) - circle.enableEdit(this.map).startDrawing() - return circle - }, - - startHole: (editor, latlng) => { - editor.newHole(latlng) - }, - - createLayer: function (klass, latlngs, options) { - options = L.Util.extend({ editOptions: { editTools: this } }, options) - const layer = new klass(latlngs, options) - // 🍂namespace Editable - // 🍂event editable:created: LayerEvent - // Fired when a new feature (Marker, Polyline…) is created. - this.fireAndForward('editable:created', { layer: layer }) - return layer - }, - - createPolyline: function (latlngs, options) { - return this.createLayer( - options?.polylineClass || this.options.polylineClass, - latlngs, - options - ) - }, - - createPolygon: function (latlngs, options) { - return this.createLayer( - options?.polygonClass || this.options.polygonClass, - latlngs, - options - ) - }, - - createMarker: function (latlng, options) { - return this.createLayer( - options?.markerClass || this.options.markerClass, - latlng, - options - ) - }, - - createCircleMarker: function (latlng, options) { - return this.createLayer( - options?.circleMarkerClass || this.options.circleMarkerClass, - latlng, - options - ) - }, - - createRectangle: function (bounds, options) { - return this.createLayer( - options?.rectangleClass || this.options.rectangleClass, - bounds, - options - ) - }, - - createCircle: function (latlng, options) { - return this.createLayer( - options?.circleClass || this.options.circleClass, - latlng, - options - ) - }, - }) - - L.extend(L.Editable, { - makeCancellable: (e) => { - e.cancel = () => { - e._cancelled = true - } - }, - }) - - // 🍂namespace Map; 🍂class Map - // Leaflet.Editable add options and events to the `L.Map` object. - // See `Editable` events for the list of events fired on the Map. - // 🍂example - // - // ```js - // var map = L.map('map', { - // editable: true, - // editOptions: { - // … - // } - // }); - // ``` - // 🍂section Editable Map Options - L.Map.mergeOptions({ - // 🍂namespace Map - // 🍂section Map Options - // 🍂option editToolsClass: class = L.Editable - // Class to be used as vertex, for path editing. - editToolsClass: L.Editable, - - // 🍂option editable: boolean = false - // Whether to create a L.Editable instance at map init. - editable: false, - - // 🍂option editOptions: hash = {} - // Options to pass to L.Editable when instantiating. - editOptions: {}, - }) - - L.Map.addInitHook(function () { - this.whenReady(function () { - if (this.options.editable) { - this.editTools = new this.options.editToolsClass(this, this.options.editOptions) - } - }) - }) - - L.Editable.VertexIcon = L.DivIcon.extend({ - options: { - iconSize: new L.Point(8, 8), - }, - }) - - L.Editable.TouchVertexIcon = L.Editable.VertexIcon.extend({ - options: { - iconSize: new L.Point(20, 20), - }, - }) - - // 🍂namespace Editable; 🍂class VertexMarker; Handler for dragging path vertices. - L.Editable.VertexMarker = L.Marker.extend({ - options: { - draggable: true, - className: 'leaflet-div-icon leaflet-vertex-icon', - }, - - // 🍂section Public methods - // The marker used to handle path vertex. You will usually interact with a `VertexMarker` - // instance when listening for events like `editable:vertex:ctrlclick`. - - initialize: function (latlng, latlngs, editor, options) { - // We don't use this._latlng, because on drag Leaflet replace it while - // we want to keep reference. - this.latlng = latlng - this.latlngs = latlngs - this.editor = editor - L.Marker.prototype.initialize.call(this, latlng, options) - this.options.icon = this.editor.tools.createVertexIcon({ - className: this.options.className, - }) - this.latlng.__vertex = this - this.connect() - this.setZIndexOffset(editor.tools._lastZIndex + 1) - }, - - connect: function () { - this.editor.editLayer.addLayer(this) - }, - - onAdd: function (map) { - L.Marker.prototype.onAdd.call(this, map) - this.on('drag', this.onDrag) - this.on('dragstart', this.onDragStart) - this.on('dragend', this.onDragEnd) - this.on('mouseup', this.onMouseup) - this.on('click', this.onClick) - this.on('contextmenu', this.onContextMenu) - this.on('mousedown touchstart', this.onMouseDown) - this.on('mouseover', this.onMouseOver) - this.on('mouseout', this.onMouseOut) - this.addMiddleMarkers() - }, - - onRemove: function (map) { - if (this.middleMarker) this.middleMarker.delete() - delete this.latlng.__vertex - this.off('drag', this.onDrag) - this.off('dragstart', this.onDragStart) - this.off('dragend', this.onDragEnd) - this.off('mouseup', this.onMouseup) - this.off('click', this.onClick) - this.off('contextmenu', this.onContextMenu) - this.off('mousedown touchstart', this.onMouseDown) - this.off('mouseover', this.onMouseOver) - this.off('mouseout', this.onMouseOut) - L.Marker.prototype.onRemove.call(this, map) - }, - - onDrag: function (e) { - e.vertex = this - this.editor.onVertexMarkerDrag(e) - const iconPos = L.DomUtil.getPosition(this._icon) - const latlng = this._map.layerPointToLatLng(iconPos) - this.latlng.update(latlng) - this._latlng = this.latlng // Push back to Leaflet our reference. - this.editor.refresh() - if (this.middleMarker) this.middleMarker.updateLatLng() - const next = this.getNext() - if (next?.middleMarker) next.middleMarker.updateLatLng() - }, - - onDragStart: function (e) { - e.vertex = this - this.editor.onVertexMarkerDragStart(e) - }, - - onDragEnd: function (e) { - e.vertex = this - this.editor.onVertexMarkerDragEnd(e) - }, - - onClick: function (e) { - e.vertex = this - this.editor.onVertexMarkerClick(e) - }, - - onMouseup: function (e) { - L.DomEvent.stop(e) - e.vertex = this - this.editor.map.fire('mouseup', e) - }, - - onContextMenu: function (e) { - e.vertex = this - this.editor.onVertexMarkerContextMenu(e) - }, - - onMouseDown: function (e) { - e.vertex = this - this.editor.onVertexMarkerMouseDown(e) - }, - - onMouseOver: function (e) { - e.vertex = this - this.editor.onVertexMarkerMouseOver(e) - }, - - onMouseOut: function (e) { - e.vertex = this - this.editor.onVertexMarkerMouseOut(e) - }, - - // 🍂method delete() - // Delete a vertex and the related LatLng. - delete: function () { - const next = this.getNext() // Compute before changing latlng - this.latlngs.splice(this.getIndex(), 1) - this.editor.editLayer.removeLayer(this) - this.editor.onVertexDeleted({ latlng: this.latlng, vertex: this }) - if (!this.latlngs.length) this.editor.deleteShape(this.latlngs) - if (next) next.resetMiddleMarker() - this.editor.refresh() - }, - - // 🍂method getIndex(): int - // Get the index of the current vertex among others of the same LatLngs group. - getIndex: function () { - return this.latlngs.indexOf(this.latlng) - }, - - // 🍂method getLastIndex(): int - // Get last vertex index of the LatLngs group of the current vertex. - getLastIndex: function () { - return this.latlngs.length - 1 - }, - - // 🍂method getPrevious(): VertexMarker - // Get the previous VertexMarker in the same LatLngs group. - getPrevious: function () { - if (this.latlngs.length < 2) return - const index = this.getIndex() - let previousIndex = index - 1 - if (index === 0 && this.editor.CLOSED) previousIndex = this.getLastIndex() - const previous = this.latlngs[previousIndex] - if (previous) return previous.__vertex - }, - - // 🍂method getNext(): VertexMarker - // Get the next VertexMarker in the same LatLngs group. - getNext: function () { - if (this.latlngs.length < 2) return - const index = this.getIndex() - let nextIndex = index + 1 - if (index === this.getLastIndex() && this.editor.CLOSED) nextIndex = 0 - const next = this.latlngs[nextIndex] - if (next) return next.__vertex - }, - - addMiddleMarker: function (previous) { - if (!this.editor.hasMiddleMarkers()) return - previous = previous || this.getPrevious() - if (previous && !this.middleMarker) - this.middleMarker = this.editor.addMiddleMarker( - previous, - this, - this.latlngs, - this.editor - ) - }, - - addMiddleMarkers: function () { - if (!this.editor.hasMiddleMarkers()) return - const previous = this.getPrevious() - if (previous) this.addMiddleMarker(previous) - const next = this.getNext() - if (next) next.resetMiddleMarker() - }, - - resetMiddleMarker: function () { - if (this.middleMarker) this.middleMarker.delete() - this.addMiddleMarker() - }, - - // 🍂method split() - // Split the vertex LatLngs group at its index, if possible. - split: function () { - if (!this.editor.splitShape) return // Only for PolylineEditor - this.editor.splitShape(this.latlngs, this.getIndex()) - }, - - // 🍂method continue() - // Continue the vertex LatLngs from this vertex. Only active for first and last vertices of a Polyline. - continue: function () { - if (!this.editor.continueBackward) return // Only for PolylineEditor - const index = this.getIndex() - if (index === 0) this.editor.continueBackward(this.latlngs) - else if (index === this.getLastIndex()) this.editor.continueForward(this.latlngs) - }, - }) - - L.Editable.mergeOptions({ - // 🍂namespace Editable - // 🍂option vertexMarkerClass: class = VertexMarker - // Class to be used as vertex, for path editing. - vertexMarkerClass: L.Editable.VertexMarker, - }) - - L.Editable.MiddleMarker = L.Marker.extend({ - options: { - opacity: 0.5, - className: 'leaflet-div-icon leaflet-middle-icon', - draggable: true, - }, - - initialize: function (left, right, latlngs, editor, options) { - this.left = left - this.right = right - this.editor = editor - this.latlngs = latlngs - L.Marker.prototype.initialize.call(this, this.computeLatLng(), options) - this._opacity = this.options.opacity - this.options.icon = this.editor.tools.createVertexIcon({ - className: this.options.className, - }) - this.editor.editLayer.addLayer(this) - this.setVisibility() - }, - - setVisibility: function () { - const leftPoint = this._map.latLngToContainerPoint(this.left.latlng) - const rightPoint = this._map.latLngToContainerPoint(this.right.latlng) - const size = L.point(this.options.icon.options.iconSize) - if (leftPoint.distanceTo(rightPoint) < size.x * 3) this.hide() - else this.show() - }, - - show: function () { - this.setOpacity(this._opacity) - }, - - hide: function () { - this.setOpacity(0) - }, - - updateLatLng: function () { - this.setLatLng(this.computeLatLng()) - this.setVisibility() - }, - - computeLatLng: function () { - const leftPoint = this.editor.map.latLngToContainerPoint(this.left.latlng) - const rightPoint = this.editor.map.latLngToContainerPoint(this.right.latlng) - const y = (leftPoint.y + rightPoint.y) / 2 - const x = (leftPoint.x + rightPoint.x) / 2 - return this.editor.map.containerPointToLatLng([x, y]) - }, - - onAdd: function (map) { - L.Marker.prototype.onAdd.call(this, map) - L.DomEvent.on(this._icon, 'mousedown touchstart', this.onMouseDown, this) - map.on('zoomend', this.setVisibility, this) - }, - - onRemove: function (map) { - delete this.right.middleMarker - L.DomEvent.off(this._icon, 'mousedown touchstart', this.onMouseDown, this) - map.off('zoomend', this.setVisibility, this) - L.Marker.prototype.onRemove.call(this, map) - }, - - onMouseDown: function (e) { - const iconPos = L.DomUtil.getPosition(this._icon) - const latlng = this.editor.map.layerPointToLatLng(iconPos) - e = { - originalEvent: e, - latlng: latlng, - } - if (this.options.opacity === 0) return - L.Editable.makeCancellable(e) - this.editor.onMiddleMarkerMouseDown(e) - if (e._cancelled) return - this.latlngs.splice(this.index(), 0, e.latlng) - this.editor.refresh() - const icon = this._icon - const marker = this.editor.addVertexMarker(e.latlng, this.latlngs) - this.editor.onNewVertex(marker) - /* Hack to workaround browser not firing touchend when element is no more on DOM */ - const parent = marker._icon.parentNode - parent.removeChild(marker._icon) - marker._icon = icon - parent.appendChild(marker._icon) - marker._initIcon() - marker._initInteraction() - marker.setOpacity(1) - /* End hack */ - // Transfer ongoing dragging to real marker - L.Draggable._dragging = false - marker.dragging._draggable._onDown(e.originalEvent) - this.delete() - }, - - delete: function () { - this.editor.editLayer.removeLayer(this) - }, - - index: function () { - return this.latlngs.indexOf(this.right.latlng) - }, - }) - - L.Editable.mergeOptions({ - // 🍂namespace Editable - // 🍂option middleMarkerClass: class = VertexMarker - // Class to be used as middle vertex, pulled by the user to create a new point in the middle of a path. - middleMarkerClass: L.Editable.MiddleMarker, - }) - - // 🍂namespace Editable; 🍂class BaseEditor; 🍂aka L.Editable.BaseEditor - // When editing a feature (Marker, Polyline…), an editor is attached to it. This - // editor basically knows how to handle the edition. - L.Editable.BaseEditor = L.Handler.extend({ - initialize: function (map, feature, options) { - L.setOptions(this, options) - this.map = map - this.feature = feature - this.feature.editor = this - this.editLayer = new L.LayerGroup() - this.tools = this.options.editTools || map.editTools - }, - - // 🍂method enable(): this - // Set up the drawing tools for the feature to be editable. - addHooks: function () { - if (this.isConnected()) this.onFeatureAdd() - else this.feature.once('add', this.onFeatureAdd, this) - this.onEnable() - this.feature.on(this._getEvents(), this) - }, - - // 🍂method disable(): this - // Remove the drawing tools for the feature. - removeHooks: function () { - this.feature.off(this._getEvents(), this) - if (this.feature.dragging) this.feature.dragging.disable() - this.editLayer.clearLayers() - this.tools.editLayer.removeLayer(this.editLayer) - this.onDisable() - if (this._drawing) this.cancelDrawing() - }, - - // 🍂method drawing(): boolean - // Return true if any drawing action is ongoing with this editor. - drawing: function () { - return !!this._drawing - }, - - reset: () => {}, - - onFeatureAdd: function () { - this.tools.editLayer.addLayer(this.editLayer) - if (this.feature.dragging) this.feature.dragging.enable() - }, - - hasMiddleMarkers: function () { - return !this.options.skipMiddleMarkers && !this.tools.options.skipMiddleMarkers - }, - - fireAndForward: function (type, e) { - e = e || {} - e.layer = this.feature - this.feature.fire(type, e) - this.tools.fireAndForward(type, e) - }, - - onEnable: function () { - // 🍂namespace Editable - // 🍂event editable:enable: Event - // Fired when an existing feature is ready to be edited. - this.fireAndForward('editable:enable') - }, - - onDisable: function () { - // 🍂namespace Editable - // 🍂event editable:disable: Event - // Fired when an existing feature is not ready anymore to be edited. - this.fireAndForward('editable:disable') - }, - - onEditing: function () { - // 🍂namespace Editable - // 🍂event editable:editing: Event - // Fired as soon as any change is made to the feature geometry. - this.fireAndForward('editable:editing') - }, - - onEdited: function () { - // 🍂namespace Editable - // 🍂event editable:edited: Event - // Fired after any change is made to the feature geometry. - this.fireAndForward('editable:edited') - }, - - onStartDrawing: function () { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:start: Event - // Fired when a feature is to be drawn. - this.fireAndForward('editable:drawing:start') - }, - - onEndDrawing: function () { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:end: Event - // Fired when a feature is not drawn anymore. - this.fireAndForward('editable:drawing:end') - }, - - onCancelDrawing: function () { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:cancel: Event - // Fired when user cancel drawing while a feature is being drawn. - this.fireAndForward('editable:drawing:cancel') - }, - - onCommitDrawing: function (e) { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:commit: Event - // Fired when user finish drawing a feature. - this.fireAndForward('editable:drawing:commit', e) - this.onEdited() - }, - - onDrawingMouseDown: function (e) { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:mousedown: Event - // Fired when user `mousedown` while drawing. - this.fireAndForward('editable:drawing:mousedown', e) - }, - - onDrawingMouseUp: function (e) { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:mouseup: Event - // Fired when user `mouseup` while drawing. - this.fireAndForward('editable:drawing:mouseup', e) - }, - - startDrawing: function () { - if (!this._drawing) this._drawing = L.Editable.FORWARD - this.tools.registerForDrawing(this) - this.onStartDrawing() - }, - - commitDrawing: function (e) { - this.onCommitDrawing(e) - this.endDrawing() - }, - - cancelDrawing: function () { - // If called during a vertex drag, the vertex will be removed before - // the mouseup fires on it. This is a workaround. Maybe better fix is - // To have L.Draggable reset it's status on disable (Leaflet side). - L.Draggable._dragging = false - this.onCancelDrawing() - this.endDrawing() - }, - - endDrawing: function () { - this._drawing = false - this.tools.unregisterForDrawing(this) - this.onEndDrawing() - }, - - onDrawingClick: function (e) { - if (!this.drawing()) return - L.Editable.makeCancellable(e) - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:click: CancelableEvent - // Fired when user `click` while drawing, before any internal action is being processed. - this.fireAndForward('editable:drawing:click', e) - if (e._cancelled) return - if (!this.isConnected()) this.connect(e) - this.processDrawingClick(e) - }, - - isConnected: function () { - return this.map.hasLayer(this.feature) - }, - - connect: function () { - this.tools.connectCreatedToMap(this.feature) - this.tools.editLayer.addLayer(this.editLayer) - }, - - onMove: function (e) { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:move: Event - // Fired when `move` mouse while drawing, while dragging a marker, and while dragging a vertex. - this.fireAndForward('editable:drawing:move', e) - }, - - onDrawingMouseMove: function (e) { - this.onMove(e) - }, - - _getEvents: function () { - return { - dragstart: this.onDragStart, - drag: this.onDrag, - dragend: this.onDragEnd, - remove: this.disable, - } - }, - - onDragStart: function (e) { - this.onEditing() - // 🍂namespace Editable - // 🍂event editable:dragstart: Event - // Fired before a path feature is dragged. - this.fireAndForward('editable:dragstart', e) - }, - - onDrag: function (e) { - this.onMove(e) - // 🍂namespace Editable - // 🍂event editable:drag: Event - // Fired when a path feature is being dragged. - this.fireAndForward('editable:drag', e) - }, - - onDragEnd: function (e) { - // 🍂namespace Editable - // 🍂event editable:dragend: Event - // Fired after a path feature has been dragged. - this.fireAndForward('editable:dragend', e) - this.onEdited() - }, - }) - - // 🍂namespace Editable; 🍂class MarkerEditor; 🍂aka L.Editable.MarkerEditor - // 🍂inherits BaseEditor - // Editor for Marker. - L.Editable.MarkerEditor = L.Editable.BaseEditor.extend({ - onDrawingMouseMove: function (e) { - L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e) - if (this._drawing) this.feature.setLatLng(e.latlng) - }, - - processDrawingClick: function (e) { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:clicked: Event - // Fired when user `click` while drawing, after all internal actions. - this.fireAndForward('editable:drawing:clicked', e) - this.commitDrawing(e) - }, - - connect: function (e) { - // On touch, the latlng has not been updated because there is - // no mousemove. - if (e) this.feature._latlng = e.latlng - L.Editable.BaseEditor.prototype.connect.call(this, e) - }, - }) - - // 🍂namespace Editable; 🍂class CircleMarkerEditor; 🍂aka L.Editable.CircleMarkerEditor - // 🍂inherits BaseEditor - // Editor for CircleMarker. - L.Editable.CircleMarkerEditor = L.Editable.BaseEditor.extend({ - onDrawingMouseMove: function (e) { - L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e) - if (this._drawing) this.feature.setLatLng(e.latlng) - }, - - processDrawingClick: function (e) { - // 🍂namespace Editable - // 🍂section Drawing events - // 🍂event editable:drawing:clicked: Event - // Fired when user `click` while drawing, after all internal actions. - this.fireAndForward('editable:drawing:clicked', e) - this.commitDrawing(e) - }, - - connect: function (e) { - // On touch, the latlng has not been updated because there is - // no mousemove. - if (e) this.feature._latlng = e.latlng - L.Editable.BaseEditor.prototype.connect.call(this, e) - }, - }) - - // 🍂namespace Editable; 🍂class PathEditor; 🍂aka L.Editable.PathEditor - // 🍂inherits BaseEditor - // Base class for all path editors. - L.Editable.PathEditor = L.Editable.BaseEditor.extend({ - CLOSED: false, - MIN_VERTEX: 2, - - addHooks: function () { - L.Editable.BaseEditor.prototype.addHooks.call(this) - if (this.feature) { - this.initVertexMarkers() - this.map.on('moveend', this.onMoveEnd, this) - } - return this - }, - - removeHooks: function () { - L.Editable.BaseEditor.prototype.removeHooks.call(this) - if (this.feature) { - this.map.off('moveend', this.onMoveEnd, this) - } - }, - - onMoveEnd: function () { - this.initVertexMarkers() - }, - - initVertexMarkers: function (latlngs) { - if (!this.enabled()) return - latlngs = latlngs || this.getLatLngs() - if (isFlat(latlngs)) { - this.addVertexMarkers(latlngs) - } else { - for (const member of latlngs) { - this.initVertexMarkers(member) - } - } - }, - - getLatLngs: function () { - return this.feature.getLatLngs() - }, - - // 🍂method reset() - // Rebuild edit elements (Vertex, MiddleMarker, etc.). - reset: function () { - this.editLayer.clearLayers() - this.initVertexMarkers() - }, - - addVertexMarker: function (latlng, latlngs) { - if (latlng.__vertex) { - latlng.__vertex.connect() - return latlng.__vertex - } - return new this.tools.options.vertexMarkerClass(latlng, latlngs, this) - }, - - onNewVertex: function (vertex) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:new: VertexEvent - // Fired when a new vertex is created. - this.fireAndForward('editable:vertex:new', { - latlng: vertex.latlng, - vertex: vertex, - }) - }, - - addVertexMarkers: function (latlngs) { - const bounds = this.map.getBounds() - for (const latlng of latlngs) { - if (!bounds.contains(latlng)) continue - this.addVertexMarker(latlng, latlngs) - } - }, - - refreshVertexMarkers: function (latlngs) { - latlngs = latlngs || this.getDefaultLatLngs() - for (const latlng of latlngs) { - latlng.__vertex.update() - } - }, - - addMiddleMarker: function (left, right, latlngs) { - return new this.tools.options.middleMarkerClass(left, right, latlngs, this) - }, - - onVertexMarkerClick: function (e) { - L.Editable.makeCancellable(e) - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:click: CancelableVertexEvent - // Fired when a `click` is issued on a vertex, before any internal action is being processed. - this.fireAndForward('editable:vertex:click', e) - if (e._cancelled) return - if (this.tools.drawing() && this.tools._drawingEditor !== this) return - const index = e.vertex.getIndex() - let commit - if (e.originalEvent.ctrlKey) { - this.onVertexMarkerCtrlClick(e) - } else if (e.originalEvent.altKey) { - this.onVertexMarkerAltClick(e) - } else if (e.originalEvent.shiftKey) { - this.onVertexMarkerShiftClick(e) - } else if (e.originalEvent.metaKey) { - this.onVertexMarkerMetaKeyClick(e) - } else if ( - index === e.vertex.getLastIndex() && - this._drawing === L.Editable.FORWARD - ) { - if (index >= this.MIN_VERTEX - 1) commit = true - } else if ( - index === 0 && - this._drawing === L.Editable.BACKWARD && - this._drawnLatLngs.length >= this.MIN_VERTEX - ) { - commit = true - } else if ( - index === 0 && - this._drawing === L.Editable.FORWARD && - this._drawnLatLngs.length >= this.MIN_VERTEX && - this.CLOSED - ) { - commit = true // Allow to close on first point also for polygons - } else { - this.onVertexRawMarkerClick(e) - } - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:clicked: VertexEvent - // Fired when a `click` is issued on a vertex, after all internal actions. - this.fireAndForward('editable:vertex:clicked', e) - if (commit) this.commitDrawing(e) - }, - - onVertexRawMarkerClick: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:rawclick: CancelableVertexEvent - // Fired when a `click` is issued on a vertex without any special key and without being in drawing mode. - this.fireAndForward('editable:vertex:rawclick', e) - if (e._cancelled) return - if (!this.vertexCanBeDeleted(e.vertex)) return - e.vertex.delete() - }, - - vertexCanBeDeleted: function (vertex) { - return vertex.latlngs.length > this.MIN_VERTEX - }, - - onVertexDeleted: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:deleted: VertexEvent - // Fired after a vertex has been deleted by user. - this.fireAndForward('editable:vertex:deleted', e) - }, - - onVertexMarkerCtrlClick: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:ctrlclick: VertexEvent - // Fired when a `click` with `ctrlKey` is issued on a vertex. - this.fireAndForward('editable:vertex:ctrlclick', e) - }, - - onVertexMarkerShiftClick: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:shiftclick: VertexEvent - // Fired when a `click` with `shiftKey` is issued on a vertex. - this.fireAndForward('editable:vertex:shiftclick', e) - }, - - onVertexMarkerMetaKeyClick: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:metakeyclick: VertexEvent - // Fired when a `click` with `metaKey` is issued on a vertex. - this.fireAndForward('editable:vertex:metakeyclick', e) - }, - - onVertexMarkerAltClick: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:altclick: VertexEvent - // Fired when a `click` with `altKey` is issued on a vertex. - this.fireAndForward('editable:vertex:altclick', e) - }, - - onVertexMarkerContextMenu: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:contextmenu: VertexEvent - // Fired when a `contextmenu` is issued on a vertex. - this.fireAndForward('editable:vertex:contextmenu', e) - }, - - onVertexMarkerMouseDown: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:mousedown: VertexEvent - // Fired when user `mousedown` a vertex. - this.fireAndForward('editable:vertex:mousedown', e) - }, - - onVertexMarkerMouseOver: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:mouseover: VertexEvent - // Fired when a user's mouse enters the vertex - this.fireAndForward('editable:vertex:mouseover', e) - }, - - onVertexMarkerMouseOut: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:mouseout: VertexEvent - // Fired when a user's mouse leaves the vertex - this.fireAndForward('editable:vertex:mouseout', e) - }, - - onMiddleMarkerMouseDown: function (e) { - // 🍂namespace Editable - // 🍂section MiddleMarker events - // 🍂event editable:middlemarker:mousedown: VertexEvent - // Fired when user `mousedown` a middle marker. - this.fireAndForward('editable:middlemarker:mousedown', e) - }, - - onVertexMarkerDrag: function (e) { - this.onMove(e) - if (this.feature._bounds) this.extendBounds(e) - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:drag: VertexEvent - // Fired when a vertex is dragged by user. - this.fireAndForward('editable:vertex:drag', e) - }, - - onVertexMarkerDragStart: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:dragstart: VertexEvent - // Fired before a vertex is dragged by user. - this.fireAndForward('editable:vertex:dragstart', e) - }, - - onVertexMarkerDragEnd: function (e) { - // 🍂namespace Editable - // 🍂section Vertex events - // 🍂event editable:vertex:dragend: VertexEvent - // Fired after a vertex is dragged by user. - this.fireAndForward('editable:vertex:dragend', e) - this.onEdited() - }, - - setDrawnLatLngs: function (latlngs) { - this._drawnLatLngs = latlngs || this.getDefaultLatLngs() - }, - - startDrawing: function () { - if (!this._drawnLatLngs) this.setDrawnLatLngs() - L.Editable.BaseEditor.prototype.startDrawing.call(this) - }, - - startDrawingForward: function () { - this.startDrawing() - }, - - endDrawing: function () { - this.tools.detachForwardLineGuide() - this.tools.detachBackwardLineGuide() - if (this._drawnLatLngs && this._drawnLatLngs.length < this.MIN_VERTEX) - this.deleteShape(this._drawnLatLngs) - L.Editable.BaseEditor.prototype.endDrawing.call(this) - delete this._drawnLatLngs - }, - - addLatLng: function (latlng) { - if (this._drawing === L.Editable.FORWARD) this._drawnLatLngs.push(latlng) - else this._drawnLatLngs.unshift(latlng) - this.feature._bounds.extend(latlng) - const vertex = this.addVertexMarker(latlng, this._drawnLatLngs) - this.onNewVertex(vertex) - this.refresh() - }, - - newPointForward: function (latlng) { - this.addLatLng(latlng) - this.tools.attachForwardLineGuide() - this.tools.anchorForwardLineGuide(latlng) - }, - - newPointBackward: function (latlng) { - this.addLatLng(latlng) - this.tools.anchorBackwardLineGuide(latlng) - }, - - // 🍂namespace PathEditor - // 🍂method push() - // Programmatically add a point while drawing. - push: function (latlng) { - if (!latlng) - return console.error( - 'L.Editable.PathEditor.push expect a valid latlng as parameter' - ) - if (this._drawing === L.Editable.FORWARD) this.newPointForward(latlng) - else this.newPointBackward(latlng) - }, - - removeLatLng: function (latlng) { - latlng.__vertex.delete() - this.refresh() - }, - - // 🍂method pop(): L.LatLng or null - // Programmatically remove last point (if any) while drawing. - pop: function () { - if (this._drawnLatLngs.length <= 1) return - let latlng - if (this._drawing === L.Editable.FORWARD) { - latlng = this._drawnLatLngs[this._drawnLatLngs.length - 1] - } else { - latlng = this._drawnLatLngs[0] - } - this.removeLatLng(latlng) - if (this._drawing === L.Editable.FORWARD) { - this.tools.anchorForwardLineGuide( - this._drawnLatLngs[this._drawnLatLngs.length - 1] - ) - } else { - this.tools.anchorForwardLineGuide(this._drawnLatLngs[0]) - } - return latlng - }, - - processDrawingClick: function (e) { - if (e.vertex && e.vertex.editor === this) return - if (this._drawing === L.Editable.FORWARD) this.newPointForward(e.latlng) - else this.newPointBackward(e.latlng) - this.fireAndForward('editable:drawing:clicked', e) - }, - - onDrawingMouseMove: function (e) { - L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e) - if (this._drawing) { - this.tools.moveForwardLineGuide(e.latlng) - this.tools.moveBackwardLineGuide(e.latlng) - } - }, - - refresh: function () { - this.feature.redraw() - this.onEditing() - }, - - // 🍂namespace PathEditor - // 🍂method newShape(latlng?: L.LatLng) - // Add a new shape (Polyline, Polygon) in a multi, and setup up drawing tools to draw it; - // if optional `latlng` is given, start a path at this point. - newShape: function (latlng) { - const shape = this.addNewEmptyShape() - if (!shape) return - this.setDrawnLatLngs(shape[0] || shape) // Polygon or polyline - this.startDrawingForward() - // 🍂namespace Editable - // 🍂section Shape events - // 🍂event editable:shape:new: ShapeEvent - // Fired when a new shape is created in a multi (Polygon or Polyline). - this.fireAndForward('editable:shape:new', { shape: shape }) - if (latlng) this.newPointForward(latlng) - }, - - deleteShape: function (shape, latlngs) { - const e = { shape: shape } - L.Editable.makeCancellable(e) - // 🍂namespace Editable - // 🍂section Shape events - // 🍂event editable:shape:delete: CancelableShapeEvent - // Fired before a new shape is deleted in a multi (Polygon or Polyline). - this.fireAndForward('editable:shape:delete', e) - if (e._cancelled) return - shape = this._deleteShape(shape, latlngs) - if (this.ensureNotFlat) this.ensureNotFlat() // Polygon. - this.feature.setLatLngs(this.getLatLngs()) // Force bounds reset. - this.refresh() - this.reset() - // 🍂namespace Editable - // 🍂section Shape events - // 🍂event editable:shape:deleted: ShapeEvent - // Fired after a new shape is deleted in a multi (Polygon or Polyline). - this.fireAndForward('editable:shape:deleted', { shape: shape }) - this.onEdited() - return shape - }, - - _deleteShape: function (shape, latlngs) { - latlngs = latlngs || this.getLatLngs() - if (!latlngs.length) return - const inplaceDelete = (latlngs, shape) => { - // Called when deleting a flat latlngs - return latlngs.splice(0, Number.MAX_VALUE) - } - const spliceDelete = (latlngs, shape) => { - // Called when removing a latlngs inside an array - latlngs.splice(latlngs.indexOf(shape), 1) - if (!latlngs.length) this._deleteShape(latlngs) - return shape - } - if (latlngs === shape) return inplaceDelete(latlngs, shape) - for (const member of latlngs) { - if (member === shape) return spliceDelete(latlngs, shape) - if (member.indexOf(shape) !== -1) return spliceDelete(member, shape) - } - }, - - // 🍂namespace PathEditor - // 🍂method deleteShapeAt(latlng: L.LatLng): Array - // Remove a path shape at the given `latlng`. - deleteShapeAt: function (latlng) { - const shape = this.feature.shapeAt(latlng) - if (shape) return this.deleteShape(shape) - }, - - // 🍂method appendShape(shape: Array) - // Append a new shape to the Polygon or Polyline. - appendShape: function (shape) { - this.insertShape(shape) - }, - - // 🍂method prependShape(shape: Array) - // Prepend a new shape to the Polygon or Polyline. - prependShape: function (shape) { - this.insertShape(shape, 0) - }, - - // 🍂method insertShape(shape: Array, index: int) - // Insert a new shape to the Polygon or Polyline at given index (default is to append). - insertShape: function (shape, index) { - this.ensureMulti() - shape = this.formatShape(shape) - if (index === undefined) index = this.feature._latlngs.length - this.feature._latlngs.splice(index, 0, shape) - this.feature.redraw() - if (this._enabled) this.reset() - }, - - extendBounds: function (e) { - this.feature._bounds.extend(e.vertex.latlng) - }, - - onDragStart: function (e) { - this.editLayer.clearLayers() - L.Editable.BaseEditor.prototype.onDragStart.call(this, e) - }, - - onDragEnd: function (e) { - this.initVertexMarkers() - L.Editable.BaseEditor.prototype.onDragEnd.call(this, e) - }, - }) - - // 🍂namespace Editable; 🍂class PolylineEditor; 🍂aka L.Editable.PolylineEditor - // 🍂inherits PathEditor - L.Editable.PolylineEditor = L.Editable.PathEditor.extend({ - startDrawingBackward: function () { - this._drawing = L.Editable.BACKWARD - this.startDrawing() - }, - - // 🍂method continueBackward(latlngs?: Array) - // Set up drawing tools to continue the line backward. - continueBackward: function (latlngs) { - if (this.drawing()) return - latlngs = latlngs || this.getDefaultLatLngs() - this.setDrawnLatLngs(latlngs) - if (latlngs.length > 0) { - this.tools.attachBackwardLineGuide() - this.tools.anchorBackwardLineGuide(latlngs[0]) - } - this.startDrawingBackward() - }, - - // 🍂method continueForward(latlngs?: Array) - // Set up drawing tools to continue the line forward. - continueForward: function (latlngs) { - if (this.drawing()) return - latlngs = latlngs || this.getDefaultLatLngs() - this.setDrawnLatLngs(latlngs) - if (latlngs.length > 0) { - this.tools.attachForwardLineGuide() - this.tools.anchorForwardLineGuide(latlngs[latlngs.length - 1]) - } - this.startDrawingForward() - }, - - getDefaultLatLngs: function (latlngs) { - latlngs = latlngs || this.feature._latlngs - if (!latlngs.length || latlngs[0] instanceof L.LatLng) return latlngs - return this.getDefaultLatLngs(latlngs[0]) - }, - - ensureMulti: function () { - if (this.feature._latlngs.length && isFlat(this.feature._latlngs)) { - this.feature._latlngs = [this.feature._latlngs] - } - }, - - addNewEmptyShape: function () { - if (this.feature._latlngs.length) { - const shape = [] - this.appendShape(shape) - return shape - } - return this.feature._latlngs - }, - - formatShape: function (shape) { - if (isFlat(shape)) return shape - if (shape[0]) return this.formatShape(shape[0]) - }, - - // 🍂method splitShape(latlngs?: Array, index: int) - // Split the given `latlngs` shape at index `index` and integrate new shape in instance `latlngs`. - splitShape: function (shape, index) { - if (!index || index >= shape.length - 1) return - this.ensureMulti() - const shapeIndex = this.feature._latlngs.indexOf(shape) - if (shapeIndex === -1) return - const first = shape.slice(0, index + 1) - const second = shape.slice(index) - // We deal with reference, we don't want twice the same latlng around. - second[0] = L.latLng(second[0].lat, second[0].lng, second[0].alt) - this.feature._latlngs.splice(shapeIndex, 1, first, second) - this.refresh() - this.reset() - this.onEdited() - }, - }) - - // 🍂namespace Editable; 🍂class PolygonEditor; 🍂aka L.Editable.PolygonEditor - // 🍂inherits PathEditor - L.Editable.PolygonEditor = L.Editable.PathEditor.extend({ - CLOSED: true, - MIN_VERTEX: 3, - - newPointForward: function (latlng) { - L.Editable.PathEditor.prototype.newPointForward.call(this, latlng) - if (!this.tools.backwardLineGuide._latlngs.length) - this.tools.anchorBackwardLineGuide(latlng) - if (this._drawnLatLngs.length === 2) this.tools.attachBackwardLineGuide() - }, - - addNewEmptyHole: function (latlng) { - this.ensureNotFlat() - const latlngs = this.feature.shapeAt(latlng) - if (!latlngs) return - const holes = [] - latlngs.push(holes) - return holes - }, - - // 🍂method newHole(latlng?: L.LatLng, index: int) - // Set up drawing tools for creating a new hole on the Polygon. If the `latlng` param is given, a first point is created. - newHole: function (latlng) { - const holes = this.addNewEmptyHole(latlng) - if (!holes) return - this.setDrawnLatLngs(holes) - this.startDrawingForward() - if (latlng) this.newPointForward(latlng) - }, - - addNewEmptyShape: function () { - if (this.feature._latlngs.length && this.feature._latlngs[0].length) { - const shape = [] - this.appendShape(shape) - return shape - } - return this.feature._latlngs - }, - - ensureMulti: function () { - if (this.feature._latlngs.length && isFlat(this.feature._latlngs[0])) { - this.feature._latlngs = [this.feature._latlngs] - } - }, - - ensureNotFlat: function () { - if (!this.feature._latlngs.length || isFlat(this.feature._latlngs)) - this.feature._latlngs = [this.feature._latlngs] - }, - - vertexCanBeDeleted: function (vertex) { - const parent = this.feature.parentShape(vertex.latlngs) - const idx = L.Util.indexOf(parent, vertex.latlngs) - if (idx > 0) return true // Holes can be totally deleted without removing the layer itself. - return L.Editable.PathEditor.prototype.vertexCanBeDeleted.call(this, vertex) - }, - - getDefaultLatLngs: function () { - if (!this.feature._latlngs.length) this.feature._latlngs.push([]) - return this.feature._latlngs[0] - }, - - formatShape: (shape) => { - // [[1, 2], [3, 4]] => must be nested - // [] => must be nested - // [[]] => is already nested - if (isFlat(shape) && (!shape[0] || shape[0].length !== 0)) return [shape] - return shape - }, - }) - - // 🍂namespace Editable; 🍂class RectangleEditor; 🍂aka L.Editable.RectangleEditor - // 🍂inherits PathEditor - L.Editable.RectangleEditor = L.Editable.PathEditor.extend({ - CLOSED: true, - MIN_VERTEX: 4, - - options: { - skipMiddleMarkers: true, - }, - - extendBounds: function (e) { - const index = e.vertex.getIndex() - const next = e.vertex.getNext() - const previous = e.vertex.getPrevious() - const oppositeIndex = (index + 2) % 4 - const opposite = e.vertex.latlngs[oppositeIndex] - const bounds = new L.LatLngBounds(e.latlng, opposite) - // Update latlngs by hand to preserve order. - previous.latlng.update([e.latlng.lat, opposite.lng]) - next.latlng.update([opposite.lat, e.latlng.lng]) - this.updateBounds(bounds) - this.refreshVertexMarkers() - }, - - onDrawingMouseDown: function (e) { - L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e) - this.connect() - const latlngs = this.getDefaultLatLngs() - // L.Polygon._convertLatLngs removes last latlng if it equals first point, - // which is the case here as all latlngs are [0, 0] - if (latlngs.length === 3) latlngs.push(e.latlng) - const bounds = new L.LatLngBounds(e.latlng, e.latlng) - this.updateBounds(bounds) - this.updateLatLngs(bounds) - this.refresh() - this.reset() - // Stop dragging map. - // L.Draggable has two workflows: - // - mousedown => mousemove => mouseup - // - touchstart => touchmove => touchend - // Problem: L.Map.Tap does not allow us to listen to touchstart, so we only - // can deal with mousedown, but then when in a touch device, we are dealing with - // simulated events (actually simulated by L.Map.Tap), which are no more taken - // into account by L.Draggable. - // Ref.: https://github.com/Leaflet/Leaflet.Editable/issues/103 - e.originalEvent._simulated = false - this.map.dragging._draggable._onUp(e.originalEvent) - // Now transfer ongoing drag action to the bottom right corner. - // Should we refine which corner will handle the drag according to - // drag direction? - latlngs[3].__vertex.dragging._draggable._onDown(e.originalEvent) - }, - - onDrawingMouseUp: function (e) { - this.commitDrawing(e) - e.originalEvent._simulated = false - L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e) - }, - - onDrawingMouseMove: function (e) { - e.originalEvent._simulated = false - L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e) - }, - - getDefaultLatLngs: function (latlngs) { - return latlngs || this.feature._latlngs[0] - }, - - updateBounds: function (bounds) { - this.feature._bounds = bounds - }, - - updateLatLngs: function (bounds) { - const latlngs = this.getDefaultLatLngs() - const newLatlngs = this.feature._boundsToLatLngs(bounds) - // Keep references. - for (let i = 0; i < latlngs.length; i++) { - latlngs[i].update(newLatlngs[i]) - } - }, - }) - - // 🍂namespace Editable; 🍂class CircleEditor; 🍂aka L.Editable.CircleEditor - // 🍂inherits PathEditor - L.Editable.CircleEditor = L.Editable.PathEditor.extend({ - MIN_VERTEX: 2, - - options: { - skipMiddleMarkers: true, - }, - - initialize: function (map, feature, options) { - L.Editable.PathEditor.prototype.initialize.call(this, map, feature, options) - this._resizeLatLng = this.computeResizeLatLng() - }, - - computeResizeLatLng: function () { - // While circle is not added to the map, _radius is not set. - const delta = - (this.feature._radius || this.feature._mRadius) * Math.cos(Math.PI / 4) - const point = this.map.project(this.feature._latlng) - return this.map.unproject([point.x + delta, point.y - delta]) - }, - - updateResizeLatLng: function () { - this._resizeLatLng.update(this.computeResizeLatLng()) - this._resizeLatLng.__vertex.update() - }, - - getLatLngs: function () { - return [this.feature._latlng, this._resizeLatLng] - }, - - getDefaultLatLngs: function () { - return this.getLatLngs() - }, - - onVertexMarkerDrag: function (e) { - if (e.vertex.getIndex() === 1) this.resize(e) - else this.updateResizeLatLng(e) - L.Editable.PathEditor.prototype.onVertexMarkerDrag.call(this, e) - }, - - resize: function (e) { - let radius - if (this.map.options.crs) { - radius = this.map.options.crs.distance(this.feature._latlng, e.latlng) - } else { - radius = this.feature._latlng.distanceTo(e.latlng) - } - this.feature.setRadius(radius) - }, - - onDrawingMouseDown: function (e) { - L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e) - this._resizeLatLng.update(e.latlng) - this.feature._latlng.update(e.latlng) - this.connect() - // Stop dragging map. - e.originalEvent._simulated = false - this.map.dragging._draggable._onUp(e.originalEvent) - // Now transfer ongoing drag action to the radius handler. - this._resizeLatLng.__vertex.dragging._draggable._onDown(e.originalEvent) - }, - - onDrawingMouseUp: function (e) { - this.commitDrawing(e) - e.originalEvent._simulated = false - L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e) - }, - - onDrawingMouseMove: function (e) { - e.originalEvent._simulated = false - L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e) - }, - - onDrag: function (e) { - L.Editable.PathEditor.prototype.onDrag.call(this, e) - this.feature.dragging.updateLatLng(this._resizeLatLng) - }, - }) - - // 🍂namespace Editable; 🍂class EditableMixin - // `EditableMixin` is included to `L.Polyline`, `L.Polygon`, `L.Rectangle`, `L.Circle` - // and `L.Marker`. It adds some methods to them. - // *When editing is enabled, the editor is accessible on the instance with the - // `editor` property.* - const EditableMixin = { - createEditor: function (map) { - map = map || this._map - const tools = this.options.editOptions?.editTools || map.editTools - if (!tools) throw Error('Unable to detect Editable instance.') - const Klass = this.options.editorClass || this.getEditorClass(tools) - return new Klass(map, this, this.options.editOptions) - }, - - // 🍂method enableEdit(map?: L.Map): this.editor - // Enable editing, by creating an editor if not existing, and then calling `enable` on it. - enableEdit: function (map) { - if (!this.editor) this.createEditor(map) - this.editor.enable() - return this.editor - }, - - // 🍂method editEnabled(): boolean - // Return true if current instance has an editor attached, and this editor is enabled. - editEnabled: function () { - return this.editor?.enabled() - }, - - // 🍂method disableEdit() - // Disable editing, also remove the editor property reference. - disableEdit: function () { - if (this.editor) { - this.editor.disable() - delete this.editor - } - }, - - // 🍂method toggleEdit() - // Enable or disable editing, according to current status. - toggleEdit: function () { - if (this.editEnabled()) this.disableEdit() - else this.enableEdit() - }, - - _onEditableAdd: function () { - if (this.editor) this.enableEdit() - }, - } - - const PolylineMixin = { - getEditorClass: (tools) => { - return tools?.options?.polylineEditorClass || L.Editable.PolylineEditor - }, - - shapeAt: function (latlng, latlngs) { - // We can have those cases: - // - latlngs are just a flat array of latlngs, use this - // - latlngs is an array of arrays of latlngs, loop over - let shape = null - latlngs = latlngs || this._latlngs - if (!latlngs.length) return shape - if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs - else { - for (const member of latlngs) { - if (this.isInLatLngs(latlng, member)) return member - } - } - return shape - }, - - isInLatLngs: function (l, latlngs) { - if (!latlngs) return false - let i - let k - let len - let part = [] - let p - const w = this._clickTolerance() - this._projectLatlngs(latlngs, part, this._pxBounds) - part = part[0] - p = this._map.latLngToLayerPoint(l) - - if (!this._pxBounds.contains(p)) { - return false - } - for (i = 1, len = part.length, k = 0; i < len; k = i++) { - if (L.LineUtil.pointToSegmentDistance(p, part[k], part[i]) <= w) { - return true - } - } - return false - }, - } - - const PolygonMixin = { - getEditorClass: (tools) => { - return tools?.options?.polygonEditorClass || L.Editable.PolygonEditor - }, - - shapeAt: function (latlng, latlngs) { - // We can have those cases: - // - latlngs are just a flat array of latlngs, use this - // - latlngs is an array of arrays of latlngs, this is a simple polygon (maybe with holes), use the first - // - latlngs is an array of arrays of arrays, this is a multi, loop over - let shape = null - latlngs = latlngs || this._latlngs - if (!latlngs.length) return shape - if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs - if (isFlat(latlngs[0]) && this.isInLatLngs(latlng, latlngs[0])) { - shape = latlngs - } else { - for (const member of latlngs) { - if (this.isInLatLngs(latlng, member[0])) return member - } - } - return shape - }, - - isInLatLngs: (l, latlngs) => { - let inside = false - let l1 - let l2 - let j - let k - let len2 - - for (j = 0, len2 = latlngs.length, k = len2 - 1; j < len2; k = j++) { - l1 = latlngs[j] - l2 = latlngs[k] - - if ( - l1.lat > l.lat !== l2.lat > l.lat && - l.lng < ((l2.lng - l1.lng) * (l.lat - l1.lat)) / (l2.lat - l1.lat) + l1.lng - ) { - inside = !inside - } - } - - return inside - }, - - parentShape: function (shape, latlngs) { - latlngs = latlngs || this._latlngs - if (!latlngs) return - let idx = L.Util.indexOf(latlngs, shape) - if (idx !== -1) return latlngs - for (const member of latlngs) { - idx = L.Util.indexOf(member, shape) - if (idx !== -1) return member - } - }, - } - - const MarkerMixin = { - getEditorClass: (tools) => { - return tools?.options?.markerEditorClass || L.Editable.MarkerEditor - }, - } - - const CircleMarkerMixin = { - getEditorClass: (tools) => { - return tools?.options?.circleMarkerEditorClass || L.Editable.CircleMarkerEditor - }, - } - - const RectangleMixin = { - getEditorClass: (tools) => { - return tools?.options?.rectangleEditorClass || L.Editable.RectangleEditor - }, - } - - const CircleMixin = { - getEditorClass: (tools) => { - return tools?.options?.circleEditorClass || L.Editable.CircleEditor - }, - } - - const keepEditable = function () { - // Make sure you can remove/readd an editable layer. - this.on('add', this._onEditableAdd) - } - - const isFlat = L.LineUtil.isFlat || L.LineUtil._flat || L.Polyline._flat // <=> 1.1 compat. - - if (L.Polyline) { - L.Polyline.include(EditableMixin) - L.Polyline.include(PolylineMixin) - L.Polyline.addInitHook(keepEditable) - } - if (L.Polygon) { - L.Polygon.include(EditableMixin) - L.Polygon.include(PolygonMixin) - } - if (L.Marker) { - L.Marker.include(EditableMixin) - L.Marker.include(MarkerMixin) - L.Marker.addInitHook(keepEditable) - } - if (L.CircleMarker) { - L.CircleMarker.include(EditableMixin) - L.CircleMarker.include(CircleMarkerMixin) - L.CircleMarker.addInitHook(keepEditable) - } - if (L.Rectangle) { - L.Rectangle.include(EditableMixin) - L.Rectangle.include(RectangleMixin) - } - if (L.Circle) { - L.Circle.include(EditableMixin) - L.Circle.include(CircleMixin) - } - - L.LatLng.prototype.update = function (latlng) { - latlng = L.latLng(latlng) - this.lat = latlng.lat - this.lng = latlng.lng - } + // 🍂miniclass CancelableEvent (Event objects) + // 🍂method cancel() + // Cancel any subsequent action. + + // 🍂miniclass VertexEvent (Event objects) + // 🍂property vertex: VertexMarker + // The vertex that fires the event. + + // 🍂miniclass ShapeEvent (Event objects) + // 🍂property shape: Array + // The shape (LatLngs array) subject of the action. + + // 🍂miniclass CancelableVertexEvent (Event objects) + // 🍂inherits VertexEvent + // 🍂inherits CancelableEvent + + // 🍂miniclass CancelableShapeEvent (Event objects) + // 🍂inherits ShapeEvent + // 🍂inherits CancelableEvent + + // 🍂miniclass LayerEvent (Event objects) + // 🍂property layer: object + // The Layer (Marker, Polyline…) subject of the action. + + // 🍂namespace Editable; 🍂class Editable; 🍂aka L.Editable + // Main edition handler. By default, it is attached to the map + // as `map.editTools` property. + // Leaflet.Editable is made to be fully extendable. You have three ways to customize + // the behaviour: using options, listening to events, or extending. + L.Editable = L.Evented.extend({ + statics: { + FORWARD: 1, + BACKWARD: -1, + }, + + options: { + // You can pass them when creating a map using the `editOptions` key. + // 🍂option zIndex: int = 1000 + // The default zIndex of the editing tools. + zIndex: 1000, + + // 🍂option polygonClass: class = L.Polygon + // Class to be used when creating a new Polygon. + polygonClass: L.Polygon, + + // 🍂option polylineClass: class = L.Polyline + // Class to be used when creating a new Polyline. + polylineClass: L.Polyline, + + // 🍂option markerClass: class = L.Marker + // Class to be used when creating a new Marker. + markerClass: L.Marker, + + // 🍂option circleMarkerClass: class = L.CircleMarker + // Class to be used when creating a new CircleMarker. + circleMarkerClass: L.CircleMarker, + + // 🍂option rectangleClass: class = L.Rectangle + // Class to be used when creating a new Rectangle. + rectangleClass: L.Rectangle, + + // 🍂option circleClass: class = L.Circle + // Class to be used when creating a new Circle. + circleClass: L.Circle, + + // 🍂option drawingCSSClass: string = 'leaflet-editable-drawing' + // CSS class to be added to the map container while drawing. + drawingCSSClass: 'leaflet-editable-drawing', + + // 🍂option drawingCursor: const = 'crosshair' + // Cursor mode set to the map while drawing. + drawingCursor: 'crosshair', + + // 🍂option editLayer: Layer = new L.LayerGroup() + // Layer used to store edit tools (vertex, line guide…). + editLayer: undefined, + + // 🍂option featuresLayer: Layer = new L.LayerGroup() + // Default layer used to store drawn features (Marker, Polyline…). + featuresLayer: undefined, + + // 🍂option polylineEditorClass: class = PolylineEditor + // Class to be used as Polyline editor. + polylineEditorClass: undefined, + + // 🍂option polygonEditorClass: class = PolygonEditor + // Class to be used as Polygon editor. + polygonEditorClass: undefined, + + // 🍂option markerEditorClass: class = MarkerEditor + // Class to be used as Marker editor. + markerEditorClass: undefined, + + // 🍂option circleMarkerEditorClass: class = CircleMarkerEditor + // Class to be used as CircleMarker editor. + circleMarkerEditorClass: undefined, + + // 🍂option rectangleEditorClass: class = RectangleEditor + // Class to be used as Rectangle editor. + rectangleEditorClass: undefined, + + // 🍂option circleEditorClass: class = CircleEditor + // Class to be used as Circle editor. + circleEditorClass: undefined, + + // 🍂option lineGuideOptions: hash = {} + // Options to be passed to the line guides. + lineGuideOptions: {}, + + // 🍂option skipMiddleMarkers: boolean = false + // Set this to true if you don't want middle markers. + skipMiddleMarkers: false, + }, + + initialize: function (map, options) { + L.setOptions(this, options); + this._lastZIndex = this.options.zIndex; + this.map = map; + this.editLayer = this.createEditLayer(); + this.featuresLayer = this.createFeaturesLayer(); + this.forwardLineGuide = this.createLineGuide(); + this.backwardLineGuide = this.createLineGuide(); + }, + + fireAndForward: function (type, e) { + e = e || {}; + e.editTools = this; + this.fire(type, e); + this.map.fire(type, e); + }, + + createLineGuide: function () { + const options = L.extend( + { dashArray: '5,10', weight: 1, interactive: false }, + this.options.lineGuideOptions + ); + return L.polyline([], options); + }, + + createVertexIcon: (options) => + L.Browser.mobile && L.Browser.touch + ? new L.Editable.TouchVertexIcon(options) + : new L.Editable.VertexIcon(options), + + createEditLayer: function () { + return this.options.editLayer || new L.LayerGroup().addTo(this.map); + }, + + createFeaturesLayer: function () { + return this.options.featuresLayer || new L.LayerGroup().addTo(this.map); + }, + + moveForwardLineGuide: function (latlng) { + if (this.forwardLineGuide._latlngs.length) { + this.forwardLineGuide._latlngs[1] = latlng; + this.forwardLineGuide._bounds.extend(latlng); + this.forwardLineGuide.redraw(); + } + }, + + moveBackwardLineGuide: function (latlng) { + if (this.backwardLineGuide._latlngs.length) { + this.backwardLineGuide._latlngs[1] = latlng; + this.backwardLineGuide._bounds.extend(latlng); + this.backwardLineGuide.redraw(); + } + }, + + anchorForwardLineGuide: function (latlng) { + this.forwardLineGuide._latlngs[0] = latlng; + this.forwardLineGuide._bounds.extend(latlng); + this.forwardLineGuide.redraw(); + }, + + anchorBackwardLineGuide: function (latlng) { + this.backwardLineGuide._latlngs[0] = latlng; + this.backwardLineGuide._bounds.extend(latlng); + this.backwardLineGuide.redraw(); + }, + + attachForwardLineGuide: function () { + this.editLayer.addLayer(this.forwardLineGuide); + }, + + attachBackwardLineGuide: function () { + this.editLayer.addLayer(this.backwardLineGuide); + }, + + detachForwardLineGuide: function () { + this.forwardLineGuide.setLatLngs([]); + this.editLayer.removeLayer(this.forwardLineGuide); + }, + + detachBackwardLineGuide: function () { + this.backwardLineGuide.setLatLngs([]); + this.editLayer.removeLayer(this.backwardLineGuide); + }, + + blockEvents: function () { + // Hack: force map not to listen to other layers events while drawing. + if (!this._oldTargets) { + this._oldTargets = this.map._targets; + this.map._targets = {}; + } + }, + + unblockEvents: function () { + if (this._oldTargets) { + // Reset, but keep targets created while drawing. + this.map._targets = L.extend(this.map._targets, this._oldTargets); + delete this._oldTargets; + } + }, + + registerForDrawing: function (editor) { + if (this._drawingEditor) this.unregisterForDrawing(this._drawingEditor); + this.blockEvents(); + editor.reset(); // Make sure editor tools still receive events. + this._drawingEditor = editor; + this.map.on('mousemove touchmove', editor.onDrawingMouseMove, editor); + this.map.on('mousedown', this.onMousedown, this); + this.map.on('mouseup', this.onMouseup, this); + L.DomUtil.addClass(this.map._container, this.options.drawingCSSClass); + this.defaultMapCursor = this.map._container.style.cursor; + this.map._container.style.cursor = this.options.drawingCursor; + }, + + unregisterForDrawing: function (editor) { + this.unblockEvents(); + L.DomUtil.removeClass(this.map._container, this.options.drawingCSSClass); + this.map._container.style.cursor = this.defaultMapCursor; + editor = editor || this._drawingEditor; + if (!editor) return; + this.map.off('mousemove touchmove', editor.onDrawingMouseMove, editor); + this.map.off('mousedown', this.onMousedown, this); + this.map.off('mouseup', this.onMouseup, this); + if (editor !== this._drawingEditor) return; + delete this._drawingEditor; + if (editor._drawing) editor.cancelDrawing(); + }, + + onMousedown: function (e) { + if (e.originalEvent.which != 1) return; + this._mouseDown = e; + this._drawingEditor.onDrawingMouseDown(e); + }, + + onMouseup: function (e) { + if (this._mouseDown) { + const editor = this._drawingEditor; + const mouseDown = this._mouseDown; + this._mouseDown = null; + editor.onDrawingMouseUp(e); + if (this._drawingEditor !== editor) return; // onDrawingMouseUp may call unregisterFromDrawing. + const origin = L.point(mouseDown.originalEvent.clientX, mouseDown.originalEvent.clientY); + const distance = L.point(e.originalEvent.clientX, e.originalEvent.clientY).distanceTo(origin); + if (Math.abs(distance) < 9 * (window.devicePixelRatio || 1)) this._drawingEditor.onDrawingClick(e); + } + }, + + // 🍂section Public methods + // You will generally access them by the `map.editTools` + // instance: + // + // `map.editTools.startPolyline();` + + // 🍂method drawing(): boolean + // Return true if any drawing action is ongoing. + drawing: function () { + return this._drawingEditor?.drawing(); + }, + + // 🍂method stopDrawing() + // When you need to stop any ongoing drawing, without needing to know which editor is active. + stopDrawing: function () { + this.unregisterForDrawing(); + }, + + // 🍂method commitDrawing() + // When you need to commit any ongoing drawing, without needing to know which editor is active. + commitDrawing: function (e) { + if (!this._drawingEditor) return; + this._drawingEditor.commitDrawing(e); + }, + + connectCreatedToMap: function (layer) { + return this.featuresLayer.addLayer(layer); + }, + + // 🍂method startPolyline(latlng: L.LatLng, options: hash): L.Polyline + // Start drawing a Polyline. If `latlng` is given, a first point will be added. In any case, continuing on user click. + // If `options` is given, it will be passed to the Polyline class constructor. + startPolyline: function (latlng, options) { + const line = this.createPolyline([], options); + line.enableEdit(this.map).newShape(latlng); + return line; + }, + + // 🍂method startPolygon(latlng: L.LatLng, options: hash): L.Polygon + // Start drawing a Polygon. If `latlng` is given, a first point will be added. In any case, continuing on user click. + // If `options` is given, it will be passed to the Polygon class constructor. + startPolygon: function (latlng, options) { + const polygon = this.createPolygon([], options); + polygon.enableEdit(this.map).newShape(latlng); + return polygon; + }, + + // 🍂method startMarker(latlng: L.LatLng, options: hash): L.Marker + // Start adding a Marker. If `latlng` is given, the Marker will be shown first at this point. + // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch). + // If `options` is given, it will be passed to the Marker class constructor. + startMarker: function (latlng, options) { + latlng = latlng || this.map.getCenter().clone(); + const marker = this.createMarker(latlng, options); + marker.enableEdit(this.map).startDrawing(); + return marker; + }, + + // 🍂method startCircleMarker(latlng: L.LatLng, options: hash): L.CircleMarker + // Start adding a CircleMarker. If `latlng` is given, the CircleMarker will be shown first at this point. + // In any case, it will follow the user mouse, and will have a final `latlng` on next click (or touch). + // If `options` is given, it will be passed to the CircleMarker class constructor. + startCircleMarker: function (latlng, options) { + latlng = latlng || this.map.getCenter().clone(); + const marker = this.createCircleMarker(latlng, options); + marker.enableEdit(this.map).startDrawing(); + return marker; + }, + + // 🍂method startRectangle(latlng: L.LatLng, options: hash): L.Rectangle + // Start drawing a Rectangle. If `latlng` is given, the Rectangle anchor will be added. In any case, continuing on user drag. + // If `options` is given, it will be passed to the Rectangle class constructor. + startRectangle: function (latlng, options) { + const corner = latlng || L.latLng([0, 0]); + const bounds = new L.LatLngBounds(corner, corner); + const rectangle = this.createRectangle(bounds, options); + rectangle.enableEdit(this.map).startDrawing(); + return rectangle; + }, + + // 🍂method startCircle(latlng: L.LatLng, options: hash): L.Circle + // Start drawing a Circle. If `latlng` is given, the Circle anchor will be added. In any case, continuing on user drag. + // If `options` is given, it will be passed to the Circle class constructor. + startCircle: function (latlng, options) { + latlng = latlng || this.map.getCenter().clone(); + const circle = this.createCircle(latlng, options); + circle.enableEdit(this.map).startDrawing(); + return circle; + }, + + startHole: (editor, latlng) => { + editor.newHole(latlng); + }, + + createLayer: function (klass, latlngs, options) { + options = L.Util.extend({ editOptions: { editTools: this } }, options); + const layer = new klass(latlngs, options); + // 🍂namespace Editable + // 🍂event editable:created: LayerEvent + // Fired when a new feature (Marker, Polyline…) is created. + this.fireAndForward('editable:created', { layer: layer }); + return layer; + }, + + createPolyline: function (latlngs, options) { + return this.createLayer(options?.polylineClass || this.options.polylineClass, latlngs, options); + }, + + createPolygon: function (latlngs, options) { + return this.createLayer(options?.polygonClass || this.options.polygonClass, latlngs, options); + }, + + createMarker: function (latlng, options) { + return this.createLayer(options?.markerClass || this.options.markerClass, latlng, options); + }, + + createCircleMarker: function (latlng, options) { + return this.createLayer(options?.circleMarkerClass || this.options.circleMarkerClass, latlng, options); + }, + + createRectangle: function (bounds, options) { + return this.createLayer(options?.rectangleClass || this.options.rectangleClass, bounds, options); + }, + + createCircle: function (latlng, options) { + return this.createLayer(options?.circleClass || this.options.circleClass, latlng, options); + }, + }); + + L.extend(L.Editable, { + makeCancellable: (e) => { + e.cancel = () => { + e._cancelled = true; + }; + }, + }); + + // 🍂namespace Map; 🍂class Map + // Leaflet.Editable add options and events to the `L.Map` object. + // See `Editable` events for the list of events fired on the Map. + // 🍂example + // + // ```js + // var map = L.map('map', { + // editable: true, + // editOptions: { + // … + // } + // }); + // ``` + // 🍂section Editable Map Options + L.Map.mergeOptions({ + // 🍂namespace Map + // 🍂section Map Options + // 🍂option editToolsClass: class = L.Editable + // Class to be used as vertex, for path editing. + editToolsClass: L.Editable, + + // 🍂option editable: boolean = false + // Whether to create a L.Editable instance at map init. + editable: false, + + // 🍂option editOptions: hash = {} + // Options to pass to L.Editable when instantiating. + editOptions: {}, + }); + + L.Map.addInitHook(function () { + this.whenReady(function () { + if (this.options.editable) { + this.editTools = new this.options.editToolsClass(this, this.options.editOptions); + } + }); + }); + + L.Editable.VertexIcon = L.DivIcon.extend({ + options: { + iconSize: new L.Point(8, 8), + }, + }); + + L.Editable.TouchVertexIcon = L.Editable.VertexIcon.extend({ + options: { + iconSize: new L.Point(20, 20), + }, + }); + + // 🍂namespace Editable; 🍂class VertexMarker; Handler for dragging path vertices. + L.Editable.VertexMarker = L.Marker.extend({ + options: { + draggable: true, + className: 'leaflet-div-icon leaflet-vertex-icon', + }, + + // 🍂section Public methods + // The marker used to handle path vertex. You will usually interact with a `VertexMarker` + // instance when listening for events like `editable:vertex:ctrlclick`. + + initialize: function (latlng, latlngs, editor, options) { + // We don't use this._latlng, because on drag Leaflet replace it while + // we want to keep reference. + this.latlng = latlng; + this.latlngs = latlngs; + this.editor = editor; + L.Marker.prototype.initialize.call(this, latlng, options); + this.options.icon = this.editor.tools.createVertexIcon({ + className: this.options.className, + }); + this.latlng.__vertex = this; + this.connect(); + this.setZIndexOffset(editor.tools._lastZIndex + 1); + }, + + connect: function () { + this.editor.editLayer.addLayer(this); + }, + + onAdd: function (map) { + L.Marker.prototype.onAdd.call(this, map); + this.on('drag', this.onDrag); + this.on('dragstart', this.onDragStart); + this.on('dragend', this.onDragEnd); + this.on('mouseup', this.onMouseup); + this.on('click', this.onClick); + this.on('contextmenu', this.onContextMenu); + this.on('mousedown touchstart', this.onMouseDown); + this.on('mouseover', this.onMouseOver); + this.on('mouseout', this.onMouseOut); + this.addMiddleMarkers(); + }, + + onRemove: function (map) { + if (this.middleMarker) this.middleMarker.delete(); + delete this.latlng.__vertex; + this.off('drag', this.onDrag); + this.off('dragstart', this.onDragStart); + this.off('dragend', this.onDragEnd); + this.off('mouseup', this.onMouseup); + this.off('click', this.onClick); + this.off('contextmenu', this.onContextMenu); + this.off('mousedown touchstart', this.onMouseDown); + this.off('mouseover', this.onMouseOver); + this.off('mouseout', this.onMouseOut); + L.Marker.prototype.onRemove.call(this, map); + }, + + onDrag: function (e) { + e.vertex = this; + this.editor.onVertexMarkerDrag(e); + const iconPos = L.DomUtil.getPosition(this._icon); + const latlng = this._map.layerPointToLatLng(iconPos); + this.latlng.update(latlng); + this._latlng = this.latlng; // Push back to Leaflet our reference. + this.editor.refresh(); + if (this.middleMarker) this.middleMarker.updateLatLng(); + const next = this.getNext(); + if (next?.middleMarker) next.middleMarker.updateLatLng(); + }, + + onDragStart: function (e) { + e.vertex = this; + this.editor.onVertexMarkerDragStart(e); + }, + + onDragEnd: function (e) { + e.vertex = this; + this.editor.onVertexMarkerDragEnd(e); + }, + + onClick: function (e) { + e.vertex = this; + this.editor.onVertexMarkerClick(e); + }, + + onMouseup: function (e) { + L.DomEvent.stop(e); + e.vertex = this; + this.editor.map.fire('mouseup', e); + }, + + onContextMenu: function (e) { + e.vertex = this; + this.editor.onVertexMarkerContextMenu(e); + }, + + onMouseDown: function (e) { + e.vertex = this; + this.editor.onVertexMarkerMouseDown(e); + }, + + onMouseOver: function (e) { + e.vertex = this; + this.editor.onVertexMarkerMouseOver(e); + }, + + onMouseOut: function (e) { + e.vertex = this; + this.editor.onVertexMarkerMouseOut(e); + }, + + // 🍂method delete() + // Delete a vertex and the related LatLng. + delete: function () { + const next = this.getNext(); // Compute before changing latlng + this.latlngs.splice(this.getIndex(), 1); + this.editor.editLayer.removeLayer(this); + this.editor.onVertexDeleted({ latlng: this.latlng, vertex: this }); + if (!this.latlngs.length) this.editor.deleteShape(this.latlngs); + if (next) next.resetMiddleMarker(); + this.editor.refresh(); + }, + + // 🍂method getIndex(): int + // Get the index of the current vertex among others of the same LatLngs group. + getIndex: function () { + return this.latlngs.indexOf(this.latlng); + }, + + // 🍂method getLastIndex(): int + // Get last vertex index of the LatLngs group of the current vertex. + getLastIndex: function () { + return this.latlngs.length - 1; + }, + + // 🍂method getPrevious(): VertexMarker + // Get the previous VertexMarker in the same LatLngs group. + getPrevious: function () { + if (this.latlngs.length < 2) return; + const index = this.getIndex(); + let previousIndex = index - 1; + if (index === 0 && this.editor.CLOSED) previousIndex = this.getLastIndex(); + const previous = this.latlngs[previousIndex]; + if (previous) return previous.__vertex; + }, + + // 🍂method getNext(): VertexMarker + // Get the next VertexMarker in the same LatLngs group. + getNext: function () { + if (this.latlngs.length < 2) return; + const index = this.getIndex(); + let nextIndex = index + 1; + if (index === this.getLastIndex() && this.editor.CLOSED) nextIndex = 0; + const next = this.latlngs[nextIndex]; + if (next) return next.__vertex; + }, + + addMiddleMarker: function (previous) { + if (!this.editor.hasMiddleMarkers()) return; + previous = previous || this.getPrevious(); + if (previous && !this.middleMarker) + this.middleMarker = this.editor.addMiddleMarker(previous, this, this.latlngs, this.editor); + }, + + addMiddleMarkers: function () { + if (!this.editor.hasMiddleMarkers()) return; + const previous = this.getPrevious(); + if (previous) this.addMiddleMarker(previous); + const next = this.getNext(); + if (next) next.resetMiddleMarker(); + }, + + resetMiddleMarker: function () { + if (this.middleMarker) this.middleMarker.delete(); + this.addMiddleMarker(); + }, + + // 🍂method split() + // Split the vertex LatLngs group at its index, if possible. + split: function () { + if (!this.editor.splitShape) return; // Only for PolylineEditor + this.editor.splitShape(this.latlngs, this.getIndex()); + }, + + // 🍂method continue() + // Continue the vertex LatLngs from this vertex. Only active for first and last vertices of a Polyline. + continue: function () { + if (!this.editor.continueBackward) return; // Only for PolylineEditor + const index = this.getIndex(); + if (index === 0) this.editor.continueBackward(this.latlngs); + else if (index === this.getLastIndex()) this.editor.continueForward(this.latlngs); + }, + }); + + L.Editable.mergeOptions({ + // 🍂namespace Editable + // 🍂option vertexMarkerClass: class = VertexMarker + // Class to be used as vertex, for path editing. + vertexMarkerClass: L.Editable.VertexMarker, + }); + + L.Editable.MiddleMarker = L.Marker.extend({ + options: { + opacity: 0.5, + className: 'leaflet-div-icon leaflet-middle-icon', + draggable: true, + }, + + initialize: function (left, right, latlngs, editor, options) { + this.left = left; + this.right = right; + this.editor = editor; + this.latlngs = latlngs; + L.Marker.prototype.initialize.call(this, this.computeLatLng(), options); + this._opacity = this.options.opacity; + this.options.icon = this.editor.tools.createVertexIcon({ + className: this.options.className, + }); + this.editor.editLayer.addLayer(this); + this.setVisibility(); + }, + + setVisibility: function () { + const leftPoint = this._map.latLngToContainerPoint(this.left.latlng); + const rightPoint = this._map.latLngToContainerPoint(this.right.latlng); + const size = L.point(this.options.icon.options.iconSize); + if (leftPoint.distanceTo(rightPoint) < size.x * 3) this.hide(); + else this.show(); + }, + + show: function () { + this.setOpacity(this._opacity); + }, + + hide: function () { + this.setOpacity(0); + }, + + updateLatLng: function () { + this.setLatLng(this.computeLatLng()); + this.setVisibility(); + }, + + computeLatLng: function () { + const leftPoint = this.editor.map.latLngToContainerPoint(this.left.latlng); + const rightPoint = this.editor.map.latLngToContainerPoint(this.right.latlng); + const y = (leftPoint.y + rightPoint.y) / 2; + const x = (leftPoint.x + rightPoint.x) / 2; + return this.editor.map.containerPointToLatLng([x, y]); + }, + + onAdd: function (map) { + L.Marker.prototype.onAdd.call(this, map); + L.DomEvent.on(this._icon, 'mousedown touchstart', this.onMouseDown, this); + map.on('zoomend', this.setVisibility, this); + }, + + onRemove: function (map) { + delete this.right.middleMarker; + L.DomEvent.off(this._icon, 'mousedown touchstart', this.onMouseDown, this); + map.off('zoomend', this.setVisibility, this); + L.Marker.prototype.onRemove.call(this, map); + }, + + onMouseDown: function (e) { + const iconPos = L.DomUtil.getPosition(this._icon); + const latlng = this.editor.map.layerPointToLatLng(iconPos); + e = { + originalEvent: e, + latlng: latlng, + }; + if (this.options.opacity === 0) return; + L.Editable.makeCancellable(e); + this.editor.onMiddleMarkerMouseDown(e); + if (e._cancelled) return; + this.latlngs.splice(this.index(), 0, e.latlng); + this.editor.refresh(); + const icon = this._icon; + const marker = this.editor.addVertexMarker(e.latlng, this.latlngs); + this.editor.onNewVertex(marker); + /* Hack to workaround browser not firing touchend when element is no more on DOM */ + const parent = marker._icon.parentNode; + parent.removeChild(marker._icon); + marker._icon = icon; + parent.appendChild(marker._icon); + marker._initIcon(); + marker._initInteraction(); + marker.setOpacity(1); + /* End hack */ + // Transfer ongoing dragging to real marker + L.Draggable._dragging = false; + marker.dragging._draggable._onDown(e.originalEvent); + this.delete(); + }, + + delete: function () { + this.editor.editLayer.removeLayer(this); + }, + + index: function () { + return this.latlngs.indexOf(this.right.latlng); + }, + }); + + L.Editable.mergeOptions({ + // 🍂namespace Editable + // 🍂option middleMarkerClass: class = VertexMarker + // Class to be used as middle vertex, pulled by the user to create a new point in the middle of a path. + middleMarkerClass: L.Editable.MiddleMarker, + }); + + // 🍂namespace Editable; 🍂class BaseEditor; 🍂aka L.Editable.BaseEditor + // When editing a feature (Marker, Polyline…), an editor is attached to it. This + // editor basically knows how to handle the edition. + L.Editable.BaseEditor = L.Handler.extend({ + initialize: function (map, feature, options) { + L.setOptions(this, options); + this.map = map; + this.feature = feature; + this.feature.editor = this; + this.editLayer = new L.LayerGroup(); + this.tools = this.options.editTools || map.editTools; + }, + + // 🍂method enable(): this + // Set up the drawing tools for the feature to be editable. + addHooks: function () { + if (this.isConnected()) this.onFeatureAdd(); + else this.feature.once('add', this.onFeatureAdd, this); + this.onEnable(); + this.feature.on(this._getEvents(), this); + }, + + // 🍂method disable(): this + // Remove the drawing tools for the feature. + removeHooks: function () { + this.feature.off(this._getEvents(), this); + if (this.feature.dragging) this.feature.dragging.disable(); + this.editLayer.clearLayers(); + this.tools.editLayer.removeLayer(this.editLayer); + this.onDisable(); + if (this._drawing) this.cancelDrawing(); + }, + + // 🍂method drawing(): boolean + // Return true if any drawing action is ongoing with this editor. + drawing: function () { + return !!this._drawing; + }, + + reset: () => {}, + + onFeatureAdd: function () { + this.tools.editLayer.addLayer(this.editLayer); + if (this.feature.dragging) this.feature.dragging.enable(); + }, + + hasMiddleMarkers: function () { + return !this.options.skipMiddleMarkers && !this.tools.options.skipMiddleMarkers; + }, + + fireAndForward: function (type, e) { + e = e || {}; + e.layer = this.feature; + this.feature.fire(type, e); + this.tools.fireAndForward(type, e); + }, + + onEnable: function () { + // 🍂namespace Editable + // 🍂event editable:enable: Event + // Fired when an existing feature is ready to be edited. + this.fireAndForward('editable:enable'); + }, + + onDisable: function () { + // 🍂namespace Editable + // 🍂event editable:disable: Event + // Fired when an existing feature is not ready anymore to be edited. + this.fireAndForward('editable:disable'); + }, + + onEditing: function () { + // 🍂namespace Editable + // 🍂event editable:editing: Event + // Fired as soon as any change is made to the feature geometry. + this.fireAndForward('editable:editing'); + }, + + onEdited: function () { + // 🍂namespace Editable + // 🍂event editable:edited: Event + // Fired after any change is made to the feature geometry. + this.fireAndForward('editable:edited'); + }, + + onStartDrawing: function () { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:start: Event + // Fired when a feature is to be drawn. + this.fireAndForward('editable:drawing:start'); + }, + + onEndDrawing: function () { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:end: Event + // Fired when a feature is not drawn anymore. + this.fireAndForward('editable:drawing:end'); + }, + + onCancelDrawing: function () { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:cancel: Event + // Fired when user cancel drawing while a feature is being drawn. + this.fireAndForward('editable:drawing:cancel'); + }, + + onCommitDrawing: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:commit: Event + // Fired when user finish drawing a feature. + this.fireAndForward('editable:drawing:commit', e); + this.onEdited(); + }, + + onDrawingMouseDown: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:mousedown: Event + // Fired when user `mousedown` while drawing. + this.fireAndForward('editable:drawing:mousedown', e); + }, + + onDrawingMouseUp: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:mouseup: Event + // Fired when user `mouseup` while drawing. + this.fireAndForward('editable:drawing:mouseup', e); + }, + + startDrawing: function () { + if (!this._drawing) this._drawing = L.Editable.FORWARD; + this.tools.registerForDrawing(this); + this.onStartDrawing(); + }, + + commitDrawing: function (e) { + this.onCommitDrawing(e); + this.endDrawing(); + }, + + cancelDrawing: function () { + // If called during a vertex drag, the vertex will be removed before + // the mouseup fires on it. This is a workaround. Maybe better fix is + // To have L.Draggable reset it's status on disable (Leaflet side). + L.Draggable._dragging = false; + this.onCancelDrawing(); + this.endDrawing(); + }, + + endDrawing: function () { + this._drawing = false; + this.tools.unregisterForDrawing(this); + this.onEndDrawing(); + }, + + onDrawingClick: function (e) { + if (!this.drawing()) return; + L.Editable.makeCancellable(e); + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:click: CancelableEvent + // Fired when user `click` while drawing, before any internal action is being processed. + this.fireAndForward('editable:drawing:click', e); + if (e._cancelled) return; + if (!this.isConnected()) this.connect(e); + this.processDrawingClick(e); + }, + + isConnected: function () { + return this.map.hasLayer(this.feature); + }, + + connect: function () { + this.tools.connectCreatedToMap(this.feature); + this.tools.editLayer.addLayer(this.editLayer); + }, + + onMove: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:move: Event + // Fired when `move` mouse while drawing, while dragging a marker, and while dragging a vertex. + this.fireAndForward('editable:drawing:move', e); + }, + + onDrawingMouseMove: function (e) { + this.onMove(e); + }, + + _getEvents: function () { + return { + dragstart: this.onDragStart, + drag: this.onDrag, + dragend: this.onDragEnd, + remove: this.disable, + }; + }, + + onDragStart: function (e) { + this.onEditing(); + // 🍂namespace Editable + // 🍂event editable:dragstart: Event + // Fired before a path feature is dragged. + this.fireAndForward('editable:dragstart', e); + }, + + onDrag: function (e) { + this.onMove(e); + // 🍂namespace Editable + // 🍂event editable:drag: Event + // Fired when a path feature is being dragged. + this.fireAndForward('editable:drag', e); + }, + + onDragEnd: function (e) { + // 🍂namespace Editable + // 🍂event editable:dragend: Event + // Fired after a path feature has been dragged. + this.fireAndForward('editable:dragend', e); + this.onEdited(); + }, + }); + + // 🍂namespace Editable; 🍂class MarkerEditor; 🍂aka L.Editable.MarkerEditor + // 🍂inherits BaseEditor + // Editor for Marker. + L.Editable.MarkerEditor = L.Editable.BaseEditor.extend({ + onDrawingMouseMove: function (e) { + L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e); + if (this._drawing) this.feature.setLatLng(e.latlng); + }, + + processDrawingClick: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:clicked: Event + // Fired when user `click` while drawing, after all internal actions. + this.fireAndForward('editable:drawing:clicked', e); + this.commitDrawing(e); + }, + + connect: function (e) { + // On touch, the latlng has not been updated because there is + // no mousemove. + if (e) this.feature._latlng = e.latlng; + L.Editable.BaseEditor.prototype.connect.call(this, e); + }, + }); + + // 🍂namespace Editable; 🍂class CircleMarkerEditor; 🍂aka L.Editable.CircleMarkerEditor + // 🍂inherits BaseEditor + // Editor for CircleMarker. + L.Editable.CircleMarkerEditor = L.Editable.BaseEditor.extend({ + onDrawingMouseMove: function (e) { + L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e); + if (this._drawing) this.feature.setLatLng(e.latlng); + }, + + processDrawingClick: function (e) { + // 🍂namespace Editable + // 🍂section Drawing events + // 🍂event editable:drawing:clicked: Event + // Fired when user `click` while drawing, after all internal actions. + this.fireAndForward('editable:drawing:clicked', e); + this.commitDrawing(e); + }, + + connect: function (e) { + // On touch, the latlng has not been updated because there is + // no mousemove. + if (e) this.feature._latlng = e.latlng; + L.Editable.BaseEditor.prototype.connect.call(this, e); + }, + }); + + // 🍂namespace Editable; 🍂class PathEditor; 🍂aka L.Editable.PathEditor + // 🍂inherits BaseEditor + // Base class for all path editors. + L.Editable.PathEditor = L.Editable.BaseEditor.extend({ + CLOSED: false, + MIN_VERTEX: 2, + + addHooks: function () { + L.Editable.BaseEditor.prototype.addHooks.call(this); + if (this.feature) { + this.initVertexMarkers(); + this.map.on('moveend', this.onMoveEnd, this); + } + return this; + }, + + removeHooks: function () { + L.Editable.BaseEditor.prototype.removeHooks.call(this); + if (this.feature) { + this.map.off('moveend', this.onMoveEnd, this); + } + }, + + onMoveEnd: function () { + this.initVertexMarkers(); + }, + + initVertexMarkers: function (latlngs) { + if (!this.enabled()) return; + latlngs = latlngs || this.getLatLngs(); + if (isFlat(latlngs)) { + this.addVertexMarkers(latlngs); + } else { + for (const member of latlngs) { + this.initVertexMarkers(member); + } + } + }, + + getLatLngs: function () { + return this.feature.getLatLngs(); + }, + + // 🍂method reset() + // Rebuild edit elements (Vertex, MiddleMarker, etc.). + reset: function () { + this.editLayer.clearLayers(); + this.initVertexMarkers(); + }, + + addVertexMarker: function (latlng, latlngs) { + if (latlng.__vertex) { + latlng.__vertex.connect(); + return latlng.__vertex; + } + return new this.tools.options.vertexMarkerClass(latlng, latlngs, this); + }, + + onNewVertex: function (vertex) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:new: VertexEvent + // Fired when a new vertex is created. + this.fireAndForward('editable:vertex:new', { + latlng: vertex.latlng, + vertex: vertex, + }); + }, + + addVertexMarkers: function (latlngs) { + const bounds = this.map.getBounds(); + for (const latlng of latlngs) { + if (!bounds.contains(latlng)) continue; + this.addVertexMarker(latlng, latlngs); + } + }, + + refreshVertexMarkers: function (latlngs) { + latlngs = latlngs || this.getDefaultLatLngs(); + for (const latlng of latlngs) { + latlng.__vertex.update(); + } + }, + + addMiddleMarker: function (left, right, latlngs) { + return new this.tools.options.middleMarkerClass(left, right, latlngs, this); + }, + + onVertexMarkerClick: function (e) { + L.Editable.makeCancellable(e); + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:click: CancelableVertexEvent + // Fired when a `click` is issued on a vertex, before any internal action is being processed. + this.fireAndForward('editable:vertex:click', e); + if (e._cancelled) return; + if (this.tools.drawing() && this.tools._drawingEditor !== this) return; + const index = e.vertex.getIndex(); + let commit; + if (e.originalEvent.ctrlKey) { + this.onVertexMarkerCtrlClick(e); + } else if (e.originalEvent.altKey) { + this.onVertexMarkerAltClick(e); + } else if (e.originalEvent.shiftKey) { + this.onVertexMarkerShiftClick(e); + } else if (e.originalEvent.metaKey) { + this.onVertexMarkerMetaKeyClick(e); + } else if (index === e.vertex.getLastIndex() && this._drawing === L.Editable.FORWARD) { + if (index >= this.MIN_VERTEX - 1) commit = true; + } else if ( + index === 0 && + this._drawing === L.Editable.BACKWARD && + this._drawnLatLngs.length >= this.MIN_VERTEX + ) { + commit = true; + } else if ( + index === 0 && + this._drawing === L.Editable.FORWARD && + this._drawnLatLngs.length >= this.MIN_VERTEX && + this.CLOSED + ) { + commit = true; // Allow to close on first point also for polygons + } else { + this.onVertexRawMarkerClick(e); + } + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:clicked: VertexEvent + // Fired when a `click` is issued on a vertex, after all internal actions. + this.fireAndForward('editable:vertex:clicked', e); + if (commit) this.commitDrawing(e); + }, + + onVertexRawMarkerClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:rawclick: CancelableVertexEvent + // Fired when a `click` is issued on a vertex without any special key and without being in drawing mode. + this.fireAndForward('editable:vertex:rawclick', e); + if (e._cancelled) return; + if (!this.vertexCanBeDeleted(e.vertex)) return; + e.vertex.delete(); + }, + + vertexCanBeDeleted: function (vertex) { + return vertex.latlngs.length > this.MIN_VERTEX; + }, + + onVertexDeleted: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:deleted: VertexEvent + // Fired after a vertex has been deleted by user. + this.fireAndForward('editable:vertex:deleted', e); + }, + + onVertexMarkerCtrlClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:ctrlclick: VertexEvent + // Fired when a `click` with `ctrlKey` is issued on a vertex. + this.fireAndForward('editable:vertex:ctrlclick', e); + }, + + onVertexMarkerShiftClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:shiftclick: VertexEvent + // Fired when a `click` with `shiftKey` is issued on a vertex. + this.fireAndForward('editable:vertex:shiftclick', e); + }, + + onVertexMarkerMetaKeyClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:metakeyclick: VertexEvent + // Fired when a `click` with `metaKey` is issued on a vertex. + this.fireAndForward('editable:vertex:metakeyclick', e); + }, + + onVertexMarkerAltClick: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:altclick: VertexEvent + // Fired when a `click` with `altKey` is issued on a vertex. + this.fireAndForward('editable:vertex:altclick', e); + }, + + onVertexMarkerContextMenu: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:contextmenu: VertexEvent + // Fired when a `contextmenu` is issued on a vertex. + this.fireAndForward('editable:vertex:contextmenu', e); + }, + + onVertexMarkerMouseDown: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:mousedown: VertexEvent + // Fired when user `mousedown` a vertex. + this.fireAndForward('editable:vertex:mousedown', e); + }, + + onVertexMarkerMouseOver: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:mouseover: VertexEvent + // Fired when a user's mouse enters the vertex + this.fireAndForward('editable:vertex:mouseover', e); + }, + + onVertexMarkerMouseOut: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:mouseout: VertexEvent + // Fired when a user's mouse leaves the vertex + this.fireAndForward('editable:vertex:mouseout', e); + }, + + onMiddleMarkerMouseDown: function (e) { + // 🍂namespace Editable + // 🍂section MiddleMarker events + // 🍂event editable:middlemarker:mousedown: VertexEvent + // Fired when user `mousedown` a middle marker. + this.fireAndForward('editable:middlemarker:mousedown', e); + }, + + onVertexMarkerDrag: function (e) { + this.onMove(e); + if (this.feature._bounds) this.extendBounds(e); + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:drag: VertexEvent + // Fired when a vertex is dragged by user. + this.fireAndForward('editable:vertex:drag', e); + }, + + onVertexMarkerDragStart: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:dragstart: VertexEvent + // Fired before a vertex is dragged by user. + this.fireAndForward('editable:vertex:dragstart', e); + }, + + onVertexMarkerDragEnd: function (e) { + // 🍂namespace Editable + // 🍂section Vertex events + // 🍂event editable:vertex:dragend: VertexEvent + // Fired after a vertex is dragged by user. + this.fireAndForward('editable:vertex:dragend', e); + this.onEdited(); + }, + + setDrawnLatLngs: function (latlngs) { + this._drawnLatLngs = latlngs || this.getDefaultLatLngs(); + }, + + startDrawing: function () { + if (!this._drawnLatLngs) this.setDrawnLatLngs(); + L.Editable.BaseEditor.prototype.startDrawing.call(this); + }, + + startDrawingForward: function () { + this.startDrawing(); + }, + + endDrawing: function () { + this.tools.detachForwardLineGuide(); + this.tools.detachBackwardLineGuide(); + if (this._drawnLatLngs && this._drawnLatLngs.length < this.MIN_VERTEX) this.deleteShape(this._drawnLatLngs); + L.Editable.BaseEditor.prototype.endDrawing.call(this); + delete this._drawnLatLngs; + }, + + addLatLng: function (latlng) { + if (this._drawing === L.Editable.FORWARD) this._drawnLatLngs.push(latlng); + else this._drawnLatLngs.unshift(latlng); + this.feature._bounds.extend(latlng); + const vertex = this.addVertexMarker(latlng, this._drawnLatLngs); + this.onNewVertex(vertex); + this.refresh(); + }, + + newPointForward: function (latlng) { + this.addLatLng(latlng); + this.tools.attachForwardLineGuide(); + this.tools.anchorForwardLineGuide(latlng); + }, + + newPointBackward: function (latlng) { + this.addLatLng(latlng); + this.tools.anchorBackwardLineGuide(latlng); + }, + + // 🍂namespace PathEditor + // 🍂method push() + // Programmatically add a point while drawing. + push: function (latlng) { + if (!latlng) return console.error('L.Editable.PathEditor.push expect a valid latlng as parameter'); + if (this._drawing === L.Editable.FORWARD) this.newPointForward(latlng); + else this.newPointBackward(latlng); + }, + + removeLatLng: function (latlng) { + latlng.__vertex.delete(); + this.refresh(); + }, + + // 🍂method pop(): L.LatLng or null + // Programmatically remove last point (if any) while drawing. + pop: function () { + if (this._drawnLatLngs.length <= 1) return; + let latlng; + if (this._drawing === L.Editable.FORWARD) { + latlng = this._drawnLatLngs[this._drawnLatLngs.length - 1]; + } else { + latlng = this._drawnLatLngs[0]; + } + this.removeLatLng(latlng); + if (this._drawing === L.Editable.FORWARD) { + this.tools.anchorForwardLineGuide(this._drawnLatLngs[this._drawnLatLngs.length - 1]); + } else { + this.tools.anchorForwardLineGuide(this._drawnLatLngs[0]); + } + return latlng; + }, + + processDrawingClick: function (e) { + if (e.vertex && e.vertex.editor === this) return; + if (this._drawing === L.Editable.FORWARD) this.newPointForward(e.latlng); + else this.newPointBackward(e.latlng); + this.fireAndForward('editable:drawing:clicked', e); + }, + + onDrawingMouseMove: function (e) { + L.Editable.BaseEditor.prototype.onDrawingMouseMove.call(this, e); + if (this._drawing) { + this.tools.moveForwardLineGuide(e.latlng); + this.tools.moveBackwardLineGuide(e.latlng); + } + }, + + refresh: function () { + this.feature.redraw(); + this.onEditing(); + }, + + // 🍂namespace PathEditor + // 🍂method newShape(latlng?: L.LatLng) + // Add a new shape (Polyline, Polygon) in a multi, and setup up drawing tools to draw it; + // if optional `latlng` is given, start a path at this point. + newShape: function (latlng) { + const shape = this.addNewEmptyShape(); + if (!shape) return; + this.setDrawnLatLngs(shape[0] || shape); // Polygon or polyline + this.startDrawingForward(); + // 🍂namespace Editable + // 🍂section Shape events + // 🍂event editable:shape:new: ShapeEvent + // Fired when a new shape is created in a multi (Polygon or Polyline). + this.fireAndForward('editable:shape:new', { shape: shape }); + if (latlng) this.newPointForward(latlng); + }, + + deleteShape: function (shape, latlngs) { + const e = { shape: shape }; + L.Editable.makeCancellable(e); + // 🍂namespace Editable + // 🍂section Shape events + // 🍂event editable:shape:delete: CancelableShapeEvent + // Fired before a new shape is deleted in a multi (Polygon or Polyline). + this.fireAndForward('editable:shape:delete', e); + if (e._cancelled) return; + shape = this._deleteShape(shape, latlngs); + if (this.ensureNotFlat) this.ensureNotFlat(); // Polygon. + this.feature.setLatLngs(this.getLatLngs()); // Force bounds reset. + this.refresh(); + this.reset(); + // 🍂namespace Editable + // 🍂section Shape events + // 🍂event editable:shape:deleted: ShapeEvent + // Fired after a new shape is deleted in a multi (Polygon or Polyline). + this.fireAndForward('editable:shape:deleted', { shape: shape }); + this.onEdited(); + return shape; + }, + + _deleteShape: function (shape, latlngs) { + latlngs = latlngs || this.getLatLngs(); + if (!latlngs.length) return; + const inplaceDelete = (latlngs, shape) => { + // Called when deleting a flat latlngs + return latlngs.splice(0, Number.MAX_VALUE); + }; + const spliceDelete = (latlngs, shape) => { + // Called when removing a latlngs inside an array + latlngs.splice(latlngs.indexOf(shape), 1); + if (!latlngs.length) this._deleteShape(latlngs); + return shape; + }; + if (latlngs === shape) return inplaceDelete(latlngs, shape); + for (const member of latlngs) { + if (member === shape) return spliceDelete(latlngs, shape); + if (member.indexOf(shape) !== -1) return spliceDelete(member, shape); + } + }, + + // 🍂namespace PathEditor + // 🍂method deleteShapeAt(latlng: L.LatLng): Array + // Remove a path shape at the given `latlng`. + deleteShapeAt: function (latlng) { + const shape = this.feature.shapeAt(latlng); + if (shape) return this.deleteShape(shape); + }, + + // 🍂method appendShape(shape: Array) + // Append a new shape to the Polygon or Polyline. + appendShape: function (shape) { + this.insertShape(shape); + }, + + // 🍂method prependShape(shape: Array) + // Prepend a new shape to the Polygon or Polyline. + prependShape: function (shape) { + this.insertShape(shape, 0); + }, + + // 🍂method insertShape(shape: Array, index: int) + // Insert a new shape to the Polygon or Polyline at given index (default is to append). + insertShape: function (shape, index) { + this.ensureMulti(); + shape = this.formatShape(shape); + if (index === undefined) index = this.feature._latlngs.length; + this.feature._latlngs.splice(index, 0, shape); + this.feature.redraw(); + if (this._enabled) this.reset(); + }, + + extendBounds: function (e) { + this.feature._bounds.extend(e.vertex.latlng); + }, + + onDragStart: function (e) { + this.editLayer.clearLayers(); + L.Editable.BaseEditor.prototype.onDragStart.call(this, e); + }, + + onDragEnd: function (e) { + this.initVertexMarkers(); + L.Editable.BaseEditor.prototype.onDragEnd.call(this, e); + }, + }); + + // 🍂namespace Editable; 🍂class PolylineEditor; 🍂aka L.Editable.PolylineEditor + // 🍂inherits PathEditor + L.Editable.PolylineEditor = L.Editable.PathEditor.extend({ + startDrawingBackward: function () { + this._drawing = L.Editable.BACKWARD; + this.startDrawing(); + }, + + // 🍂method continueBackward(latlngs?: Array) + // Set up drawing tools to continue the line backward. + continueBackward: function (latlngs) { + if (this.drawing()) return; + latlngs = latlngs || this.getDefaultLatLngs(); + this.setDrawnLatLngs(latlngs); + if (latlngs.length > 0) { + this.tools.attachBackwardLineGuide(); + this.tools.anchorBackwardLineGuide(latlngs[0]); + } + this.startDrawingBackward(); + }, + + // 🍂method continueForward(latlngs?: Array) + // Set up drawing tools to continue the line forward. + continueForward: function (latlngs) { + if (this.drawing()) return; + latlngs = latlngs || this.getDefaultLatLngs(); + this.setDrawnLatLngs(latlngs); + if (latlngs.length > 0) { + this.tools.attachForwardLineGuide(); + this.tools.anchorForwardLineGuide(latlngs[latlngs.length - 1]); + } + this.startDrawingForward(); + }, + + getDefaultLatLngs: function (latlngs) { + latlngs = latlngs || this.feature._latlngs; + if (!latlngs.length || latlngs[0] instanceof L.LatLng) return latlngs; + return this.getDefaultLatLngs(latlngs[0]); + }, + + ensureMulti: function () { + if (this.feature._latlngs.length && isFlat(this.feature._latlngs)) { + this.feature._latlngs = [this.feature._latlngs]; + } + }, + + addNewEmptyShape: function () { + if (this.feature._latlngs.length) { + const shape = []; + this.appendShape(shape); + return shape; + } + return this.feature._latlngs; + }, + + formatShape: function (shape) { + if (isFlat(shape)) return shape; + if (shape[0]) return this.formatShape(shape[0]); + }, + + // 🍂method splitShape(latlngs?: Array, index: int) + // Split the given `latlngs` shape at index `index` and integrate new shape in instance `latlngs`. + splitShape: function (shape, index) { + if (!index || index >= shape.length - 1) return; + this.ensureMulti(); + const shapeIndex = this.feature._latlngs.indexOf(shape); + if (shapeIndex === -1) return; + const first = shape.slice(0, index + 1); + const second = shape.slice(index); + // We deal with reference, we don't want twice the same latlng around. + second[0] = L.latLng(second[0].lat, second[0].lng, second[0].alt); + this.feature._latlngs.splice(shapeIndex, 1, first, second); + this.refresh(); + this.reset(); + this.onEdited(); + }, + }); + + // 🍂namespace Editable; 🍂class PolygonEditor; 🍂aka L.Editable.PolygonEditor + // 🍂inherits PathEditor + L.Editable.PolygonEditor = L.Editable.PathEditor.extend({ + CLOSED: true, + MIN_VERTEX: 3, + + newPointForward: function (latlng) { + L.Editable.PathEditor.prototype.newPointForward.call(this, latlng); + if (!this.tools.backwardLineGuide._latlngs.length) this.tools.anchorBackwardLineGuide(latlng); + if (this._drawnLatLngs.length === 2) this.tools.attachBackwardLineGuide(); + }, + + addNewEmptyHole: function (latlng) { + this.ensureNotFlat(); + const latlngs = this.feature.shapeAt(latlng); + if (!latlngs) return; + const holes = []; + latlngs.push(holes); + return holes; + }, + + // 🍂method newHole(latlng?: L.LatLng, index: int) + // Set up drawing tools for creating a new hole on the Polygon. If the `latlng` param is given, a first point is created. + newHole: function (latlng) { + const holes = this.addNewEmptyHole(latlng); + if (!holes) return; + this.setDrawnLatLngs(holes); + this.startDrawingForward(); + if (latlng) this.newPointForward(latlng); + }, + + addNewEmptyShape: function () { + if (this.feature._latlngs.length && this.feature._latlngs[0].length) { + const shape = []; + this.appendShape(shape); + return shape; + } + return this.feature._latlngs; + }, + + ensureMulti: function () { + if (this.feature._latlngs.length && isFlat(this.feature._latlngs[0])) { + this.feature._latlngs = [this.feature._latlngs]; + } + }, + + ensureNotFlat: function () { + if (!this.feature._latlngs.length || isFlat(this.feature._latlngs)) + this.feature._latlngs = [this.feature._latlngs]; + }, + + vertexCanBeDeleted: function (vertex) { + const parent = this.feature.parentShape(vertex.latlngs); + const idx = L.Util.indexOf(parent, vertex.latlngs); + if (idx > 0) return true; // Holes can be totally deleted without removing the layer itself. + return L.Editable.PathEditor.prototype.vertexCanBeDeleted.call(this, vertex); + }, + + getDefaultLatLngs: function () { + if (!this.feature._latlngs.length) this.feature._latlngs.push([]); + return this.feature._latlngs[0]; + }, + + formatShape: (shape) => { + // [[1, 2], [3, 4]] => must be nested + // [] => must be nested + // [[]] => is already nested + if (isFlat(shape) && (!shape[0] || shape[0].length !== 0)) return [shape]; + return shape; + }, + }); + + // 🍂namespace Editable; 🍂class RectangleEditor; 🍂aka L.Editable.RectangleEditor + // 🍂inherits PathEditor + L.Editable.RectangleEditor = L.Editable.PathEditor.extend({ + CLOSED: true, + MIN_VERTEX: 4, + + options: { + skipMiddleMarkers: true, + }, + + extendBounds: function (e) { + const index = e.vertex.getIndex(); + const next = e.vertex.getNext(); + const previous = e.vertex.getPrevious(); + const oppositeIndex = (index + 2) % 4; + const opposite = e.vertex.latlngs[oppositeIndex]; + const bounds = new L.LatLngBounds(e.latlng, opposite); + // Update latlngs by hand to preserve order. + previous.latlng.update([e.latlng.lat, opposite.lng]); + next.latlng.update([opposite.lat, e.latlng.lng]); + this.updateBounds(bounds); + this.refreshVertexMarkers(); + }, + + onDrawingMouseDown: function (e) { + L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e); + this.connect(); + const latlngs = this.getDefaultLatLngs(); + // L.Polygon._convertLatLngs removes last latlng if it equals first point, + // which is the case here as all latlngs are [0, 0] + if (latlngs.length === 3) latlngs.push(e.latlng); + const bounds = new L.LatLngBounds(e.latlng, e.latlng); + this.updateBounds(bounds); + this.updateLatLngs(bounds); + this.refresh(); + this.reset(); + // Stop dragging map. + // L.Draggable has two workflows: + // - mousedown => mousemove => mouseup + // - touchstart => touchmove => touchend + // Problem: L.Map.Tap does not allow us to listen to touchstart, so we only + // can deal with mousedown, but then when in a touch device, we are dealing with + // simulated events (actually simulated by L.Map.Tap), which are no more taken + // into account by L.Draggable. + // Ref.: https://github.com/Leaflet/Leaflet.Editable/issues/103 + e.originalEvent._simulated = false; + this.map.dragging._draggable._onUp(e.originalEvent); + // Now transfer ongoing drag action to the bottom right corner. + // Should we refine which corner will handle the drag according to + // drag direction? + latlngs[3].__vertex.dragging._draggable._onDown(e.originalEvent); + }, + + onDrawingMouseUp: function (e) { + this.commitDrawing(e); + e.originalEvent._simulated = false; + L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e); + }, + + onDrawingMouseMove: function (e) { + e.originalEvent._simulated = false; + L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e); + }, + + getDefaultLatLngs: function (latlngs) { + return latlngs || this.feature._latlngs[0]; + }, + + updateBounds: function (bounds) { + this.feature._bounds = bounds; + }, + + updateLatLngs: function (bounds) { + const latlngs = this.getDefaultLatLngs(); + const newLatlngs = this.feature._boundsToLatLngs(bounds); + // Keep references. + for (let i = 0; i < latlngs.length; i++) { + latlngs[i].update(newLatlngs[i]); + } + }, + }); + + // 🍂namespace Editable; 🍂class CircleEditor; 🍂aka L.Editable.CircleEditor + // 🍂inherits PathEditor + L.Editable.CircleEditor = L.Editable.PathEditor.extend({ + MIN_VERTEX: 2, + + options: { + skipMiddleMarkers: true, + }, + + initialize: function (map, feature, options) { + L.Editable.PathEditor.prototype.initialize.call(this, map, feature, options); + this._resizeLatLng = this.computeResizeLatLng(); + }, + + computeResizeLatLng: function () { + // While circle is not added to the map, _radius is not set. + const delta = (this.feature._radius || this.feature._mRadius) * Math.cos(Math.PI / 4); + const point = this.map.project(this.feature._latlng); + return this.map.unproject([point.x + delta, point.y - delta]); + }, + + updateResizeLatLng: function () { + this._resizeLatLng.update(this.computeResizeLatLng()); + this._resizeLatLng.__vertex.update(); + }, + + getLatLngs: function () { + return [this.feature._latlng, this._resizeLatLng]; + }, + + getDefaultLatLngs: function () { + return this.getLatLngs(); + }, + + onVertexMarkerDrag: function (e) { + if (e.vertex.getIndex() === 1) this.resize(e); + else this.updateResizeLatLng(e); + L.Editable.PathEditor.prototype.onVertexMarkerDrag.call(this, e); + }, + + resize: function (e) { + let radius; + if (this.map.options.crs) { + radius = this.map.options.crs.distance(this.feature._latlng, e.latlng); + } else { + radius = this.feature._latlng.distanceTo(e.latlng); + } + this.feature.setRadius(radius); + }, + + onDrawingMouseDown: function (e) { + L.Editable.PathEditor.prototype.onDrawingMouseDown.call(this, e); + this._resizeLatLng.update(e.latlng); + this.feature._latlng.update(e.latlng); + this.connect(); + // Stop dragging map. + e.originalEvent._simulated = false; + this.map.dragging._draggable._onUp(e.originalEvent); + // Now transfer ongoing drag action to the radius handler. + this._resizeLatLng.__vertex.dragging._draggable._onDown(e.originalEvent); + }, + + onDrawingMouseUp: function (e) { + this.commitDrawing(e); + e.originalEvent._simulated = false; + L.Editable.PathEditor.prototype.onDrawingMouseUp.call(this, e); + }, + + onDrawingMouseMove: function (e) { + e.originalEvent._simulated = false; + L.Editable.PathEditor.prototype.onDrawingMouseMove.call(this, e); + }, + + onDrag: function (e) { + L.Editable.PathEditor.prototype.onDrag.call(this, e); + this.feature.dragging.updateLatLng(this._resizeLatLng); + }, + }); + + // 🍂namespace Editable; 🍂class EditableMixin + // `EditableMixin` is included to `L.Polyline`, `L.Polygon`, `L.Rectangle`, `L.Circle` + // and `L.Marker`. It adds some methods to them. + // *When editing is enabled, the editor is accessible on the instance with the + // `editor` property.* + const EditableMixin = { + createEditor: function (map) { + map = map || this._map; + const tools = this.options.editOptions?.editTools || map.editTools; + if (!tools) throw Error('Unable to detect Editable instance.'); + const Klass = this.options.editorClass || this.getEditorClass(tools); + return new Klass(map, this, this.options.editOptions); + }, + + // 🍂method enableEdit(map?: L.Map): this.editor + // Enable editing, by creating an editor if not existing, and then calling `enable` on it. + enableEdit: function (map) { + if (!this.editor) this.createEditor(map); + this.editor.enable(); + return this.editor; + }, + + // 🍂method editEnabled(): boolean + // Return true if current instance has an editor attached, and this editor is enabled. + editEnabled: function () { + return this.editor?.enabled(); + }, + + // 🍂method disableEdit() + // Disable editing, also remove the editor property reference. + disableEdit: function () { + if (this.editor) { + this.editor.disable(); + delete this.editor; + } + }, + + // 🍂method toggleEdit() + // Enable or disable editing, according to current status. + toggleEdit: function () { + if (this.editEnabled()) this.disableEdit(); + else this.enableEdit(); + }, + + _onEditableAdd: function () { + if (this.editor) this.enableEdit(); + }, + }; + + const PolylineMixin = { + getEditorClass: (tools) => { + return tools?.options?.polylineEditorClass || L.Editable.PolylineEditor; + }, + + shapeAt: function (latlng, latlngs) { + // We can have those cases: + // - latlngs are just a flat array of latlngs, use this + // - latlngs is an array of arrays of latlngs, loop over + let shape = null; + latlngs = latlngs || this._latlngs; + if (!latlngs.length) return shape; + if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs; + else { + for (const member of latlngs) { + if (this.isInLatLngs(latlng, member)) return member; + } + } + return shape; + }, + + isInLatLngs: function (l, latlngs) { + if (!latlngs) return false; + let i; + let k; + let len; + let part = []; + let p; + const w = this._clickTolerance(); + this._projectLatlngs(latlngs, part, this._pxBounds); + part = part[0]; + p = this._map.latLngToLayerPoint(l); + + if (!this._pxBounds.contains(p)) { + return false; + } + for (i = 1, len = part.length, k = 0; i < len; k = i++) { + if (L.LineUtil.pointToSegmentDistance(p, part[k], part[i]) <= w) { + return true; + } + } + return false; + }, + }; + + const PolygonMixin = { + getEditorClass: (tools) => { + return tools?.options?.polygonEditorClass || L.Editable.PolygonEditor; + }, + + shapeAt: function (latlng, latlngs) { + // We can have those cases: + // - latlngs are just a flat array of latlngs, use this + // - latlngs is an array of arrays of latlngs, this is a simple polygon (maybe with holes), use the first + // - latlngs is an array of arrays of arrays, this is a multi, loop over + let shape = null; + latlngs = latlngs || this._latlngs; + if (!latlngs.length) return shape; + if (isFlat(latlngs) && this.isInLatLngs(latlng, latlngs)) shape = latlngs; + if (isFlat(latlngs[0]) && this.isInLatLngs(latlng, latlngs[0])) { + shape = latlngs; + } else { + for (const member of latlngs) { + if (this.isInLatLngs(latlng, member[0])) return member; + } + } + return shape; + }, + + isInLatLngs: (l, latlngs) => { + let inside = false; + let l1; + let l2; + let j; + let k; + let len2; + + for (j = 0, len2 = latlngs.length, k = len2 - 1; j < len2; k = j++) { + l1 = latlngs[j]; + l2 = latlngs[k]; + + if ( + l1.lat > l.lat !== l2.lat > l.lat && + l.lng < ((l2.lng - l1.lng) * (l.lat - l1.lat)) / (l2.lat - l1.lat) + l1.lng + ) { + inside = !inside; + } + } + + return inside; + }, + + parentShape: function (shape, latlngs) { + latlngs = latlngs || this._latlngs; + if (!latlngs) return; + let idx = L.Util.indexOf(latlngs, shape); + if (idx !== -1) return latlngs; + for (const member of latlngs) { + idx = L.Util.indexOf(member, shape); + if (idx !== -1) return member; + } + }, + }; + + const MarkerMixin = { + getEditorClass: (tools) => { + return tools?.options?.markerEditorClass || L.Editable.MarkerEditor; + }, + }; + + const CircleMarkerMixin = { + getEditorClass: (tools) => { + return tools?.options?.circleMarkerEditorClass || L.Editable.CircleMarkerEditor; + }, + }; + + const RectangleMixin = { + getEditorClass: (tools) => { + return tools?.options?.rectangleEditorClass || L.Editable.RectangleEditor; + }, + }; + + const CircleMixin = { + getEditorClass: (tools) => { + return tools?.options?.circleEditorClass || L.Editable.CircleEditor; + }, + }; + + const keepEditable = function () { + // Make sure you can remove/readd an editable layer. + this.on('add', this._onEditableAdd); + }; + + const isFlat = L.LineUtil.isFlat || L.LineUtil._flat || L.Polyline._flat; // <=> 1.1 compat. + + if (L.Polyline) { + L.Polyline.include(EditableMixin); + L.Polyline.include(PolylineMixin); + L.Polyline.addInitHook(keepEditable); + } + if (L.Polygon) { + L.Polygon.include(EditableMixin); + L.Polygon.include(PolygonMixin); + } + if (L.Marker) { + L.Marker.include(EditableMixin); + L.Marker.include(MarkerMixin); + L.Marker.addInitHook(keepEditable); + } + if (L.CircleMarker) { + L.CircleMarker.include(EditableMixin); + L.CircleMarker.include(CircleMarkerMixin); + L.CircleMarker.addInitHook(keepEditable); + } + if (L.Rectangle) { + L.Rectangle.include(EditableMixin); + L.Rectangle.include(RectangleMixin); + } + if (L.Circle) { + L.Circle.include(EditableMixin); + L.Circle.include(CircleMixin); + } + + L.LatLng.prototype.update = function (latlng) { + latlng = L.latLng(latlng); + this.lat = latlng.lat; + this.lng = latlng.lng; + }; }, window); diff --git a/src/Files/Leaflet/Leaflet.Routing.Machine.js b/src/Files/Leaflet/Leaflet.Routing.Machine.js index 0fa8a4c..98bab4d 100644 --- a/src/Files/Leaflet/Leaflet.Routing.Machine.js +++ b/src/Files/Leaflet/Leaflet.Routing.Machine.js @@ -1,17074 +1,17714 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i= 200 && status < 300 || status === 304; - } - - if (cors && !('withCredentials' in x)) { - // IE8-9 - x = new window.XDomainRequest(); - - // Ensure callback is never called synchronously, i.e., before - // x.send() returns (this has been observed in the wild). - // See https://github.com/mapbox/mapbox.js/issues/472 - var original = callback; - callback = function() { - if (sent) { - original.apply(this, arguments); - } else { - var that = this, args = arguments; - setTimeout(function() { - original.apply(that, args); - }, 0); - } - } - } - - function loaded() { - if ( - // XDomainRequest - x.status === undefined || - // modern browsers - isSuccessful(x.status)) callback.call(x, null, x); - else callback.call(x, x, null); - } - - // Both `onreadystatechange` and `onload` can fire. `onreadystatechange` - // has [been supported for longer](http://stackoverflow.com/a/9181508/229001). - if ('onload' in x) { - x.onload = loaded; - } else { - x.onreadystatechange = function readystate() { - if (x.readyState === 4) { - loaded(); - } - }; - } - - // Call the callback with the XMLHttpRequest object as an error and prevent - // it from ever being called again by reassigning it to `noop` - x.onerror = function error(evt) { - // XDomainRequest provides no evt parameter - callback.call(this, evt || true, null); - callback = function() { }; - }; - - // IE9 must have onprogress be set to a unique function. - x.onprogress = function() { }; - - x.ontimeout = function(evt) { - callback.call(this, evt, null); - callback = function() { }; - }; - - x.onabort = function(evt) { - callback.call(this, evt, null); - callback = function() { }; - }; - - // GET is the only supported HTTP Verb by XDomainRequest and is the - // only one supported here. - x.open('GET', url, true); - - // Send the request. Sending data is not supported. - x.send(null); - sent = true; - - return x; -} - -if (typeof module !== 'undefined') module.exports = corslite; - -},{}],2:[function(_dereq_,module,exports){ -'use strict'; - -/** - * Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm) - * - * Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js) - * by [Mark McClure](http://facstaff.unca.edu/mcmcclur/) - * - * @module polyline - */ - -var polyline = {}; - -function py2_round(value) { - // Google's polyline algorithm uses the same rounding strategy as Python 2, which is different from JS for negative values - return Math.floor(Math.abs(value) + 0.5) * Math.sign(value); -} - -function encode(current, previous, factor) { - current = py2_round(current * factor); - previous = py2_round(previous * factor); - var coordinate = current - previous; - coordinate <<= 1; - if (current - previous < 0) { - coordinate = ~coordinate; - } - var output = ''; - while (coordinate >= 0x20) { - output += String.fromCharCode((0x20 | (coordinate & 0x1f)) + 63); - coordinate >>= 5; - } - output += String.fromCharCode(coordinate + 63); - return output; -} - -/** - * Decodes to a [latitude, longitude] coordinates array. - * - * This is adapted from the implementation in Project-OSRM. - * - * @param {String} str - * @param {Number} precision - * @returns {Array} - * - * @see https://github.com/Project-OSRM/osrm-frontend/blob/master/WebContent/routing/OSRM.RoutingGeometry.js - */ -polyline.decode = function(str, precision) { - var index = 0, - lat = 0, - lng = 0, - coordinates = [], - shift = 0, - result = 0, - byte = null, - latitude_change, - longitude_change, - factor = Math.pow(10, precision || 5); - - // Coordinates have variable length when encoded, so just keep - // track of whether we've hit the end of the string. In each - // loop iteration, a single coordinate is decoded. - while (index < str.length) { - - // Reset shift, result, and byte - byte = null; - shift = 0; - result = 0; - - do { - byte = str.charCodeAt(index++) - 63; - result |= (byte & 0x1f) << shift; - shift += 5; - } while (byte >= 0x20); - - latitude_change = ((result & 1) ? ~(result >> 1) : (result >> 1)); - - shift = result = 0; - - do { - byte = str.charCodeAt(index++) - 63; - result |= (byte & 0x1f) << shift; - shift += 5; - } while (byte >= 0x20); - - longitude_change = ((result & 1) ? ~(result >> 1) : (result >> 1)); - - lat += latitude_change; - lng += longitude_change; - - coordinates.push([lat / factor, lng / factor]); - } - - return coordinates; -}; - -/** - * Encodes the given [latitude, longitude] coordinates array. - * - * @param {Array.>} coordinates - * @param {Number} precision - * @returns {String} - */ -polyline.encode = function(coordinates, precision) { - if (!coordinates.length) { return ''; } - - var factor = Math.pow(10, precision || 5), - output = encode(coordinates[0][0], 0, factor) + encode(coordinates[0][1], 0, factor); - - for (var i = 1; i < coordinates.length; i++) { - var a = coordinates[i], b = coordinates[i - 1]; - output += encode(a[0], b[0], factor); - output += encode(a[1], b[1], factor); - } - - return output; -}; - -function flipped(coords) { - var flipped = []; - for (var i = 0; i < coords.length; i++) { - flipped.push(coords[i].slice().reverse()); - } - return flipped; -} - -/** - * Encodes a GeoJSON LineString feature/geometry. - * - * @param {Object} geojson - * @param {Number} precision - * @returns {String} - */ -polyline.fromGeoJSON = function(geojson, precision) { - if (geojson && geojson.type === 'Feature') { - geojson = geojson.geometry; - } - if (!geojson || geojson.type !== 'LineString') { - throw new Error('Input must be a GeoJSON LineString'); - } - return polyline.encode(flipped(geojson.coordinates), precision); -}; - -/** - * Decodes to a GeoJSON LineString geometry. - * - * @param {String} str - * @param {Number} precision - * @returns {Object} - */ -polyline.toGeoJSON = function(str, precision) { - var coords = polyline.decode(str, precision); - return { - type: 'LineString', - coordinates: flipped(coords) - }; -}; - -if (typeof module === 'object' && module.exports) { - module.exports = polyline; -} - -},{}],3:[function(_dereq_,module,exports){ -var languages = _dereq_('./languages'); -var instructions = languages.instructions; -var grammars = languages.grammars; -var abbreviations = languages.abbreviations; - -module.exports = function(version) { - Object.keys(instructions).forEach(function(code) { - if (!instructions[code][version]) { throw 'invalid version ' + version + ': ' + code + ' not supported'; } - }); - - return { - capitalizeFirstLetter: function(language, string) { - return string.charAt(0).toLocaleUpperCase(language) + string.slice(1); - }, - ordinalize: function(language, number) { - // Transform numbers to their translated ordinalized value - if (!language) throw new Error('No language code provided'); - - return instructions[language][version].constants.ordinalize[number.toString()] || ''; - }, - directionFromDegree: function(language, degree) { - // Transform degrees to their translated compass direction - if (!language) throw new Error('No language code provided'); - if (!degree && degree !== 0) { - // step had no bearing_after degree, ignoring - return ''; - } else if (degree >= 0 && degree <= 20) { - return instructions[language][version].constants.direction.north; - } else if (degree > 20 && degree < 70) { - return instructions[language][version].constants.direction.northeast; - } else if (degree >= 70 && degree <= 110) { - return instructions[language][version].constants.direction.east; - } else if (degree > 110 && degree < 160) { - return instructions[language][version].constants.direction.southeast; - } else if (degree >= 160 && degree <= 200) { - return instructions[language][version].constants.direction.south; - } else if (degree > 200 && degree < 250) { - return instructions[language][version].constants.direction.southwest; - } else if (degree >= 250 && degree <= 290) { - return instructions[language][version].constants.direction.west; - } else if (degree > 290 && degree < 340) { - return instructions[language][version].constants.direction.northwest; - } else if (degree >= 340 && degree <= 360) { - return instructions[language][version].constants.direction.north; - } else { - throw new Error('Degree ' + degree + ' invalid'); - } - }, - laneConfig: function(step) { - // Reduce any lane combination down to a contracted lane diagram - if (!step.intersections || !step.intersections[0].lanes) throw new Error('No lanes object'); - - var config = []; - var currentLaneValidity = null; - - step.intersections[0].lanes.forEach(function (lane) { - if (currentLaneValidity === null || currentLaneValidity !== lane.valid) { - if (lane.valid) { - config.push('o'); - } else { - config.push('x'); - } - currentLaneValidity = lane.valid; - } - }); - - return config.join(''); - }, - getWayName: function(language, step, options) { - var classes = options ? options.classes || [] : []; - if (typeof step !== 'object') throw new Error('step must be an Object'); - if (!language) throw new Error('No language code provided'); - if (!Array.isArray(classes)) throw new Error('classes must be an Array or undefined'); - - var wayName; - var name = step.name || ''; - var ref = (step.ref || '').split(';')[0]; - - // Remove hacks from Mapbox Directions mixing ref into name - if (name === step.ref) { - // if both are the same we assume that there used to be an empty name, with the ref being filled in for it - // we only need to retain the ref then - name = ''; - } - name = name.replace(' (' + step.ref + ')', ''); - - // In attempt to avoid using the highway name of a way, - // check and see if the step has a class which should signal - // the ref should be used instead of the name. - var wayMotorway = classes.indexOf('motorway') !== -1; - - if (name && ref && name !== ref && !wayMotorway) { - var phrase = instructions[language][version].phrase['name and ref'] || - instructions.en[version].phrase['name and ref']; - wayName = this.tokenize(language, phrase, { - name: name, - ref: ref - }, options); - } else if (name && ref && wayMotorway && (/\d/).test(ref)) { - wayName = options && options.formatToken ? options.formatToken('ref', ref) : ref; - } else if (!name && ref) { - wayName = options && options.formatToken ? options.formatToken('ref', ref) : ref; - } else { - wayName = options && options.formatToken ? options.formatToken('name', name) : name; - } - - return wayName; - }, - - /** - * Formulate a localized text instruction from a step. - * - * @param {string} language Language code. - * @param {object} step Step including maneuver property. - * @param {object} opts Additional options. - * @param {string} opts.legIndex Index of leg in the route. - * @param {string} opts.legCount Total number of legs in the route. - * @param {array} opts.classes List of road classes. - * @param {string} opts.waypointName Name of waypoint for arrival instruction. - * - * @return {string} Localized text instruction. - */ - compile: function(language, step, opts) { - if (!language) throw new Error('No language code provided'); - if (languages.supportedCodes.indexOf(language) === -1) throw new Error('language code ' + language + ' not loaded'); - if (!step.maneuver) throw new Error('No step maneuver provided'); - var options = opts || {}; - - var type = step.maneuver.type; - var modifier = step.maneuver.modifier; - var mode = step.mode; - // driving_side will only be defined in OSRM 5.14+ - var side = step.driving_side; - - if (!type) { throw new Error('Missing step maneuver type'); } - if (type !== 'depart' && type !== 'arrive' && !modifier) { throw new Error('Missing step maneuver modifier'); } - - if (!instructions[language][version][type]) { - // Log for debugging - console.log('Encountered unknown instruction type: ' + type); // eslint-disable-line no-console - // OSRM specification assumes turn types can be added without - // major version changes. Unknown types are to be treated as - // type `turn` by clients - type = 'turn'; - } - - // Use special instructions if available, otherwise `defaultinstruction` - var instructionObject; - if (instructions[language][version].modes[mode]) { - instructionObject = instructions[language][version].modes[mode]; - } else { - // omit side from off ramp if same as driving_side - // note: side will be undefined if the input is from OSRM <5.14 - // but the condition should still evaluate properly regardless - var omitSide = type === 'off ramp' && modifier.indexOf(side) >= 0; - if (instructions[language][version][type][modifier] && !omitSide) { - instructionObject = instructions[language][version][type][modifier]; - } else { - instructionObject = instructions[language][version][type].default; - } - } - - // Special case handling - var laneInstruction; - switch (type) { - case 'use lane': - laneInstruction = instructions[language][version].constants.lanes[this.laneConfig(step)]; - if (!laneInstruction) { - // If the lane combination is not found, default to continue straight - instructionObject = instructions[language][version]['use lane'].no_lanes; - } - break; - case 'rotary': - case 'roundabout': - if (step.rotary_name && step.maneuver.exit && instructionObject.name_exit) { - instructionObject = instructionObject.name_exit; - } else if (step.rotary_name && instructionObject.name) { - instructionObject = instructionObject.name; - } else if (step.maneuver.exit && instructionObject.exit) { - instructionObject = instructionObject.exit; - } else { - instructionObject = instructionObject.default; - } - break; - default: - // NOOP, since no special logic for that type - } - - // Decide way_name with special handling for name and ref - var wayName = this.getWayName(language, step, options); - - // Decide which instruction string to use - // Destination takes precedence over name - var instruction; - if (step.destinations && step.exits && instructionObject.exit_destination) { - instruction = instructionObject.exit_destination; - } else if (step.destinations && instructionObject.destination) { - instruction = instructionObject.destination; - } else if (step.exits && instructionObject.exit) { - instruction = instructionObject.exit; - } else if (wayName && instructionObject.name) { - instruction = instructionObject.name; - } else if (options.waypointName && instructionObject.named) { - instruction = instructionObject.named; - } else { - instruction = instructionObject.default; - } - - var destinations = step.destinations && step.destinations.split(': '); - var destinationRef = destinations && destinations[0].split(',')[0]; - var destination = destinations && destinations[1] && destinations[1].split(',')[0]; - var firstDestination; - if (destination && destinationRef) { - firstDestination = destinationRef + ': ' + destination; - } else { - firstDestination = destinationRef || destination || ''; - } - - var nthWaypoint = options.legIndex >= 0 && options.legIndex !== options.legCount - 1 ? this.ordinalize(language, options.legIndex + 1) : ''; - - // Replace tokens - // NOOP if they don't exist - var replaceTokens = { - 'way_name': wayName, - 'destination': firstDestination, - 'exit': (step.exits || '').split(';')[0], - 'exit_number': this.ordinalize(language, step.maneuver.exit || 1), - 'rotary_name': step.rotary_name, - 'lane_instruction': laneInstruction, - 'modifier': instructions[language][version].constants.modifier[modifier], - 'direction': this.directionFromDegree(language, step.maneuver.bearing_after), - 'nth': nthWaypoint, - 'waypoint_name': options.waypointName - }; - - return this.tokenize(language, instruction, replaceTokens, options); - }, - grammarize: function(language, name, grammar) { - if (!language) throw new Error('No language code provided'); - // Process way/rotary name with applying grammar rules if any - if (name && grammar && grammars && grammars[language] && grammars[language][version]) { - var rules = grammars[language][version][grammar]; - if (rules) { - // Pass original name to rules' regular expressions enclosed with spaces for simplier parsing - var n = ' ' + name + ' '; - var flags = grammars[language].meta.regExpFlags || ''; - rules.forEach(function(rule) { - var re = new RegExp(rule[0], flags); - n = n.replace(re, rule[1]); - }); - - return n.trim(); - } - } - - return name; - }, - abbreviations: abbreviations, - tokenize: function(language, instruction, tokens, options) { - if (!language) throw new Error('No language code provided'); - // Keep this function context to use in inline function below (no arrow functions in ES4) - var that = this; - var startedWithToken = false; - var output = instruction.replace(/\{(\w+)(?::(\w+))?\}/g, function(token, tag, grammar, offset) { - var value = tokens[tag]; - - // Return unknown token unchanged - if (typeof value === 'undefined') { - return token; - } - - value = that.grammarize(language, value, grammar); - - // If this token appears at the beginning of the instruction, capitalize it. - if (offset === 0 && instructions[language].meta.capitalizeFirstLetter) { - startedWithToken = true; - value = that.capitalizeFirstLetter(language, value); - } - - if (options && options.formatToken) { - value = options.formatToken(tag, value); - } - - return value; - }) - .replace(/ {2}/g, ' '); // remove excess spaces - - if (!startedWithToken && instructions[language].meta.capitalizeFirstLetter) { - return this.capitalizeFirstLetter(language, output); - } - - return output; - } - }; -}; - -},{"./languages":4}],4:[function(_dereq_,module,exports){ -// Load all language files explicitly to allow integration -// with bundling tools like webpack and browserify -var instructionsDa = _dereq_('./languages/translations/da.json'); -var instructionsDe = _dereq_('./languages/translations/de.json'); -var instructionsEn = _dereq_('./languages/translations/en.json'); -var instructionsEo = _dereq_('./languages/translations/eo.json'); -var instructionsEs = _dereq_('./languages/translations/es.json'); -var instructionsEsEs = _dereq_('./languages/translations/es-ES.json'); -var instructionsFi = _dereq_('./languages/translations/fi.json'); -var instructionsFr = _dereq_('./languages/translations/fr.json'); -var instructionsHe = _dereq_('./languages/translations/he.json'); -var instructionsId = _dereq_('./languages/translations/id.json'); -var instructionsIt = _dereq_('./languages/translations/it.json'); -var instructionsKo = _dereq_('./languages/translations/ko.json'); -var instructionsMy = _dereq_('./languages/translations/my.json'); -var instructionsNl = _dereq_('./languages/translations/nl.json'); -var instructionsNo = _dereq_('./languages/translations/no.json'); -var instructionsPl = _dereq_('./languages/translations/pl.json'); -var instructionsPtBr = _dereq_('./languages/translations/pt-BR.json'); -var instructionsPtPt = _dereq_('./languages/translations/pt-PT.json'); -var instructionsRo = _dereq_('./languages/translations/ro.json'); -var instructionsRu = _dereq_('./languages/translations/ru.json'); -var instructionsSv = _dereq_('./languages/translations/sv.json'); -var instructionsTr = _dereq_('./languages/translations/tr.json'); -var instructionsUk = _dereq_('./languages/translations/uk.json'); -var instructionsVi = _dereq_('./languages/translations/vi.json'); -var instructionsZhHans = _dereq_('./languages/translations/zh-Hans.json'); - -// Load all grammar files -var grammarFr = _dereq_('./languages/grammar/fr.json'); -var grammarRu = _dereq_('./languages/grammar/ru.json'); - -// Load all abbreviations files -var abbreviationsBg = _dereq_('./languages/abbreviations/bg.json'); -var abbreviationsCa = _dereq_('./languages/abbreviations/ca.json'); -var abbreviationsDa = _dereq_('./languages/abbreviations/da.json'); -var ebbreviationsDe = _dereq_('./languages/abbreviations/de.json'); -var abbreviationsEn = _dereq_('./languages/abbreviations/en.json'); -var abbreviationsEs = _dereq_('./languages/abbreviations/es.json'); -var abbreviationsFr = _dereq_('./languages/abbreviations/fr.json'); -var abbreviationsHe = _dereq_('./languages/abbreviations/he.json'); -var abbreviationsHu = _dereq_('./languages/abbreviations/hu.json'); -var abbreviationsLt = _dereq_('./languages/abbreviations/lt.json'); -var abbreviationsNl = _dereq_('./languages/abbreviations/nl.json'); -var abbreviationsRu = _dereq_('./languages/abbreviations/ru.json'); -var abbreviationsSl = _dereq_('./languages/abbreviations/sl.json'); -var abbreviationsSv = _dereq_('./languages/abbreviations/sv.json'); -var abbreviationsUk = _dereq_('./languages/abbreviations/uk.json'); -var abbreviationsVi = _dereq_('./languages/abbreviations/vi.json'); - -// Create a list of supported codes -var instructions = { - 'da': instructionsDa, - 'de': instructionsDe, - 'en': instructionsEn, - 'eo': instructionsEo, - 'es': instructionsEs, - 'es-ES': instructionsEsEs, - 'fi': instructionsFi, - 'fr': instructionsFr, - 'he': instructionsHe, - 'id': instructionsId, - 'it': instructionsIt, - 'ko': instructionsKo, - 'my': instructionsMy, - 'nl': instructionsNl, - 'no': instructionsNo, - 'pl': instructionsPl, - 'pt-BR': instructionsPtBr, - 'pt-PT': instructionsPtPt, - 'ro': instructionsRo, - 'ru': instructionsRu, - 'sv': instructionsSv, - 'tr': instructionsTr, - 'uk': instructionsUk, - 'vi': instructionsVi, - 'zh-Hans': instructionsZhHans -}; - -// Create list of supported grammar -var grammars = { - 'fr': grammarFr, - 'ru': grammarRu -}; - -// Create list of supported abbrevations -var abbreviations = { - 'bg': abbreviationsBg, - 'ca': abbreviationsCa, - 'da': abbreviationsDa, - 'de': ebbreviationsDe, - 'en': abbreviationsEn, - 'es': abbreviationsEs, - 'fr': abbreviationsFr, - 'he': abbreviationsHe, - 'hu': abbreviationsHu, - 'lt': abbreviationsLt, - 'nl': abbreviationsNl, - 'ru': abbreviationsRu, - 'sl': abbreviationsSl, - 'sv': abbreviationsSv, - 'uk': abbreviationsUk, - 'vi': abbreviationsVi -}; -module.exports = { - supportedCodes: Object.keys(instructions), - instructions: instructions, - grammars: grammars, - abbreviations: abbreviations -}; - -},{"./languages/abbreviations/bg.json":5,"./languages/abbreviations/ca.json":6,"./languages/abbreviations/da.json":7,"./languages/abbreviations/de.json":8,"./languages/abbreviations/en.json":9,"./languages/abbreviations/es.json":10,"./languages/abbreviations/fr.json":11,"./languages/abbreviations/he.json":12,"./languages/abbreviations/hu.json":13,"./languages/abbreviations/lt.json":14,"./languages/abbreviations/nl.json":15,"./languages/abbreviations/ru.json":16,"./languages/abbreviations/sl.json":17,"./languages/abbreviations/sv.json":18,"./languages/abbreviations/uk.json":19,"./languages/abbreviations/vi.json":20,"./languages/grammar/fr.json":21,"./languages/grammar/ru.json":22,"./languages/translations/da.json":23,"./languages/translations/de.json":24,"./languages/translations/en.json":25,"./languages/translations/eo.json":26,"./languages/translations/es-ES.json":27,"./languages/translations/es.json":28,"./languages/translations/fi.json":29,"./languages/translations/fr.json":30,"./languages/translations/he.json":31,"./languages/translations/id.json":32,"./languages/translations/it.json":33,"./languages/translations/ko.json":34,"./languages/translations/my.json":35,"./languages/translations/nl.json":36,"./languages/translations/no.json":37,"./languages/translations/pl.json":38,"./languages/translations/pt-BR.json":39,"./languages/translations/pt-PT.json":40,"./languages/translations/ro.json":41,"./languages/translations/ru.json":42,"./languages/translations/sv.json":43,"./languages/translations/tr.json":44,"./languages/translations/uk.json":45,"./languages/translations/vi.json":46,"./languages/translations/zh-Hans.json":47}],5:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "международен": "Межд", - "старши": "Стрш", - "възел": "Въз", - "пазар": "Mkt", - "светисвети": "СвСв", - "сестра": "сес", - "уилям": "Ум", - "апартаменти": "ап", - "езеро": "Ез", - "свети": "Св", - "център": "Ц-р", - "парк": "Пк", - "маршрут": "М-т", - "площад": "Пл", - "национален": "Нац", - "училище": "Уч", - "река": "Рек", - "поток": "П-к", - "район": "Р-н", - "крепост": "К-т", - "паметник": "Пам", - "университет": "Уни", - "Връх": "Вр", - "точка": "Точ", - "планина": "Пл", - "село": "с.", - "височини": "вис", - "младши": "Мл", - "станция": "С-я", - "проход": "Прох", - "баща": "Бщ" - }, - "classifications": { - "шофиране": "Шоф", - "плавен": "Пл", - "място": "Мя", - "тераса": "Тер", - "магистрала": "М-ла", - "площад": "Пл", - "пеш": "Пеш", - "залив": "З-в", - "пътека": "П-ка", - "платно": "Пл", - "улица": "Ул", - "алея": "Ал", - "пешеходна": "Пеш", - "точка": "Тч", - "задминаване": "Задм", - "кръгово": "Кр", - "връх": "Вр", - "съд": "Сд", - "булевард": "Бул", - "път": "Път", - "скоростна": "Скор", - "мост": "Мо" - }, - "directions": { - "северозапад": "СЗ", - "североизток": "СИ", - "югозапад": "ЮЗ", - "югоизток": "ЮИ", - "север": "С", - "изток": "И", - "юг": "Ю" - } -} - -},{}],6:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "comunicacions": "Com.", - "entitat de població": "Nucli", - "disseminat": "Diss.", - "cap de municipi": "Cap", - "indret": "Indr.", - "comarca": "Cca.", - "relleu del litoral": "Lit.", - "municipi": "Mun.", - "xarxa hidrogràfica": "Curs Fluv.", - "equipament": "Equip.", - "orografia": "Orogr.", - "barri": "Barri", - "edificació": "Edif.", - "edificació històrica": "Edif. Hist.", - "entitat descentralitzada": "E.M.D.", - "element hidrogràfic": "Hidr." - }, - "classifications": { - "rotonda": "Rot.", - "carrerada": "Ca.", - "jardí": "J.", - "paratge": "Pge.", - "pont": "Pont", - "lloc": "Lloc", - "rambla": "Rbla.", - "cases": "Cses.", - "barranc": "Bnc.", - "plana": "Plana", - "polígon": "Pol.", - "muralla": "Mur.", - "enllaç": "Ellaç", - "antiga carretera": "Actra", - "glorieta": "Glor.", - "autovia": "Autv.", - "prolongació": "Prol.", - "calçada": "Cda.", - "carretera": "Ctra.", - "pujada": "Pda.", - "torrent": "T.", - "disseminat": "Disse", - "barri": "B.", - "cinturó": "Cinto", - "passera": "Psera", - "sender": "Send.", - "carrer": "C.", - "sèquia": "Sèq.", - "blocs": "Bloc", - "rambleta": "Rblt.", - "partida": "Par.", - "costa": "Cos.", - "sector": "Sec.", - "corraló": "Crral", - "urbanització": "Urb.", - "autopista": "Autp.", - "grup": "Gr.", - "platja": "Pja.", - "jardins": "J.", - "complex": "Comp.", - "portals": "Ptals", - "finca": "Fin.", - "travessera": "Trav.", - "plaça": "Pl.", - "travessia": "Trv.", - "polígon industrial": "PI.", - "passatge": "Ptge.", - "apartaments": "Apmt.", - "mirador": "Mira.", - "antic": "Antic", - "accés": "Acc.", - "colònia": "Col.", - "corriol": "Crol.", - "portal": "Ptal.", - "porta": "Pta.", - "port": "Port", - "carreró": "Cró.", - "riera": "Ra.", - "circumval·lació": "Cval.", - "baixada": "Bda.", - "placeta": "Plta.", - "escala": "Esc.", - "gran via": "GV", - "rial": "Rial", - "conjunt": "Conj.", - "avinguda": "Av.", - "esplanada": "Esp.", - "cantonada": "Cant.", - "ronda": "Rda.", - "corredor": "Cdor.", - "drecera": "Drec.", - "passadís": "Pdís.", - "viaducte": "Vdct.", - "passeig": "Pg.", - "veïnat": "Veï." - }, - "directions": { - "sudest": "SE", - "sudoest": "SO", - "nordest": "NE", - "nordoest": "NO", - "est": "E", - "nord": "N", - "oest": "O", - "sud": "S" - } -} - -},{}],7:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "skole": "Sk.", - "ved": "v.", - "centrum": "C.", - "sankt": "Skt.", - "vestre": "v.", - "hospital": "Hosp.", - "stræde": "Str.", - "nordre": "Nr.", - "plads": "Pl.", - "universitet": "Uni.", - "vænge": "vg.", - "station": "St." - }, - "classifications": { - "avenue": "Ave", - "gammel": "Gl.", - "dronning": "Dronn.", - "sønder": "Sdr.", - "nørre": "Nr.", - "vester": "V.", - "vestre": "V.", - "øster": "Ø.", - "østre": "Ø.", - "boulevard": "Boul." - }, - "directions": { - "sydøst": "SØ", - "nordvest": "NV", - "syd": "S", - "nordøst": "NØ", - "sydvest": "SV", - "vest": "V", - "nord": "N", - "øst": "Ø" - } -} - -},{}],8:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": {}, - "classifications": {}, - "directions": { - "osten": "O", - "nordosten": "NO", - "süden": "S", - "nordwest": "NW", - "norden": "N", - "südost": "SO", - "südwest": "SW", - "westen": "W" - } -} - -},{}],9:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "square": "Sq", - "centre": "Ctr", - "sister": "Sr", - "lake": "Lk", - "fort": "Ft", - "route": "Rte", - "william": "Wm", - "national": "Nat’l", - "junction": "Jct", - "center": "Ctr", - "saint": "St", - "saints": "SS", - "station": "Sta", - "mount": "Mt", - "junior": "Jr", - "mountain": "Mtn", - "heights": "Hts", - "university": "Univ", - "school": "Sch", - "international": "Int’l", - "apartments": "Apts", - "crossing": "Xing", - "creek": "Crk", - "township": "Twp", - "downtown": "Dtwn", - "father": "Fr", - "senior": "Sr", - "point": "Pt", - "river": "Riv", - "market": "Mkt", - "village": "Vil", - "park": "Pk", - "memorial": "Mem" - }, - "classifications": { - "place": "Pl", - "circle": "Cir", - "bypass": "Byp", - "motorway": "Mwy", - "crescent": "Cres", - "road": "Rd", - "cove": "Cv", - "lane": "Ln", - "square": "Sq", - "street": "St", - "freeway": "Fwy", - "walk": "Wk", - "plaza": "Plz", - "parkway": "Pky", - "avenue": "Ave", - "pike": "Pk", - "drive": "Dr", - "highway": "Hwy", - "footway": "Ftwy", - "point": "Pt", - "court": "Ct", - "terrace": "Ter", - "walkway": "Wky", - "alley": "Aly", - "expressway": "Expy", - "bridge": "Br", - "boulevard": "Blvd", - "turnpike": "Tpk" - }, - "directions": { - "southeast": "SE", - "northwest": "NW", - "south": "S", - "west": "W", - "southwest": "SW", - "north": "N", - "east": "E", - "northeast": "NE" - } -} - -},{}],10:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "segunda": "2ª", - "octubre": "8bre", - "doctores": "Drs", - "doctora": "Dra", - "internacional": "Intl", - "doctor": "Dr", - "segundo": "2º", - "señorita": "Srta", - "doctoras": "Drs", - "primera": "1ª", - "primero": "1º", - "san": "S", - "colonia": "Col", - "doña": "Dña", - "septiembre": "7bre", - "diciembre": "10bre", - "señor": "Sr", - "ayuntamiento": "Ayto", - "señora": "Sra", - "tercera": "3ª", - "tercero": "3º", - "don": "D", - "santa": "Sta", - "ciudad": "Cdad", - "noviembre": "9bre", - "departamento": "Dep" - }, - "classifications": { - "camino": "Cmno", - "avenida": "Av", - "paseo": "Pº", - "autopista": "Auto", - "calle": "C", - "plaza": "Pza", - "carretera": "Crta" - }, - "directions": { - "este": "E", - "noreste": "NE", - "sur": "S", - "suroeste": "SO", - "noroeste": "NO", - "oeste": "O", - "sureste": "SE", - "norte": "N" - } -} - -},{}],11:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "allée": "All", - "aérodrome": "Aérod", - "aéroport": "Aérop" - }, - "classifications": { - "centrale": "Ctrale", - "campings": "Camp.", - "urbains": "Urb.", - "mineure": "Min.", - "publique": "Publ.", - "supérieur": "Sup.", - "fédération": "Féd.", - "notre-dame": "ND", - "saint": "St", - "centre hospitalier régional": "CHR", - "exploitation": "Exploit.", - "général": "Gal", - "civiles": "Civ.", - "maritimes": "Marit.", - "aviation": "Aviat.", - "iii": "3", - "archéologique": "Archéo.", - "musical": "Music.", - "musicale": "Music.", - "immeuble": "Imm.", - "xv": "15", - "hôtel": "Hôt.", - "alpine": "Alp.", - "communale": "Commun.", - "v": "5", - "global": "Glob.", - "université": "Univ.", - "confédéral": "Conféd.", - "xx": "20", - "x": "10", - "piscine": "Pisc.", - "dimanche": "di.", - "fleuve": "Flv", - "postaux": "Post.", - "musicienne": "Music.", - "département": "Dépt", - "février": "Févr.", - "municipales": "Munic.", - "province": "Prov.", - "communautés": "Commtés", - "barrage": "Barr.", - "mercredi": "me.", - "présidentes": "Pdtes", - "cafétérias": "Cafét.", - "théâtral": "Thé.", - "viticulteur": "Vitic.", - "poste": "Post.", - "spécialisée": "Spéc.", - "agriculture": "Agric.", - "infirmier": "Infirm.", - "animation": "Anim.", - "mondiale": "Mond.", - "arrêt": "Arr.", - "zone": "zon.", - "municipaux": "Munic.", - "grand": "Gd", - "janvier": "Janv.", - "fondateur": "Fond.", - "première": "1re", - "municipale": "Munic.", - "direction": "Dir.", - "anonyme": "Anon.", - "départementale": "Dépt", - "moyens": "Moy.", - "novembre": "Nov.", - "jardin": "Jard.", - "petites": "Pet.", - "privé": "Priv.", - "centres": "Ctres", - "forestier": "Forest.", - "xiv": "14", - "africaines": "Afric.", - "sergent": "Sgt", - "européenne": "Eur.", - "privée": "Priv.", - "café": "Cfé", - "xix": "19", - "hautes": "Htes", - "major": "Mjr", - "vendredi": "ve.", - "municipalité": "Munic.", - "sous-préfecture": "Ss-préf.", - "spéciales": "Spéc.", - "secondaires": "Second.", - "viie": "7e", - "moyenne": "Moy.", - "commerciale": "Commerc.", - "région": "Rég.", - "américaines": "Amér.", - "américains": "Amér.", - "service": "Sce", - "professeur": "Prof.", - "départemental": "Dépt", - "hôtels": "Hôt.", - "mondiales": "Mond.", - "ire": "1re", - "caporal": "Capo.", - "militaire": "Milit.", - "lycée d'enseignement professionnel": "LEP", - "adjudant": "Adj.", - "médicale": "Méd.", - "conférences": "Confér.", - "universelle": "Univ.", - "xiie": "12e", - "supérieures": "Sup.", - "naturel": "Natur.", - "société nationale": "SN", - "hospitalier": "Hosp.", - "culturelle": "Cult.", - "américain": "Amér.", - "son altesse royale": "S.A.R.", - "infirmière": "Infirm.", - "viii": "8", - "fondatrice": "Fond.", - "madame": "Mme", - "métropolitain": "Métrop.", - "ophtalmologues": "Ophtalmos", - "xviie": "18e", - "viiie": "8e", - "commerçante": "Commerç.", - "centre d'enseignement du second degré": "CES", - "septembre": "Sept.", - "agriculteur": "Agric.", - "xiii": "13", - "pontifical": "Pontif.", - "cafétéria": "Cafét.", - "prince": "Pce", - "vie": "6e", - "archiduchesse": "Archid.", - "occidental": "Occ.", - "spectacles": "Spect.", - "camping": "Camp.", - "métro": "Mº", - "arrondissement": "Arrond.", - "viticole": "Vitic.", - "ii": "2", - "siècle": "Si.", - "chapelles": "Chap.", - "centre": "Ctre", - "sapeur-pompiers": "Sap.-pomp.", - "établissements": "Étabts", - "société anonyme": "SA", - "directeurs": "Dir.", - "vii": "7", - "culturel": "Cult.", - "central": "Ctral", - "métropolitaine": "Métrop.", - "administrations": "Admin.", - "amiraux": "Amir.", - "sur": "s/", - "premiers": "1ers", - "provence-alpes-côte d'azur": "PACA", - "cathédrale": "Cathéd.", - "iv": "4", - "postale": "Post.", - "social": "Soc.", - "spécialisé": "Spéc.", - "district": "Distr.", - "technologique": "Techno.", - "viticoles": "Vitic.", - "ix": "9", - "protégés": "Prot.", - "historiques": "Hist.", - "sous": "s/s", - "national": "Nal", - "ambassade": "Amb.", - "cafés": "Cfés", - "agronomie": "Agro.", - "sapeurs": "Sap.", - "petits": "Pet.", - "monsieur": "M.", - "boucher": "Bouch.", - "restaurant": "Restau.", - "lycée": "Lyc.", - "urbaine": "Urb.", - "préfecture": "Préf.", - "districts": "Distr.", - "civil": "Civ.", - "protégées": "Prot.", - "sapeur": "Sap.", - "théâtre": "Thé.", - "collège": "Coll.", - "mardi": "ma.", - "mémorial": "Mémor.", - "africain": "Afric.", - "républicaine": "Républ.", - "sociale": "Soc.", - "spécial": "Spéc.", - "technologie": "Techno.", - "charcuterie": "Charc.", - "commerces": "Commerc.", - "fluviale": "Flv", - "parachutistes": "Para.", - "primaires": "Prim.", - "directions": "Dir.", - "présidentiel": "Pdtl", - "nationales": "Nales", - "après": "apr.", - "samedi": "sa.", - "unité": "U.", - "xxiii": "23", - "associé": "Assoc.", - "électrique": "Électr.", - "populaire": "Pop.", - "asiatique": "Asiat.", - "navigable": "Navig.", - "présidente": "Pdte", - "xive": "14e", - "associés": "Assoc.", - "pompiers": "Pomp.", - "agricoles": "Agric.", - "élém": "Élém.", - "décembre": "Déc.", - "son altesse": "S.Alt.", - "après-midi": "a.-m.", - "mineures": "Min.", - "juillet": "Juil.", - "aviatrices": "Aviat.", - "fondation": "Fond.", - "pontificaux": "Pontif.", - "temple": "Tple", - "européennes": "Eur.", - "régionale": "Rég.", - "informations": "Infos", - "mondiaux": "Mond.", - "infanterie": "Infant.", - "archéologie": "Archéo.", - "dans": "d/", - "hospice": "Hosp.", - "spectacle": "Spect.", - "hôtels-restaurants": "Hôt.-Rest.", - "hôtel-restaurant": "Hôt.-Rest.", - "hélicoptère": "hélico", - "xixe": "19e", - "cliniques": "Clin.", - "docteur": "Dr", - "secondaire": "Second.", - "municipal": "Munic.", - "générale": "Gale", - "château": "Chât.", - "commerçant": "Commerç.", - "avril": "Avr.", - "clinique": "Clin.", - "urbaines": "Urb.", - "navale": "Nav.", - "navigation": "Navig.", - "asiatiques": "Asiat.", - "pontificales": "Pontif.", - "administrative": "Admin.", - "syndicat": "Synd.", - "lundi": "lu.", - "petite": "Pet.", - "maritime": "Marit.", - "métros": "Mº", - "enseignement": "Enseign.", - "fluviales": "Flv", - "historique": "Hist.", - "comtés": "Ctés", - "résidentiel": "Résid.", - "international": "Int.", - "supérieure": "Sup.", - "centre hospitalier universitaire": "CHU", - "confédération": "Conféd.", - "boucherie": "Bouch.", - "fondatrices": "Fond.", - "médicaux": "Méd.", - "européens": "Eur.", - "orientaux": "Ori.", - "naval": "Nav.", - "étang": "Étg", - "provincial": "Prov.", - "junior": "Jr", - "départementales": "Dépt", - "musique": "Musiq.", - "directrices": "Dir.", - "maréchal": "Mal", - "civils": "Civ.", - "protégé": "Prot.", - "établissement": "Étabt", - "trafic": "Traf.", - "aviateur": "Aviat.", - "archives": "Arch.", - "africains": "Afric.", - "maternelle": "Matern.", - "industrielle": "Ind.", - "administratif": "Admin.", - "oriental": "Ori.", - "universitaire": "Univ.", - "majeur": "Maj.", - "haute": "Hte", - "communal": "Commun.", - "petit": "Pet.", - "commune": "Commun.", - "exploitant": "Exploit.", - "conférence": "Confér.", - "monseigneur": "Mgr", - "pharmacien": "Pharm.", - "jeudi": "je.", - "primaire": "Prim.", - "hélicoptères": "hélicos", - "agronomique": "Agro.", - "médecin": "Méd.", - "ve": "5e", - "pontificale": "Pontif.", - "ier": "1er", - "cinéma": "Ciné", - "fluvial": "Flv", - "occidentaux": "Occ.", - "commerçants": "Commerç.", - "banque": "Bq", - "moyennes": "Moy.", - "pharmacienne": "Pharm.", - "démocratique": "Dém.", - "cinémas": "Cinés", - "spéciale": "Spéc.", - "présidents": "Pdts", - "directrice": "Dir.", - "vi": "6", - "basse": "Bas.", - "xve": "15e", - "état": "É.", - "aviateurs": "Aviat.", - "majeurs": "Maj.", - "infirmiers": "Infirm.", - "église": "Égl.", - "confédérale": "Conféd.", - "xxie": "21e", - "comte": "Cte", - "européen": "Eur.", - "union": "U.", - "pharmacie": "Pharm.", - "infirmières": "Infirm.", - "comté": "Cté", - "sportive": "Sport.", - "deuxième": "2e", - "xvi": "17", - "haut": "Ht", - "médicales": "Méd.", - "développé": "Dévelop.", - "bâtiment": "Bât.", - "commerce": "Commerc.", - "ive": "4e", - "associatif": "Assoc.", - "rural": "Rur.", - "cimetière": "Cim.", - "régional": "Rég.", - "ferroviaire": "Ferr.", - "vers": "v/", - "mosquée": "Mosq.", - "mineurs": "Min.", - "nautique": "Naut.", - "châteaux": "Chât.", - "sportif": "Sport.", - "mademoiselle": "Mle", - "école": "Éc.", - "doyen": "Doy.", - "industriel": "Ind.", - "chapelle": "Chap.", - "sociétés": "Stés", - "internationale": "Int.", - "coopératif": "Coop.", - "hospices": "Hosp.", - "xxii": "22", - "parachutiste": "Para.", - "alpines": "Alp.", - "civile": "Civ.", - "xvie": "17e", - "états": "É.", - "musée": "Msée", - "centrales": "Ctrales", - "globaux": "Glob.", - "supérieurs": "Sup.", - "syndicats": "Synd.", - "archevêque": "Archev.", - "docteurs": "Drs", - "bibliothèque": "Biblio.", - "lieutenant": "Lieut.", - "république": "Rép.", - "vétérinaire": "Vét.", - "départementaux": "Dépt", - "premier": "1er", - "fluviaux": "Flv", - "animé": "Anim.", - "orientales": "Ori.", - "technologiques": "Techno.", - "princesse": "Pse", - "routière": "Rout.", - "coopérative": "Coop.", - "scolaire": "Scol.", - "écoles": "Éc.", - "football": "Foot", - "territoriale": "Territ.", - "commercial": "Commerc.", - "mineur": "Min.", - "millénaires": "Mill.", - "association": "Assoc.", - "catholique": "Cathol.", - "administration": "Admin.", - "mairie": "Mair.", - "portuaire": "Port.", - "tertiaires": "Terti.", - "théâtrale": "Thé.", - "palais": "Pal.", - "troisième": "3e", - "directeur": "Dir.", - "vétérinaires": "Vét.", - "faculté": "Fac.", - "occidentales": "Occ.", - "viticulteurs": "Vitic.", - "xvii": "18", - "occidentale": "Occ.", - "amiral": "Amir.", - "professionnel": "Profess.", - "administratives": "Admin.", - "commerciales": "Commerc.", - "saints": "Sts", - "agronomes": "Agro.", - "stade": "Std", - "sous-préfet": "Ss-préf.", - "senior": "Sr", - "agronome": "Agro.", - "terrain": "Terr.", - "catholiques": "Cathol.", - "résidentielle": "Résid.", - "grands": "Gds", - "exploitants": "Exploit.", - "xiiie": "13e", - "croix": "Cx", - "généraux": "Gaux", - "crédit": "Créd.", - "cimetières": "Cim.", - "antenne": "Ant.", - "médical": "Méd.", - "collèges": "Coll.", - "musicien": "Music.", - "apostolique": "Apost.", - "postal": "Post.", - "territorial": "Territ.", - "urbanisme": "Urb.", - "préfectorale": "Préf.", - "fondateurs": "Fond.", - "information": "Info.", - "églises": "Égl.", - "ophtalmologue": "Ophtalmo", - "congrégation": "Congrég.", - "charcutier": "Charc.", - "étage": "ét.", - "consulat": "Consul.", - "public": "Publ.", - "ferrée": "Ferr.", - "matin": "mat.", - "société anonyme à responsabilité limitée": "SARL", - "monuments": "Mmts", - "protection": "Prot.", - "universel": "Univ.", - "nationale": "Nale", - "président": "Pdt", - "provinciale": "Prov.", - "agriculteurs": "Agric.", - "préfectoral": "Préf.", - "xxe": "20e", - "alpins": "Alp.", - "avant": "av.", - "infirmerie": "Infirm.", - "deux mil": "2000", - "rurale": "Rur.", - "administratifs": "Admin.", - "octobre": "Oct.", - "archipel": "Archip.", - "communauté": "Commté", - "globales": "Glob.", - "alpin": "Alp.", - "numéros": "Nºˢ", - "lieutenant-colonel": "Lieut.-Col.", - "jésus-christ": "J.-C.", - "agricole": "Agric.", - "sa majesté": "S.Maj.", - "associative": "Assoc.", - "xxi": "21", - "présidentielle": "Pdtle", - "moyen": "Moy.", - "fédéral": "Féd.", - "professionnelle": "Profess.", - "tertiaire": "Terti.", - "ixe": "9e", - "hôpital": "Hôp.", - "technologies": "Techno.", - "iiie": "3e", - "développement": "Dévelop.", - "monument": "Mmt", - "forestière": "Forest.", - "numéro": "Nº", - "viticulture": "Vitic.", - "traversière": "Traver.", - "technique": "Tech.", - "électriques": "Électr.", - "militaires": "Milit.", - "pompier": "Pomp.", - "américaine": "Amér.", - "préfet": "Préf.", - "congrégations": "Congrég.", - "pâtissier": "Pâtiss.", - "mondial": "Mond.", - "ophtalmologie": "Ophtalm.", - "sainte": "Ste", - "africaine": "Afric.", - "aviatrice": "Aviat.", - "doyens": "Doy.", - "société": "Sté", - "majeures": "Maj.", - "orientale": "Ori.", - "ministère": "Min.", - "archiduc": "Archid.", - "territoire": "Territ.", - "techniques": "Tech.", - "île-de-france": "IDF", - "globale": "Glob.", - "xe": "10e", - "xie": "11e", - "majeure": "Maj.", - "commerciaux": "Commerc.", - "maire": "Mair.", - "spéciaux": "Spéc.", - "grande": "Gde", - "messieurs": "MM", - "colonel": "Col.", - "millénaire": "Mill.", - "xi": "11", - "urbain": "Urb.", - "fédérale": "Féd.", - "ferré": "Ferr.", - "rivière": "Riv.", - "républicain": "Républ.", - "grandes": "Gdes", - "régiment": "Régim.", - "hauts": "Hts", - "catégorie": "Catég.", - "basses": "Bas.", - "xii": "12", - "agronomiques": "Agro.", - "iie": "2e", - "protégée": "Prot.", - "sapeur-pompier": "Sap.-pomp." - }, - "directions": { - "est-nord-est": "ENE", - "nord-est": "NE", - "ouest": "O", - "sud-est": "SE", - "est-sud-est": "ESE", - "nord-nord-est": "NNE", - "sud": "S", - "nord-nord-ouest": "NNO", - "nord-ouest": "NO", - "nord": "N", - "ouest-sud-ouest": "OSO", - "ouest-nord-ouest": "ONO", - "sud-ouest": "SO", - "sud-sud-est": "SSE", - "sud-sud-ouest": "SSO", - "est": "E" - } -} - -},{}],12:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "שדרות": "שד'" - }, - "classifications": {}, - "directions": {} -} - -},{}],13:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": {}, - "classifications": {}, - "directions": { - "kelet": "K", - "északkelet": "ÉK", - "dél": "D", - "északnyugat": "ÉNY", - "észak": "É", - "délkelet": "DK", - "délnyugat": "DNY", - "nyugat": "NY" - } -} - -},{}],14:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "apartamentai": "Apt", - "aukštumos": "Aukš", - "centras": "Ctr", - "ežeras": "Ež", - "fortas": "Ft", - "greitkelis": "Grtkl", - "juosta": "Jst", - "kaimas": "Km", - "kalnas": "Kln", - "kelias": "Kl", - "kiemelis": "Kml", - "miestelis": "Mstl", - "miesto centras": "M.Ctr", - "mokykla": "Mok", - "nacionalinis": "Nac", - "paminklas": "Pmkl", - "parkas": "Pk", - "pusratis": "Psrt", - "sankryža": "Skrž", - "sesė": "Sesė", - "skveras": "Skv", - "stotis": "St", - "šv": "Šv", - "tarptautinis": "Trptaut", - "taškas": "Tšk", - "tėvas": "Tėv", - "turgus": "Tgs", - "universitetas": "Univ", - "upė": "Up", - "upelis": "Up", - "vieta": "Vt" - }, - "classifications": { - "aikštė": "a.", - "alėja": "al.", - "aplinkkelis": "aplinkl.", - "autostrada": "auto.", - "bulvaras": "b.", - "gatvė": "g.", - "kelias": "kel.", - "krantinė": "krant.", - "prospektas": "pr.", - "plentas": "pl.", - "skersgatvis": "skg.", - "takas": "tak.", - "tiltas": "tlt." - }, - "directions": { - "pietūs": "P", - "vakarai": "V", - "šiaurė": "Š", - "šiaurės vakarai": "ŠV", - "pietryčiai": "PR", - "šiaurės rytai": "ŠR", - "rytai": "R", - "pietvakariai": "PV" - } -} - -},{}],15:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "centrum": "Cntrm", - "nationaal": "Nat’l", - "berg": "Brg", - "meer": "Mr", - "kruising": "Krsng", - "toetreden": "Ttrdn" - }, - "classifications": { - "bypass": "Pass", - "brug": "Br", - "straat": "Str", - "rechtbank": "Rbank", - "snoek": "Snk", - "autobaan": "Baan", - "terras": "Trrs", - "punt": "Pt", - "plaza": "Plz", - "rijden": "Rijd", - "parkway": "Pky", - "inham": "Nham", - "snelweg": "Weg", - "halve maan": "Maan", - "cirkel": "Crkl", - "laan": "Ln", - "rijbaan": "Strook", - "weg": "Weg", - "lopen": "Lpn", - "autoweg": "Weg", - "boulevard": "Blvd", - "plaats": "Plts", - "steeg": "Stg", - "voetpad": "Stoep" - }, - "directions": { - "noordoost": "NO", - "westen": "W", - "zuiden": "Z", - "zuidwest": "ZW", - "oost": "O", - "zuidoost": "ZO", - "noordwest": "NW", - "noorden": "N" - } -} - -},{}],16:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "апостола": "ап.", - "апостолов": "апп.", - "великомученика": "вмч", - "великомученицы": "вмц.", - "владение": "вл.", - "город": "г.", - "деревня": "д.", - "имени": "им.", - "мученика":"мч.", - "мучеников": "мчч.", - "мучениц": "мцц.", - "мученицы": "мц.", - "озеро": "о.", - "посёлок": "п.", - "преподобного": "прп.", - "преподобных": "прпп.", - "река": "р.", - "святителей": "свтт.", - "святителя": "свт.", - "священномученика": "сщмч.", - "священномучеников": "сщмчч.", - "станция": "ст.", - "участок": "уч." - }, - "classifications": { - "проезд": "пр-д", - "проспект": "пр.", - "переулок": "пер.", - "набережная": "наб.", - "площадь": "пл.", - "шоссе": "ш.", - "бульвар": "б.", - "тупик": "туп.", - "улица": "ул." - }, - "directions": { - "восток": "В", - "северо-восток": "СВ", - "юго-восток": "ЮВ", - "юго-запад": "ЮЗ", - "северо-запад": "СЗ", - "север": "С", - "запад": "З", - "юг": "Ю" - } -} - -},{}],17:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": {}, - "classifications": {}, - "directions": { - "vzhod": "V", - "severovzhod": "SV", - "jug": "J", - "severozahod": "SZ", - "sever": "S", - "jugovzhod": "JV", - "jugozahod": "JZ", - "zahod": "Z" - } -} - -},{}],18:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "sankta": "s:ta", - "gamla": "G:la", - "sankt": "s:t" - }, - "classifications": { - "Bro": "Br" - }, - "directions": { - "norr": "N", - "sydöst": "SO", - "väster": "V", - "öster": "O", - "nordväst": "NV", - "sydväst": "SV", - "söder": "S", - "nordöst": "NO" - } -} - -},{}],19:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": {}, - "classifications": {}, - "directions": { - "схід": "Сх", - "північний схід": "ПнСх", - "південь": "Пд", - "північний захід": "ПнЗд", - "північ": "Пн", - "південний схід": "ПдСх", - "південний захід": "ПдЗх", - "захід": "Зх" - } -} - -},{}],20:[function(_dereq_,module,exports){ -module.exports={ - "abbreviations": { - "viện bảo tàng": "VBT", - "thị trấn": "Tt", - "đại học": "ĐH", - "căn cứ không quan": "CCKQ", - "câu lạc bộ": "CLB", - "bưu điện": "BĐ", - "khách sạn": "KS", - "khu du lịch": "KDL", - "khu công nghiệp": "KCN", - "khu nghỉ mát": "KNM", - "thị xã": "Tx", - "khu chung cư": "KCC", - "phi trường": "PT", - "trung tâm": "TT", - "tổng công ty": "TCty", - "trung học cơ sở": "THCS", - "sân bay quốc tế": "SBQT", - "trung học phổ thông": "THPT", - "cao đẳng": "CĐ", - "công ty": "Cty", - "sân bay": "SB", - "thành phố": "Tp", - "công viên": "CV", - "sân vận động": "SVĐ", - "linh mục": "LM", - "vườn quốc gia": "VQG" - }, - "classifications": { - "huyện lộ": "HL", - "đường tỉnh": "ĐT", - "quốc lộ": "QL", - "xa lộ": "XL", - "hương lộ": "HL", - "tỉnh lộ": "TL", - "đường huyện": "ĐH", - "đường cao tốc": "ĐCT", - "đại lộ": "ĐL", - "việt nam": "VN", - "quảng trường": "QT", - "đường bộ": "ĐB" - }, - "directions": { - "tây": "T", - "nam": "N", - "đông nam": "ĐN", - "đông bắc": "ĐB", - "tây nam": "TN", - "đông": "Đ", - "bắc": "B" - } -} - -},{}],21:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "regExpFlags": "gi" - }, - "v5": { - "article": [ - ["^ Acc[èe]s ", " l’accès "], - ["^ Aire ", " l’aire "], - ["^ All[ée]e ", " l’allée "], - ["^ Anse ", " l’anse "], - ["^ (L['’])?Autoroute ", " l’autoroute "], - ["^ Avenue ", " l’avenue "], - ["^ Barreau ", " le barreau "], - ["^ Boulevard ", " le boulevard "], - ["^ Chemin ", " le chemin "], - ["^ Petit[\\- ]Chemin ", " le petit chemin "], - ["^ Cit[ée] ", " la cité "], - ["^ Clos ", " le clos "], - ["^ Corniche ", " la corniche "], - ["^ Cour ", " la cour "], - ["^ Cours ", " le cours "], - ["^ D[ée]viation ", " la déviation "], - ["^ Entr[ée]e ", " l’entrée "], - ["^ Esplanade ", " l’esplanade "], - ["^ Galerie ", " la galerie "], - ["^ Impasse ", " l’impasse "], - ["^ Lotissement ", " le lotissement "], - ["^ Mont[ée]e ", " la montée "], - ["^ Parc ", " le parc "], - ["^ Parvis ", " le parvis "], - ["^ Passage ", " le passage "], - ["^ Place ", " la place "], - ["^ Petit[\\- ]Pont ", " le petit-pont "], - ["^ Pont ", " le pont "], - ["^ Promenade ", " la promenade "], - ["^ Quai ", " le quai "], - ["^ Rocade ", " la rocade "], - ["^ Rond[\\- ]?Point ", " le rond-point "], - ["^ Route ", " la route "], - ["^ Rue ", " la rue "], - ["^ Grande Rue ", " la grande rue "], - ["^ Sente ", " la sente "], - ["^ Sentier ", " le sentier "], - ["^ Sortie ", " la sortie "], - ["^ Souterrain ", " le souterrain "], - ["^ Square ", " le square "], - ["^ Terrasse ", " la terrasse "], - ["^ Traverse ", " la traverse "], - ["^ Tunnel ", " le tunnel "], - ["^ Viaduc ", " le viaduc "], - ["^ Villa ", " la villa "], - ["^ Village ", " le village "], - ["^ Voie ", " la voie "], - - [" ([dl])'", " $1’"] - ], - "preposition": [ - ["^ Le ", " du "], - ["^ Les ", " des "], - ["^ La ", " de La "], - - ["^ Acc[èe]s ", " de l’accès "], - ["^ Aire ", " de l’aire "], - ["^ All[ée]e ", " de l’allée "], - ["^ Anse ", " de l’anse "], - ["^ (L['’])?Autoroute ", " de l’autoroute "], - ["^ Avenue ", " de l’avenue "], - ["^ Barreau ", " du barreau "], - ["^ Boulevard ", " du boulevard "], - ["^ Chemin ", " du chemin "], - ["^ Petit[\\- ]Chemin ", " du petit chemin "], - ["^ Cit[ée] ", " de la cité "], - ["^ Clos ", " du clos "], - ["^ Corniche ", " de la corniche "], - ["^ Cour ", " de la cour "], - ["^ Cours ", " du cours "], - ["^ D[ée]viation ", " de la déviation "], - ["^ Entr[ée]e ", " de l’entrée "], - ["^ Esplanade ", " de l’esplanade "], - ["^ Galerie ", " de la galerie "], - ["^ Impasse ", " de l’impasse "], - ["^ Lotissement ", " du lotissement "], - ["^ Mont[ée]e ", " de la montée "], - ["^ Parc ", " du parc "], - ["^ Parvis ", " du parvis "], - ["^ Passage ", " du passage "], - ["^ Place ", " de la place "], - ["^ Petit[\\- ]Pont ", " du petit-pont "], - ["^ Pont ", " du pont "], - ["^ Promenade ", " de la promenade "], - ["^ Quai ", " du quai "], - ["^ Rocade ", " de la rocade "], - ["^ Rond[\\- ]?Point ", " du rond-point "], - ["^ Route ", " de la route "], - ["^ Rue ", " de la rue "], - ["^ Grande Rue ", " de la grande rue "], - ["^ Sente ", " de la sente "], - ["^ Sentier ", " du sentier "], - ["^ Sortie ", " de la sortie "], - ["^ Souterrain ", " du souterrain "], - ["^ Square ", " du square "], - ["^ Terrasse ", " de la terrasse "], - ["^ Traverse ", " de la traverse "], - ["^ Tunnel ", " du tunnel "], - ["^ Viaduc ", " du viaduc "], - ["^ Villa ", " de la villa "], - ["^ Village ", " du village "], - ["^ Voie ", " de la voie "], - - ["^ ([AÂÀEÈÉÊËIÎÏOÔUÙÛÜYŸÆŒ])", " d’$1"], - ["^ (\\S)", " de $1"], - [" ([dl])'", " $1’"] - ], - "rotary": [ - ["^ Le ", " le rond-point du "], - ["^ Les ", " le rond-point des "], - ["^ La ", " le rond-point de La "], - - ["^ Acc[èe]s ", " le rond-point de l’accès "], - ["^ Aire ", " le rond-point de l’aire "], - ["^ All[ée]e ", " le rond-point de l’allée "], - ["^ Anse ", " le rond-point de l’anse "], - ["^ (L['’])?Autoroute ", " le rond-point de l’autoroute "], - ["^ Avenue ", " le rond-point de l’avenue "], - ["^ Barreau ", " le rond-point du barreau "], - ["^ Boulevard ", " le rond-point du boulevard "], - ["^ Chemin ", " le rond-point du chemin "], - ["^ Petit[\\- ]Chemin ", " le rond-point du petit chemin "], - ["^ Cit[ée] ", " le rond-point de la cité "], - ["^ Clos ", " le rond-point du clos "], - ["^ Corniche ", " le rond-point de la corniche "], - ["^ Cour ", " le rond-point de la cour "], - ["^ Cours ", " le rond-point du cours "], - ["^ D[ée]viation ", " le rond-point de la déviation "], - ["^ Entr[ée]e ", " le rond-point de l’entrée "], - ["^ Esplanade ", " le rond-point de l’esplanade "], - ["^ Galerie ", " le rond-point de la galerie "], - ["^ Impasse ", " le rond-point de l’impasse "], - ["^ Lotissement ", " le rond-point du lotissement "], - ["^ Mont[ée]e ", " le rond-point de la montée "], - ["^ Parc ", " le rond-point du parc "], - ["^ Parvis ", " le rond-point du parvis "], - ["^ Passage ", " le rond-point du passage "], - ["^ Place ", " le rond-point de la place "], - ["^ Petit[\\- ]Pont ", " le rond-point du petit-pont "], - ["^ Pont ", " le rond-point du pont "], - ["^ Promenade ", " le rond-point de la promenade "], - ["^ Quai ", " le rond-point du quai "], - ["^ Rocade ", " le rond-point de la rocade "], - ["^ Rond[\\- ]?Point ", " le rond-point "], - ["^ Route ", " le rond-point de la route "], - ["^ Rue ", " le rond-point de la rue "], - ["^ Grande Rue ", " le rond-point de la grande rue "], - ["^ Sente ", " le rond-point de la sente "], - ["^ Sentier ", " le rond-point du sentier "], - ["^ Sortie ", " le rond-point de la sortie "], - ["^ Souterrain ", " le rond-point du souterrain "], - ["^ Square ", " le rond-point du square "], - ["^ Terrasse ", " le rond-point de la terrasse "], - ["^ Traverse ", " le rond-point de la traverse "], - ["^ Tunnel ", " le rond-point du tunnel "], - ["^ Viaduc ", " le rond-point du viaduc "], - ["^ Villa ", " le rond-point de la villa "], - ["^ Village ", " le rond-point du village "], - ["^ Voie ", " le rond-point de la voie "], - - ["^ ([AÂÀEÈÉÊËIÎÏOÔUÙÛÜYŸÆŒ])", " le rond-point d’$1"], - ["^ (\\S)", " le rond-point de $1"], - [" ([dl])'", " $1’"] - ], - "arrival": [ - ["^ Le ", " au "], - ["^ Les ", " aux "], - ["^ La ", " à La "], - ["^ (\\S)", " à $1"], - - [" ([dl])'", " $1’"] - ] - } -} - -},{}],22:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "regExpFlags": "" - }, - "v5": { - "accusative": [ - ["^ ([«\"])", " трасса $1"], - - ["^ (\\S+)ая [Аа]ллея ", " $1ую аллею "], - ["^ (\\S+)ья [Аа]ллея ", " $1ью аллею "], - ["^ (\\S+)яя [Аа]ллея ", " $1юю аллею "], - ["^ (\\d+)-я (\\S+)ая [Аа]ллея ", " $1-ю $2ую аллею "], - ["^ [Аа]ллея ", " аллею "], - - ["^ (\\S+)ая-(\\S+)ая [Уу]лица ", " $1ую-$2ую улицу "], - ["^ (\\S+)ая [Уу]лица ", " $1ую улицу "], - ["^ (\\S+)ья [Уу]лица ", " $1ью улицу "], - ["^ (\\S+)яя [Уу]лица ", " $1юю улицу "], - ["^ (\\d+)-я [Уу]лица ", " $1-ю улицу "], - ["^ (\\d+)-я (\\S+)ая [Уу]лица ", " $1-ю $2ую улицу "], - ["^ (\\S+)ая (\\S+)ая [Уу]лица ", " $1ую $2ую улицу "], - ["^ (\\S+[вн])а [Уу]лица ", " $1у улицу "], - ["^ (\\S+)ая (\\S+[вн])а [Уу]лица ", " $1ую $2у улицу "], - ["^ Даньславля [Уу]лица ", " Даньславлю улицу "], - ["^ Добрыня [Уу]лица ", " Добрыню улицу "], - ["^ Людогоща [Уу]лица ", " Людогощу улицу "], - ["^ [Уу]лица ", " улицу "], - - ["^ (\\d+)-я [Лл]иния ", " $1-ю линию "], - ["^ (\\d+)-(\\d+)-я [Лл]иния ", " $1-$2-ю линию "], - ["^ (\\S+)ая [Лл]иния ", " $1ую линию "], - ["^ (\\S+)ья [Лл]иния ", " $1ью линию "], - ["^ (\\S+)яя [Лл]иния ", " $1юю линию "], - ["^ (\\d+)-я (\\S+)ая [Лл]иния ", " $1-ю $2ую линию "], - ["^ [Лл]иния ", " линию "], - - ["^ (\\d+)-(\\d+)-я [Лл]инии ", " $1-$2-ю линии "], - - ["^ (\\S+)ая [Нн]абережная ", " $1ую набережную "], - ["^ (\\S+)ья [Нн]абережная ", " $1ью набережную "], - ["^ (\\S+)яя [Нн]абережная ", " $1юю набережную "], - ["^ (\\d+)-я (\\S+)ая [Нн]абережная ", " $1-ю $2ую набережную "], - ["^ [Нн]абережная ", " набережную "], - - ["^ (\\S+)ая [Пп]лощадь ", " $1ую площадь "], - ["^ (\\S+)ья [Пп]лощадь ", " $1ью площадь "], - ["^ (\\S+)яя [Пп]лощадь ", " $1юю площадь "], - ["^ (\\S+[вн])а [Пп]лощадь ", " $1у площадь "], - ["^ (\\d+)-я (\\S+)ая [Пп]лощадь ", " $1-ю $2ую площадь "], - ["^ [Пп]лощадь ", " площадь "], - - ["^ (\\S+)ая [Пп]росека ", " $1ую просеку "], - ["^ (\\S+)ья [Пп]росека ", " $1ью просеку "], - ["^ (\\S+)яя [Пп]росека ", " $1юю просеку "], - ["^ (\\d+)-я [Пп]росека ", " $1-ю просеку "], - ["^ [Пп]росека ", " просеку "], - - ["^ (\\S+)ая [Ээ]стакада ", " $1ую эстакаду "], - ["^ (\\S+)ья [Ээ]стакада ", " $1ью эстакаду "], - ["^ (\\S+)яя [Ээ]стакада ", " $1юю эстакаду "], - ["^ (\\d+)-я (\\S+)ая [Ээ]стакада ", " $1-ю $2ую эстакаду "], - ["^ [Ээ]стакада ", " эстакаду "], - - ["^ (\\S+)ая [Мм]агистраль ", " $1ую магистраль "], - ["^ (\\S+)ья [Мм]агистраль ", " $1ью магистраль "], - ["^ (\\S+)яя [Мм]агистраль ", " $1юю магистраль "], - ["^ (\\S+)ая (\\S+)ая [Мм]агистраль ", " $1ую $2ую магистраль "], - ["^ (\\d+)-я (\\S+)ая [Мм]агистраль ", " $1-ю $2ую магистраль "], - ["^ [Мм]агистраль ", " магистраль "], - - ["^ (\\S+)ая [Рр]азвязка ", " $1ую развязку "], - ["^ (\\S+)ья [Рр]азвязка ", " $1ью развязку "], - ["^ (\\S+)яя [Рр]азвязка ", " $1юю развязку "], - ["^ (\\d+)-я (\\S+)ая [Рр]азвязка ", " $1-ю $2ую развязку "], - ["^ [Рр]азвязка ", " развязку "], - - ["^ (\\S+)ая [Тт]расса ", " $1ую трассу "], - ["^ (\\S+)ья [Тт]расса ", " $1ью трассу "], - ["^ (\\S+)яя [Тт]расса ", " $1юю трассу "], - ["^ (\\d+)-я (\\S+)ая [Тт]расса ", " $1-ю $2ую трассу "], - ["^ [Тт]расса ", " трассу "], - - ["^ (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ую $2дорогу "], - ["^ (\\S+)ья ([Аа]вто)?[Дд]орога ", " $1ью $2дорогу "], - ["^ (\\S+)яя ([Аа]вто)?[Дд]орога ", " $1юю $2дорогу "], - ["^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ую $2ую $3дорогу "], - ["^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1-ю $2ую $3дорогу "], - ["^ ([Аа]вто)?[Дд]орога ", " $1дорогу "], - - ["^ (\\S+)ая [Дд]орожка ", " $1ую дорожку "], - ["^ (\\S+)ья [Дд]орожка ", " $1ью дорожку "], - ["^ (\\S+)яя [Дд]орожка ", " $1юю дорожку "], - ["^ (\\d+)-я (\\S+)ая [Дд]орожка ", " $1-ю $2ую дорожку "], - ["^ [Дд]орожка ", " дорожку "], - - ["^ (\\S+)ая [Кк]оса ", " $1ую косу "], - ["^ (\\S+)ая [Хх]орда ", " $1ую хорду "], - - ["^ [Дд]убл[её]р ", " дублёр "] - ], - "dative": [ - ["^ ([«\"])", " трасса $1"], - - ["^ (\\S+)ая [Аа]ллея ", " $1ой аллее "], - ["^ (\\S+)ья [Аа]ллея ", " $1ьей аллее "], - ["^ (\\S+)яя [Аа]ллея ", " $1ей аллее "], - ["^ (\\d+)-я (\\S+)ая [Аа]ллея ", " $1-й $2ой аллее "], - ["^ [Аа]ллея ", " аллее "], - - ["^ (\\S+)ая-(\\S+)ая [Уу]лица ", " $1ой-$2ой улице "], - ["^ (\\S+)ая [Уу]лица ", " $1ой улице "], - ["^ (\\S+)ья [Уу]лица ", " $1ьей улице "], - ["^ (\\S+)яя [Уу]лица ", " $1ей улице "], - ["^ (\\d+)-я [Уу]лица ", " $1-й улице "], - ["^ (\\d+)-я (\\S+)ая [Уу]лица ", " $1-й $2ой улице "], - ["^ (\\S+)ая (\\S+)ая [Уу]лица ", " $1ой $2ой улице "], - ["^ (\\S+[вн])а [Уу]лица ", " $1ой улице "], - ["^ (\\S+)ая (\\S+[вн])а [Уу]лица ", " $1ой $2ой улице "], - ["^ Даньславля [Уу]лица ", " Даньславлей улице "], - ["^ Добрыня [Уу]лица ", " Добрыней улице "], - ["^ Людогоща [Уу]лица ", " Людогощей улице "], - ["^ [Уу]лица ", " улице "], - - ["^ (\\d+)-я [Лл]иния ", " $1-й линии "], - ["^ (\\d+)-(\\d+)-я [Лл]иния ", " $1-$2-й линии "], - ["^ (\\S+)ая [Лл]иния ", " $1ой линии "], - ["^ (\\S+)ья [Лл]иния ", " $1ьей линии "], - ["^ (\\S+)яя [Лл]иния ", " $1ей линии "], - ["^ (\\d+)-я (\\S+)ая [Лл]иния ", " $1-й $2ой линии "], - ["^ [Лл]иния ", " линии "], - - ["^ (\\d+)-(\\d+)-я [Лл]инии ", " $1-$2-й линиям "], - - ["^ (\\S+)ая [Нн]абережная ", " $1ой набережной "], - ["^ (\\S+)ья [Нн]абережная ", " $1ьей набережной "], - ["^ (\\S+)яя [Нн]абережная ", " $1ей набережной "], - ["^ (\\d+)-я (\\S+)ая [Нн]абережная ", " $1-й $2ой набережной "], - ["^ [Нн]абережная ", " набережной "], - - ["^ (\\S+)ая [Пп]лощадь ", " $1ой площади "], - ["^ (\\S+)ья [Пп]лощадь ", " $1ьей площади "], - ["^ (\\S+)яя [Пп]лощадь ", " $1ей площади "], - ["^ (\\S+[вн])а [Пп]лощадь ", " $1ой площади "], - ["^ (\\d+)-я (\\S+)ая [Пп]лощадь ", " $1-й $2ой площади "], - ["^ [Пп]лощадь ", " площади "], - - ["^ (\\S+)ая [Пп]росека ", " $1ой просеке "], - ["^ (\\S+)ья [Пп]росека ", " $1ьей просеке "], - ["^ (\\S+)яя [Пп]росека ", " $1ей просеке "], - ["^ (\\d+)-я [Пп]росека ", " $1-й просеке "], - ["^ [Пп]росека ", " просеке "], - - ["^ (\\S+)ая [Ээ]стакада ", " $1ой эстакаде "], - ["^ (\\S+)ья [Ээ]стакада ", " $1ьей эстакаде "], - ["^ (\\S+)яя [Ээ]стакада ", " $1ей эстакаде "], - ["^ (\\d+)-я (\\S+)ая [Ээ]стакада ", " $1-й $2ой эстакаде "], - ["^ [Ээ]стакада ", " эстакаде "], - - ["^ (\\S+)ая [Мм]агистраль ", " $1ой магистрали "], - ["^ (\\S+)ья [Мм]агистраль ", " $1ьей магистрали "], - ["^ (\\S+)яя [Мм]агистраль ", " $1ей магистрали "], - ["^ (\\S+)ая (\\S+)ая [Мм]агистраль ", " $1ой $2ой магистрали "], - ["^ (\\d+)-я (\\S+)ая [Мм]агистраль ", " $1-й $2ой магистрали "], - ["^ [Мм]агистраль ", " магистрали "], - - ["^ (\\S+)ая [Рр]азвязка ", " $1ой развязке "], - ["^ (\\S+)ья [Рр]азвязка ", " $1ьей развязке "], - ["^ (\\S+)яя [Рр]азвязка ", " $1ей развязке "], - ["^ (\\d+)-я (\\S+)ая [Рр]азвязка ", " $1-й $2ой развязке "], - ["^ [Рр]азвязка ", " развязке "], - - ["^ (\\S+)ая [Тт]расса ", " $1ой трассе "], - ["^ (\\S+)ья [Тт]расса ", " $1ьей трассе "], - ["^ (\\S+)яя [Тт]расса ", " $1ей трассе "], - ["^ (\\d+)-я (\\S+)ая [Тт]расса ", " $1-й $2ой трассе "], - ["^ [Тт]расса ", " трассе "], - - ["^ (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2дороге "], - ["^ (\\S+)ья ([Аа]вто)?[Дд]орога ", " $1ьей $2дороге "], - ["^ (\\S+)яя ([Аа]вто)?[Дд]орога ", " $1ей $2дороге "], - ["^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2ой $3дороге "], - ["^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1-й $2ой $3дороге "], - ["^ ([Аа]вто)?[Дд]орога ", " $1дороге "], - - ["^ (\\S+)ая [Дд]орожка ", " $1ой дорожке "], - ["^ (\\S+)ья [Дд]орожка ", " $1ьей дорожке "], - ["^ (\\S+)яя [Дд]орожка ", " $1ей дорожке "], - ["^ (\\d+)-я (\\S+)ая [Дд]орожка ", " $1-й $2ой дорожке "], - ["^ [Дд]орожка ", " дорожке "], - - ["^ (\\S+)во [Пп]оле ", " $1ву полю "], - ["^ (\\S+)ая [Кк]оса ", " $1ой косе "], - ["^ (\\S+)ая [Хх]орда ", " $1ой хорде "], - ["^ (\\S+)[иоы]й [Пп]роток ", " $1ому протоку "], - - ["^ (\\S+н)ий [Бб]ульвар ", " $1ему бульвару "], - ["^ (\\S+)[иоы]й [Бб]ульвар ", " $1ому бульвару "], - ["^ (\\S+[иы]н) [Бб]ульвар ", " $1у бульвару "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ", " $1ому $2ему бульвару "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ", " $1ему $2ому бульвару "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ", " $1ому $2ому бульвару "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ", " $1ому $2у бульвару "], - ["^ (\\d+)-й (\\S+н)ий [Бб]ульвар ", " $1-му $2ему бульвару "], - ["^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ", " $1-му $2ому бульвару "], - ["^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ", " $1-му $2у бульвару "], - ["^ [Бб]ульвар ", " бульвару "], - - ["^ [Дд]убл[её]р ", " дублёру "], - - ["^ (\\S+н)ий [Зз]аезд ", " $1ему заезду "], - ["^ (\\S+)[иоы]й [Зз]аезд ", " $1ому заезду "], - ["^ (\\S+[еёо]в) [Зз]аезд ", " $1у заезду "], - ["^ (\\S+[иы]н) [Зз]аезд ", " $1у заезду "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ", " $1ому $2ему заезду "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ", " $1ему $2ому заезду "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ", " $1ому $2ому заезду "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ", " $1ому $2у заезду "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ", " $1ому $2у заезду "], - ["^ (\\d+)-й (\\S+н)ий [Зз]аезд ", " $1-му $2ему заезду "], - ["^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ", " $1-му $2ому заезду "], - ["^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ", " $1-му $2у заезду "], - ["^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ", " $1-му $2у заезду "], - ["^ [Зз]аезд ", " заезду "], - - ["^ (\\S+н)ий [Мм]ост ", " $1ему мосту "], - ["^ (\\S+)[иоы]й [Мм]ост ", " $1ому мосту "], - ["^ (\\S+[еёо]в) [Мм]ост ", " $1у мосту "], - ["^ (\\S+[иы]н) [Мм]ост ", " $1у мосту "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ", " $1ому $2ему мосту "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ", " $1ему $2ому мосту "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ", " $1ому $2ому мосту "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ", " $1ому $2у мосту "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ", " $1ому $2у мосту "], - ["^ (\\d+)-й [Мм]ост ", " $1-му мосту "], - ["^ (\\d+)-й (\\S+н)ий [Мм]ост ", " $1-му $2ему мосту "], - ["^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ", " $1-му $2ому мосту "], - ["^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ", " $1-му $2у мосту "], - ["^ (\\d+)-й (\\S+[иы]н) [Мм]ост ", " $1-му $2у мосту "], - ["^ [Мм]ост ", " мосту "], - - ["^ (\\S+н)ий [Оо]бход ", " $1ему обходу "], - ["^ (\\S+)[иоы]й [Оо]бход ", " $1ому обходу "], - ["^ [Оо]бход ", " обходу "], - - ["^ (\\S+н)ий [Пп]арк ", " $1ему парку "], - ["^ (\\S+)[иоы]й [Пп]арк ", " $1ому парку "], - ["^ (\\S+[иы]н) [Пп]арк ", " $1у парку "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ", " $1ому $2ему парку "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ", " $1ему $2ому парку "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ", " $1ому $2ому парку "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ", " $1ому $2у парку "], - ["^ (\\d+)-й (\\S+н)ий [Пп]арк ", " $1-му $2ему парку "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ", " $1-му $2ому парку "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]арк ", " $1-му $2у парку "], - ["^ [Пп]арк ", " парку "], - - ["^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1ому-$2ому переулку "], - ["^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1-му $2ому-$3ому переулку "], - ["^ (\\S+н)ий [Пп]ереулок ", " $1ему переулку "], - ["^ (\\S+)[иоы]й [Пп]ереулок ", " $1ому переулку "], - ["^ (\\S+[еёо]в) [Пп]ереулок ", " $1у переулку "], - ["^ (\\S+[иы]н) [Пп]ереулок ", " $1у переулку "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ", " $1ому $2ему переулку "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ", " $1ему $2ому переулку "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ", " $1ому $2ому переулку "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ", " $1ому $2у переулку "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ", " $1ому $2у переулку "], - ["^ (\\d+)-й [Пп]ереулок ", " $1-му переулку "], - ["^ (\\d+)-й (\\S+н)ий [Пп]ереулок ", " $1-му $2ему переулку "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ", " $1-му $2ому переулку "], - ["^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ", " $1-му $2у переулку "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ", " $1-му $2у переулку "], - ["^ [Пп]ереулок ", " переулку "], - - ["^ [Пп]одъезд ", " подъезду "], - - ["^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ", " $1у-$2ому проезду "], - ["^ (\\S+н)ий [Пп]роезд ", " $1ему проезду "], - ["^ (\\S+)[иоы]й [Пп]роезд ", " $1ому проезду "], - ["^ (\\S+[еёо]в) [Пп]роезд ", " $1у проезду "], - ["^ (\\S+[иы]н) [Пп]роезд ", " $1у проезду "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ", " $1ому $2ему проезду "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1ему $2ому проезду "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1ому $2ому проезду "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ", " $1ому $2у проезду "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ", " $1ому $2у проезду "], - ["^ (\\d+)-й [Пп]роезд ", " $1-му проезду "], - ["^ (\\d+)-й (\\S+н)ий [Пп]роезд ", " $1-му $2ему проезду "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ", " $1-му $2ому проезду "], - ["^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ", " $1-му $2у проезду "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ", " $1-му $2у проезду "], - ["^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1-му $2ему $3ому проезду "], - ["^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1-му $2ому $3ому проезду "], - ["^ [Пп]роезд ", " проезду "], - - ["^ (\\S+н)ий [Пп]роспект ", " $1ему проспекту "], - ["^ (\\S+)[иоы]й [Пп]роспект ", " $1ому проспекту "], - ["^ (\\S+[иы]н) [Пп]роспект ", " $1у проспекту "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ", " $1ому $2ему проспекту "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ", " $1ему $2ому проспекту "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ", " $1ому $2ому проспекту "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ", " $1ому $2у проспекту "], - ["^ (\\d+)-й (\\S+н)ий [Пп]роспект ", " $1-му $2ему проспекту "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ", " $1-му $2ому проспекту "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ", " $1-му $2у проспекту "], - ["^ [Пп]роспект ", " проспекту "], - - ["^ (\\S+н)ий [Пп]утепровод ", " $1ему путепроводу "], - ["^ (\\S+)[иоы]й [Пп]утепровод ", " $1ому путепроводу "], - ["^ (\\S+[иы]н) [Пп]утепровод ", " $1у путепроводу "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ", " $1ому $2ему путепроводу "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ", " $1ему $2ому путепроводу "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ", " $1ому $2ому путепроводу "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ", " $1ому $2у путепроводу "], - ["^ (\\d+)-й (\\S+н)ий [Пп]утепровод ", " $1-му $2ему путепроводу "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ", " $1-му $2ому путепроводу "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ", " $1-му $2у путепроводу "], - ["^ [Пп]утепровод ", " путепроводу "], - - ["^ (\\S+н)ий [Сс]пуск ", " $1ему спуску "], - ["^ (\\S+)[иоы]й [Сс]пуск ", " $1ому спуску "], - ["^ (\\S+[еёо]в) [Сс]пуск ", " $1у спуску "], - ["^ (\\S+[иы]н) [Сс]пуск ", " $1у спуску "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ", " $1ому $2ему спуску "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ", " $1ему $2ому спуску "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ", " $1ому $2ому спуску "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ", " $1ому $2у спуску "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ", " $1ому $2у спуску "], - ["^ (\\d+)-й (\\S+н)ий [Сс]пуск ", " $1-му $2ему спуску "], - ["^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ", " $1-му $2ому спуску "], - ["^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ", " $1-му $2у спуску "], - ["^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ", " $1-му $2у спуску "], - ["^ [Сс]пуск ", " спуску "], - - ["^ (\\S+н)ий [Сс]ъезд ", " $1ему съезду "], - ["^ (\\S+)[иоы]й [Сс]ъезд ", " $1ому съезду "], - ["^ (\\S+[иы]н) [Сс]ъезд ", " $1у съезду "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ", " $1ому $2ему съезду "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ", " $1ему $2ому съезду "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ", " $1ому $2ому съезду "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ", " $1ому $2у съезду "], - ["^ (\\d+)-й (\\S+н)ий [Сс]ъезд ", " $1-му $2ему съезду "], - ["^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ", " $1-му $2ому съезду "], - ["^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ", " $1-му $2у съезду "], - ["^ [Сс]ъезд ", " съезду "], - - ["^ (\\S+н)ий [Тт][уо]ннель ", " $1ему тоннелю "], - ["^ (\\S+)[иоы]й [Тт][уо]ннель ", " $1ому тоннелю "], - ["^ (\\S+[иы]н) [Тт][уо]ннель ", " $1у тоннелю "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ", " $1ому $2ему тоннелю "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ", " $1ему $2ому тоннелю "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ", " $1ому $2ому тоннелю "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ", " $1ому $2у тоннелю "], - ["^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ", " $1-му $2ему тоннелю "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ", " $1-му $2ому тоннелю "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ", " $1-му $2у тоннелю "], - ["^ [Тт][уо]ннель ", " тоннелю "], - - ["^ (\\S+н)ий [Тт]ракт ", " $1ему тракту "], - ["^ (\\S+)[иоы]й [Тт]ракт ", " $1ому тракту "], - ["^ (\\S+[еёо]в) [Тт]ракт ", " $1у тракту "], - ["^ (\\S+[иы]н) [Тт]ракт ", " $1у тракту "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ", " $1ому $2ему тракту "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ", " $1ему $2ому тракту "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ", " $1ому $2ому тракту "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ", " $1ому $2у тракту "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ", " $1ому $2у тракту "], - ["^ (\\d+)-й (\\S+н)ий [Тт]ракт ", " $1-му $2ему тракту "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ", " $1-му $2ому тракту "], - ["^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ", " $1-му $2у тракту "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ", " $1-му $2у тракту "], - ["^ [Тт]ракт ", " тракту "], - - ["^ (\\S+н)ий [Тт]упик ", " $1ему тупику "], - ["^ (\\S+)[иоы]й [Тт]упик ", " $1ому тупику "], - ["^ (\\S+[еёо]в) [Тт]упик ", " $1у тупику "], - ["^ (\\S+[иы]н) [Тт]упик ", " $1у тупику "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ", " $1ому $2ему тупику "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ", " $1ему $2ому тупику "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ", " $1ому $2ому тупику "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ", " $1ому $2у тупику "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ", " $1ому $2у тупику "], - ["^ (\\d+)-й [Тт]упик ", " $1-му тупику "], - ["^ (\\d+)-й (\\S+н)ий [Тт]упик ", " $1-му $2ему тупику "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ", " $1-му $2ому тупику "], - ["^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ", " $1-му $2у тупику "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт]упик ", " $1-му $2у тупику "], - ["^ [Тт]упик ", " тупику "], - - ["^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1му $2кольцу "], - ["^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1му $2кольцу "], - ["^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1му $2му $3кольцу "], - ["^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1му $2му $3кольцу "], - ["^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1-му $2му $3кольцу "], - ["^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1-му $2му $3кольцу "], - ["^ ([Пп]олу)?[Кк]ольцо ", " $1кольцу "], - - ["^ (\\S+[ео])е [Шш]оссе ", " $1му шоссе "], - ["^ (\\S+ье) [Шш]оссе ", " $1му шоссе "], - ["^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ", " $1му $2му шоссе "], - ["^ (\\S+ье) (\\S+[ео])е [Шш]оссе ", " $1му $2му шоссе "], - ["^ (\\d+)-е (\\S+[ео])е [Шш]оссе ", " $1-му $2му шоссе "], - ["^ (\\d+)-е (\\S+ье) [Шш]оссе ", " $1-му $2му шоссе "], - - [" ([Тт])ретому ", " $1ретьему "], - ["([жч])ому ", "$1ьему "], - ["([жч])ой ", "$1ей "] - ], - "genitive": [ - ["^ ([«\"])", " трасса $1"], - - ["^ (\\S+)ая [Аа]ллея ", " $1ой аллеи "], - ["^ (\\S+)ья [Аа]ллея ", " $1ьей аллеи "], - ["^ (\\S+)яя [Аа]ллея ", " $1ей аллеи "], - ["^ (\\d+)-я (\\S+)ая [Аа]ллея ", " $1-й $2ой аллеи "], - ["^ [Аа]ллея ", " аллеи "], - - ["^ (\\S+)ая-(\\S+)ая [Уу]лица ", " $1ой-$2ой улицы "], - ["^ (\\S+)ая [Уу]лица ", " $1ой улицы "], - ["^ (\\S+)ья [Уу]лица ", " $1ьей улицы "], - ["^ (\\S+)яя [Уу]лица ", " $1ей улицы "], - ["^ (\\d+)-я [Уу]лица ", " $1-й улицы "], - ["^ (\\d+)-я (\\S+)ая [Уу]лица ", " $1-й $2ой улицы "], - ["^ (\\S+)ая (\\S+)ая [Уу]лица ", " $1ой $2ой улицы "], - ["^ (\\S+[вн])а [Уу]лица ", " $1ой улицы "], - ["^ (\\S+)ая (\\S+[вн])а [Уу]лица ", " $1ой $2ой улицы "], - ["^ Даньславля [Уу]лица ", " Даньславлей улицы "], - ["^ Добрыня [Уу]лица ", " Добрыней улицы "], - ["^ Людогоща [Уу]лица ", " Людогощей улицы "], - ["^ [Уу]лица ", " улицы "], - - ["^ (\\d+)-я [Лл]иния ", " $1-й линии "], - ["^ (\\d+)-(\\d+)-я [Лл]иния ", " $1-$2-й линии "], - ["^ (\\S+)ая [Лл]иния ", " $1ой линии "], - ["^ (\\S+)ья [Лл]иния ", " $1ьей линии "], - ["^ (\\S+)яя [Лл]иния ", " $1ей линии "], - ["^ (\\d+)-я (\\S+)ая [Лл]иния ", " $1-й $2ой линии "], - ["^ [Лл]иния ", " линии "], - - ["^ (\\d+)-(\\d+)-я [Лл]инии ", " $1-$2-й линий "], - - ["^ (\\S+)ая [Нн]абережная ", " $1ой набережной "], - ["^ (\\S+)ья [Нн]абережная ", " $1ьей набережной "], - ["^ (\\S+)яя [Нн]абережная ", " $1ей набережной "], - ["^ (\\d+)-я (\\S+)ая [Нн]абережная ", " $1-й $2ой набережной "], - ["^ [Нн]абережная ", " набережной "], - - ["^ (\\S+)ая [Пп]лощадь ", " $1ой площади "], - ["^ (\\S+)ья [Пп]лощадь ", " $1ьей площади "], - ["^ (\\S+)яя [Пп]лощадь ", " $1ей площади "], - ["^ (\\S+[вн])а [Пп]лощадь ", " $1ой площади "], - ["^ (\\d+)-я (\\S+)ая [Пп]лощадь ", " $1-й $2ой площади "], - ["^ [Пп]лощадь ", " площади "], - - ["^ (\\S+)ая [Пп]росека ", " $1ой просеки "], - ["^ (\\S+)ья [Пп]росека ", " $1ьей просеки "], - ["^ (\\S+)яя [Пп]росека ", " $1ей просеки "], - ["^ (\\d+)-я [Пп]росека ", " $1-й просеки "], - ["^ [Пп]росека ", " просеки "], - - ["^ (\\S+)ая [Ээ]стакада ", " $1ой эстакады "], - ["^ (\\S+)ья [Ээ]стакада ", " $1ьей эстакады "], - ["^ (\\S+)яя [Ээ]стакада ", " $1ей эстакады "], - ["^ (\\d+)-я (\\S+)ая [Ээ]стакада ", " $1-й $2ой эстакады "], - ["^ [Ээ]стакада ", " эстакады "], - - ["^ (\\S+)ая [Мм]агистраль ", " $1ой магистрали "], - ["^ (\\S+)ья [Мм]агистраль ", " $1ьей магистрали "], - ["^ (\\S+)яя [Мм]агистраль ", " $1ей магистрали "], - ["^ (\\S+)ая (\\S+)ая [Мм]агистраль ", " $1ой $2ой магистрали "], - ["^ (\\d+)-я (\\S+)ая [Мм]агистраль ", " $1-й $2ой магистрали "], - ["^ [Мм]агистраль ", " магистрали "], - - ["^ (\\S+)ая [Рр]азвязка ", " $1ой развязки "], - ["^ (\\S+)ья [Рр]азвязка ", " $1ьей развязки "], - ["^ (\\S+)яя [Рр]азвязка ", " $1ей развязки "], - ["^ (\\d+)-я (\\S+)ая [Рр]азвязка ", " $1-й $2ой развязки "], - ["^ [Рр]азвязка ", " развязки "], - - ["^ (\\S+)ая [Тт]расса ", " $1ой трассы "], - ["^ (\\S+)ья [Тт]расса ", " $1ьей трассы "], - ["^ (\\S+)яя [Тт]расса ", " $1ей трассы "], - ["^ (\\d+)-я (\\S+)ая [Тт]расса ", " $1-й $2ой трассы "], - ["^ [Тт]расса ", " трассы "], - - ["^ (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2дороги "], - ["^ (\\S+)ья ([Аа]вто)?[Дд]орога ", " $1ьей $2дороги "], - ["^ (\\S+)яя ([Аа]вто)?[Дд]орога ", " $1ей $2дороги "], - ["^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2ой $3дороги "], - ["^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1-й $2ой $3дороги "], - ["^ ([Аа]вто)?[Дд]орога ", " $1дороги "], - - ["^ (\\S+)ая [Дд]орожка ", " $1ой дорожки "], - ["^ (\\S+)ья [Дд]орожка ", " $1ьей дорожки "], - ["^ (\\S+)яя [Дд]орожка ", " $1ей дорожки "], - ["^ (\\d+)-я (\\S+)ая [Дд]орожка ", " $1-й $2ой дорожки "], - ["^ [Дд]орожка ", " дорожки "], - - ["^ (\\S+)во [Пп]оле ", " $1ва поля "], - ["^ (\\S+)ая [Кк]оса ", " $1ой косы "], - ["^ (\\S+)ая [Хх]орда ", " $1ой хорды "], - ["^ (\\S+)[иоы]й [Пп]роток ", " $1ого протока "], - - ["^ (\\S+н)ий [Бб]ульвар ", " $1его бульвара "], - ["^ (\\S+)[иоы]й [Бб]ульвар ", " $1ого бульвара "], - ["^ (\\S+[иы]н) [Бб]ульвар ", " $1ого бульвара "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ", " $1ого $2его бульвара "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ", " $1его $2ого бульвара "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ", " $1ого $2ого бульвара "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ", " $1ого $2ого бульвара "], - ["^ (\\d+)-й (\\S+н)ий [Бб]ульвар ", " $1-го $2его бульвара "], - ["^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ", " $1-го $2ого бульвара "], - ["^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ", " $1-го $2ого бульвара "], - ["^ [Бб]ульвар ", " бульвара "], - - ["^ [Дд]убл[её]р ", " дублёра "], - - ["^ (\\S+н)ий [Зз]аезд ", " $1его заезда "], - ["^ (\\S+)[иоы]й [Зз]аезд ", " $1ого заезда "], - ["^ (\\S+[еёо]в) [Зз]аезд ", " $1а заезда "], - ["^ (\\S+[иы]н) [Зз]аезд ", " $1а заезда "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ", " $1ого $2его заезда "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ", " $1его $2ого заезда "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ", " $1ого $2ого заезда "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ", " $1ого $2а заезда "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ", " $1ого $2а заезда "], - ["^ (\\d+)-й (\\S+н)ий [Зз]аезд ", " $1-го $2его заезда "], - ["^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ", " $1-го $2ого заезда "], - ["^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ", " $1-го $2а заезда "], - ["^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ", " $1-го $2а заезда "], - ["^ [Зз]аезд ", " заезда "], - - ["^ (\\S+н)ий [Мм]ост ", " $1его моста "], - ["^ (\\S+)[иоы]й [Мм]ост ", " $1ого моста "], - ["^ (\\S+[еёо]в) [Мм]ост ", " $1а моста "], - ["^ (\\S+[иы]н) [Мм]ост ", " $1а моста "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ", " $1ого $2его моста "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ", " $1его $2ого моста "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ", " $1ого $2ого моста "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ", " $1ого $2а моста "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ", " $1ого $2а моста "], - ["^ (\\d+)-й [Мм]ост ", " $1-го моста "], - ["^ (\\d+)-й (\\S+н)ий [Мм]ост ", " $1-го $2его моста "], - ["^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ", " $1-го $2ого моста "], - ["^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ", " $1-го $2а моста "], - ["^ (\\d+)-й (\\S+[иы]н) [Мм]ост ", " $1-го $2а моста "], - ["^ [Мм]ост ", " моста "], - - ["^ (\\S+н)ий [Оо]бход ", " $1его обхода "], - ["^ (\\S+)[иоы]й [Оо]бход ", " $1ого обхода "], - ["^ [Оо]бход ", " обхода "], - - ["^ (\\S+н)ий [Пп]арк ", " $1его парка "], - ["^ (\\S+)[иоы]й [Пп]арк ", " $1ого парка "], - ["^ (\\S+[иы]н) [Пп]арк ", " $1ого парка "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ", " $1ого $2его парка "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ", " $1его $2ого парка "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ", " $1ого $2ого парка "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ", " $1ого $2ого парка "], - ["^ (\\d+)-й (\\S+н)ий [Пп]арк ", " $1-го $2его парка "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ", " $1-го $2ого парка "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]арк ", " $1-го $2ого парка "], - ["^ [Пп]арк ", " парка "], - - ["^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1ого-$2ого переулка "], - ["^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1-го $2ого-$3ого переулка "], - ["^ (\\S+н)ий [Пп]ереулок ", " $1его переулка "], - ["^ (\\S+)[иоы]й [Пп]ереулок ", " $1ого переулка "], - ["^ (\\S+[еёо]в) [Пп]ереулок ", " $1а переулка "], - ["^ (\\S+[иы]н) [Пп]ереулок ", " $1а переулка "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ", " $1ого $2его переулка "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ", " $1его $2ого переулка "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ", " $1ого $2ого переулка "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ", " $1ого $2а переулка "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ", " $1ого $2а переулка "], - ["^ (\\d+)-й [Пп]ереулок ", " $1-го переулка "], - ["^ (\\d+)-й (\\S+н)ий [Пп]ереулок ", " $1-го $2его переулка "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ", " $1-го $2ого переулка "], - ["^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ", " $1-го $2а переулка "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ", " $1-го $2а переулка "], - ["^ [Пп]ереулок ", " переулка "], - - ["^ [Пп]одъезд ", " подъезда "], - - ["^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ", " $1а-$2ого проезда "], - ["^ (\\S+н)ий [Пп]роезд ", " $1его проезда "], - ["^ (\\S+)[иоы]й [Пп]роезд ", " $1ого проезда "], - ["^ (\\S+[еёо]в) [Пп]роезд ", " $1а проезда "], - ["^ (\\S+[иы]н) [Пп]роезд ", " $1а проезда "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ", " $1ого $2его проезда "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1его $2ого проезда "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1ого $2ого проезда "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ", " $1ого $2а проезда "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ", " $1ого $2а проезда "], - ["^ (\\d+)-й [Пп]роезд ", " $1-го проезда "], - ["^ (\\d+)-й (\\S+н)ий [Пп]роезд ", " $1-го $2его проезда "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ", " $1-го $2ого проезда "], - ["^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ", " $1-го $2а проезда "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ", " $1-го $2а проезда "], - ["^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1-го $2его $3ого проезда "], - ["^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1-го $2ого $3ого проезда "], - ["^ [Пп]роезд ", " проезда "], - - ["^ (\\S+н)ий [Пп]роспект ", " $1его проспекта "], - ["^ (\\S+)[иоы]й [Пп]роспект ", " $1ого проспекта "], - ["^ (\\S+[иы]н) [Пп]роспект ", " $1ого проспекта "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ", " $1ого $2его проспекта "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ", " $1его $2ого проспекта "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ", " $1ого $2ого проспекта "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ", " $1ого $2ого проспекта "], - ["^ (\\d+)-й (\\S+н)ий [Пп]роспект ", " $1-го $2его проспекта "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ", " $1-го $2ого проспекта "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ", " $1-го $2ого проспекта "], - ["^ [Пп]роспект ", " проспекта "], - - ["^ (\\S+н)ий [Пп]утепровод ", " $1его путепровода "], - ["^ (\\S+)[иоы]й [Пп]утепровод ", " $1ого путепровода "], - ["^ (\\S+[иы]н) [Пп]утепровод ", " $1ого путепровода "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ", " $1ого $2его путепровода "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ", " $1его $2ого путепровода "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ", " $1ого $2ого путепровода "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ", " $1ого $2ого путепровода "], - ["^ (\\d+)-й (\\S+н)ий [Пп]утепровод ", " $1-го $2его путепровода "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ", " $1-го $2ого путепровода "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ", " $1-го $2ого путепровода "], - ["^ [Пп]утепровод ", " путепровода "], - - ["^ (\\S+н)ий [Сс]пуск ", " $1его спуска "], - ["^ (\\S+)[иоы]й [Сс]пуск ", " $1ого спуска "], - ["^ (\\S+[еёо]в) [Сс]пуск ", " $1а спуска "], - ["^ (\\S+[иы]н) [Сс]пуск ", " $1а спуска "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ", " $1ого $2его спуска "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ", " $1его $2ого спуска "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ", " $1ого $2ого спуска "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ", " $1ого $2а спуска "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ", " $1ого $2а спуска "], - ["^ (\\d+)-й (\\S+н)ий [Сс]пуск ", " $1-го $2его спуска "], - ["^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ", " $1-го $2ого спуска "], - ["^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ", " $1-го $2а спуска "], - ["^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ", " $1-го $2а спуска "], - ["^ [Сс]пуск ", " спуска "], - - ["^ (\\S+н)ий [Сс]ъезд ", " $1его съезда "], - ["^ (\\S+)[иоы]й [Сс]ъезд ", " $1ого съезда "], - ["^ (\\S+[иы]н) [Сс]ъезд ", " $1ого съезда "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ", " $1ого $2его съезда "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ", " $1его $2ого съезда "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ", " $1ого $2ого съезда "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ", " $1ого $2ого съезда "], - ["^ (\\d+)-й (\\S+н)ий [Сс]ъезд ", " $1-го $2его съезда "], - ["^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ", " $1-го $2ого съезда "], - ["^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ", " $1-го $2ого съезда "], - ["^ [Сс]ъезд ", " съезда "], - - ["^ (\\S+н)ий [Тт][уо]ннель ", " $1его тоннеля "], - ["^ (\\S+)[иоы]й [Тт][уо]ннель ", " $1ого тоннеля "], - ["^ (\\S+[иы]н) [Тт][уо]ннель ", " $1ого тоннеля "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ", " $1ого $2его тоннеля "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ", " $1его $2ого тоннеля "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ", " $1ого $2ого тоннеля "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ", " $1ого $2ого тоннеля "], - ["^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ", " $1-го $2его тоннеля "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ", " $1-го $2ого тоннеля "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ", " $1-го $2ого тоннеля "], - ["^ [Тт][уо]ннель ", " тоннеля "], - - ["^ (\\S+н)ий [Тт]ракт ", " $1ем тракта "], - ["^ (\\S+)[иоы]й [Тт]ракт ", " $1ого тракта "], - ["^ (\\S+[еёо]в) [Тт]ракт ", " $1а тракта "], - ["^ (\\S+[иы]н) [Тт]ракт ", " $1а тракта "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ", " $1ого $2его тракта "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ", " $1его $2ого тракта "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ", " $1ого $2ого тракта "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ", " $1ого $2а тракта "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ", " $1ого $2а тракта "], - ["^ (\\d+)-й (\\S+н)ий [Тт]ракт ", " $1-го $2его тракта "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ", " $1-го $2ого тракта "], - ["^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ", " $1-го $2а тракта "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ", " $1-го $2а тракта "], - ["^ [Тт]ракт ", " тракта "], - - ["^ (\\S+н)ий [Тт]упик ", " $1его тупика "], - ["^ (\\S+)[иоы]й [Тт]упик ", " $1ого тупика "], - ["^ (\\S+[еёо]в) [Тт]упик ", " $1а тупика "], - ["^ (\\S+[иы]н) [Тт]упик ", " $1а тупика "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ", " $1ого $2его тупика "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ", " $1его $2ого тупика "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ", " $1ого $2ого тупика "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ", " $1ого $2а тупика "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ", " $1ого $2а тупика "], - ["^ (\\d+)-й [Тт]упик ", " $1-го тупика "], - ["^ (\\d+)-й (\\S+н)ий [Тт]упик ", " $1-го $2его тупика "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ", " $1-го $2ого тупика "], - ["^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ", " $1-го $2а тупика "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт]упик ", " $1-го $2а тупика "], - ["^ [Тт]упик ", " тупика "], - - ["^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1го $2кольца "], - ["^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1го $2кольца "], - ["^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1го $2го $3кольца "], - ["^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1го $2го $3кольца "], - ["^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1-го $2го $3кольца "], - ["^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1-го $2го $3кольца "], - ["^ ([Пп]олу)?[Кк]ольцо ", " $1кольца "], - - ["^ (\\S+[ео])е [Шш]оссе ", " $1го шоссе "], - ["^ (\\S+ье) [Шш]оссе ", " $1го шоссе "], - ["^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ", " $1го $2го шоссе "], - ["^ (\\S+ье) (\\S+[ео])е [Шш]оссе ", " $1го $2го шоссе "], - ["^ (\\d+)-е (\\S+[ео])е [Шш]оссе ", " $1-го $2го шоссе "], - ["^ (\\d+)-е (\\S+ье) [Шш]оссе ", " $1-го $2го шоссе "], - - [" ([Тт])ретого ", " $1ретьего "], - ["([жч])ого ", "$1ьего "] - ], - "prepositional": [ - ["^ ([«\"])", " трасса $1"], - - ["^ (\\S+)ая [Аа]ллея ", " $1ой аллее "], - ["^ (\\S+)ья [Аа]ллея ", " $1ьей аллее "], - ["^ (\\S+)яя [Аа]ллея ", " $1ей аллее "], - ["^ (\\d+)-я (\\S+)ая [Аа]ллея ", " $1-й $2ой аллее "], - ["^ [Аа]ллея ", " аллее "], - - ["^ (\\S+)ая-(\\S+)ая [Уу]лица ", " $1ой-$2ой улице "], - ["^ (\\S+)ая [Уу]лица ", " $1ой улице "], - ["^ (\\S+)ья [Уу]лица ", " $1ьей улице "], - ["^ (\\S+)яя [Уу]лица ", " $1ей улице "], - ["^ (\\d+)-я [Уу]лица ", " $1-й улице "], - ["^ (\\d+)-я (\\S+)ая [Уу]лица ", " $1-й $2ой улице "], - ["^ (\\S+)ая (\\S+)ая [Уу]лица ", " $1ой $2ой улице "], - ["^ (\\S+[вн])а [Уу]лица ", " $1ой улице "], - ["^ (\\S+)ая (\\S+[вн])а [Уу]лица ", " $1ой $2ой улице "], - ["^ Даньславля [Уу]лица ", " Даньславлей улице "], - ["^ Добрыня [Уу]лица ", " Добрыней улице "], - ["^ Людогоща [Уу]лица ", " Людогощей улице "], - ["^ [Уу]лица ", " улице "], - - ["^ (\\d+)-я [Лл]иния ", " $1-й линии "], - ["^ (\\d+)-(\\d+)-я [Лл]иния ", " $1-$2-й линии "], - ["^ (\\S+)ая [Лл]иния ", " $1ой линии "], - ["^ (\\S+)ья [Лл]иния ", " $1ьей линии "], - ["^ (\\S+)яя [Лл]иния ", " $1ей линии "], - ["^ (\\d+)-я (\\S+)ая [Лл]иния ", " $1-й $2ой линии "], - ["^ [Лл]иния ", " линии "], - - ["^ (\\d+)-(\\d+)-я [Лл]инии ", " $1-$2-й линиях "], - - ["^ (\\S+)ая [Нн]абережная ", " $1ой набережной "], - ["^ (\\S+)ья [Нн]абережная ", " $1ьей набережной "], - ["^ (\\S+)яя [Нн]абережная ", " $1ей набережной "], - ["^ (\\d+)-я (\\S+)ая [Нн]абережная ", " $1-й $2ой набережной "], - ["^ [Нн]абережная ", " набережной "], - - ["^ (\\S+)ая [Пп]лощадь ", " $1ой площади "], - ["^ (\\S+)ья [Пп]лощадь ", " $1ьей площади "], - ["^ (\\S+)яя [Пп]лощадь ", " $1ей площади "], - ["^ (\\S+[вн])а [Пп]лощадь ", " $1ой площади "], - ["^ (\\d+)-я (\\S+)ая [Пп]лощадь ", " $1-й $2ой площади "], - ["^ [Пп]лощадь ", " площади "], - - ["^ (\\S+)ая [Пп]росека ", " $1ой просеке "], - ["^ (\\S+)ья [Пп]росека ", " $1ьей просеке "], - ["^ (\\S+)яя [Пп]росека ", " $1ей просеке "], - ["^ (\\d+)-я [Пп]росека ", " $1-й просеке "], - ["^ [Пп]росека ", " просеке "], - - ["^ (\\S+)ая [Ээ]стакада ", " $1ой эстакаде "], - ["^ (\\S+)ья [Ээ]стакада ", " $1ьей эстакаде "], - ["^ (\\S+)яя [Ээ]стакада ", " $1ей эстакаде "], - ["^ (\\d+)-я (\\S+)ая [Ээ]стакада ", " $1-й $2ой эстакаде "], - ["^ [Ээ]стакада ", " эстакаде "], - - ["^ (\\S+)ая [Мм]агистраль ", " $1ой магистрали "], - ["^ (\\S+)ья [Мм]агистраль ", " $1ьей магистрали "], - ["^ (\\S+)яя [Мм]агистраль ", " $1ей магистрали "], - ["^ (\\S+)ая (\\S+)ая [Мм]агистраль ", " $1ой $2ой магистрали "], - ["^ (\\d+)-я (\\S+)ая [Мм]агистраль ", " $1-й $2ой магистрали "], - ["^ [Мм]агистраль ", " магистрали "], - - ["^ (\\S+)ая [Рр]азвязка ", " $1ой развязке "], - ["^ (\\S+)ья [Рр]азвязка ", " $1ьей развязке "], - ["^ (\\S+)яя [Рр]азвязка ", " $1ей развязке "], - ["^ (\\d+)-я (\\S+)ая [Рр]азвязка ", " $1-й $2ой развязке "], - ["^ [Рр]азвязка ", " развязке "], - - ["^ (\\S+)ая [Тт]расса ", " $1ой трассе "], - ["^ (\\S+)ья [Тт]расса ", " $1ьей трассе "], - ["^ (\\S+)яя [Тт]расса ", " $1ей трассе "], - ["^ (\\d+)-я (\\S+)ая [Тт]расса ", " $1-й $2ой трассе "], - ["^ [Тт]расса ", " трассе "], - - ["^ (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2дороге "], - ["^ (\\S+)ья ([Аа]вто)?[Дд]орога ", " $1ьей $2дороге "], - ["^ (\\S+)яя ([Аа]вто)?[Дд]орога ", " $1ей $2дороге "], - ["^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1ой $2ой $3дороге "], - ["^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ", " $1-й $2ой $3дороге "], - ["^ ([Аа]вто)?[Дд]орога ", " $1дороге "], - - ["^ (\\S+)ая [Дд]орожка ", " $1ой дорожке "], - ["^ (\\S+)ья [Дд]орожка ", " $1ьей дорожке "], - ["^ (\\S+)яя [Дд]орожка ", " $1ей дорожке "], - ["^ (\\d+)-я (\\S+)ая [Дд]орожка ", " $1-й $2ой дорожке "], - ["^ [Дд]орожка ", " дорожке "], - - ["^ (\\S+)во [Пп]оле ", " $1вом поле "], - ["^ (\\S+)ая [Кк]оса ", " $1ой косе "], - ["^ (\\S+)ая [Хх]орда ", " $1ой хорде "], - ["^ (\\S+)[иоы]й [Пп]роток ", " $1ом протоке "], - - ["^ (\\S+н)ий [Бб]ульвар ", " $1ем бульваре "], - ["^ (\\S+)[иоы]й [Бб]ульвар ", " $1ом бульваре "], - ["^ (\\S+[иы]н) [Бб]ульвар ", " $1ом бульваре "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ", " $1ом $2ем бульваре "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ", " $1ем $2ом бульваре "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ", " $1ом $2ом бульваре "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ", " $1ом $2ом бульваре "], - ["^ (\\d+)-й (\\S+н)ий [Бб]ульвар ", " $1-м $2ем бульваре "], - ["^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ", " $1-м $2ом бульваре "], - ["^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ", " $1-м $2ом бульваре "], - ["^ [Бб]ульвар ", " бульваре "], - - ["^ [Дд]убл[её]р ", " дублёре "], - - ["^ (\\S+н)ий [Зз]аезд ", " $1ем заезде "], - ["^ (\\S+)[иоы]й [Зз]аезд ", " $1ом заезде "], - ["^ (\\S+[еёо]в) [Зз]аезд ", " $1ом заезде "], - ["^ (\\S+[иы]н) [Зз]аезд ", " $1ом заезде "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ", " $1ом $2ем заезде "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ", " $1ем $2ом заезде "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ", " $1ом $2ом заезде "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ", " $1ом $2ом заезде "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ", " $1ом $2ом заезде "], - ["^ (\\d+)-й (\\S+н)ий [Зз]аезд ", " $1-м $2ем заезде "], - ["^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ", " $1-м $2ом заезде "], - ["^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ", " $1-м $2ом заезде "], - ["^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ", " $1-м $2ом заезде "], - ["^ [Зз]аезд ", " заезде "], - - ["^ (\\S+н)ий [Мм]ост ", " $1ем мосту "], - ["^ (\\S+)[иоы]й [Мм]ост ", " $1ом мосту "], - ["^ (\\S+[еёо]в) [Мм]ост ", " $1ом мосту "], - ["^ (\\S+[иы]н) [Мм]ост ", " $1ом мосту "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ", " $1ом $2ем мосту "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ", " $1ем $2ом мосту "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ", " $1ом $2ом мосту "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ", " $1ом $2ом мосту "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ", " $1ом $2ом мосту "], - ["^ (\\d+)-й [Мм]ост ", " $1-м мосту "], - ["^ (\\d+)-й (\\S+н)ий [Мм]ост ", " $1-м $2ем мосту "], - ["^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ", " $1-м $2ом мосту "], - ["^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ", " $1-м $2ом мосту "], - ["^ (\\d+)-й (\\S+[иы]н) [Мм]ост ", " $1-м $2ом мосту "], - ["^ [Мм]ост ", " мосту "], - - ["^ (\\S+н)ий [Оо]бход ", " $1ем обходе "], - ["^ (\\S+)[иоы]й [Оо]бход ", " $1ом обходе "], - ["^ [Оо]бход ", " обходе "], - - ["^ (\\S+н)ий [Пп]арк ", " $1ем парке "], - ["^ (\\S+)[иоы]й [Пп]арк ", " $1ом парке "], - ["^ (\\S+[иы]н) [Пп]арк ", " $1ом парке "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ", " $1ом $2ем парке "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ", " $1ем $2ом парке "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ", " $1ом $2ом парке "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ", " $1ом $2ом парке "], - ["^ (\\d+)-й (\\S+н)ий [Пп]арк ", " $1-м $2ем парке "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ", " $1-м $2ом парке "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]арк ", " $1-м $2ом парке "], - ["^ [Пп]арк ", " парке "], - - ["^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1ом-$2ом переулке "], - ["^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ", " $1-м $2ом-$3ом переулке "], - ["^ (\\S+н)ий [Пп]ереулок ", " $1ем переулке "], - ["^ (\\S+)[иоы]й [Пп]ереулок ", " $1ом переулке "], - ["^ (\\S+[еёо]в) [Пп]ереулок ", " $1ом переулке "], - ["^ (\\S+[иы]н) [Пп]ереулок ", " $1ом переулке "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ", " $1ом $2ем переулке "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ", " $1ем $2ом переулке "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ", " $1ом $2ом переулке "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ", " $1ом $2ом переулке "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ", " $1ом $2ом переулке "], - ["^ (\\d+)-й [Пп]ереулок ", " $1-м переулке "], - ["^ (\\d+)-й (\\S+н)ий [Пп]ереулок ", " $1-м $2ем переулке "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ", " $1-м $2ом переулке "], - ["^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ", " $1-м $2ом переулке "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ", " $1-м $2ом переулке "], - ["^ [Пп]ереулок ", " переулке "], - - ["^ [Пп]одъезд ", " подъезде "], - - ["^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ", " $1ом-$2ом проезде "], - ["^ (\\S+н)ий [Пп]роезд ", " $1ем проезде "], - ["^ (\\S+)[иоы]й [Пп]роезд ", " $1ом проезде "], - ["^ (\\S+[еёо]в) [Пп]роезд ", " $1ом проезде "], - ["^ (\\S+[иы]н) [Пп]роезд ", " $1ом проезде "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ", " $1ом $2ем проезде "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1ем $2ом проезде "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1ом $2ом проезде "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ", " $1ом $2ом проезде "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ", " $1ом $2ом проезде "], - ["^ (\\d+)-й [Пп]роезд ", " $1-м проезде "], - ["^ (\\d+)-й (\\S+н)ий [Пп]роезд ", " $1-м $2ем проезде "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ", " $1-м $2ом проезде "], - ["^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ", " $1-м $2ом проезде "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ", " $1-м $2ом проезде "], - ["^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ", " $1-м $2ем $3ом проезде "], - ["^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ", " $1-м $2ом $3ом проезде "], - ["^ [Пп]роезд ", " проезде "], - - ["^ (\\S+н)ий [Пп]роспект ", " $1ем проспекте "], - ["^ (\\S+)[иоы]й [Пп]роспект ", " $1ом проспекте "], - ["^ (\\S+[иы]н) [Пп]роспект ", " $1ом проспекте "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ", " $1ом $2ем проспекте "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ", " $1ем $2ом проспекте "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ", " $1ом $2ом проспекте "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ", " $1ом $2ом проспекте "], - ["^ (\\d+)-й (\\S+н)ий [Пп]роспект ", " $1-м $2ем проспекте "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ", " $1-м $2ом проспекте "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ", " $1-м $2ом проспекте "], - ["^ [Пп]роспект ", " проспекте "], - - ["^ (\\S+н)ий [Пп]утепровод ", " $1ем путепроводе "], - ["^ (\\S+)[иоы]й [Пп]утепровод ", " $1ом путепроводе "], - ["^ (\\S+[иы]н) [Пп]утепровод ", " $1ом путепроводе "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ", " $1ом $2ем путепроводе "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ", " $1ем $2ом путепроводе "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ", " $1ом $2ом путепроводе "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ", " $1ом $2ом путепроводе "], - ["^ (\\d+)-й (\\S+н)ий [Пп]утепровод ", " $1-м $2ем путепроводе "], - ["^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ", " $1-м $2ом путепроводе "], - ["^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ", " $1-м $2ом путепроводе "], - ["^ [Пп]утепровод ", " путепроводе "], - - ["^ (\\S+н)ий [Сс]пуск ", " $1ем спуске "], - ["^ (\\S+)[иоы]й [Сс]пуск ", " $1ом спуске "], - ["^ (\\S+[еёо]в) [Сс]пуск ", " $1ом спуске "], - ["^ (\\S+[иы]н) [Сс]пуск ", " $1ом спуске "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ", " $1ом $2ем спуске "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ", " $1ем $2ом спуске "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ", " $1ом $2ом спуске "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ", " $1ом $2ом спуске "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ", " $1ом $2ом спуске "], - ["^ (\\d+)-й (\\S+н)ий [Сс]пуск ", " $1-м $2ем спуске "], - ["^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ", " $1-м $2ом спуске "], - ["^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ", " $1-м $2ом спуске "], - ["^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ", " $1-м $2ом спуске "], - ["^ [Сс]пуск ", " спуске "], - - ["^ (\\S+н)ий [Сс]ъезд ", " $1ем съезде "], - ["^ (\\S+)[иоы]й [Сс]ъезд ", " $1ом съезде "], - ["^ (\\S+[иы]н) [Сс]ъезд ", " $1ом съезде "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ", " $1ом $2ем съезде "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ", " $1ем $2ом съезде "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ", " $1ом $2ом съезде "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ", " $1ом $2ом съезде "], - ["^ (\\d+)-й (\\S+н)ий [Сс]ъезд ", " $1-м $2ем съезде "], - ["^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ", " $1-м $2ом съезде "], - ["^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ", " $1-м $2ом съезде "], - ["^ [Сс]ъезд ", " съезде "], - - ["^ (\\S+н)ий [Тт][уо]ннель ", " $1ем тоннеле "], - ["^ (\\S+)[иоы]й [Тт][уо]ннель ", " $1ом тоннеле "], - ["^ (\\S+[иы]н) [Тт][уо]ннель ", " $1ом тоннеле "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ", " $1ом $2ем тоннеле "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ", " $1ем $2ом тоннеле "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ", " $1ом $2ом тоннеле "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ", " $1ом $2ом тоннеле "], - ["^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ", " $1-м $2ем тоннеле "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ", " $1-м $2ом тоннеле "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ", " $1-м $2ом тоннеле "], - ["^ [Тт][уо]ннель ", " тоннеле "], - - ["^ (\\S+н)ий [Тт]ракт ", " $1ем тракте "], - ["^ (\\S+)[иоы]й [Тт]ракт ", " $1ом тракте "], - ["^ (\\S+[еёо]в) [Тт]ракт ", " $1ом тракте "], - ["^ (\\S+[иы]н) [Тт]ракт ", " $1ом тракте "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ", " $1ом $2ем тракте "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ", " $1ем $2ом тракте "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ", " $1ом $2ом тракте "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ", " $1ом $2ом тракте "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ", " $1ом $2ом тракте "], - ["^ (\\d+)-й (\\S+н)ий [Тт]ракт ", " $1-м $2ем тракте "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ", " $1-м $2ом тракте "], - ["^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ", " $1-м $2ом тракте "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ", " $1-м $2ом тракте "], - ["^ [Тт]ракт ", " тракте "], - - ["^ (\\S+н)ий [Тт]упик ", " $1ем тупике "], - ["^ (\\S+)[иоы]й [Тт]упик ", " $1ом тупике "], - ["^ (\\S+[еёо]в) [Тт]упик ", " $1ом тупике "], - ["^ (\\S+[иы]н) [Тт]упик ", " $1ом тупике "], - ["^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ", " $1ом $2ем тупике "], - ["^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ", " $1ем $2ом тупике "], - ["^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ", " $1ом $2ом тупике "], - ["^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ", " $1ом $2ом тупике "], - ["^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ", " $1ом $2ом тупике "], - ["^ (\\d+)-й [Тт]упик ", " $1-м тупике "], - ["^ (\\d+)-й (\\S+н)ий [Тт]упик ", " $1-м $2ем тупике "], - ["^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ", " $1-м $2ом тупике "], - ["^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ", " $1-м $2ом тупике "], - ["^ (\\d+)-й (\\S+[иы]н) [Тт]упик ", " $1-м $2ом тупике "], - ["^ [Тт]упик ", " тупике "], - - ["^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1м $2кольце "], - ["^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1м $2кольце "], - ["^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1м $2м $3кольце "], - ["^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1м $2м $3кольце "], - ["^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ", " $1-м $2м $3кольце "], - ["^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ", " $1-м $2м $3кольце "], - ["^ ([Пп]олу)?[Кк]ольцо ", " $1кольце "], - - ["^ (\\S+[ео])е [Шш]оссе ", " $1м шоссе "], - ["^ (\\S+ье) [Шш]оссе ", " $1м шоссе "], - ["^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ", " $1м $2м шоссе "], - ["^ (\\S+ье) (\\S+[ео])е [Шш]оссе ", " $1м $2м шоссе "], - ["^ (\\d+)-е (\\S+[ео])е [Шш]оссе ", " $1-м $2м шоссе "], - ["^ (\\d+)-е (\\S+ье) [Шш]оссе ", " $1-м $2м шоссе "], - - [" ([Тт])ретом ", " $1ретьем "], - ["([жч])ом ", "$1ьем "] - ] - } -} - -},{}],23:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "første", - "2": "anden", - "3": "tredje", - "4": "fjerde", - "5": "femte", - "6": "sjette", - "7": "syvende", - "8": "ottende", - "9": "niende", - "10": "tiende" - }, - "direction": { - "north": "Nord", - "northeast": "Nordøst", - "east": "Øst", - "southeast": "Sydøst", - "south": "Syd", - "southwest": "Sydvest", - "west": "Vest", - "northwest": "Nordvest" - }, - "modifier": { - "left": "venstresving", - "right": "højresving", - "sharp left": "skarpt venstresving", - "sharp right": "skarpt højresving", - "slight left": "svagt venstresving", - "slight right": "svagt højresving", - "straight": "ligeud", - "uturn": "U-vending" - }, - "lanes": { - "xo": "Hold til højre", - "ox": "Hold til venstre", - "xox": "Benyt midterste spor", - "oxo": "Hold til højre eller venstre" - } - }, - "modes": { - "ferry": { - "default": "Tag færgen", - "name": "Tag færgen {way_name}", - "destination": "Tag færgen i retning {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one} derefter, efter {distance}, {instruction_two}", - "two linked": "{instruction_one}, derefter {instruction_two}", - "one in distance": "Efter {distance} {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "afkørsel {exit}" - }, - "arrive": { - "default": { - "default": "Du er ankommet til din {nth} destination", - "upcoming": "Du vil ankomme til din {nth} destination", - "short": "Du er ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du er ankommet til {waypoint_name}" - }, - "left": { - "default": "Du er ankommet til din {nth} destination, som befinder sig til venstre", - "upcoming": "Du vil ankomme til din {nth} destination på venstre hånd", - "short": "Du er ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du er ankommet til {waypoint_name}, som befinder sig til venstre" - }, - "right": { - "default": "Du er ankommet til din {nth} destination, som befinder sig til højre", - "upcoming": "Du vil ankomme til din {nth} destination på højre hånd", - "short": "Du er ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du er ankommet til {waypoint_name}, som befinder sig til højre" - }, - "sharp left": { - "default": "Du er ankommet til din {nth} destination, som befinder sig til venstre", - "upcoming": "Du vil ankomme til din {nth} destination på venstre hånd", - "short": "Du er ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du er ankommet til {waypoint_name}, som befinder sig til venstre" - }, - "sharp right": { - "default": "Du er ankommet til din {nth} destination, som befinder sig til højre", - "upcoming": "Du vil ankomme til din {nth} destination på højre hånd", - "short": "Du er ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du er ankommet til {waypoint_name}, som befinder sig til højre" - }, - "slight right": { - "default": "Du er ankommet til din {nth} destination, som befinder sig til højre", - "upcoming": "Du vil ankomme til din {nth} destination på højre hånd", - "short": "Du er ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du er ankommet til {waypoint_name}, som befinder sig til højre" - }, - "slight left": { - "default": "Du er ankommet til din {nth} destination, som befinder sig til venstre", - "upcoming": "Du vil ankomme til din {nth} destination på venstre hånd", - "short": "Du er ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du er ankommet til {waypoint_name}, som befinder sig til venstre" - }, - "straight": { - "default": "Du er ankommet til din {nth} destination, der befinder sig lige frem", - "upcoming": "Du vil ankomme til din {nth} destination foran dig", - "short": "Du er ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du er ankommet til {waypoint_name}, der befinder sig lige frem" - } - }, - "continue": { - "default": { - "default": "Drej til {modifier}", - "name": "Drej til {modifier} videre ad {way_name}", - "destination": "Drej til {modifier} mod {destination}", - "exit": "Drej til {modifier} ad {way_name}" - }, - "straight": { - "default": "Fortsæt ligeud", - "name": "Fortsæt ligeud ad {way_name}", - "destination": "Fortsæt mod {destination}", - "distance": "Fortsæt {distance} ligeud", - "namedistance": "Fortsæt {distance} ad {way_name}" - }, - "sharp left": { - "default": "Drej skarpt til venstre", - "name": "Drej skarpt til venstre videre ad {way_name}", - "destination": "Drej skarpt til venstre mod {destination}" - }, - "sharp right": { - "default": "Drej skarpt til højre", - "name": "Drej skarpt til højre videre ad {way_name}", - "destination": "Drej skarpt til højre mod {destination}" - }, - "slight left": { - "default": "Drej left til venstre", - "name": "Drej let til venstre videre ad {way_name}", - "destination": "Drej let til venstre mod {destination}" - }, - "slight right": { - "default": "Drej let til højre", - "name": "Drej let til højre videre ad {way_name}", - "destination": "Drej let til højre mod {destination}" - }, - "uturn": { - "default": "Foretag en U-vending", - "name": "Foretag en U-vending tilbage ad {way_name}", - "destination": "Foretag en U-vending mod {destination}" - } - }, - "depart": { - "default": { - "default": "Kør mod {direction}", - "name": "Kør mod {direction} ad {way_name}", - "namedistance": "Fortsæt {distance} ad {way_name}mod {direction}" - } - }, - "end of road": { - "default": { - "default": "Drej til {modifier}", - "name": "Drej til {modifier} ad {way_name}", - "destination": "Drej til {modifier} mof {destination}" - }, - "straight": { - "default": "Fortsæt ligeud", - "name": "Fortsæt ligeud ad {way_name}", - "destination": "Fortsæt ligeud mod {destination}" - }, - "uturn": { - "default": "Foretag en U-vending for enden af vejen", - "name": "Foretag en U-vending ad {way_name} for enden af vejen", - "destination": "Foretag en U-vending mod {destination} for enden af vejen" - } - }, - "fork": { - "default": { - "default": "Hold til {modifier} ved udfletningen", - "name": "Hold mod {modifier} på {way_name}", - "destination": "Hold mod {modifier} mod {destination}" - }, - "slight left": { - "default": "Hold til venstre ved udfletningen", - "name": "Hold til venstre på {way_name}", - "destination": "Hold til venstre mod {destination}" - }, - "slight right": { - "default": "Hold til højre ved udfletningen", - "name": "Hold til højre på {way_name}", - "destination": "Hold til højre mod {destination}" - }, - "sharp left": { - "default": "Drej skarpt til venstre ved udfletningen", - "name": "Drej skarpt til venstre ad {way_name}", - "destination": "Drej skarpt til venstre mod {destination}" - }, - "sharp right": { - "default": "Drej skarpt til højre ved udfletningen", - "name": "Drej skarpt til højre ad {way_name}", - "destination": "Drej skarpt til højre mod {destination}" - }, - "uturn": { - "default": "Foretag en U-vending", - "name": "Foretag en U-vending ad {way_name}", - "destination": "Foretag en U-vending mod {destination}" - } - }, - "merge": { - "default": { - "default": "Flet til {modifier}", - "name": "Flet til {modifier} ad {way_name}", - "destination": "Flet til {modifier} mod {destination}" - }, - "straight": { - "default": "Flet", - "name": "Flet ind på {way_name}", - "destination": "Flet ind mod {destination}" - }, - "slight left": { - "default": "Flet til venstre", - "name": "Flet til venstre ad {way_name}", - "destination": "Flet til venstre mod {destination}" - }, - "slight right": { - "default": "Flet til højre", - "name": "Flet til højre ad {way_name}", - "destination": "Flet til højre mod {destination}" - }, - "sharp left": { - "default": "Flet til venstre", - "name": "Flet til venstre ad {way_name}", - "destination": "Flet til venstre mod {destination}" - }, - "sharp right": { - "default": "Flet til højre", - "name": "Flet til højre ad {way_name}", - "destination": "Flet til højre mod {destination}" - }, - "uturn": { - "default": "Foretag en U-vending", - "name": "Foretag en U-vending ad {way_name}", - "destination": "Foretag en U-vending mod {destination}" - } - }, - "new name": { - "default": { - "default": "Fortsæt {modifier}", - "name": "Fortsæt {modifier} ad {way_name}", - "destination": "Fortsæt {modifier} mod {destination}" - }, - "straight": { - "default": "Fortsæt ligeud", - "name": "Fortsæt ad {way_name}", - "destination": "Fortsæt mod {destination}" - }, - "sharp left": { - "default": "Drej skarpt til venstre", - "name": "Drej skarpt til venstre ad {way_name}", - "destination": "Drej skarpt til venstre mod {destination}" - }, - "sharp right": { - "default": "Drej skarpt til højre", - "name": "Drej skarpt til højre ad {way_name}", - "destination": "Drej skarpt til højre mod {destination}" - }, - "slight left": { - "default": "Fortsæt til venstre", - "name": "Fortsæt til venstre ad {way_name}", - "destination": "Fortsæt til venstre mod {destination}" - }, - "slight right": { - "default": "Fortsæt til højre", - "name": "Fortsæt til højre ad {way_name}", - "destination": "Fortsæt til højre mod {destination}" - }, - "uturn": { - "default": "Foretag en U-vending", - "name": "Foretag en U-vending ad {way_name}", - "destination": "Foretag en U-vending mod {destination}" - } - }, - "notification": { - "default": { - "default": "Fortsæt {modifier}", - "name": "Fortsæt {modifier} ad {way_name}", - "destination": "Fortsæt {modifier} mod {destination}" - }, - "uturn": { - "default": "Foretag en U-vending", - "name": "Foretag en U-vending ad {way_name}", - "destination": "Foretag en U-vending mod {destination}" - } - }, - "off ramp": { - "default": { - "default": "Tag afkørslen", - "name": "Tag afkørslen ad {way_name}", - "destination": "Tag afkørslen mod {destination}", - "exit": "Vælg afkørsel {exit}", - "exit_destination": "Vælg afkørsel {exit} mod {destination}" - }, - "left": { - "default": "Tag afkørslen til venstre", - "name": "Tag afkørslen til venstre ad {way_name}", - "destination": "Tag afkørslen til venstre mod {destination}", - "exit": "Vælg afkørsel {exit} til venstre", - "exit_destination": "Vælg afkørsel {exit} til venstre mod {destination}\n" - }, - "right": { - "default": "Tag afkørslen til højre", - "name": "Tag afkørslen til højre ad {way_name}", - "destination": "Tag afkørslen til højre mod {destination}", - "exit": "Vælg afkørsel {exit} til højre", - "exit_destination": "Vælg afkørsel {exit} til højre mod {destination}" - }, - "sharp left": { - "default": "Tag afkørslen til venstre", - "name": "Tag afkørslen til venstre ad {way_name}", - "destination": "Tag afkørslen til venstre mod {destination}", - "exit": "Vælg afkørsel {exit} til venstre", - "exit_destination": "Vælg afkørsel {exit} til venstre mod {destination}\n" - }, - "sharp right": { - "default": "Tag afkørslen til højre", - "name": "Tag afkørslen til højre ad {way_name}", - "destination": "Tag afkørslen til højre mod {destination}", - "exit": "Vælg afkørsel {exit} til højre", - "exit_destination": "Vælg afkørsel {exit} til højre mod {destination}" - }, - "slight left": { - "default": "Tag afkørslen til venstre", - "name": "Tag afkørslen til venstre ad {way_name}", - "destination": "Tag afkørslen til venstre mod {destination}", - "exit": "Vælg afkørsel {exit} til venstre", - "exit_destination": "Vælg afkørsel {exit} til venstre mod {destination}\n" - }, - "slight right": { - "default": "Tag afkørslen til højre", - "name": "Tag afkørslen til højre ad {way_name}", - "destination": "Tag afkørslen til højre mod {destination}", - "exit": "Vælg afkørsel {exit} til højre", - "exit_destination": "Vælg afkørsel {exit} til højre mod {destination}" - } - }, - "on ramp": { - "default": { - "default": "Tag afkørslen", - "name": "Tag afkørslen ad {way_name}", - "destination": "Tag afkørslen mod {destination}" - }, - "left": { - "default": "Tag afkørslen til venstre", - "name": "Tag afkørslen til venstre ad {way_name}", - "destination": "Tag afkørslen til venstre mod {destination}" - }, - "right": { - "default": "Tag afkørslen til højre", - "name": "Tag afkørslen til højre ad {way_name}", - "destination": "Tag afkørslen til højre mod {destination}" - }, - "sharp left": { - "default": "Tag afkørslen til venstre", - "name": "Tag afkørslen til venstre ad {way_name}", - "destination": "Tag afkørslen til venstre mod {destination}" - }, - "sharp right": { - "default": "Tag afkørslen til højre", - "name": "Tag afkørslen til højre ad {way_name}", - "destination": "Tag afkørslen til højre mod {destination}" - }, - "slight left": { - "default": "Tag afkørslen til venstre", - "name": "Tag afkørslen til venstre ad {way_name}", - "destination": "Tag afkørslen til venstre mod {destination}" - }, - "slight right": { - "default": "Tag afkørslen til højre", - "name": "Tag afkørslen til højre ad {way_name}", - "destination": "Tag afkørslen til højre mod {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Kør ind i rundkørslen", - "name": "Tag rundkørslen og kør fra ad {way_name}", - "destination": "Tag rundkørslen og kør mod {destination}" - }, - "name": { - "default": "Kør ind i {rotary_name}", - "name": "Kør ind i {rotary_name} og kør ad {way_name} ", - "destination": "Kør ind i {rotary_name} og kør mod {destination}" - }, - "exit": { - "default": "Tag rundkørslen og forlad ved {exit_number} afkørsel", - "name": "Tag rundkørslen og forlad ved {exit_number} afkørsel ad {way_name}", - "destination": "Tag rundkørslen og forlad ved {exit_number} afkørsel mod {destination}" - }, - "name_exit": { - "default": "Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel", - "name": "Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel ad {way_name}", - "destination": "Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel mod {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Tag rundkørslen og forlad ved {exit_number} afkørsel", - "name": "Tag rundkørslen og forlad ved {exit_number} afkørsel ad {way_name}", - "destination": "Tag rundkørslen og forlad ved {exit_number} afkørsel mod {destination}" - }, - "default": { - "default": "Kør ind i rundkørslen", - "name": "Tag rundkørslen og kør fra ad {way_name}", - "destination": "Tag rundkørslen og kør mod {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Foretag et {modifier}", - "name": "Foretag et {modifier} ad {way_name}", - "destination": "Foretag et {modifier} mod {destination}" - }, - "left": { - "default": "Drej til venstre", - "name": "Drej til venstre ad {way_name}", - "destination": "Drej til venstre mod {destination}" - }, - "right": { - "default": "Drej til højre", - "name": "Drej til højre ad {way_name}", - "destination": "Drej til højre mod {destination}" - }, - "straight": { - "default": "Fortsæt ligeud", - "name": "Fortsæt ligeud ad {way_name}", - "destination": "Fortsæt ligeud mod {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Forlad rundkørslen", - "name": "Forlad rundkørslen ad {way_name}", - "destination": "Forlad rundkørslen mod {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Forlad rundkørslen", - "name": "Forlad rundkørslen ad {way_name}", - "destination": "Forlad rundkørslen mod {destination}" - } - }, - "turn": { - "default": { - "default": "Foretag et {modifier}", - "name": "Foretag et {modifier} ad {way_name}", - "destination": "Foretag et {modifier} mod {destination}" - }, - "left": { - "default": "Drej til venstre", - "name": "Drej til venstre ad {way_name}", - "destination": "Drej til venstre mod {destination}" - }, - "right": { - "default": "Drej til højre", - "name": "Drej til højre ad {way_name}", - "destination": "Drej til højre mod {destination}" - }, - "straight": { - "default": "Fortsæt ligeud", - "name": "Kør ligeud ad {way_name}", - "destination": "Kør ligeud mod {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Fortsæt ligeud" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],24:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "erste", - "2": "zweite", - "3": "dritte", - "4": "vierte", - "5": "fünfte", - "6": "sechste", - "7": "siebente", - "8": "achte", - "9": "neunte", - "10": "zehnte" - }, - "direction": { - "north": "Norden", - "northeast": "Nordosten", - "east": "Osten", - "southeast": "Südosten", - "south": "Süden", - "southwest": "Südwesten", - "west": "Westen", - "northwest": "Nordwesten" - }, - "modifier": { - "left": "links", - "right": "rechts", - "sharp left": "scharf links", - "sharp right": "scharf rechts", - "slight left": "leicht links", - "slight right": "leicht rechts", - "straight": "geradeaus", - "uturn": "180°-Wendung" - }, - "lanes": { - "xo": "Rechts halten", - "ox": "Links halten", - "xox": "Mittlere Spur nutzen", - "oxo": "Rechts oder links halten" - } - }, - "modes": { - "ferry": { - "default": "Fähre nehmen", - "name": "Fähre nehmen {way_name}", - "destination": "Fähre nehmen Richtung {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one} danach in {distance} {instruction_two}", - "two linked": "{instruction_one} danach {instruction_two}", - "one in distance": "In {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "exit {exit}" - }, - "arrive": { - "default": { - "default": "Sie haben Ihr {nth} Ziel erreicht", - "upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "short": "Sie haben Ihr {nth} Ziel erreicht", - "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "named": "Sie haben Ihr {waypoint_name}" - }, - "left": { - "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", - "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", - "short": "Sie haben Ihr {nth} Ziel erreicht", - "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "named": "Sie haben Ihr {waypoint_name}, es befindet sich links" - }, - "right": { - "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", - "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", - "short": "Sie haben Ihr {nth} Ziel erreicht", - "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "named": "Sie haben Ihr {waypoint_name}, es befindet sich rechts" - }, - "sharp left": { - "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", - "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", - "short": "Sie haben Ihr {nth} Ziel erreicht", - "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "named": "Sie haben Ihr {waypoint_name}, es befindet sich links" - }, - "sharp right": { - "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", - "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", - "short": "Sie haben Ihr {nth} Ziel erreicht", - "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "named": "Sie haben Ihr {waypoint_name}, es befindet sich rechts" - }, - "slight right": { - "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", - "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts", - "short": "Sie haben Ihr {nth} Ziel erreicht", - "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "named": "Sie haben Ihr {waypoint_name}, es befindet sich rechts" - }, - "slight left": { - "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", - "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich links", - "short": "Sie haben Ihr {nth} Ziel erreicht", - "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "named": "Sie haben Ihr {waypoint_name}, es befindet sich links" - }, - "straight": { - "default": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich geradeaus", - "upcoming": "Sie haben Ihr {nth} Ziel erreicht, es befindet sich geradeaus", - "short": "Sie haben Ihr {nth} Ziel erreicht", - "short-upcoming": "Sie haben Ihr {nth} Ziel erreicht", - "named": "Sie haben Ihr {waypoint_name}, es befindet sich geradeaus" - } - }, - "continue": { - "default": { - "default": "{modifier} abbiegen", - "name": "{modifier} weiterfahren auf {way_name}", - "destination": "{modifier} abbiegen Richtung {destination}", - "exit": "{modifier} abbiegen auf {way_name}" - }, - "straight": { - "default": "Geradeaus weiterfahren", - "name": "Geradeaus weiterfahren auf {way_name}", - "destination": "Weiterfahren in Richtung {destination}", - "distance": "Geradeaus weiterfahren für {distance}", - "namedistance": "Geradeaus weiterfahren auf {way_name} für {distance}" - }, - "sharp left": { - "default": "Scharf links", - "name": "Scharf links weiterfahren auf {way_name}", - "destination": "Scharf links Richtung {destination}" - }, - "sharp right": { - "default": "Scharf rechts", - "name": "Scharf rechts weiterfahren auf {way_name}", - "destination": "Scharf rechts Richtung {destination}" - }, - "slight left": { - "default": "Leicht links", - "name": "Leicht links weiter auf {way_name}", - "destination": "Leicht links weiter Richtung {destination}" - }, - "slight right": { - "default": "Leicht rechts weiter", - "name": "Leicht rechts weiter auf {way_name}", - "destination": "Leicht rechts weiter Richtung {destination}" - }, - "uturn": { - "default": "180°-Wendung", - "name": "180°-Wendung auf {way_name}", - "destination": "180°-Wendung Richtung {destination}" - } - }, - "depart": { - "default": { - "default": "Fahren Sie Richtung {direction}", - "name": "Fahren Sie Richtung {direction} auf {way_name}", - "namedistance": "Fahren Sie Richtung {direction} auf {way_name} für {distance}" - } - }, - "end of road": { - "default": { - "default": "{modifier} abbiegen", - "name": "{modifier} abbiegen auf {way_name}", - "destination": "{modifier} abbiegen Richtung {destination}" - }, - "straight": { - "default": "Geradeaus weiterfahren", - "name": "Geradeaus weiterfahren auf {way_name}", - "destination": "Geradeaus weiterfahren Richtung {destination}" - }, - "uturn": { - "default": "180°-Wendung am Ende der Straße", - "name": "180°-Wendung auf {way_name} am Ende der Straße", - "destination": "180°-Wendung Richtung {destination} am Ende der Straße" - } - }, - "fork": { - "default": { - "default": "{modifier} halten an der Gabelung", - "name": "{modifier} halten an der Gabelung auf {way_name}", - "destination": "{modifier} halten an der Gabelung Richtung {destination}" - }, - "slight left": { - "default": "Links halten an der Gabelung", - "name": "Links halten an der Gabelung auf {way_name}", - "destination": "Links halten an der Gabelung Richtung {destination}" - }, - "slight right": { - "default": "Rechts halten an der Gabelung", - "name": "Rechts halten an der Gabelung auf {way_name}", - "destination": "Rechts halten an der Gabelung Richtung {destination}" - }, - "sharp left": { - "default": "Scharf links abbiegen an der Gabelung", - "name": "Scharf links auf {way_name}", - "destination": "Scharf links Richtung {destination}" - }, - "sharp right": { - "default": "Scharf rechts abbiegen an der Gabelung", - "name": "Scharf rechts auf {way_name}", - "destination": "Scharf rechts Richtung {destination}" - }, - "uturn": { - "default": "180°-Wendung", - "name": "180°-Wendung auf {way_name}", - "destination": "180°-Wendung Richtung {destination}" - } - }, - "merge": { - "default": { - "default": "{modifier} auffahren", - "name": "{modifier} auffahren auf {way_name}", - "destination": "{modifier} auffahren Richtung {destination}" - }, - "straight": { - "default": "geradeaus auffahren", - "name": "geradeaus auffahren auf {way_name}", - "destination": "geradeaus auffahren Richtung {destination}" - }, - "slight left": { - "default": "Leicht links auffahren", - "name": "Leicht links auffahren auf {way_name}", - "destination": "Leicht links auffahren Richtung {destination}" - }, - "slight right": { - "default": "Leicht rechts auffahren", - "name": "Leicht rechts auffahren auf {way_name}", - "destination": "Leicht rechts auffahren Richtung {destination}" - }, - "sharp left": { - "default": "Scharf links auffahren", - "name": "Scharf links auffahren auf {way_name}", - "destination": "Scharf links auffahren Richtung {destination}" - }, - "sharp right": { - "default": "Scharf rechts auffahren", - "name": "Scharf rechts auffahren auf {way_name}", - "destination": "Scharf rechts auffahren Richtung {destination}" - }, - "uturn": { - "default": "180°-Wendung", - "name": "180°-Wendung auf {way_name}", - "destination": "180°-Wendung Richtung {destination}" - } - }, - "new name": { - "default": { - "default": "{modifier} weiterfahren", - "name": "{modifier} weiterfahren auf {way_name}", - "destination": "{modifier} weiterfahren Richtung {destination}" - }, - "straight": { - "default": "Geradeaus weiterfahren", - "name": "Weiterfahren auf {way_name}", - "destination": "Weiterfahren in Richtung {destination}" - }, - "sharp left": { - "default": "Scharf links", - "name": "Scharf links auf {way_name}", - "destination": "Scharf links Richtung {destination}" - }, - "sharp right": { - "default": "Scharf rechts", - "name": "Scharf rechts auf {way_name}", - "destination": "Scharf rechts Richtung {destination}" - }, - "slight left": { - "default": "Leicht links weiter", - "name": "Leicht links weiter auf {way_name}", - "destination": "Leicht links weiter Richtung {destination}" - }, - "slight right": { - "default": "Leicht rechts weiter", - "name": "Leicht rechts weiter auf {way_name}", - "destination": "Leicht rechts weiter Richtung {destination}" - }, - "uturn": { - "default": "180°-Wendung", - "name": "180°-Wendung auf {way_name}", - "destination": "180°-Wendung Richtung {destination}" - } - }, - "notification": { - "default": { - "default": "{modifier} weiterfahren", - "name": "{modifier} weiterfahren auf {way_name}", - "destination": "{modifier} weiterfahren Richtung {destination}" - }, - "uturn": { - "default": "180°-Wendung", - "name": "180°-Wendung auf {way_name}", - "destination": "180°-Wendung Richtung {destination}" - } - }, - "off ramp": { - "default": { - "default": "Ausfahrt nehmen", - "name": "Ausfahrt nehmen auf {way_name}", - "destination": "Ausfahrt nehmen Richtung {destination}", - "exit": "Ausfahrt {exit} nehmen", - "exit_destination": "Ausfahrt {exit} nehmen Richtung {destination}" - }, - "left": { - "default": "Ausfahrt links nehmen", - "name": "Ausfahrt links nehmen auf {way_name}", - "destination": "Ausfahrt links nehmen Richtung {destination}", - "exit": "Ausfahrt {exit} links nehmen", - "exit_destination": "Ausfahrt {exit} links nehmen Richtung {destination}" - }, - "right": { - "default": "Ausfahrt rechts nehmen", - "name": "Ausfahrt rechts nehmen Richtung {way_name}", - "destination": "Ausfahrt rechts nehmen Richtung {destination}", - "exit": "Ausfahrt {exit} rechts nehmen", - "exit_destination": "Ausfahrt {exit} nehmen Richtung {destination}" - }, - "sharp left": { - "default": "Ausfahrt links nehmen", - "name": "Ausfahrt links Seite nehmen auf {way_name}", - "destination": "Ausfahrt links nehmen Richtung {destination}", - "exit": "Ausfahrt {exit} links nehmen", - "exit_destination": "Ausfahrt{exit} links nehmen Richtung {destination}" - }, - "sharp right": { - "default": "Ausfahrt rechts nehmen", - "name": "Ausfahrt rechts nehmen auf {way_name}", - "destination": "Ausfahrt rechts nehmen Richtung {destination}", - "exit": "Ausfahrt {exit} rechts nehmen", - "exit_destination": "Ausfahrt {exit} nehmen Richtung {destination}" - }, - "slight left": { - "default": "Ausfahrt links nehmen", - "name": "Ausfahrt links nehmen auf {way_name}", - "destination": "Ausfahrt links nehmen Richtung {destination}", - "exit": "Ausfahrt {exit} nehmen", - "exit_destination": "Ausfahrt {exit} links nehmen Richtung {destination}" - }, - "slight right": { - "default": "Ausfahrt rechts nehmen", - "name": "Ausfahrt rechts nehmen auf {way_name}", - "destination": "Ausfahrt rechts nehmen Richtung {destination}", - "exit": "Ausfahrt {exit} rechts nehmen", - "exit_destination": "Ausfahrt {exit} nehmen Richtung {destination}" - } - }, - "on ramp": { - "default": { - "default": "Auffahrt nehmen", - "name": "Auffahrt nehmen auf {way_name}", - "destination": "Auffahrt nehmen Richtung {destination}" - }, - "left": { - "default": "Auffahrt links nehmen", - "name": "Auffahrt links nehmen auf {way_name}", - "destination": "Auffahrt links nehmen Richtung {destination}" - }, - "right": { - "default": "Auffahrt rechts nehmen", - "name": "Auffahrt rechts nehmen auf {way_name}", - "destination": "Auffahrt rechts nehmen Richtung {destination}" - }, - "sharp left": { - "default": "Auffahrt links nehmen", - "name": "Auffahrt links nehmen auf {way_name}", - "destination": "Auffahrt links nehmen Richtung {destination}" - }, - "sharp right": { - "default": "Auffahrt rechts nehmen", - "name": "Auffahrt rechts nehmen auf {way_name}", - "destination": "Auffahrt rechts nehmen Richtung {destination}" - }, - "slight left": { - "default": "Auffahrt links Seite nehmen", - "name": "Auffahrt links nehmen auf {way_name}", - "destination": "Auffahrt links nehmen Richtung {destination}" - }, - "slight right": { - "default": "Auffahrt rechts nehmen", - "name": "Auffahrt rechts nehmen auf {way_name}", - "destination": "Auffahrt rechts nehmen Richtung {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "In den Kreisverkehr fahren", - "name": "Im Kreisverkehr die Ausfahrt auf {way_name} nehmen", - "destination": "Im Kreisverkehr die Ausfahrt Richtung {destination} nehmen" - }, - "name": { - "default": "In {rotary_name} fahren", - "name": "In {rotary_name} die Ausfahrt auf {way_name} nehmen", - "destination": "In {rotary_name} die Ausfahrt Richtung {destination} nehmen" - }, - "exit": { - "default": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen", - "name": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen auf {way_name}", - "destination": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen Richtung {destination}" - }, - "name_exit": { - "default": "In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen", - "name": "In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen auf {way_name}", - "destination": "In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen Richtung {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen", - "name": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen auf {way_name}", - "destination": "Im Kreisverkehr die {exit_number} Ausfahrt nehmen Richtung {destination}" - }, - "default": { - "default": "In den Kreisverkehr fahren", - "name": "Im Kreisverkehr die Ausfahrt auf {way_name} nehmen", - "destination": "Im Kreisverkehr die Ausfahrt Richtung {destination} nehmen" - } - } - }, - "roundabout turn": { - "default": { - "default": "{modifier} abbiegen", - "name": "{modifier} abbiegen auf {way_name}", - "destination": "{modifier} abbiegen Richtung {destination}" - }, - "left": { - "default": "Links abbiegen", - "name": "Links abbiegen auf {way_name}", - "destination": "Links abbiegen Richtung {destination}" - }, - "right": { - "default": "Rechts abbiegen", - "name": "Rechts abbiegen auf {way_name}", - "destination": "Rechts abbiegen Richtung {destination}" - }, - "straight": { - "default": "Geradeaus weiterfahren", - "name": "Geradeaus weiterfahren auf {way_name}", - "destination": "Geradeaus weiterfahren Richtung {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "{modifier} abbiegen", - "name": "{modifier} abbiegen auf {way_name}", - "destination": "{modifier} abbiegen Richtung {destination}" - }, - "left": { - "default": "Links abbiegen", - "name": "Links abbiegen auf {way_name}", - "destination": "Links abbiegen Richtung {destination}" - }, - "right": { - "default": "Rechts abbiegen", - "name": "Rechts abbiegen auf {way_name}", - "destination": "Rechts abbiegen Richtung {destination}" - }, - "straight": { - "default": "Geradeaus weiterfahren", - "name": "Geradeaus weiterfahren auf {way_name}", - "destination": "Geradeaus weiterfahren Richtung {destination}" - } - }, - "exit rotary": { - "default": { - "default": "{modifier} abbiegen", - "name": "{modifier} abbiegen auf {way_name}", - "destination": "{modifier} abbiegen Richtung {destination}" - }, - "left": { - "default": "Links abbiegen", - "name": "Links abbiegen auf {way_name}", - "destination": "Links abbiegen Richtung {destination}" - }, - "right": { - "default": "Rechts abbiegen", - "name": "Rechts abbiegen auf {way_name}", - "destination": "Rechts abbiegen Richtung {destination}" - }, - "straight": { - "default": "Geradeaus weiterfahren", - "name": "Geradeaus weiterfahren auf {way_name}", - "destination": "Geradeaus weiterfahren Richtung {destination}" - } - }, - "turn": { - "default": { - "default": "{modifier} abbiegen", - "name": "{modifier} abbiegen auf {way_name}", - "destination": "{modifier} abbiegen Richtung {destination}" - }, - "left": { - "default": "Links abbiegen", - "name": "Links abbiegen auf {way_name}", - "destination": "Links abbiegen Richtung {destination}" - }, - "right": { - "default": "Rechts abbiegen", - "name": "Rechts abbiegen auf {way_name}", - "destination": "Rechts abbiegen Richtung {destination}" - }, - "straight": { - "default": "Geradeaus weiterfahren", - "name": "Geradeaus weiterfahren auf {way_name}", - "destination": "Geradeaus weiterfahren Richtung {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Geradeaus weiterfahren" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],25:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1st", - "2": "2nd", - "3": "3rd", - "4": "4th", - "5": "5th", - "6": "6th", - "7": "7th", - "8": "8th", - "9": "9th", - "10": "10th" - }, - "direction": { - "north": "north", - "northeast": "northeast", - "east": "east", - "southeast": "southeast", - "south": "south", - "southwest": "southwest", - "west": "west", - "northwest": "northwest" - }, - "modifier": { - "left": "left", - "right": "right", - "sharp left": "sharp left", - "sharp right": "sharp right", - "slight left": "slight left", - "slight right": "slight right", - "straight": "straight", - "uturn": "U-turn" - }, - "lanes": { - "xo": "Keep right", - "ox": "Keep left", - "xox": "Keep in the middle", - "oxo": "Keep left or right" - } - }, - "modes": { - "ferry": { - "default": "Take the ferry", - "name": "Take the ferry {way_name}", - "destination": "Take the ferry towards {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, then, in {distance}, {instruction_two}", - "two linked": "{instruction_one}, then {instruction_two}", - "one in distance": "In {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "exit {exit}" - }, - "arrive": { - "default": { - "default": "You have arrived at your {nth} destination", - "upcoming": "You will arrive at your {nth} destination", - "short": "You have arrived", - "short-upcoming": "You will arrive", - "named": "You have arrived at {waypoint_name}" - }, - "left": { - "default": "You have arrived at your {nth} destination, on the left", - "upcoming": "You will arrive at your {nth} destination, on the left", - "short": "You have arrived", - "short-upcoming": "You will arrive", - "named": "You have arrived at {waypoint_name}, on the left" - }, - "right": { - "default": "You have arrived at your {nth} destination, on the right", - "upcoming": "You will arrive at your {nth} destination, on the right", - "short": "You have arrived", - "short-upcoming": "You will arrive", - "named": "You have arrived at {waypoint_name}, on the right" - }, - "sharp left": { - "default": "You have arrived at your {nth} destination, on the left", - "upcoming": "You will arrive at your {nth} destination, on the left", - "short": "You have arrived", - "short-upcoming": "You will arrive", - "named": "You have arrived at {waypoint_name}, on the left" - }, - "sharp right": { - "default": "You have arrived at your {nth} destination, on the right", - "upcoming": "You will arrive at your {nth} destination, on the right", - "short": "You have arrived", - "short-upcoming": "You will arrive", - "named": "You have arrived at {waypoint_name}, on the right" - }, - "slight right": { - "default": "You have arrived at your {nth} destination, on the right", - "upcoming": "You will arrive at your {nth} destination, on the right", - "short": "You have arrived", - "short-upcoming": "You will arrive", - "named": "You have arrived at {waypoint_name}, on the right" - }, - "slight left": { - "default": "You have arrived at your {nth} destination, on the left", - "upcoming": "You will arrive at your {nth} destination, on the left", - "short": "You have arrived", - "short-upcoming": "You will arrive", - "named": "You have arrived at {waypoint_name}, on the left" - }, - "straight": { - "default": "You have arrived at your {nth} destination, straight ahead", - "upcoming": "You will arrive at your {nth} destination, straight ahead", - "short": "You have arrived", - "short-upcoming": "You will arrive", - "named": "You have arrived at {waypoint_name}, straight ahead" - } - }, - "continue": { - "default": { - "default": "Turn {modifier}", - "name": "Turn {modifier} to stay on {way_name}", - "destination": "Turn {modifier} towards {destination}", - "exit": "Turn {modifier} onto {way_name}" - }, - "straight": { - "default": "Continue straight", - "name": "Continue straight to stay on {way_name}", - "destination": "Continue towards {destination}", - "distance": "Continue straight for {distance}", - "namedistance": "Continue on {way_name} for {distance}" - }, - "sharp left": { - "default": "Make a sharp left", - "name": "Make a sharp left to stay on {way_name}", - "destination": "Make a sharp left towards {destination}" - }, - "sharp right": { - "default": "Make a sharp right", - "name": "Make a sharp right to stay on {way_name}", - "destination": "Make a sharp right towards {destination}" - }, - "slight left": { - "default": "Make a slight left", - "name": "Make a slight left to stay on {way_name}", - "destination": "Make a slight left towards {destination}" - }, - "slight right": { - "default": "Make a slight right", - "name": "Make a slight right to stay on {way_name}", - "destination": "Make a slight right towards {destination}" - }, - "uturn": { - "default": "Make a U-turn", - "name": "Make a U-turn and continue on {way_name}", - "destination": "Make a U-turn towards {destination}" - } - }, - "depart": { - "default": { - "default": "Head {direction}", - "name": "Head {direction} on {way_name}", - "namedistance": "Head {direction} on {way_name} for {distance}" - } - }, - "end of road": { - "default": { - "default": "Turn {modifier}", - "name": "Turn {modifier} onto {way_name}", - "destination": "Turn {modifier} towards {destination}" - }, - "straight": { - "default": "Continue straight", - "name": "Continue straight onto {way_name}", - "destination": "Continue straight towards {destination}" - }, - "uturn": { - "default": "Make a U-turn at the end of the road", - "name": "Make a U-turn onto {way_name} at the end of the road", - "destination": "Make a U-turn towards {destination} at the end of the road" - } - }, - "fork": { - "default": { - "default": "Keep {modifier} at the fork", - "name": "Keep {modifier} onto {way_name}", - "destination": "Keep {modifier} towards {destination}" - }, - "slight left": { - "default": "Keep left at the fork", - "name": "Keep left onto {way_name}", - "destination": "Keep left towards {destination}" - }, - "slight right": { - "default": "Keep right at the fork", - "name": "Keep right onto {way_name}", - "destination": "Keep right towards {destination}" - }, - "sharp left": { - "default": "Take a sharp left at the fork", - "name": "Take a sharp left onto {way_name}", - "destination": "Take a sharp left towards {destination}" - }, - "sharp right": { - "default": "Take a sharp right at the fork", - "name": "Take a sharp right onto {way_name}", - "destination": "Take a sharp right towards {destination}" - }, - "uturn": { - "default": "Make a U-turn", - "name": "Make a U-turn onto {way_name}", - "destination": "Make a U-turn towards {destination}" - } - }, - "merge": { - "default": { - "default": "Merge {modifier}", - "name": "Merge {modifier} onto {way_name}", - "destination": "Merge {modifier} towards {destination}" - }, - "straight": { - "default": "Merge", - "name": "Merge onto {way_name}", - "destination": "Merge towards {destination}" - }, - "slight left": { - "default": "Merge left", - "name": "Merge left onto {way_name}", - "destination": "Merge left towards {destination}" - }, - "slight right": { - "default": "Merge right", - "name": "Merge right onto {way_name}", - "destination": "Merge right towards {destination}" - }, - "sharp left": { - "default": "Merge left", - "name": "Merge left onto {way_name}", - "destination": "Merge left towards {destination}" - }, - "sharp right": { - "default": "Merge right", - "name": "Merge right onto {way_name}", - "destination": "Merge right towards {destination}" - }, - "uturn": { - "default": "Make a U-turn", - "name": "Make a U-turn onto {way_name}", - "destination": "Make a U-turn towards {destination}" - } - }, - "new name": { - "default": { - "default": "Continue {modifier}", - "name": "Continue {modifier} onto {way_name}", - "destination": "Continue {modifier} towards {destination}" - }, - "straight": { - "default": "Continue straight", - "name": "Continue onto {way_name}", - "destination": "Continue towards {destination}" - }, - "sharp left": { - "default": "Take a sharp left", - "name": "Take a sharp left onto {way_name}", - "destination": "Take a sharp left towards {destination}" - }, - "sharp right": { - "default": "Take a sharp right", - "name": "Take a sharp right onto {way_name}", - "destination": "Take a sharp right towards {destination}" - }, - "slight left": { - "default": "Continue slightly left", - "name": "Continue slightly left onto {way_name}", - "destination": "Continue slightly left towards {destination}" - }, - "slight right": { - "default": "Continue slightly right", - "name": "Continue slightly right onto {way_name}", - "destination": "Continue slightly right towards {destination}" - }, - "uturn": { - "default": "Make a U-turn", - "name": "Make a U-turn onto {way_name}", - "destination": "Make a U-turn towards {destination}" - } - }, - "notification": { - "default": { - "default": "Continue {modifier}", - "name": "Continue {modifier} onto {way_name}", - "destination": "Continue {modifier} towards {destination}" - }, - "uturn": { - "default": "Make a U-turn", - "name": "Make a U-turn onto {way_name}", - "destination": "Make a U-turn towards {destination}" - } - }, - "off ramp": { - "default": { - "default": "Take the ramp", - "name": "Take the ramp onto {way_name}", - "destination": "Take the ramp towards {destination}", - "exit": "Take exit {exit}", - "exit_destination": "Take exit {exit} towards {destination}" - }, - "left": { - "default": "Take the ramp on the left", - "name": "Take the ramp on the left onto {way_name}", - "destination": "Take the ramp on the left towards {destination}", - "exit": "Take exit {exit} on the left", - "exit_destination": "Take exit {exit} on the left towards {destination}" - }, - "right": { - "default": "Take the ramp on the right", - "name": "Take the ramp on the right onto {way_name}", - "destination": "Take the ramp on the right towards {destination}", - "exit": "Take exit {exit} on the right", - "exit_destination": "Take exit {exit} on the right towards {destination}" - }, - "sharp left": { - "default": "Take the ramp on the left", - "name": "Take the ramp on the left onto {way_name}", - "destination": "Take the ramp on the left towards {destination}", - "exit": "Take exit {exit} on the left", - "exit_destination": "Take exit {exit} on the left towards {destination}" - }, - "sharp right": { - "default": "Take the ramp on the right", - "name": "Take the ramp on the right onto {way_name}", - "destination": "Take the ramp on the right towards {destination}", - "exit": "Take exit {exit} on the right", - "exit_destination": "Take exit {exit} on the right towards {destination}" - }, - "slight left": { - "default": "Take the ramp on the left", - "name": "Take the ramp on the left onto {way_name}", - "destination": "Take the ramp on the left towards {destination}", - "exit": "Take exit {exit} on the left", - "exit_destination": "Take exit {exit} on the left towards {destination}" - }, - "slight right": { - "default": "Take the ramp on the right", - "name": "Take the ramp on the right onto {way_name}", - "destination": "Take the ramp on the right towards {destination}", - "exit": "Take exit {exit} on the right", - "exit_destination": "Take exit {exit} on the right towards {destination}" - } - }, - "on ramp": { - "default": { - "default": "Take the ramp", - "name": "Take the ramp onto {way_name}", - "destination": "Take the ramp towards {destination}" - }, - "left": { - "default": "Take the ramp on the left", - "name": "Take the ramp on the left onto {way_name}", - "destination": "Take the ramp on the left towards {destination}" - }, - "right": { - "default": "Take the ramp on the right", - "name": "Take the ramp on the right onto {way_name}", - "destination": "Take the ramp on the right towards {destination}" - }, - "sharp left": { - "default": "Take the ramp on the left", - "name": "Take the ramp on the left onto {way_name}", - "destination": "Take the ramp on the left towards {destination}" - }, - "sharp right": { - "default": "Take the ramp on the right", - "name": "Take the ramp on the right onto {way_name}", - "destination": "Take the ramp on the right towards {destination}" - }, - "slight left": { - "default": "Take the ramp on the left", - "name": "Take the ramp on the left onto {way_name}", - "destination": "Take the ramp on the left towards {destination}" - }, - "slight right": { - "default": "Take the ramp on the right", - "name": "Take the ramp on the right onto {way_name}", - "destination": "Take the ramp on the right towards {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Enter the traffic circle", - "name": "Enter the traffic circle and exit onto {way_name}", - "destination": "Enter the traffic circle and exit towards {destination}" - }, - "name": { - "default": "Enter {rotary_name}", - "name": "Enter {rotary_name} and exit onto {way_name}", - "destination": "Enter {rotary_name} and exit towards {destination}" - }, - "exit": { - "default": "Enter the traffic circle and take the {exit_number} exit", - "name": "Enter the traffic circle and take the {exit_number} exit onto {way_name}", - "destination": "Enter the traffic circle and take the {exit_number} exit towards {destination}" - }, - "name_exit": { - "default": "Enter {rotary_name} and take the {exit_number} exit", - "name": "Enter {rotary_name} and take the {exit_number} exit onto {way_name}", - "destination": "Enter {rotary_name} and take the {exit_number} exit towards {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Enter the traffic circle and take the {exit_number} exit", - "name": "Enter the traffic circle and take the {exit_number} exit onto {way_name}", - "destination": "Enter the traffic circle and take the {exit_number} exit towards {destination}" - }, - "default": { - "default": "Enter the traffic circle", - "name": "Enter the traffic circle and exit onto {way_name}", - "destination": "Enter the traffic circle and exit towards {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Make a {modifier}", - "name": "Make a {modifier} onto {way_name}", - "destination": "Make a {modifier} towards {destination}" - }, - "left": { - "default": "Turn left", - "name": "Turn left onto {way_name}", - "destination": "Turn left towards {destination}" - }, - "right": { - "default": "Turn right", - "name": "Turn right onto {way_name}", - "destination": "Turn right towards {destination}" - }, - "straight": { - "default": "Continue straight", - "name": "Continue straight onto {way_name}", - "destination": "Continue straight towards {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Exit the traffic circle", - "name": "Exit the traffic circle onto {way_name}", - "destination": "Exit the traffic circle towards {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Exit the traffic circle", - "name": "Exit the traffic circle onto {way_name}", - "destination": "Exit the traffic circle towards {destination}" - } - }, - "turn": { - "default": { - "default": "Make a {modifier}", - "name": "Make a {modifier} onto {way_name}", - "destination": "Make a {modifier} towards {destination}" - }, - "left": { - "default": "Turn left", - "name": "Turn left onto {way_name}", - "destination": "Turn left towards {destination}" - }, - "right": { - "default": "Turn right", - "name": "Turn right onto {way_name}", - "destination": "Turn right towards {destination}" - }, - "straight": { - "default": "Go straight", - "name": "Go straight onto {way_name}", - "destination": "Go straight towards {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Continue straight" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],26:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1.", - "2": "2.", - "3": "3.", - "4": "4.", - "5": "5.", - "6": "6.", - "7": "7.", - "8": "8.", - "9": "9.", - "10": "10." - }, - "direction": { - "north": "norden", - "northeast": "nord-orienten", - "east": "orienten", - "southeast": "sud-orienten", - "south": "suden", - "southwest": "sud-okcidenten", - "west": "okcidenten", - "northwest": "nord-okcidenten" - }, - "modifier": { - "left": "maldekstren", - "right": "dekstren", - "sharp left": "maldekstregen", - "sharp right": "dekstregen", - "slight left": "maldekstreten", - "slight right": "dekstreten", - "straight": "rekten", - "uturn": "turniĝu malantaŭen" - }, - "lanes": { - "xo": "Veturu dekstre", - "ox": "Veturu maldekstre", - "xox": "Veturu meze", - "oxo": "Veturu dekstre aŭ maldekstre" - } - }, - "modes": { - "ferry": { - "default": "Enpramiĝu", - "name": "Enpramiĝu {way_name}", - "destination": "Enpramiĝu direkte al {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one} kaj post {distance} {instruction_two}", - "two linked": "{instruction_one} kaj sekve {instruction_two}", - "one in distance": "Post {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "elveturejo {exit}" - }, - "arrive": { - "default": { - "default": "Vi atingis vian {nth} celon", - "upcoming": "Vi atingos vian {nth} celon", - "short": "Vi atingis", - "short-upcoming": "Vi atingos", - "named": "Vi atingis {waypoint_name}" - }, - "left": { - "default": "Vi atingis vian {nth} celon ĉe maldekstre", - "upcoming": "Vi atingos vian {nth} celon ĉe maldekstre", - "short": "Vi atingis", - "short-upcoming": "Vi atingos", - "named": "Vi atingis {waypoint_name}, ĉe maldekstre" - }, - "right": { - "default": "Vi atingis vian {nth} celon ĉe dekstre", - "upcoming": "Vi atingos vian {nth} celon ĉe dekstre", - "short": "Vi atingis", - "short-upcoming": "Vi atingos", - "named": "Vi atingis {waypoint_name}, ĉe dekstre" - }, - "sharp left": { - "default": "Vi atingis vian {nth} celon ĉe maldekstre", - "upcoming": "Vi atingos vian {nth} celon ĉe maldekstre", - "short": "Vi atingis", - "short-upcoming": "Vi atingos", - "named": "Vi atingis {waypoint_name}, ĉe maldekstre" - }, - "sharp right": { - "default": "Vi atingis vian {nth} celon ĉe dekstre", - "upcoming": "Vi atingos vian {nth} celon ĉe dekstre", - "short": "Vi atingis", - "short-upcoming": "Vi atingos", - "named": "Vi atingis {waypoint_name}, ĉe dekstre" - }, - "slight right": { - "default": "Vi atingis vian {nth} celon ĉe dekstre", - "upcoming": "Vi atingos vian {nth} celon ĉe dekstre", - "short": "Vi atingis", - "short-upcoming": "Vi atingos", - "named": "Vi atingis {waypoint_name}, ĉe dekstre" - }, - "slight left": { - "default": "Vi atingis vian {nth} celon ĉe maldekstre", - "upcoming": "Vi atingos vian {nth} celon ĉe maldekstre", - "short": "Vi atingis", - "short-upcoming": "Vi atingos", - "named": "Vi atingis {waypoint_name}, ĉe maldekstre" - }, - "straight": { - "default": "Vi atingis vian {nth} celon", - "upcoming": "Vi atingos vian {nth} celon rekte", - "short": "Vi atingis", - "short-upcoming": "Vi atingos", - "named": "Vi atingis {waypoint_name} antaŭe" - } - }, - "continue": { - "default": { - "default": "Veturu {modifier}", - "name": "Veturu {modifier} al {way_name}", - "destination": "Veturu {modifier} direkte al {destination}", - "exit": "Veturu {modifier} direkte al {way_name}" - }, - "straight": { - "default": "Veturu rekten", - "name": "Veturu rekten al {way_name}", - "destination": "Veturu rekten direkte al {destination}", - "distance": "Veturu rekten dum {distance}", - "namedistance": "Veturu rekten al {way_name} dum {distance}" - }, - "sharp left": { - "default": "Turniĝu ege maldekstren", - "name": "Turniĝu ege maldekstren al {way_name}", - "destination": "Turniĝu ege maldekstren direkte al {destination}" - }, - "sharp right": { - "default": "Turniĝu ege dekstren", - "name": "Turniĝu ege dekstren al {way_name}", - "destination": "Turniĝu ege dekstren direkte al {destination}" - }, - "slight left": { - "default": "Turniĝu ete maldekstren", - "name": "Turniĝu ete maldekstren al {way_name}", - "destination": "Turniĝu ete maldekstren direkte al {destination}" - }, - "slight right": { - "default": "Turniĝu ete dekstren", - "name": "Turniĝu ete dekstren al {way_name}", - "destination": "Turniĝu ete dekstren direkte al {destination}" - }, - "uturn": { - "default": "Turniĝu malantaŭen", - "name": "Turniĝu malantaŭen al {way_name}", - "destination": "Turniĝu malantaŭen direkte al {destination}" - } - }, - "depart": { - "default": { - "default": "Direktiĝu {direction}", - "name": "Direktiĝu {direction} al {way_name}", - "namedistance": "Direktiĝu {direction} al {way_name} tra {distance}" - } - }, - "end of road": { - "default": { - "default": "Veturu {modifier}", - "name": "Veturu {modifier} direkte al {way_name}", - "destination": "Veturu {modifier} direkte al {destination}" - }, - "straight": { - "default": "Veturu rekten", - "name": "Veturu rekten al {way_name}", - "destination": "Veturu rekten direkte al {destination}" - }, - "uturn": { - "default": "Turniĝu malantaŭen ĉe fino de la vojo", - "name": "Turniĝu malantaŭen al {way_name} ĉe fino de la vojo", - "destination": "Turniĝu malantaŭen direkte al {destination} ĉe fino de la vojo" - } - }, - "fork": { - "default": { - "default": "Daŭru {modifier} ĉe la vojforko", - "name": "Pluu {modifier} al {way_name}", - "destination": "Pluu {modifier} direkte al {destination}" - }, - "slight left": { - "default": "Maldekstren ĉe la vojforko", - "name": "Pluu maldekstren al {way_name}", - "destination": "Pluu maldekstren direkte al {destination}" - }, - "slight right": { - "default": "Dekstren ĉe la vojforko", - "name": "Pluu dekstren al {way_name}", - "destination": "Pluu dekstren direkte al {destination}" - }, - "sharp left": { - "default": "Ege maldekstren ĉe la vojforko", - "name": "Turniĝu ege maldekstren al {way_name}", - "destination": "Turniĝu ege maldekstren direkte al {destination}" - }, - "sharp right": { - "default": "Ege dekstren ĉe la vojforko", - "name": "Turniĝu ege dekstren al {way_name}", - "destination": "Turniĝu ege dekstren direkte al {destination}" - }, - "uturn": { - "default": "Turniĝu malantaŭen", - "name": "Turniĝu malantaŭen al {way_name}", - "destination": "Turniĝu malantaŭen direkte al {destination}" - } - }, - "merge": { - "default": { - "default": "Enveturu {modifier}", - "name": "Enveturu {modifier} al {way_name}", - "destination": "Enveturu {modifier} direkte al {destination}" - }, - "straight": { - "default": "Enveturu", - "name": "Enveturu al {way_name}", - "destination": "Enveturu direkte al {destination}" - }, - "slight left": { - "default": "Enveturu de maldekstre", - "name": "Enveturu de maldekstre al {way_name}", - "destination": "Enveturu de maldekstre direkte al {destination}" - }, - "slight right": { - "default": "Enveturu de dekstre", - "name": "Enveturu de dekstre al {way_name}", - "destination": "Enveturu de dekstre direkte al {destination}" - }, - "sharp left": { - "default": "Enveturu de maldekstre", - "name": "Enveture de maldekstre al {way_name}", - "destination": "Enveturu de maldekstre direkte al {destination}" - }, - "sharp right": { - "default": "Enveturu de dekstre", - "name": "Enveturu de dekstre al {way_name}", - "destination": "Enveturu de dekstre direkte al {destination}" - }, - "uturn": { - "default": "Turniĝu malantaŭen", - "name": "Turniĝu malantaŭen al {way_name}", - "destination": "Turniĝu malantaŭen direkte al {destination}" - } - }, - "new name": { - "default": { - "default": "Pluu {modifier}", - "name": "Pluu {modifier} al {way_name}", - "destination": "Pluu {modifier} direkte al {destination}" - }, - "straight": { - "default": "Veturu rekten", - "name": "Veturu rekten al {way_name}", - "destination": "Veturu rekten direkte al {destination}" - }, - "sharp left": { - "default": "Turniĝu ege maldekstren", - "name": "Turniĝu ege maldekstren al {way_name}", - "destination": "Turniĝu ege maldekstren direkte al {destination}" - }, - "sharp right": { - "default": "Turniĝu ege dekstren", - "name": "Turniĝu ege dekstren al {way_name}", - "destination": "Turniĝu ege dekstren direkte al {destination}" - }, - "slight left": { - "default": "Pluu ete maldekstren", - "name": "Pluu ete maldekstren al {way_name}", - "destination": "Pluu ete maldekstren direkte al {destination}" - }, - "slight right": { - "default": "Pluu ete dekstren", - "name": "Pluu ete dekstren al {way_name}", - "destination": "Pluu ete dekstren direkte al {destination}" - }, - "uturn": { - "default": "Turniĝu malantaŭen", - "name": "Turniĝu malantaŭen al {way_name}", - "destination": "Turniĝu malantaŭen direkte al {destination}" - } - }, - "notification": { - "default": { - "default": "Pluu {modifier}", - "name": "Pluu {modifier} al {way_name}", - "destination": "Pluu {modifier} direkte al {destination}" - }, - "uturn": { - "default": "Turniĝu malantaŭen", - "name": "Turniĝu malantaŭen al {way_name}", - "destination": "Turniĝu malantaŭen direkte al {destination}" - } - }, - "off ramp": { - "default": { - "default": "Direktiĝu al enveturejo", - "name": "Direktiĝu al enveturejo al {way_name}", - "destination": "Direktiĝu al enveturejo direkte al {destination}", - "exit": "Direktiĝu al elveturejo {exit}", - "exit_destination": "Direktiĝu al elveturejo {exit} direkte al {destination}" - }, - "left": { - "default": "Direktiĝu al enveturejo ĉe maldekstre", - "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}", - "exit": "Direktiĝu al elveturejo {exit} ĉe maldekstre", - "exit_destination": "Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}" - }, - "right": { - "default": "Direktiĝu al enveturejo ĉe dekstre", - "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}", - "exit": "Direktiĝu al {exit} elveturejo ĉe ldekstre", - "exit_destination": "Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}" - }, - "sharp left": { - "default": "Direktiĝu al enveturejo ĉe maldekstre", - "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}", - "exit": "Direktiĝu al {exit} elveturejo ĉe maldekstre", - "exit_destination": "Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}" - }, - "sharp right": { - "default": "Direktiĝu al enveturejo ĉe dekstre", - "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}", - "exit": "Direktiĝu al elveturejo {exit} ĉe dekstre", - "exit_destination": "Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}" - }, - "slight left": { - "default": "Direktiĝu al enveturejo ĉe maldekstre", - "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}", - "exit": "Direktiĝu al {exit} elveturejo ĉe maldekstre", - "exit_destination": "Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}" - }, - "slight right": { - "default": "Direktiĝu al enveturejo ĉe dekstre", - "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}", - "exit": "Direktiĝu al {exit} elveturejo ĉe ldekstre", - "exit_destination": "Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}" - } - }, - "on ramp": { - "default": { - "default": "Direktiĝu al enveturejo", - "name": "Direktiĝu al enveturejo al {way_name}", - "destination": "Direktiĝu al enveturejo direkte al {destination}" - }, - "left": { - "default": "Direktiĝu al enveturejo ĉe maldekstre", - "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}" - }, - "right": { - "default": "Direktiĝu al enveturejo ĉe dekstre", - "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}" - }, - "sharp left": { - "default": "Direktiĝu al enveturejo ĉe maldekstre", - "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}" - }, - "sharp right": { - "default": "Direktiĝu al enveturejo ĉe dekstre", - "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}" - }, - "slight left": { - "default": "Direktiĝu al enveturejo ĉe maldekstre", - "name": "Direktiĝu al enveturejo ĉe maldekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe maldekstre al {destination}" - }, - "slight right": { - "default": "Direktiĝu al enveturejo ĉe dekstre", - "name": "Direktiĝu al enveturejo ĉe dekstre al {way_name}", - "destination": "Direktiĝu al enveturejo ĉe dekstre al {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Enveturu trafikcirklegon", - "name": "Enveturu trafikcirklegon kaj elveturu al {way_name}", - "destination": "Enveturu trafikcirklegon kaj elveturu direkte al {destination}" - }, - "name": { - "default": "Enveturu {rotary_name}", - "name": "Enveturu {rotary_name} kaj elveturu al {way_name}", - "destination": "Enveturu {rotary_name} kaj elveturu direkte al {destination}" - }, - "exit": { - "default": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo", - "name": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo al {way_name}", - "destination": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo direkte al {destination}" - }, - "name_exit": { - "default": "Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo", - "name": "Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo al {way_name}", - "destination": "Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo direkte al {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo", - "name": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo al {way_name}", - "destination": "Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo direkte al {destination}" - }, - "default": { - "default": "Enveturu trafikcirklegon", - "name": "Enveturu trafikcirklegon kaj elveturu al {way_name}", - "destination": "Enveturu trafikcirklegon kaj elveturu direkte al {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Veturu {modifier}", - "name": "Veturu {modifier} al {way_name}", - "destination": "Veturu {modifier} direkte al {destination}" - }, - "left": { - "default": "Turniĝu maldekstren", - "name": "Turniĝu maldekstren al {way_name}", - "destination": "Turniĝu maldekstren direkte al {destination}" - }, - "right": { - "default": "Turniĝu dekstren", - "name": "Turniĝu dekstren al {way_name}", - "destination": "Turniĝu dekstren direkte al {destination}" - }, - "straight": { - "default": "Pluu rekten", - "name": "Veturu rekten al {way_name}", - "destination": "Veturu rekten direkte al {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Elveturu trafikcirklegon", - "name": "Elveturu trafikcirklegon al {way_name}", - "destination": "Elveturu trafikcirklegon direkte al {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Eliru trafikcirklegon", - "name": "Elveturu trafikcirklegon al {way_name}", - "destination": "Elveturu trafikcirklegon direkte al {destination}" - } - }, - "turn": { - "default": { - "default": "Veturu {modifier}", - "name": "Veturu {modifier} al {way_name}", - "destination": "Veturu {modifier} direkte al {destination}" - }, - "left": { - "default": "Turniĝu maldekstren", - "name": "Turniĝu maldekstren al {way_name}", - "destination": "Turniĝu maldekstren direkte al {destination}" - }, - "right": { - "default": "Turniĝu dekstren", - "name": "Turniĝu dekstren al {way_name}", - "destination": "Turniĝu dekstren direkte al {destination}" - }, - "straight": { - "default": "Veturu rekten", - "name": "Veturu rekten al {way_name}", - "destination": "Veturu rekten direkte al {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Pluu rekten" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],27:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1ª", - "2": "2ª", - "3": "3ª", - "4": "4ª", - "5": "5ª", - "6": "6ª", - "7": "7ª", - "8": "8ª", - "9": "9ª", - "10": "10ª" - }, - "direction": { - "north": "norte", - "northeast": "noreste", - "east": "este", - "southeast": "sureste", - "south": "sur", - "southwest": "suroeste", - "west": "oeste", - "northwest": "noroeste" - }, - "modifier": { - "left": "a la izquierda", - "right": "a la derecha", - "sharp left": "cerrada a la izquierda", - "sharp right": "cerrada a la derecha", - "slight left": "ligeramente a la izquierda", - "slight right": "ligeramente a la derecha", - "straight": "recto", - "uturn": "cambio de sentido" - }, - "lanes": { - "xo": "Mantente a la derecha", - "ox": "Mantente a la izquierda", - "xox": "Mantente en el medio", - "oxo": "Mantente a la izquierda o a la derecha" - } - }, - "modes": { - "ferry": { - "default": "Coge el ferry", - "name": "Coge el ferry {way_name}", - "destination": "Coge el ferry hacia {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one} y luego en {distance}, {instruction_two}", - "two linked": "{instruction_one} y luego {instruction_two}", - "one in distance": "A {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "salida {exit}" - }, - "arrive": { - "default": { - "default": "Has llegado a tu {nth} destino", - "upcoming": "Vas a llegar a tu {nth} destino", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}" - }, - "left": { - "default": "Has llegado a tu {nth} destino, a la izquierda", - "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la izquierda" - }, - "right": { - "default": "Has llegado a tu {nth} destino, a la derecha", - "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la derecha" - }, - "sharp left": { - "default": "Has llegado a tu {nth} destino, a la izquierda", - "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la izquierda" - }, - "sharp right": { - "default": "Has llegado a tu {nth} destino, a la derecha", - "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la derecha" - }, - "slight right": { - "default": "Has llegado a tu {nth} destino, a la derecha", - "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la derecha" - }, - "slight left": { - "default": "Has llegado a tu {nth} destino, a la izquierda", - "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la izquierda" - }, - "straight": { - "default": "Has llegado a tu {nth} destino, en frente", - "upcoming": "Vas a llegar a tu {nth} destino, en frente", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, en frente" - } - }, - "continue": { - "default": { - "default": "Gire {modifier}", - "name": "Cruce {modifier} en {way_name}", - "destination": "Gire {modifier} hacia {destination}", - "exit": "Gire {modifier} en {way_name}" - }, - "straight": { - "default": "Continúa recto", - "name": "Continúa en {way_name}", - "destination": "Continúa hacia {destination}", - "distance": "Continúa recto por {distance}", - "namedistance": "Continúa recto en {way_name} por {distance}" - }, - "sharp left": { - "default": "Gire a la izquierda", - "name": "Gire a la izquierda en {way_name}", - "destination": "Gire a la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Gire a la derecha", - "name": "Gire a la derecha en {way_name}", - "destination": "Gire a la derecha hacia {destination}" - }, - "slight left": { - "default": "Gire a la izquierda", - "name": "Doble levemente a la izquierda en {way_name}", - "destination": "Gire a la izquierda hacia {destination}" - }, - "slight right": { - "default": "Gire a la izquierda", - "name": "Doble levemente a la derecha en {way_name}", - "destination": "Gire a la izquierda hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido y continúa en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "depart": { - "default": { - "default": "Dirígete al {direction}", - "name": "Dirígete al {direction} por {way_name}", - "namedistance": "Dirígete al {direction} en {way_name} por {distance}" - } - }, - "end of road": { - "default": { - "default": "Al final de la calle gira {modifier}", - "name": "Al final de la calle gira {modifier} por {way_name}", - "destination": "Al final de la calle gira {modifier} hacia {destination}" - }, - "straight": { - "default": "Al final de la calle continúa recto", - "name": "Al final de la calle continúa recto por {way_name}", - "destination": "Al final de la calle continúa recto hacia {destination}" - }, - "uturn": { - "default": "Al final de la calle haz un cambio de sentido", - "name": "Al final de la calle haz un cambio de sentido en {way_name}", - "destination": "Al final de la calle haz un cambio de sentido hacia {destination}" - } - }, - "fork": { - "default": { - "default": "Mantente {modifier} en el cruce", - "name": "Mantente {modifier} por {way_name}", - "destination": "Mantente {modifier} hacia {destination}" - }, - "slight left": { - "default": "Mantente a la izquierda en el cruce", - "name": "Mantente a la izquierda por {way_name}", - "destination": "Mantente a la izquierda hacia {destination}" - }, - "slight right": { - "default": "Mantente a la derecha en el cruce", - "name": "Mantente a la derecha por {way_name}", - "destination": "Mantente a la derecha hacia {destination}" - }, - "sharp left": { - "default": "Gira la izquierda en el cruce", - "name": "Gira a la izquierda por {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Gira a la derecha en el cruce", - "name": "Gira a la derecha por {way_name}", - "destination": "Gira a la derecha hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "merge": { - "default": { - "default": "Incorpórate {modifier}", - "name": "Incorpórate {modifier} por {way_name}", - "destination": "Incorpórate {modifier} hacia {destination}" - }, - "straight": { - "default": "Incorpórate", - "name": "Incorpórate por {way_name}", - "destination": "Incorpórate hacia {destination}" - }, - "slight left": { - "default": "Incorpórate a la izquierda", - "name": "Incorpórate a la izquierda por {way_name}", - "destination": "Incorpórate a la izquierda hacia {destination}" - }, - "slight right": { - "default": "Incorpórate a la derecha", - "name": "Incorpórate a la derecha por {way_name}", - "destination": "Incorpórate a la derecha hacia {destination}" - }, - "sharp left": { - "default": "Incorpórate a la izquierda", - "name": "Incorpórate a la izquierda por {way_name}", - "destination": "Incorpórate a la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Incorpórate a la derecha", - "name": "Incorpórate a la derecha por {way_name}", - "destination": "Incorpórate a la derecha hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "new name": { - "default": { - "default": "Continúa {modifier}", - "name": "Continúa {modifier} por {way_name}", - "destination": "Continúa {modifier} hacia {destination}" - }, - "straight": { - "default": "Continúa recto", - "name": "Continúa por {way_name}", - "destination": "Continúa hacia {destination}" - }, - "sharp left": { - "default": "Gira a la izquierda", - "name": "Gira a la izquierda por {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Gira a la derecha", - "name": "Gira a la derecha por {way_name}", - "destination": "Gira a la derecha hacia {destination}" - }, - "slight left": { - "default": "Continúa ligeramente por la izquierda", - "name": "Continúa ligeramente por la izquierda por {way_name}", - "destination": "Continúa ligeramente por la izquierda hacia {destination}" - }, - "slight right": { - "default": "Continúa ligeramente por la derecha", - "name": "Continúa ligeramente por la derecha por {way_name}", - "destination": "Continúa ligeramente por la derecha hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "notification": { - "default": { - "default": "Continúa {modifier}", - "name": "Continúa {modifier} por {way_name}", - "destination": "Continúa {modifier} hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "off ramp": { - "default": { - "default": "Coge la cuesta abajo", - "name": "Coge la cuesta abajo por {way_name}", - "destination": "Coge la cuesta abajo hacia {destination}", - "exit": "Coge la cuesta abajo {exit}", - "exit_destination": "Coge la cuesta abajo {exit} hacia {destination}" - }, - "left": { - "default": "Coge la cuesta abajo de la izquierda", - "name": "Coge la cuesta abajo de la izquierda por {way_name}", - "destination": "Coge la cuesta abajo de la izquierda hacia {destination}", - "exit": "Coge la cuesta abajo {exit} a tu izquierda", - "exit_destination": "Coge la cuesta abajo {exit} a tu izquierda hacia {destination}" - }, - "right": { - "default": "Coge la cuesta abajo de la derecha", - "name": "Coge la cuesta abajo de la derecha por {way_name}", - "destination": "Coge la cuesta abajo de la derecha hacia {destination}", - "exit": "Coge la cuesta abajo {exit}", - "exit_destination": "Coge la cuesta abajo {exit} hacia {destination}" - }, - "sharp left": { - "default": "Coge la cuesta abajo de la izquierda", - "name": "Coge la cuesta abajo de la izquierda por {way_name}", - "destination": "Coge la cuesta abajo de la izquierda hacia {destination}", - "exit": "Coge la cuesta abajo {exit} a tu izquierda", - "exit_destination": "Coge la cuesta abajo {exit} a tu izquierda hacia {destination}" - }, - "sharp right": { - "default": "Coge la cuesta abajo de la derecha", - "name": "Coge la cuesta abajo de la derecha por {way_name}", - "destination": "Coge la cuesta abajo de la derecha hacia {destination}", - "exit": "Coge la cuesta abajo {exit}", - "exit_destination": "Coge la cuesta abajo {exit} hacia {destination}" - }, - "slight left": { - "default": "Coge la cuesta abajo de la izquierda", - "name": "Coge la cuesta abajo de la izquierda por {way_name}", - "destination": "Coge la cuesta abajo de la izquierda hacia {destination}", - "exit": "Coge la cuesta abajo {exit} a tu izquierda", - "exit_destination": "Coge la cuesta abajo {exit} a tu izquierda hacia {destination}" - }, - "slight right": { - "default": "Coge la cuesta abajo de la derecha", - "name": "Coge la cuesta abajo de la derecha por {way_name}", - "destination": "Coge la cuesta abajo de la derecha hacia {destination}", - "exit": "Coge la cuesta abajo {exit}", - "exit_destination": "Coge la cuesta abajo {exit} hacia {destination}" - } - }, - "on ramp": { - "default": { - "default": "Coge la cuesta", - "name": "Coge la cuesta por {way_name}", - "destination": "Coge la cuesta hacia {destination}" - }, - "left": { - "default": "Coge la cuesta de la izquierda", - "name": "Coge la cuesta de la izquierda por {way_name}", - "destination": "Coge la cuesta de la izquierda hacia {destination}" - }, - "right": { - "default": "Coge la cuesta de la derecha", - "name": "Coge la cuesta de la derecha por {way_name}", - "destination": "Coge la cuesta de la derecha hacia {destination}" - }, - "sharp left": { - "default": "Coge la cuesta de la izquierda", - "name": "Coge la cuesta de la izquierda por {way_name}", - "destination": "Coge la cuesta de la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Coge la cuesta de la derecha", - "name": "Coge la cuesta de la derecha por {way_name}", - "destination": "Coge la cuesta de la derecha hacia {destination}" - }, - "slight left": { - "default": "Coge la cuesta de la izquierda", - "name": "Coge la cuesta de la izquierda por {way_name}", - "destination": "Coge la cuesta de la izquierda hacia {destination}" - }, - "slight right": { - "default": "Coge la cuesta de la derecha", - "name": "Coge la cuesta de la derecha por {way_name}", - "destination": "Coge la cuesta de la derecha hacia {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Incorpórate en la rotonda", - "name": "En la rotonda sal por {way_name}", - "destination": "En la rotonda sal hacia {destination}" - }, - "name": { - "default": "En {rotary_name}", - "name": "En {rotary_name} sal por {way_name}", - "destination": "En {rotary_name} sal hacia {destination}" - }, - "exit": { - "default": "En la rotonda toma la {exit_number} salida", - "name": "En la rotonda toma la {exit_number} salida por {way_name}", - "destination": "En la rotonda toma la {exit_number} salida hacia {destination}" - }, - "name_exit": { - "default": "En {rotary_name} toma la {exit_number} salida", - "name": "En {rotary_name} toma la {exit_number} salida por {way_name}", - "destination": "En {rotary_name} toma la {exit_number} salida hacia {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "En la rotonda toma la {exit_number} salida", - "name": "En la rotonda toma la {exit_number} salida por {way_name}", - "destination": "En la rotonda toma la {exit_number} salida hacia {destination}" - }, - "default": { - "default": "Incorpórate en la rotonda", - "name": "Incorpórate en la rotonda y sal en {way_name}", - "destination": "Incorpórate en la rotonda y sal hacia {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Siga {modifier}", - "name": "Siga {modifier} en {way_name}", - "destination": "Siga {modifier} hacia {destination}" - }, - "left": { - "default": "Gire a la izquierda", - "name": "Gire a la izquierda en {way_name}", - "destination": "Gire a la izquierda hacia {destination}" - }, - "right": { - "default": "Gire a la derecha", - "name": "Gire a la derecha en {way_name}", - "destination": "Gire a la derecha hacia {destination}" - }, - "straight": { - "default": "Continúa recto", - "name": "Continúa recto por {way_name}", - "destination": "Continúa recto hacia {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Sal la rotonda", - "name": "Toma la salida por {way_name}", - "destination": "Toma la salida hacia {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Sal la rotonda", - "name": "Toma la salida por {way_name}", - "destination": "Toma la salida hacia {destination}" - } - }, - "turn": { - "default": { - "default": "Gira {modifier}", - "name": "Gira {modifier} por {way_name}", - "destination": "Gira {modifier} hacia {destination}" - }, - "left": { - "default": "Gira a la izquierda", - "name": "Gira a la izquierda por {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "right": { - "default": "Gira a la derecha", - "name": "Gira a la derecha por {way_name}", - "destination": "Gira a la derecha hacia {destination}" - }, - "straight": { - "default": "Continúa recto", - "name": "Continúa recto por {way_name}", - "destination": "Continúa recto hacia {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Continúa recto" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],28:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1ª", - "2": "2ª", - "3": "3ª", - "4": "4ª", - "5": "5ª", - "6": "6ª", - "7": "7ª", - "8": "8ª", - "9": "9ª", - "10": "10ª" - }, - "direction": { - "north": "norte", - "northeast": "noreste", - "east": "este", - "southeast": "sureste", - "south": "sur", - "southwest": "suroeste", - "west": "oeste", - "northwest": "noroeste" - }, - "modifier": { - "left": "izquierda", - "right": "derecha", - "sharp left": "cerrada a la izquierda", - "sharp right": "cerrada a la derecha", - "slight left": "levemente a la izquierda", - "slight right": "levemente a la derecha", - "straight": "recto", - "uturn": "cambio de sentido" - }, - "lanes": { - "xo": "Mantente a la derecha", - "ox": "Mantente a la izquierda", - "xox": "Mantente en el medio", - "oxo": "Mantente a la izquierda o derecha" - } - }, - "modes": { - "ferry": { - "default": "Coge el ferry", - "name": "Coge el ferry {way_name}", - "destination": "Coge el ferry a {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one} y luego a {distance}, {instruction_two}", - "two linked": "{instruction_one} y luego {instruction_two}", - "one in distance": "A {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "salida {exit}" - }, - "arrive": { - "default": { - "default": "Has llegado a tu {nth} destino", - "upcoming": "Vas a llegar a tu {nth} destino", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}" - }, - "left": { - "default": "Has llegado a tu {nth} destino, a la izquierda", - "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la izquierda" - }, - "right": { - "default": "Has llegado a tu {nth} destino, a la derecha", - "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la derecha" - }, - "sharp left": { - "default": "Has llegado a tu {nth} destino, a la izquierda", - "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la izquierda" - }, - "sharp right": { - "default": "Has llegado a tu {nth} destino, a la derecha", - "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la derecha" - }, - "slight right": { - "default": "Has llegado a tu {nth} destino, a la derecha", - "upcoming": "Vas a llegar a tu {nth} destino, a la derecha", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la derecha" - }, - "slight left": { - "default": "Has llegado a tu {nth} destino, a la izquierda", - "upcoming": "Vas a llegar a tu {nth} destino, a la izquierda", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, a la izquierda" - }, - "straight": { - "default": "Has llegado a tu {nth} destino, en frente", - "upcoming": "Vas a llegar a tu {nth} destino, en frente", - "short": "Has llegado", - "short-upcoming": "Vas a llegar", - "named": "Has llegado a {waypoint_name}, en frente" - } - }, - "continue": { - "default": { - "default": "Gira a {modifier}", - "name": "Cruza a la{modifier} en {way_name}", - "destination": "Gira a {modifier} hacia {destination}", - "exit": "Gira a {modifier} en {way_name}" - }, - "straight": { - "default": "Continúa recto", - "name": "Continúa en {way_name}", - "destination": "Continúa hacia {destination}", - "distance": "Continúa recto por {distance}", - "namedistance": "Continúa recto en {way_name} por {distance}" - }, - "sharp left": { - "default": "Gira a la izquierda", - "name": "Gira a la izquierda en {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Gira a la derecha", - "name": "Gira a la derecha en {way_name}", - "destination": "Gira a la derecha hacia {destination}" - }, - "slight left": { - "default": "Gira a la izquierda", - "name": "Dobla levemente a la izquierda en {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "slight right": { - "default": "Gira a la izquierda", - "name": "Dobla levemente a la derecha en {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido y continúa en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "depart": { - "default": { - "default": "Ve a {direction}", - "name": "Ve a {direction} en {way_name}", - "namedistance": "Ve a {direction} en {way_name} por {distance}" - } - }, - "end of road": { - "default": { - "default": "Gira a {modifier}", - "name": "Gira a {modifier} en {way_name}", - "destination": "Gira a {modifier} hacia {destination}" - }, - "straight": { - "default": "Continúa recto", - "name": "Continúa recto en {way_name}", - "destination": "Continúa recto hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido al final de la via", - "name": "Haz un cambio de sentido en {way_name} al final de la via", - "destination": "Haz un cambio de sentido hacia {destination} al final de la via" - } - }, - "fork": { - "default": { - "default": "Mantente {modifier} en el cruza", - "name": "Mantente {modifier} en {way_name}", - "destination": "Mantente {modifier} hacia {destination}" - }, - "slight left": { - "default": "Mantente a la izquierda en el cruza", - "name": "Mantente a la izquierda en {way_name}", - "destination": "Mantente a la izquierda hacia {destination}" - }, - "slight right": { - "default": "Mantente a la derecha en el cruza", - "name": "Mantente a la derecha en {way_name}", - "destination": "Mantente a la derecha hacia {destination}" - }, - "sharp left": { - "default": "Gira a la izquierda en el cruza", - "name": "Gira a la izquierda en {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Gira a la derecha en el cruza", - "name": "Gira a la derecha en {way_name}", - "destination": "Gira a la derecha hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "merge": { - "default": { - "default": "Incorpórate a {modifier}", - "name": "Incorpórate a {modifier} en {way_name}", - "destination": "Incorpórate a {modifier} hacia {destination}" - }, - "straight": { - "default": "Incorpórate", - "name": "Incorpórate a {way_name}", - "destination": "Incorpórate hacia {destination}" - }, - "slight left": { - "default": "Incorpórate a la izquierda", - "name": "Incorpórate a la izquierda en {way_name}", - "destination": "Incorpórate a la izquierda hacia {destination}" - }, - "slight right": { - "default": "Incorpórate a la derecha", - "name": "Incorpórate a la derecha en {way_name}", - "destination": "Incorpórate a la derecha hacia {destination}" - }, - "sharp left": { - "default": "Incorpórate a la izquierda", - "name": "Incorpórate a la izquierda en {way_name}", - "destination": "Incorpórate a la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Incorpórate a la derecha", - "name": "Incorpórate a la derecha en {way_name}", - "destination": "Incorpórate a la derecha hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "new name": { - "default": { - "default": "Continúa {modifier}", - "name": "Continúa {modifier} en {way_name}", - "destination": "Continúa {modifier} hacia {destination}" - }, - "straight": { - "default": "Continúa recto", - "name": "Continúa en {way_name}", - "destination": "Continúa hacia {destination}" - }, - "sharp left": { - "default": "Gira a la izquierda", - "name": "Gira a la izquierda en {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Gira a la derecha", - "name": "Gira a la derecha en {way_name}", - "destination": "Gira a la derecha hacia {destination}" - }, - "slight left": { - "default": "Continúa levemente a la izquierda", - "name": "Continúa levemente a la izquierda en {way_name}", - "destination": "Continúa levemente a la izquierda hacia {destination}" - }, - "slight right": { - "default": "Continúa levemente a la derecha", - "name": "Continúa levemente a la derecha en {way_name}", - "destination": "Continúa levemente a la derecha hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "notification": { - "default": { - "default": "Continúa {modifier}", - "name": "Continúa {modifier} en {way_name}", - "destination": "Continúa {modifier} hacia {destination}" - }, - "uturn": { - "default": "Haz un cambio de sentido", - "name": "Haz un cambio de sentido en {way_name}", - "destination": "Haz un cambio de sentido hacia {destination}" - } - }, - "off ramp": { - "default": { - "default": "Toma la salida", - "name": "Toma la salida en {way_name}", - "destination": "Toma la salida hacia {destination}", - "exit": "Toma la salida {exit}", - "exit_destination": "Toma la salida {exit} hacia {destination}" - }, - "left": { - "default": "Toma la salida en la izquierda", - "name": "Toma la salida en la izquierda en {way_name}", - "destination": "Toma la salida en la izquierda en {destination}", - "exit": "Toma la salida {exit} en la izquierda", - "exit_destination": "Toma la salida {exit} en la izquierda hacia {destination}" - }, - "right": { - "default": "Toma la salida en la derecha", - "name": "Toma la salida en la derecha en {way_name}", - "destination": "Toma la salida en la derecha hacia {destination}", - "exit": "Toma la salida {exit} en la derecha", - "exit_destination": "Toma la salida {exit} en la derecha hacia {destination}" - }, - "sharp left": { - "default": "Ve cuesta abajo en la izquierda", - "name": "Ve cuesta abajo en la izquierda en {way_name}", - "destination": "Ve cuesta abajo en la izquierda hacia {destination}", - "exit": "Toma la salida {exit} en la izquierda", - "exit_destination": "Toma la salida {exit} en la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Ve cuesta abajo en la derecha", - "name": "Ve cuesta abajo en la derecha en {way_name}", - "destination": "Ve cuesta abajo en la derecha hacia {destination}", - "exit": "Toma la salida {exit} en la derecha", - "exit_destination": "Toma la salida {exit} en la derecha hacia {destination}" - }, - "slight left": { - "default": "Ve cuesta abajo en la izquierda", - "name": "Ve cuesta abajo en la izquierda en {way_name}", - "destination": "Ve cuesta abajo en la izquierda hacia {destination}", - "exit": "Toma la salida {exit} en la izquierda", - "exit_destination": "Toma la salida {exit} en la izquierda hacia {destination}" - }, - "slight right": { - "default": "Toma la salida en la derecha", - "name": "Toma la salida en la derecha en {way_name}", - "destination": "Toma la salida en la derecha hacia {destination}", - "exit": "Toma la salida {exit} en la derecha", - "exit_destination": "Toma la salida {exit} en la derecha hacia {destination}" - } - }, - "on ramp": { - "default": { - "default": "Toma la rampa", - "name": "Toma la rampa en {way_name}", - "destination": "Toma la rampa hacia {destination}" - }, - "left": { - "default": "Toma la rampa en la izquierda", - "name": "Toma la rampa en la izquierda en {way_name}", - "destination": "Toma la rampa en la izquierda hacia {destination}" - }, - "right": { - "default": "Toma la rampa en la derecha", - "name": "Toma la rampa en la derecha en {way_name}", - "destination": "Toma la rampa en la derecha hacia {destination}" - }, - "sharp left": { - "default": "Toma la rampa en la izquierda", - "name": "Toma la rampa en la izquierda en {way_name}", - "destination": "Toma la rampa en la izquierda hacia {destination}" - }, - "sharp right": { - "default": "Toma la rampa en la derecha", - "name": "Toma la rampa en la derecha en {way_name}", - "destination": "Toma la rampa en la derecha hacia {destination}" - }, - "slight left": { - "default": "Toma la rampa en la izquierda", - "name": "Toma la rampa en la izquierda en {way_name}", - "destination": "Toma la rampa en la izquierda hacia {destination}" - }, - "slight right": { - "default": "Toma la rampa en la derecha", - "name": "Toma la rampa en la derecha en {way_name}", - "destination": "Toma la rampa en la derecha hacia {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Entra en la rotonda", - "name": "Entra en la rotonda y sal en {way_name}", - "destination": "Entra en la rotonda y sal hacia {destination}" - }, - "name": { - "default": "Entra en {rotary_name}", - "name": "Entra en {rotary_name} y sal en {way_name}", - "destination": "Entra en {rotary_name} y sal hacia {destination}" - }, - "exit": { - "default": "Entra en la rotonda y toma la {exit_number} salida", - "name": "Entra en la rotonda y toma la {exit_number} salida a {way_name}", - "destination": "Entra en la rotonda y toma la {exit_number} salida hacia {destination}" - }, - "name_exit": { - "default": "Entra en {rotary_name} y coge la {exit_number} salida", - "name": "Entra en {rotary_name} y coge la {exit_number} salida en {way_name}", - "destination": "Entra en {rotary_name} y coge la {exit_number} salida hacia {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Entra en la rotonda y toma la {exit_number} salida", - "name": "Entra en la rotonda y toma la {exit_number} salida a {way_name}", - "destination": "Entra en la rotonda y toma la {exit_number} salida hacia {destination}" - }, - "default": { - "default": "Entra en la rotonda", - "name": "Entra en la rotonda y sal en {way_name}", - "destination": "Entra en la rotonda y sal hacia {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Sigue {modifier}", - "name": "Sigue {modifier} en {way_name}", - "destination": "Sigue {modifier} hacia {destination}" - }, - "left": { - "default": "Gira a la izquierda", - "name": "Gira a la izquierda en {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "right": { - "default": "Gira a la derecha", - "name": "Gira a la derecha en {way_name}", - "destination": "Gira a la derecha hacia {destination}" - }, - "straight": { - "default": "Continúa recto", - "name": "Continúa recto en {way_name}", - "destination": "Continúa recto hacia {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Sal la rotonda", - "name": "Sal la rotonda en {way_name}", - "destination": "Sal la rotonda hacia {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Sal la rotonda", - "name": "Sal la rotonda en {way_name}", - "destination": "Sal la rotonda hacia {destination}" - } - }, - "turn": { - "default": { - "default": "Sigue {modifier}", - "name": "Sigue {modifier} en {way_name}", - "destination": "Sigue {modifier} hacia {destination}" - }, - "left": { - "default": "Gira a la izquierda", - "name": "Gira a la izquierda en {way_name}", - "destination": "Gira a la izquierda hacia {destination}" - }, - "right": { - "default": "Gira a la derecha", - "name": "Gira a la derecha en {way_name}", - "destination": "Gira a la derecha hacia {destination}" - }, - "straight": { - "default": "Ve recto", - "name": "Ve recto en {way_name}", - "destination": "Ve recto hacia {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Continúa recto" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],29:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1.", - "2": "2.", - "3": "3.", - "4": "4.", - "5": "5.", - "6": "6.", - "7": "7.", - "8": "8.", - "9": "9.", - "10": "10." - }, - "direction": { - "north": "pohjoiseen", - "northeast": "koilliseen", - "east": "itään", - "southeast": "kaakkoon", - "south": "etelään", - "southwest": "lounaaseen", - "west": "länteen", - "northwest": "luoteeseen" - }, - "modifier": { - "left": "vasemmall(e/a)", - "right": "oikeall(e/a)", - "sharp left": "jyrkästi vasempaan", - "sharp right": "jyrkästi oikeaan", - "slight left": "loivasti vasempaan", - "slight right": "loivasti oikeaan", - "straight": "suoraan eteenpäin", - "uturn": "U-käännös" - }, - "lanes": { - "xo": "Pysy oikealla", - "ox": "Pysy vasemmalla", - "xox": "Pysy keskellä", - "oxo": "Pysy vasemmalla tai oikealla" - } - }, - "modes": { - "ferry": { - "default": "Aja lautalle", - "name": "Aja lautalle {way_name}", - "destination": "Aja lautalle, jonka määränpää on {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, sitten {distance} päästä, {instruction_two}", - "two linked": "{instruction_one}, sitten {instruction_two}", - "one in distance": "{distance} päästä, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "{exit}" - }, - "arrive": { - "default": { - "default": "Olet saapunut {nth} määränpäähäsi", - "upcoming": "Saavut {nth} määränpäähäsi", - "short": "Olet saapunut", - "short-upcoming": "Saavut", - "named": "Olet saapunut määränpäähän {waypoint_name}" - }, - "left": { - "default": "Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi", - "upcoming": "Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi", - "short": "Olet saapunut", - "short-upcoming": "Saavut", - "named": "Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi" - }, - "right": { - "default": "Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi", - "upcoming": "Saavut {nth} määränpäähäsi, joka on oikealla puolellasi", - "short": "Olet saapunut", - "short-upcoming": "Saavut", - "named": "Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi" - }, - "sharp left": { - "default": "Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi", - "upcoming": "Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi", - "short": "Olet saapunut", - "short-upcoming": "Saavut", - "named": "Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi" - }, - "sharp right": { - "default": "Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi", - "upcoming": "Saavut {nth} määränpäähäsi, joka on oikealla puolellasi", - "short": "Olet saapunut", - "short-upcoming": "Saavut", - "named": "Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi" - }, - "slight right": { - "default": "Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi", - "upcoming": "Saavut {nth} määränpäähäsi, joka on oikealla puolellasi", - "short": "Olet saapunut", - "short-upcoming": "Saavut", - "named": "Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi" - }, - "slight left": { - "default": "Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi", - "upcoming": "Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi", - "short": "Olet saapunut", - "short-upcoming": "Saavut", - "named": "Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi" - }, - "straight": { - "default": "Olet saapunut {nth} määränpäähäsi, joka on suoraan edessäsi", - "upcoming": "Saavut {nth} määränpäähäsi, suoraan edessä", - "short": "Olet saapunut", - "short-upcoming": "Saavut", - "named": "Olet saapunut määränpäähän {waypoint_name}, joka on suoraan edessäsi" - } - }, - "continue": { - "default": { - "default": "Käänny {modifier}", - "name": "Käänny {modifier} pysyäksesi tiellä {way_name}", - "destination": "Käänny {modifier} suuntana {destination}", - "exit": "Käänny {modifier} tielle {way_name}" - }, - "straight": { - "default": "Jatka suoraan eteenpäin", - "name": "Jatka suoraan pysyäksesi tiellä {way_name}", - "destination": "Jatka suuntana {destination}", - "distance": "Jatka suoraan {distance}", - "namedistance": "Jatka tiellä {way_name} {distance}" - }, - "sharp left": { - "default": "Jatka jyrkästi vasempaan", - "name": "Jatka jyrkästi vasempaan pysyäksesi tiellä {way_name}", - "destination": "Jatka jyrkästi vasempaan suuntana {destination}" - }, - "sharp right": { - "default": "Jatka jyrkästi oikeaan", - "name": "Jatka jyrkästi oikeaan pysyäksesi tiellä {way_name}", - "destination": "Jatka jyrkästi oikeaan suuntana {destination}" - }, - "slight left": { - "default": "Jatka loivasti vasempaan", - "name": "Jatka loivasti vasempaan pysyäksesi tiellä {way_name}", - "destination": "Jatka loivasti vasempaan suuntana {destination}" - }, - "slight right": { - "default": "Jatka loivasti oikeaan", - "name": "Jatka loivasti oikeaan pysyäksesi tiellä {way_name}", - "destination": "Jatka loivasti oikeaan suuntana {destination}" - }, - "uturn": { - "default": "Tee U-käännös", - "name": "Tee U-käännös ja jatka tietä {way_name}", - "destination": "Tee U-käännös suuntana {destination}" - } - }, - "depart": { - "default": { - "default": "Aja {direction}", - "name": "Aja tietä {way_name} {direction}", - "namedistance": "Aja {distance} {direction} tietä {way_name} " - } - }, - "end of road": { - "default": { - "default": "Käänny {modifier}", - "name": "Käänny {modifier} tielle {way_name}", - "destination": "Käänny {modifier} suuntana {destination}" - }, - "straight": { - "default": "Jatka suoraan eteenpäin", - "name": "Jatka suoraan eteenpäin tielle {way_name}", - "destination": "Jatka suoraan eteenpäin suuntana {destination}" - }, - "uturn": { - "default": "Tien päässä tee U-käännös", - "name": "Tien päässä tee U-käännös tielle {way_name}", - "destination": "Tien päässä tee U-käännös suuntana {destination}" - } - }, - "fork": { - "default": { - "default": "Jatka tienhaarassa {modifier}", - "name": "Jatka {modifier} tielle {way_name}", - "destination": "Jatka {modifier} suuntana {destination}" - }, - "slight left": { - "default": "Pysy vasemmalla tienhaarassa", - "name": "Pysy vasemmalla tielle {way_name}", - "destination": "Pysy vasemmalla suuntana {destination}" - }, - "slight right": { - "default": "Pysy oikealla tienhaarassa", - "name": "Pysy oikealla tielle {way_name}", - "destination": "Pysy oikealla suuntana {destination}" - }, - "sharp left": { - "default": "Käänny tienhaarassa jyrkästi vasempaan", - "name": "Käänny tienhaarassa jyrkästi vasempaan tielle {way_name}", - "destination": "Käänny tienhaarassa jyrkästi vasempaan suuntana {destination}" - }, - "sharp right": { - "default": "Käänny tienhaarassa jyrkästi oikeaan", - "name": "Käänny tienhaarassa jyrkästi oikeaan tielle {way_name}", - "destination": "Käänny tienhaarassa jyrkästi oikeaan suuntana {destination}" - }, - "uturn": { - "default": "Tee U-käännös", - "name": "Tee U-käännös tielle {way_name}", - "destination": "Tee U-käännös suuntana {destination}" - } - }, - "merge": { - "default": { - "default": "Liity {modifier}", - "name": "Liity {modifier}, tielle {way_name}", - "destination": "Liity {modifier}, suuntana {destination}" - }, - "straight": { - "default": "Liity", - "name": "Liity tielle {way_name}", - "destination": "Liity suuntana {destination}" - }, - "slight left": { - "default": "Liity vasemmalle", - "name": "Liity vasemmalle, tielle {way_name}", - "destination": "Liity vasemmalle, suuntana {destination}" - }, - "slight right": { - "default": "Liity oikealle", - "name": "Liity oikealle, tielle {way_name}", - "destination": "Liity oikealle, suuntana {destination}" - }, - "sharp left": { - "default": "Liity vasemmalle", - "name": "Liity vasemmalle, tielle {way_name}", - "destination": "Liity vasemmalle, suuntana {destination}" - }, - "sharp right": { - "default": "Liity oikealle", - "name": "Liity oikealle, tielle {way_name}", - "destination": "Liity oikealle, suuntana {destination}" - }, - "uturn": { - "default": "Tee U-käännös", - "name": "Tee U-käännös tielle {way_name}", - "destination": "Tee U-käännös suuntana {destination}" - } - }, - "new name": { - "default": { - "default": "Jatka {modifier}", - "name": "Jatka {modifier} tielle {way_name}", - "destination": "Jatka {modifier} suuntana {destination}" - }, - "straight": { - "default": "Jatka suoraan eteenpäin", - "name": "Jatka tielle {way_name}", - "destination": "Jatka suuntana {destination}" - }, - "sharp left": { - "default": "Käänny jyrkästi vasempaan", - "name": "Käänny jyrkästi vasempaan tielle {way_name}", - "destination": "Käänny jyrkästi vasempaan suuntana {destination}" - }, - "sharp right": { - "default": "Käänny jyrkästi oikeaan", - "name": "Käänny jyrkästi oikeaan tielle {way_name}", - "destination": "Käänny jyrkästi oikeaan suuntana {destination}" - }, - "slight left": { - "default": "Jatka loivasti vasempaan", - "name": "Jatka loivasti vasempaan tielle {way_name}", - "destination": "Jatka loivasti vasempaan suuntana {destination}" - }, - "slight right": { - "default": "Jatka loivasti oikeaan", - "name": "Jatka loivasti oikeaan tielle {way_name}", - "destination": "Jatka loivasti oikeaan suuntana {destination}" - }, - "uturn": { - "default": "Tee U-käännös", - "name": "Tee U-käännös tielle {way_name}", - "destination": "Tee U-käännös suuntana {destination}" - } - }, - "notification": { - "default": { - "default": "Jatka {modifier}", - "name": "Jatka {modifier} tielle {way_name}", - "destination": "Jatka {modifier} suuntana {destination}" - }, - "uturn": { - "default": "Tee U-käännös", - "name": "Tee U-käännös tielle {way_name}", - "destination": "Tee U-käännös suuntana {destination}" - } - }, - "off ramp": { - "default": { - "default": "Aja erkanemiskaistalle", - "name": "Aja erkanemiskaistaa tielle {way_name}", - "destination": "Aja erkanemiskaistalle suuntana {destination}", - "exit": "Ota poistuminen {exit}", - "exit_destination": "Ota poistuminen {exit}, suuntana {destination}" - }, - "left": { - "default": "Aja vasemmalla olevalle erkanemiskaistalle", - "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}", - "exit": "Ota poistuminen {exit} vasemmalla", - "exit_destination": "Ota poistuminen {exit} vasemmalla, suuntana {destination}" - }, - "right": { - "default": "Aja oikealla olevalle erkanemiskaistalle", - "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}", - "exit": "Ota poistuminen {exit} oikealla", - "exit_destination": "Ota poistuminen {exit} oikealla, suuntana {destination}" - }, - "sharp left": { - "default": "Aja vasemmalla olevalle erkanemiskaistalle", - "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}", - "exit": "Ota poistuminen {exit} vasemmalla", - "exit_destination": "Ota poistuminen {exit} vasemmalla, suuntana {destination}" - }, - "sharp right": { - "default": "Aja oikealla olevalle erkanemiskaistalle", - "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}", - "exit": "Ota poistuminen {exit} oikealla", - "exit_destination": "Ota poistuminen {exit} oikealla, suuntana {destination}" - }, - "slight left": { - "default": "Aja vasemmalla olevalle erkanemiskaistalle", - "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}", - "exit": "Ota poistuminen {exit} vasemmalla", - "exit_destination": "Ota poistuminen {exit} vasemmalla, suuntana {destination}" - }, - "slight right": { - "default": "Aja oikealla olevalle erkanemiskaistalle", - "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}", - "exit": "Ota poistuminen {exit} oikealla", - "exit_destination": "Ota poistuminen {exit} oikealla, suuntana {destination}" - } - }, - "on ramp": { - "default": { - "default": "Aja erkanemiskaistalle", - "name": "Aja erkanemiskaistaa tielle {way_name}", - "destination": "Aja erkanemiskaistalle suuntana {destination}" - }, - "left": { - "default": "Aja vasemmalla olevalle erkanemiskaistalle", - "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}" - }, - "right": { - "default": "Aja oikealla olevalle erkanemiskaistalle", - "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}" - }, - "sharp left": { - "default": "Aja vasemmalla olevalle erkanemiskaistalle", - "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}" - }, - "sharp right": { - "default": "Aja oikealla olevalle erkanemiskaistalle", - "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}" - }, - "slight left": { - "default": "Aja vasemmalla olevalle erkanemiskaistalle", - "name": "Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}" - }, - "slight right": { - "default": "Aja oikealla olevalle erkanemiskaistalle", - "name": "Aja oikealla olevaa erkanemiskaistaa tielle {way_name}", - "destination": "Aja oikealla olevalle erkanemiskaistalle suuntana {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Aja liikenneympyrään", - "name": "Aja liikenneympyrään ja valitse erkanemiskaista tielle {way_name}", - "destination": "Aja liikenneympyrään ja valitse erkanemiskaista suuntana {destination}" - }, - "name": { - "default": "Aja liikenneympyrään {rotary_name}", - "name": "Aja liikenneympyrään {rotary_name} ja valitse erkanemiskaista tielle {way_name}", - "destination": "Aja liikenneympyrään {rotary_name} ja valitse erkanemiskaista suuntana {destination}" - }, - "exit": { - "default": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista", - "name": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista tielle {way_name}", - "destination": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista suuntana {destination}" - }, - "name_exit": { - "default": "Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista", - "name": "Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista tielle {way_name}", - "destination": "Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista suuntana {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista", - "name": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista tielle {way_name}", - "destination": "Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista suuntana {destination}" - }, - "default": { - "default": "Aja liikenneympyrään", - "name": "Aja liikenneympyrään ja valitse erkanemiskaista tielle {way_name}", - "destination": "Aja liikenneympyrään ja valitse erkanemiskaista suuntana {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Käänny {modifier}", - "name": "Käänny {modifier} tielle {way_name}", - "destination": "Käänny {modifier} suuntana {destination}" - }, - "left": { - "default": "Käänny vasempaan", - "name": "Käänny vasempaan tielle {way_name}", - "destination": "Käänny vasempaan suuntana {destination}" - }, - "right": { - "default": "Käänny oikeaan", - "name": "Käänny oikeaan tielle {way_name}", - "destination": "Käänny oikeaan suuntana {destination}" - }, - "straight": { - "default": "Jatka suoraan eteenpäin", - "name": "Jatka suoraan eteenpäin tielle {way_name}", - "destination": "Jatka suoraan eteenpäin suuntana {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Poistu liikenneympyrästä", - "name": "Poistu liikenneympyrästä tielle {way_name}", - "destination": "Poistu liikenneympyrästä suuntana {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Poistu liikenneympyrästä", - "name": "Poistu liikenneympyrästä tielle {way_name}", - "destination": "Poistu liikenneympyrästä suuntana {destination}" - } - }, - "turn": { - "default": { - "default": "Käänny {modifier}", - "name": "Käänny {modifier} tielle {way_name}", - "destination": "Käänny {modifier} suuntana {destination}" - }, - "left": { - "default": "Käänny vasempaan", - "name": "Käänny vasempaan tielle {way_name}", - "destination": "Käänny vasempaan suuntana {destination}" - }, - "right": { - "default": "Käänny oikeaan", - "name": "Käänny oikeaan tielle {way_name}", - "destination": "Käänny oikeaan suuntana {destination}" - }, - "straight": { - "default": "Aja suoraan eteenpäin", - "name": "Aja suoraan eteenpäin tielle {way_name}", - "destination": "Aja suoraan eteenpäin suuntana {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Jatka suoraan eteenpäin" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],30:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "première", - "2": "seconde", - "3": "troisième", - "4": "quatrième", - "5": "cinquième", - "6": "sixième", - "7": "septième", - "8": "huitième", - "9": "neuvième", - "10": "dixième" - }, - "direction": { - "north": "le nord", - "northeast": "le nord-est", - "east": "l’est", - "southeast": "le sud-est", - "south": "le sud", - "southwest": "le sud-ouest", - "west": "l’ouest", - "northwest": "le nord-ouest" - }, - "modifier": { - "left": "à gauche", - "right": "à droite", - "sharp left": "franchement à gauche", - "sharp right": "franchement à droite", - "slight left": "légèrement à gauche", - "slight right": "légèrement à droite", - "straight": "tout droit", - "uturn": "demi-tour" - }, - "lanes": { - "xo": "Tenir la droite", - "ox": "Tenir la gauche", - "xox": "Rester au milieu", - "oxo": "Tenir la gauche ou la droite" - } - }, - "modes": { - "ferry": { - "default": "Prendre le ferry", - "name": "Prendre le ferry {way_name:article}", - "destination": "Prendre le ferry en direction {destination:preposition}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, puis, dans {distance}, {instruction_two}", - "two linked": "{instruction_one}, puis {instruction_two}", - "one in distance": "Dans {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "sortie n°{exit}" - }, - "arrive": { - "default": { - "default": "Vous êtes arrivé à votre {nth} destination", - "upcoming": "Vous arriverez à votre {nth} destination", - "short": "Vous êtes arrivé", - "short-upcoming": "Vous arriverez", - "named": "Vous êtes arrivé {waypoint_name:arrival}" - }, - "left": { - "default": "Vous êtes arrivé à votre {nth} destination, sur la gauche", - "upcoming": "Vous arriverez à votre {nth} destination, sur la gauche", - "short": "Vous êtes arrivé", - "short-upcoming": "Vous arriverez", - "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la gauche" - }, - "right": { - "default": "Vous êtes arrivé à votre {nth} destination, sur la droite", - "upcoming": "Vous arriverez à votre {nth} destination, sur la droite", - "short": "Vous êtes arrivé", - "short-upcoming": "Vous arriverez", - "named": "Vous êtes arrivé à {waypoint_name:arrival}, sur la droite" - }, - "sharp left": { - "default": "Vous êtes arrivé à votre {nth} destination, sur la gauche", - "upcoming": "Vous arriverez à votre {nth} destination, sur la gauche", - "short": "Vous êtes arrivé", - "short-upcoming": "Vous arriverez", - "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la gauche" - }, - "sharp right": { - "default": "Vous êtes arrivé à votre {nth} destination, sur la droite", - "upcoming": "Vous arriverez à votre {nth} destination, sur la droite", - "short": "Vous êtes arrivé", - "short-upcoming": "Vous arriverez", - "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la droite" - }, - "slight right": { - "default": "Vous êtes arrivé à votre {nth} destination, sur la droite", - "upcoming": "Vous arriverez à votre {nth} destination, sur la droite", - "short": "Vous êtes arrivé", - "short-upcoming": "Vous arriverez", - "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la droite" - }, - "slight left": { - "default": "Vous êtes arrivé à votre {nth} destination, sur la gauche", - "upcoming": "Vous arriverez à votre {nth} destination, sur la gauche", - "short": "Vous êtes arrivé", - "short-upcoming": "Vous êtes arrivé", - "named": "Vous êtes arrivé {waypoint_name:arrival}, sur la gauche" - }, - "straight": { - "default": "Vous êtes arrivé à votre {nth} destination, droit devant", - "upcoming": "Vous arriverez à votre {nth} destination, droit devant", - "short": "Vous êtes arrivé", - "short-upcoming": "Vous êtes arrivé", - "named": "Vous êtes arrivé {waypoint_name:arrival}, droit devant" - } - }, - "continue": { - "default": { - "default": "Tourner {modifier}", - "name": "Tourner {modifier} pour rester sur {way_name:article}", - "destination": "Tourner {modifier} en direction {destination:preposition}", - "exit": "Tourner {modifier} sur {way_name:article}" - }, - "straight": { - "default": "Continuer tout droit", - "name": "Continuer tout droit pour rester sur {way_name:article}", - "destination": "Continuer tout droit en direction {destination:preposition}", - "distance": "Continuer tout droit sur {distance}", - "namedistance": "Continuer sur {way_name:article} sur {distance}" - }, - "sharp left": { - "default": "Tourner franchement à gauche", - "name": "Tourner franchement à gauche pour rester sur {way_name:article}", - "destination": "Tourner franchement à gauche en direction {destination:preposition}" - }, - "sharp right": { - "default": "Tourner franchement à droite", - "name": "Tourner franchement à droite pour rester sur {way_name:article}", - "destination": "Tourner franchement à droite en direction {destination:preposition}" - }, - "slight left": { - "default": "Tourner légèrement à gauche", - "name": "Tourner légèrement à gauche pour rester sur {way_name:article}", - "destination": "Tourner légèrement à gauche en direction {destination:preposition}" - }, - "slight right": { - "default": "Tourner légèrement à droite", - "name": "Tourner légèrement à droite pour rester sur {way_name:article}", - "destination": "Tourner légèrement à droite en direction {destination:preposition}" - }, - "uturn": { - "default": "Faire demi-tour", - "name": "Faire demi-tour et continuer sur {way_name:article}", - "destination": "Faire demi-tour en direction {destination:preposition}" - } - }, - "depart": { - "default": { - "default": "Se diriger vers {direction}", - "name": "Se diriger vers {direction} sur {way_name:article}", - "namedistance": "Se diriger vers {direction} sur {way_name:article} sur {distance}" - } - }, - "end of road": { - "default": { - "default": "Tourner {modifier}", - "name": "Tourner {modifier} sur {way_name:article}", - "destination": "Tourner {modifier} en direction {destination:preposition}" - }, - "straight": { - "default": "Continuer tout droit", - "name": "Continuer tout droit sur {way_name:article}", - "destination": "Continuer tout droit en direction {destination:preposition}" - }, - "uturn": { - "default": "Faire demi-tour à la fin de la route", - "name": "Faire demi-tour à la fin {way_name:preposition}", - "destination": "Faire demi-tour à la fin de la route en direction {destination:preposition}" - } - }, - "fork": { - "default": { - "default": "Tenir {modifier} à l’embranchement", - "name": "Tenir {modifier} sur {way_name:article}", - "destination": "Tenir {modifier} en direction {destination:preposition}" - }, - "slight left": { - "default": "Tenir la gauche à l’embranchement", - "name": "Tenir la gauche sur {way_name:article}", - "destination": "Tenir la gauche en direction {destination:preposition}" - }, - "slight right": { - "default": "Tenir la droite à l’embranchement", - "name": "Tenir la droite sur {way_name:article}", - "destination": "Tenir la droite en direction {destination:preposition}" - }, - "sharp left": { - "default": "Tourner franchement à gauche à l’embranchement", - "name": "Tourner franchement à gauche sur {way_name:article}", - "destination": "Tourner franchement à gauche en direction {destination:preposition}" - }, - "sharp right": { - "default": "Tourner franchement à droite à l’embranchement", - "name": "Tourner franchement à droite sur {way_name:article}", - "destination": "Tourner franchement à droite en direction {destination:preposition}" - }, - "uturn": { - "default": "Faire demi-tour", - "name": "Faire demi-tour sur {way_name:article}", - "destination": "Faire demi-tour en direction {destination:preposition}" - } - }, - "merge": { - "default": { - "default": "S’insérer {modifier}", - "name": "S’insérer {modifier} sur {way_name:article}", - "destination": "S’insérer {modifier} en direction {destination:preposition}" - }, - "straight": { - "default": "S’insérer", - "name": "S’insérer sur {way_name:article}", - "destination": "S’insérer en direction {destination:preposition}" - }, - "slight left": { - "default": "S’insérer légèrement à gauche", - "name": "S’insérer légèrement à gauche sur {way_name:article}", - "destination": "S’insérer légèrement à gauche en direction {destination:preposition}" - }, - "slight right": { - "default": "S’insérer légèrement à droite", - "name": "S’insérer légèrement à droite sur {way_name:article}", - "destination": "S’insérer à droite en direction {destination:preposition}" - }, - "sharp left": { - "default": "S’insérer à gauche", - "name": "S’insérer à gauche sur {way_name:article}", - "destination": "S’insérer à gauche en direction {destination:preposition}" - }, - "sharp right": { - "default": "S’insérer à droite", - "name": "S’insérer à droite sur {way_name:article}", - "destination": "S’insérer à droite en direction {destination:preposition}" - }, - "uturn": { - "default": "Faire demi-tour", - "name": "Faire demi-tour sur {way_name:article}", - "destination": "Faire demi-tour en direction {destination:preposition}" - } - }, - "new name": { - "default": { - "default": "Continuer {modifier}", - "name": "Continuer {modifier} sur {way_name:article}", - "destination": "Continuer {modifier} en direction {destination:preposition}" - }, - "straight": { - "default": "Continuer tout droit", - "name": "Continuer tout droit sur {way_name:article}", - "destination": "Continuer tout droit en direction {destination:preposition}" - }, - "sharp left": { - "default": "Tourner franchement à gauche", - "name": "Tourner franchement à gauche sur {way_name:article}", - "destination": "Tourner franchement à gauche en direction {destination:preposition}" - }, - "sharp right": { - "default": "Tourner franchement à droite", - "name": "Tourner franchement à droite sur {way_name:article}", - "destination": "Tourner franchement à droite en direction {destination:preposition}" - }, - "slight left": { - "default": "Continuer légèrement à gauche", - "name": "Continuer légèrement à gauche sur {way_name:article}", - "destination": "Continuer légèrement à gauche en direction {destination:preposition}" - }, - "slight right": { - "default": "Continuer légèrement à droite", - "name": "Continuer légèrement à droite sur {way_name:article}", - "destination": "Continuer légèrement à droite en direction {destination:preposition}" - }, - "uturn": { - "default": "Faire demi-tour", - "name": "Faire demi-tour sur {way_name:article}", - "destination": "Faire demi-tour en direction {destination:preposition}" - } - }, - "notification": { - "default": { - "default": "Continuer {modifier}", - "name": "Continuer {modifier} sur {way_name:article}", - "destination": "Continuer {modifier} en direction {destination:preposition}" - }, - "uturn": { - "default": "Faire demi-tour", - "name": "Faire demi-tour sur {way_name:article}", - "destination": "Faire demi-tour en direction {destination:preposition}" - } - }, - "off ramp": { - "default": { - "default": "Prendre la sortie", - "name": "Prendre la sortie sur {way_name:article}", - "destination": "Prendre la sortie en direction {destination:preposition}", - "exit": "Prendre la sortie {exit}", - "exit_destination": "Prendre la sortie {exit} en direction {destination:preposition}" - }, - "left": { - "default": "Prendre la sortie à gauche", - "name": "Prendre la sortie à gauche sur {way_name:article}", - "destination": "Prendre la sortie à gauche en direction {destination:preposition}", - "exit": "Prendre la sortie {exit} sur la gauche", - "exit_destination": "Prendre la sortie {exit} sur la gauche en direction {destination:preposition}" - }, - "right": { - "default": "Prendre la sortie à droite", - "name": "Prendre la sortie à droite sur {way_name:article}", - "destination": "Prendre la sortie à droite en direction {destination:preposition}", - "exit": "Prendre la sortie {exit} sur la droite", - "exit_destination": "Prendre la sortie {exit} sur la droite en direction {destination:preposition}" - }, - "sharp left": { - "default": "Prendre la sortie à gauche", - "name": "Prendre la sortie à gauche sur {way_name:article}", - "destination": "Prendre la sortie à gauche en direction {destination:preposition}", - "exit": "Prendre la sortie {exit} sur la gauche", - "exit_destination": "Prendre la sortie {exit} sur la gauche en direction {destination:preposition}" - }, - "sharp right": { - "default": "Prendre la sortie à droite", - "name": "Prendre la sortie à droite sur {way_name:article}", - "destination": "Prendre la sortie à droite en direction {destination:preposition}", - "exit": "Prendre la sortie {exit} sur la droite", - "exit_destination": "Prendre la sortie {exit} sur la droite en direction {destination:preposition}" - }, - "slight left": { - "default": "Prendre la sortie à gauche", - "name": "Prendre la sortie à gauche sur {way_name:article}", - "destination": "Prendre la sortie à gauche en direction {destination:preposition}", - "exit": "Prendre la sortie {exit} sur la gauche", - "exit_destination": "Prendre la sortie {exit} sur la gauche en direction {destination:preposition}" - }, - "slight right": { - "default": "Prendre la sortie à droite", - "name": "Prendre la sortie à droite sur {way_name:article}", - "destination": "Prendre la sortie à droite en direction {destination:preposition}", - "exit": "Prendre la sortie {exit} sur la droite", - "exit_destination": "Prendre la sortie {exit} sur la droite en direction {destination:preposition}" - } - }, - "on ramp": { - "default": { - "default": "Prendre la sortie", - "name": "Prendre la sortie sur {way_name:article}", - "destination": "Prendre la sortie en direction {destination:preposition}" - }, - "left": { - "default": "Prendre la sortie à gauche", - "name": "Prendre la sortie à gauche sur {way_name:article}", - "destination": "Prendre la sortie à gauche en direction {destination:preposition}" - }, - "right": { - "default": "Prendre la sortie à droite", - "name": "Prendre la sortie à droite sur {way_name:article}", - "destination": "Prendre la sortie à droite en direction {destination:preposition}" - }, - "sharp left": { - "default": "Prendre la sortie à gauche", - "name": "Prendre la sortie à gauche sur {way_name:article}", - "destination": "Prendre la sortie à gauche en direction {destination:preposition}" - }, - "sharp right": { - "default": "Prendre la sortie à droite", - "name": "Prendre la sortie à droite sur {way_name:article}", - "destination": "Prendre la sortie à droite en direction {destination:preposition}" - }, - "slight left": { - "default": "Prendre la sortie à gauche", - "name": "Prendre la sortie à gauche sur {way_name:article}", - "destination": "Prendre la sortie à gauche en direction {destination:preposition}" - }, - "slight right": { - "default": "Prendre la sortie à droite", - "name": "Prendre la sortie à droite sur {way_name:article}", - "destination": "Prendre la sortie à droite en direction {destination:preposition}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Prendre le rond-point", - "name": "Prendre le rond-point, puis sortir sur {way_name:article}", - "destination": "Prendre le rond-point, puis sortir en direction {destination:preposition}" - }, - "name": { - "default": "Prendre {rotary_name:rotary}", - "name": "Prendre {rotary_name:rotary}, puis sortir par {way_name:article}", - "destination": "Prendre {rotary_name:rotary}, puis sortir en direction {destination:preposition}" - }, - "exit": { - "default": "Prendre le rond-point, puis la {exit_number} sortie", - "name": "Prendre le rond-point, puis la {exit_number} sortie sur {way_name:article}", - "destination": "Prendre le rond-point, puis la {exit_number} sortie en direction {destination:preposition}" - }, - "name_exit": { - "default": "Prendre {rotary_name:rotary}, puis la {exit_number} sortie", - "name": "Prendre {rotary_name:rotary}, puis la {exit_number} sortie sur {way_name:article}", - "destination": "Prendre {rotary_name:rotary}, puis la {exit_number} sortie en direction {destination:preposition}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Prendre le rond-point, puis la {exit_number} sortie", - "name": "Prendre le rond-point, puis la {exit_number} sortie sur {way_name:article}", - "destination": "Prendre le rond-point, puis la {exit_number} sortie en direction {destination:preposition}" - }, - "default": { - "default": "Prendre le rond-point", - "name": "Prendre le rond-point, puis sortir sur {way_name:article}", - "destination": "Prendre le rond-point, puis sortir en direction {destination:preposition}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Tourner {modifier}", - "name": "Tourner {modifier} sur {way_name:article}", - "destination": "Tourner {modifier} en direction {destination:preposition}" - }, - "left": { - "default": "Tourner à gauche", - "name": "Tourner à gauche sur {way_name:article}", - "destination": "Tourner à gauche en direction {destination:preposition}" - }, - "right": { - "default": "Tourner à droite", - "name": "Tourner à droite sur {way_name:article}", - "destination": "Tourner à droite en direction {destination:preposition}" - }, - "straight": { - "default": "Continuer tout droit", - "name": "Continuer tout droit sur {way_name:article}", - "destination": "Continuer tout droit en direction {destination:preposition}" - } - }, - "exit roundabout": { - "default": { - "default": "Sortir du rond-point", - "name": "Sortir du rond-point sur {way_name:article}", - "destination": "Sortir du rond-point en direction {destination:preposition}" - } - }, - "exit rotary": { - "default": { - "default": "Sortir du rond-point", - "name": "Sortir du rond-point sur {way_name:article}", - "destination": "Sortir du rond-point en direction {destination:preposition}" - } - }, - "turn": { - "default": { - "default": "Tourner {modifier}", - "name": "Tourner {modifier} sur {way_name:article}", - "destination": "Tourner {modifier} en direction {destination:preposition}" - }, - "left": { - "default": "Tourner à gauche", - "name": "Tourner à gauche sur {way_name:article}", - "destination": "Tourner à gauche en direction {destination:preposition}" - }, - "right": { - "default": "Tourner à droite", - "name": "Tourner à droite sur {way_name:article}", - "destination": "Tourner à droite en direction {destination:preposition}" - }, - "straight": { - "default": "Aller tout droit", - "name": "Aller tout droit sur {way_name:article}", - "destination": "Aller tout droit en direction {destination:preposition}" - } - }, - "use lane": { - "no_lanes": { - "default": "Continuer tout droit" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],31:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "ראשונה", - "2": "שניה", - "3": "שלישית", - "4": "רביעית", - "5": "חמישית", - "6": "שישית", - "7": "שביעית", - "8": "שמינית", - "9": "תשיעית", - "10": "עשירית" - }, - "direction": { - "north": "צפון", - "northeast": "צפון מזרח", - "east": "מזרח", - "southeast": "דרום מזרח", - "south": "דרום", - "southwest": "דרום מערב", - "west": "מערב", - "northwest": "צפון מערב" - }, - "modifier": { - "left": "שמאלה", - "right": "ימינה", - "sharp left": "חדה שמאלה", - "sharp right": "חדה ימינה", - "slight left": "קלה שמאלה", - "slight right": "קלה ימינה", - "straight": "ישר", - "uturn": "פניית פרסה" - }, - "lanes": { - "xo": "היצמד לימין", - "ox": "היצמד לשמאל", - "xox": "המשך בנתיב האמצעי", - "oxo": "היצמד לימין או לשמאל" - } - }, - "modes": { - "ferry": { - "default": "עלה על המעבורת", - "name": "עלה על המעבורת {way_name}", - "destination": "עלה על המעבורת לכיוון {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, ואז, בעוד{distance}, {instruction_two}", - "two linked": "{instruction_one}, ואז {instruction_two}", - "one in distance": "בעוד {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "יציאה {exit}" - }, - "arrive": { - "default": { - "default": "הגעת אל היעד ה{nth} שלך", - "upcoming": "אתה תגיע אל היעד ה{nth} שלך", - "short": "הגעת", - "short-upcoming": "תגיע", - "named": "הגעת אל {waypoint_name}" - }, - "left": { - "default": "הגעת אל היעד ה{nth} שלך משמאלך", - "upcoming": "אתה תגיע אל היעד ה{nth} שלך משמאלך", - "short": "הגעת", - "short-upcoming": "תגיע", - "named": "הגעת אל {waypoint_name} שלך משמאלך" - }, - "right": { - "default": "הגעת אל היעד ה{nth} שלך מימינך", - "upcoming": "אתה תגיע אל היעד ה{nth} שלך מימינך", - "short": "הגעת", - "short-upcoming": "תגיע", - "named": "הגעת אל {waypoint_name} שלך מימינך" - }, - "sharp left": { - "default": "הגעת אל היעד ה{nth} שלך משמאלך", - "upcoming": "אתה תגיע אל היעד ה{nth} שלך משמאלך", - "short": "הגעת", - "short-upcoming": "תגיע", - "named": "הגעת אל {waypoint_name} שלך משמאלך" - }, - "sharp right": { - "default": "הגעת אל היעד ה{nth} שלך מימינך", - "upcoming": "אתה תגיע אל היעד ה{nth} שלך מימינך", - "short": "הגעת", - "short-upcoming": "תגיע", - "named": "הגעת אל {waypoint_name} שלך מימינך" - }, - "slight right": { - "default": "הגעת אל היעד ה{nth} שלך מימינך", - "upcoming": "אתה תגיע אל היעד ה{nth} שלך מימינך", - "short": "הגעת", - "short-upcoming": "תגיע", - "named": "הגעת אל {waypoint_name} שלך מימינך" - }, - "slight left": { - "default": "הגעת אל היעד ה{nth} שלך משמאלך", - "upcoming": "אתה תגיע אל היעד ה{nth} שלך משמאלך", - "short": "הגעת", - "short-upcoming": "תגיע", - "named": "הגעת אל {waypoint_name} שלך משמאלך" - }, - "straight": { - "default": "הגעת אל היעד ה{nth} שלך, בהמשך", - "upcoming": "אתה תגיע אל היעד ה{nth} שלך, בהמשך", - "short": "הגעת", - "short-upcoming": "תגיע", - "named": "הגעת אל {waypoint_name}, בהמשך" - } - }, - "continue": { - "default": { - "default": "פנה {modifier}", - "name": "פנה {modifier} כדי להישאר ב{way_name}", - "destination": "פנה {modifier} לכיוון {destination}", - "exit": "פנה {modifier} על {way_name}" - }, - "straight": { - "default": "המשך ישר", - "name": "המשך ישר כדי להישאר על {way_name}", - "destination": "המשך לכיוון {destination}", - "distance": "המשך ישר לאורך {distance}", - "namedistance": "המשך על {way_name} לאורך {distance}" - }, - "sharp left": { - "default": "פנה בחדות שמאלה", - "name": "פנה בחדות שמאלה כדי להישאר על {way_name}", - "destination": "פנה בחדות שמאלה לכיוון {destination}" - }, - "sharp right": { - "default": "פנה בחדות ימינה", - "name": "פנה בחדות ימינה כדי להישאר על {way_name}", - "destination": "פנה בחדות ימינה לכיוון {destination}" - }, - "slight left": { - "default": "פנה קלות שמאלה", - "name": "פנה קלות שמאלה כדי להישאר על {way_name}", - "destination": "פנה קלות שמאלה לכיוון {destination}" - }, - "slight right": { - "default": "פנה קלות ימינה", - "name": "פנה קלות ימינה כדי להישאר על {way_name}", - "destination": "פנה קלות ימינה לכיוון {destination}" - }, - "uturn": { - "default": "פנה פניית פרסה", - "name": "פנה פניית פרסה והמשך על {way_name}", - "destination": "פנה פניית פרסה לכיוון {destination}" - } - }, - "depart": { - "default": { - "default": "התכוונן {direction}", - "name": "התכוונן {direction} על {way_name}", - "namedistance": "התכוונן {direction} על {way_name} לאורך {distance}" - } - }, - "end of road": { - "default": { - "default": "פנה {modifier}", - "name": "פנה {modifier} על {way_name}", - "destination": "פנה {modifier} לכיוון {destination}" - }, - "straight": { - "default": "המשך ישר", - "name": "המשך ישר על {way_name}", - "destination": "המשך ישר לכיוון {destination}" - }, - "uturn": { - "default": "פנה פניית פרסה בסוף הדרך", - "name": "פנה פניית פרסה על {way_name} בסוף הדרך", - "destination": "פנה פניית פרסה לכיוון {destination} בסוף הדרך" - } - }, - "fork": { - "default": { - "default": "היצמד {modifier} בהתפצלות", - "name": "היצמד {modifier} על {way_name}", - "destination": "היצמד {modifier} לכיוון {destination}" - }, - "slight left": { - "default": "היצמד לשמאל בהתפצלות", - "name": "היצמד לשמאל על {way_name}", - "destination": "היצמד לשמאל לכיוון {destination}" - }, - "slight right": { - "default": "היצמד ימינה בהתפצלות", - "name": "היצמד לימין על {way_name}", - "destination": "היצמד לימין לכיוון {destination}" - }, - "sharp left": { - "default": "פנה בחדות שמאלה בהתפצלות", - "name": "פנה בחדות שמאלה על {way_name}", - "destination": "פנה בחדות שמאלה לכיוון {destination}" - }, - "sharp right": { - "default": "פנה בחדות ימינה בהתפצלות", - "name": "פנה בחדות ימינה על {way_name}", - "destination": "פנה בחדות ימינה לכיוון {destination}" - }, - "uturn": { - "default": "פנה פניית פרסה", - "name": "פנה פניית פרסה על {way_name}", - "destination": "פנה פניית פרסה לכיוון {destination}" - } - }, - "merge": { - "default": { - "default": "השתלב {modifier}", - "name": "השתלב {modifier} על {way_name}", - "destination": "השתלב {modifier} לכיוון {destination}" - }, - "straight": { - "default": "השתלב", - "name": "השתלב על {way_name}", - "destination": "השתלב לכיוון {destination}" - }, - "slight left": { - "default": "השתלב שמאלה", - "name": "השתלב שמאלה על {way_name}", - "destination": "השתלב שמאלה לכיוון {destination}" - }, - "slight right": { - "default": "השתלב ימינה", - "name": "השתלב ימינה על {way_name}", - "destination": "השתלב ימינה לכיוון {destination}" - }, - "sharp left": { - "default": "השתלב שמאלה", - "name": "השתלב שמאלה על {way_name}", - "destination": "השתלב שמאלה לכיוון {destination}" - }, - "sharp right": { - "default": "השתלב ימינה", - "name": "השתלב ימינה על {way_name}", - "destination": "השתלב ימינה לכיוון {destination}" - }, - "uturn": { - "default": "פנה פניית פרסה", - "name": "פנה פניית פרסה על {way_name}", - "destination": "פנה פניית פרסה לכיוון {destination}" - } - }, - "new name": { - "default": { - "default": "המשך {modifier}", - "name": "המשך {modifier} על {way_name}", - "destination": "המשך {modifier} לכיוון {destination}" - }, - "straight": { - "default": "המשך ישר", - "name": "המשך על {way_name}", - "destination": "המשך לכיוון {destination}" - }, - "sharp left": { - "default": "פנה בחדות שמאלה", - "name": "פנה בחדות שמאלה על {way_name}", - "destination": "פנה בחדות שמאלה לכיוון {destination}" - }, - "sharp right": { - "default": "פנה בחדות ימינה", - "name": "פנה בחדות ימינה על {way_name}", - "destination": "פנה בחדות ימינה לכיוון {destination}" - }, - "slight left": { - "default": "המשך בנטייה קלה שמאלה", - "name": "המשך בנטייה קלה שמאלה על {way_name}", - "destination": "המשך בנטייה קלה שמאלה לכיוון {destination}" - }, - "slight right": { - "default": "המשך בנטייה קלה ימינה", - "name": "המשך בנטייה קלה ימינה על {way_name}", - "destination": "המשך בנטייה קלה ימינה לכיוון {destination}" - }, - "uturn": { - "default": "פנה פניית פרסה", - "name": "פנה פניית פרסה על {way_name}", - "destination": "פנה פניית פרסה לכיוון {destination}" - } - }, - "notification": { - "default": { - "default": "המשך {modifier}", - "name": "המשך {modifier} על {way_name}", - "destination": "המשך {modifier} לכיוון {destination}" - }, - "uturn": { - "default": "פנה פניית פרסה", - "name": "פנה פניית פרסה על {way_name}", - "destination": "פנה פניית פרסה לכיוון {destination}" - } - }, - "off ramp": { - "default": { - "default": "צא ביציאה", - "name": "צא ביציאה על {way_name}", - "destination": "צא ביציאה לכיוון {destination}", - "exit": "צא ביציאה {exit}", - "exit_destination": "צא ביציאה {exit} לכיוון {destination}" - }, - "left": { - "default": "צא ביציאה שמשמאלך", - "name": "צא ביציאה שמשמאלך על {way_name}", - "destination": "צא ביציאה שמשמאלך לכיוון {destination}", - "exit": "צא ביציאה {exit} משמאלך", - "exit_destination": "צא ביציאה {exit} משמאלך לכיוון {destination}" - }, - "right": { - "default": "צא ביציאה שמימינך", - "name": "צא ביציאה שמימינך על {way_name}", - "destination": "צא ביציאה שמימינך לכיוון {destination}", - "exit": "צא ביציאה {exit} מימינך", - "exit_destination": "צא ביציאה {exit} מימינך לכיוון {destination}" - }, - "sharp left": { - "default": "צא ביציאה שבשמאלך", - "name": "צא ביציאה שמשמאלך על {way_name}", - "destination": "צא ביציאה שמשמאלך לכיוון {destination}", - "exit": "צא ביציאה {exit} משמאלך", - "exit_destination": "צא ביציאה {exit} משמאלך לכיוון {destination}" - }, - "sharp right": { - "default": "צא ביציאה שמימינך", - "name": "צא ביציאה שמימינך על {way_name}", - "destination": "צא ביציאה שמימינך לכיוון {destination}", - "exit": "צא ביציאה {exit} מימינך", - "exit_destination": "צא ביציאה {exit} מימינך לכיוון {destination}" - }, - "slight left": { - "default": "צא ביציאה שבשמאלך", - "name": "צא ביציאה שמשמאלך על {way_name}", - "destination": "צא ביציאה שמשמאלך לכיוון {destination}", - "exit": "צא ביציאה {exit} משמאלך", - "exit_destination": "צא ביציאה {exit} משמאלך לכיוון {destination}" - }, - "slight right": { - "default": "צא ביציאה שמימינך", - "name": "צא ביציאה שמימינך על {way_name}", - "destination": "צא ביציאה שמימינך לכיוון {destination}", - "exit": "צא ביציאה {exit} מימינך", - "exit_destination": "צא ביציאה {exit} מימינך לכיוון {destination}" - } - }, - "on ramp": { - "default": { - "default": "צא ביציאה", - "name": "צא ביציאה על {way_name}", - "destination": "צא ביציאה לכיוון {destination}" - }, - "left": { - "default": "צא ביציאה שבשמאלך", - "name": "צא ביציאה שמשמאלך על {way_name}", - "destination": "צא ביציאה שמשמאלך לכיוון {destination}" - }, - "right": { - "default": "צא ביציאה שמימינך", - "name": "צא ביציאה שמימינך על {way_name}", - "destination": "צא ביציאה שמימינך לכיוון {destination}" - }, - "sharp left": { - "default": "צא ביציאה שבשמאלך", - "name": "צא ביציאה שמשמאלך על {way_name}", - "destination": "צא ביציאה שמשמאלך לכיוון {destination}" - }, - "sharp right": { - "default": "צא ביציאה שמימינך", - "name": "צא ביציאה שמימינך על {way_name}", - "destination": "צא ביציאה שמימינך לכיוון {destination}" - }, - "slight left": { - "default": "צא ביציאה שבשמאלך", - "name": "צא ביציאה שמשמאלך על {way_name}", - "destination": "צא ביציאה שמשמאלך לכיוון {destination}" - }, - "slight right": { - "default": "צא ביציאה שמימינך", - "name": "צא ביציאה שמימינך על {way_name}", - "destination": "צא ביציאה שמימינך לכיוון {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "השתלב במעגל התנועה", - "name": "השתלב במעגל התנועה וצא על {way_name}", - "destination": "השתלב במעגל התנועה וצא לכיוון {destination}" - }, - "name": { - "default": "היכנס ל{rotary_name}", - "name": "היכנס ל{rotary_name} וצא על {way_name}", - "destination": "היכנס ל{rotary_name} וצא לכיוון {destination}" - }, - "exit": { - "default": "השתלב במעגל התנועה וצא ביציאה {exit_number}", - "name": "השתלב במעגל התנועה וצא ביציאה {exit_number} ל{way_name}", - "destination": "השתלב במעגל התנועה וצא ביציאה {exit_number} לכיוון {destination}" - }, - "name_exit": { - "default": "היכנס ל{rotary_name} וצא ביציאה ה{exit_number}", - "name": "היכנס ל{rotary_name} וצא ביציאה ה{exit_number} ל{way_name}", - "destination": "היכנס ל{rotary_name} וצא ביציאה ה{exit_number} לכיוון {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "השתלב במעגל התנועה וצא ביציאה {exit_number}", - "name": "השתלב במעגל התנועה וצא ביציאה {exit_number} ל{way_name}", - "destination": "השתלב במעגל התנועה וצא ביציאה {exit_number} לכיוון {destination}" - }, - "default": { - "default": "השתלב במעגל התנועה", - "name": "השתלב במעגל התנועה וצא על {way_name}", - "destination": "השתלב במעגל התנועה וצא לכיוון {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "פנה {modifier}", - "name": "פנה {modifier} על {way_name}", - "destination": "פנה {modifier} לכיוון {destination}" - }, - "left": { - "default": "פנה שמאלה", - "name": "פנה שמאלה ל{way_name}", - "destination": "פנה שמאלה לכיוון {destination}" - }, - "right": { - "default": "פנה ימינה", - "name": "פנה ימינה ל{way_name}", - "destination": "פנה ימינה לכיוון {destination}" - }, - "straight": { - "default": "המשך ישר", - "name": "המשך ישר על {way_name}", - "destination": "המשך ישר לכיוון {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "צא ממעגל התנועה", - "name": "צא ממעגל התנועה ל{way_name}", - "destination": "צא ממעגל התנועה לכיוון {destination}" - } - }, - "exit rotary": { - "default": { - "default": "צא ממעגל התנועה", - "name": "צא ממעגל התנועה ל{way_name}", - "destination": "צא ממעגל התנועה לכיוון {destination}" - } - }, - "turn": { - "default": { - "default": "פנה {modifier}", - "name": "פנה {modifier} על {way_name}", - "destination": "פנה {modifier} לכיוון {destination}" - }, - "left": { - "default": "פנה שמאלה", - "name": "פנה שמאלה ל{way_name}", - "destination": "פנה שמאלה לכיוון {destination}" - }, - "right": { - "default": "פנה ימינה", - "name": "פנה ימינה ל{way_name}", - "destination": "פנה ימינה לכיוון {destination}" - }, - "straight": { - "default": "המשך ישר", - "name": "המשך ישר ל{way_name}", - "destination": "המשך ישר לכיוון {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "המשך ישר" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],32:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1", - "2": "2", - "3": "3", - "4": "4", - "5": "5", - "6": "6", - "7": "7", - "8": "8", - "9": "9", - "10": "10" - }, - "direction": { - "north": "utara", - "northeast": "timur laut", - "east": "timur", - "southeast": "tenggara", - "south": "selatan", - "southwest": "barat daya", - "west": "barat", - "northwest": "barat laut" - }, - "modifier": { - "left": "kiri", - "right": "kanan", - "sharp left": "tajam kiri", - "sharp right": "tajam kanan", - "slight left": "agak ke kiri", - "slight right": "agak ke kanan", - "straight": "lurus", - "uturn": "putar balik" - }, - "lanes": { - "xo": "Tetap di kanan", - "ox": "Tetap di kiri", - "xox": "Tetap di tengah", - "oxo": "Tetap di kiri atau kanan" - } - }, - "modes": { - "ferry": { - "default": "Naik ferry", - "name": "Naik ferry di {way_name}", - "destination": "Naik ferry menuju {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, then, in {distance}, {instruction_two}", - "two linked": "{instruction_one}, then {instruction_two}", - "one in distance": "In {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "exit {exit}" - }, - "arrive": { - "default": { - "default": "Anda telah tiba di tujuan ke-{nth}", - "upcoming": "Anda telah tiba di tujuan ke-{nth}", - "short": "Anda telah tiba di tujuan ke-{nth}", - "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", - "named": "Anda telah tiba di {waypoint_name}" - }, - "left": { - "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", - "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", - "short": "Anda telah tiba di tujuan ke-{nth}", - "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", - "named": "Anda telah tiba di {waypoint_name}, di sebelah kiri" - }, - "right": { - "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", - "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", - "short": "Anda telah tiba di tujuan ke-{nth}", - "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", - "named": "Anda telah tiba di {waypoint_name}, di sebelah kanan" - }, - "sharp left": { - "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", - "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", - "short": "Anda telah tiba di tujuan ke-{nth}", - "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", - "named": "Anda telah tiba di {waypoint_name}, di sebelah kiri" - }, - "sharp right": { - "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", - "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", - "short": "Anda telah tiba di tujuan ke-{nth}", - "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", - "named": "Anda telah tiba di {waypoint_name}, di sebelah kanan" - }, - "slight right": { - "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", - "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kanan", - "short": "Anda telah tiba di tujuan ke-{nth}", - "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", - "named": "Anda telah tiba di {waypoint_name}, di sebelah kanan" - }, - "slight left": { - "default": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", - "upcoming": "Anda telah tiba di tujuan ke-{nth}, di sebelah kiri", - "short": "Anda telah tiba di tujuan ke-{nth}", - "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", - "named": "Anda telah tiba di {waypoint_name}, di sebelah kiri" - }, - "straight": { - "default": "Anda telah tiba di tujuan ke-{nth}, lurus saja", - "upcoming": "Anda telah tiba di tujuan ke-{nth}, lurus saja", - "short": "Anda telah tiba di tujuan ke-{nth}", - "short-upcoming": "Anda telah tiba di tujuan ke-{nth}", - "named": "Anda telah tiba di {waypoint_name}, lurus saja" - } - }, - "continue": { - "default": { - "default": "Belok {modifier}", - "name": "Terus {modifier} ke {way_name}", - "destination": "Belok {modifier} menuju {destination}", - "exit": "Belok {modifier} ke {way_name}" - }, - "straight": { - "default": "Lurus terus", - "name": "Terus ke {way_name}", - "destination": "Terus menuju {destination}", - "distance": "Continue straight for {distance}", - "namedistance": "Continue on {way_name} for {distance}" - }, - "sharp left": { - "default": "Belok kiri tajam", - "name": "Make a sharp left to stay on {way_name}", - "destination": "Belok kiri tajam menuju {destination}" - }, - "sharp right": { - "default": "Belok kanan tajam", - "name": "Make a sharp right to stay on {way_name}", - "destination": "Belok kanan tajam menuju {destination}" - }, - "slight left": { - "default": "Tetap agak di kiri", - "name": "Tetap agak di kiri ke {way_name}", - "destination": "Tetap agak di kiri menuju {destination}" - }, - "slight right": { - "default": "Tetap agak di kanan", - "name": "Tetap agak di kanan ke {way_name}", - "destination": "Tetap agak di kanan menuju {destination}" - }, - "uturn": { - "default": "Putar balik", - "name": "Putar balik ke arah {way_name}", - "destination": "Putar balik menuju {destination}" - } - }, - "depart": { - "default": { - "default": "Arah {direction}", - "name": "Arah {direction} di {way_name}", - "namedistance": "Head {direction} on {way_name} for {distance}" - } - }, - "end of road": { - "default": { - "default": "Belok {modifier}", - "name": "Belok {modifier} ke {way_name}", - "destination": "Belok {modifier} menuju {destination}" - }, - "straight": { - "default": "Lurus terus", - "name": "Tetap lurus ke {way_name} ", - "destination": "Tetap lurus menuju {destination}" - }, - "uturn": { - "default": "Putar balik di akhir jalan", - "name": "Putar balik di {way_name} di akhir jalan", - "destination": "Putar balik menuju {destination} di akhir jalan" - } - }, - "fork": { - "default": { - "default": "Tetap {modifier} di pertigaan", - "name": "Tetap {modifier} di pertigaan ke {way_name}", - "destination": "Tetap {modifier} di pertigaan menuju {destination}" - }, - "slight left": { - "default": "Tetap di kiri pada pertigaan", - "name": "Tetap di kiri pada pertigaan ke arah {way_name}", - "destination": "Tetap di kiri pada pertigaan menuju {destination}" - }, - "slight right": { - "default": "Tetap di kanan pada pertigaan", - "name": "Tetap di kanan pada pertigaan ke arah {way_name}", - "destination": "Tetap di kanan pada pertigaan menuju {destination}" - }, - "sharp left": { - "default": "Belok kiri pada pertigaan", - "name": "Belok kiri tajam ke arah {way_name}", - "destination": "Belok kiri tajam menuju {destination}" - }, - "sharp right": { - "default": "Belok kanan pada pertigaan", - "name": "Belok kanan tajam ke arah {way_name}", - "destination": "Belok kanan tajam menuju {destination}" - }, - "uturn": { - "default": "Putar balik", - "name": "Putar balik ke arah {way_name}", - "destination": "Putar balik menuju {destination}" - } - }, - "merge": { - "default": { - "default": "Bergabung {modifier}", - "name": "Bergabung {modifier} ke arah {way_name}", - "destination": "Bergabung {modifier} menuju {destination}" - }, - "straight": { - "default": "Bergabung lurus", - "name": "Bergabung lurus ke arah {way_name}", - "destination": "Bergabung lurus menuju {destination}" - }, - "slight left": { - "default": "Bergabung di kiri", - "name": "Bergabung di kiri ke arah {way_name}", - "destination": "Bergabung di kiri menuju {destination}" - }, - "slight right": { - "default": "Bergabung di kanan", - "name": "Bergabung di kanan ke arah {way_name}", - "destination": "Bergabung di kanan menuju {destination}" - }, - "sharp left": { - "default": "Bergabung di kiri", - "name": "Bergabung di kiri ke arah {way_name}", - "destination": "Bergabung di kiri menuju {destination}" - }, - "sharp right": { - "default": "Bergabung di kanan", - "name": "Bergabung di kanan ke arah {way_name}", - "destination": "Bergabung di kanan menuju {destination}" - }, - "uturn": { - "default": "Putar balik", - "name": "Putar balik ke arah {way_name}", - "destination": "Putar balik menuju {destination}" - } - }, - "new name": { - "default": { - "default": "Lanjutkan {modifier}", - "name": "Lanjutkan {modifier} menuju {way_name}", - "destination": "Lanjutkan {modifier} menuju {destination}" - }, - "straight": { - "default": "Lurus terus", - "name": "Terus ke {way_name}", - "destination": "Terus menuju {destination}" - }, - "sharp left": { - "default": "Belok kiri tajam", - "name": "Belok kiri tajam ke arah {way_name}", - "destination": "Belok kiri tajam menuju {destination}" - }, - "sharp right": { - "default": "Belok kanan tajam", - "name": "Belok kanan tajam ke arah {way_name}", - "destination": "Belok kanan tajam menuju {destination}" - }, - "slight left": { - "default": "Lanjut dengan agak ke kiri", - "name": "Lanjut dengan agak di kiri ke {way_name}", - "destination": "Tetap agak di kiri menuju {destination}" - }, - "slight right": { - "default": "Tetap agak di kanan", - "name": "Tetap agak di kanan ke {way_name}", - "destination": "Tetap agak di kanan menuju {destination}" - }, - "uturn": { - "default": "Putar balik", - "name": "Putar balik ke arah {way_name}", - "destination": "Putar balik menuju {destination}" - } - }, - "notification": { - "default": { - "default": "Lanjutkan {modifier}", - "name": "Lanjutkan {modifier} menuju {way_name}", - "destination": "Lanjutkan {modifier} menuju {destination}" - }, - "uturn": { - "default": "Putar balik", - "name": "Putar balik ke arah {way_name}", - "destination": "Putar balik menuju {destination}" - } - }, - "off ramp": { - "default": { - "default": "Ambil jalan melandai", - "name": "Ambil jalan melandai ke {way_name}", - "destination": "Ambil jalan melandai menuju {destination}", - "exit": "Take exit {exit}", - "exit_destination": "Take exit {exit} towards {destination}" - }, - "left": { - "default": "Ambil jalan yang melandai di sebelah kiri", - "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", - "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}", - "exit": "Take exit {exit} on the left", - "exit_destination": "Take exit {exit} on the left towards {destination}" - }, - "right": { - "default": "Ambil jalan melandai di sebelah kanan", - "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", - "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}", - "exit": "Take exit {exit} on the right", - "exit_destination": "Take exit {exit} on the right towards {destination}" - }, - "sharp left": { - "default": "Ambil jalan yang melandai di sebelah kiri", - "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", - "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}", - "exit": "Take exit {exit} on the left", - "exit_destination": "Take exit {exit} on the left towards {destination}" - }, - "sharp right": { - "default": "Ambil jalan melandai di sebelah kanan", - "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", - "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}", - "exit": "Take exit {exit} on the right", - "exit_destination": "Take exit {exit} on the right towards {destination}" - }, - "slight left": { - "default": "Ambil jalan yang melandai di sebelah kiri", - "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", - "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}", - "exit": "Take exit {exit} on the left", - "exit_destination": "Take exit {exit} on the left towards {destination}" - }, - "slight right": { - "default": "Ambil jalan melandai di sebelah kanan", - "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", - "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}", - "exit": "Take exit {exit} on the right", - "exit_destination": "Take exit {exit} on the right towards {destination}" - } - }, - "on ramp": { - "default": { - "default": "Ambil jalan melandai", - "name": "Ambil jalan melandai ke {way_name}", - "destination": "Ambil jalan melandai menuju {destination}" - }, - "left": { - "default": "Ambil jalan yang melandai di sebelah kiri", - "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", - "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}" - }, - "right": { - "default": "Ambil jalan melandai di sebelah kanan", - "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", - "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}" - }, - "sharp left": { - "default": "Ambil jalan yang melandai di sebelah kiri", - "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", - "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}" - }, - "sharp right": { - "default": "Ambil jalan melandai di sebelah kanan", - "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", - "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}" - }, - "slight left": { - "default": "Ambil jalan yang melandai di sebelah kiri", - "name": "Ambil jalan melandai di sebelah kiri ke arah {way_name}", - "destination": "Ambil jalan melandai di sebelah kiri menuju {destination}" - }, - "slight right": { - "default": "Ambil jalan melandai di sebelah kanan", - "name": "Ambil jalan melandai di sebelah kanan ke {way_name}", - "destination": "Ambil jalan melandai di sebelah kanan menuju {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Masuk bundaran", - "name": "Masuk bundaran dan keluar arah {way_name}", - "destination": "Masuk bundaran dan keluar menuju {destination}" - }, - "name": { - "default": "Masuk {rotary_name}", - "name": "Masuk {rotary_name} dan keluar arah {way_name}", - "destination": "Masuk {rotary_name} dan keluar menuju {destination}" - }, - "exit": { - "default": "Masuk bundaran dan ambil jalan keluar {exit_number}", - "name": "Masuk bundaran dan ambil jalan keluar {exit_number} arah {way_name}", - "destination": "Masuk bundaran dan ambil jalan keluar {exit_number} menuju {destination}" - }, - "name_exit": { - "default": "Masuk {rotary_name} dan ambil jalan keluar {exit_number}", - "name": "Masuk {rotary_name} dan ambil jalan keluar {exit_number} arah {way_name}", - "destination": "Masuk {rotary_name} dan ambil jalan keluar {exit_number} menuju {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Masuk bundaran dan ambil jalan keluar {exit_number}", - "name": "Masuk bundaran dan ambil jalan keluar {exit_number} arah {way_name}", - "destination": "Masuk bundaran dan ambil jalan keluar {exit_number} menuju {destination}" - }, - "default": { - "default": "Masuk bundaran", - "name": "Masuk bundaran dan keluar arah {way_name}", - "destination": "Masuk bundaran dan keluar menuju {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Lakukan {modifier}", - "name": "Lakukan {modifier} ke arah {way_name}", - "destination": "Lakukan {modifier} menuju {destination}" - }, - "left": { - "default": "Belok kiri", - "name": "Belok kiri ke {way_name}", - "destination": "Belok kiri menuju {destination}" - }, - "right": { - "default": "Belok kanan", - "name": "Belok kanan ke {way_name}", - "destination": "Belok kanan menuju {destination}" - }, - "straight": { - "default": "Lurus terus", - "name": "Tetap lurus ke {way_name} ", - "destination": "Tetap lurus menuju {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Lakukan {modifier}", - "name": "Lakukan {modifier} ke arah {way_name}", - "destination": "Lakukan {modifier} menuju {destination}" - }, - "left": { - "default": "Belok kiri", - "name": "Belok kiri ke {way_name}", - "destination": "Belok kiri menuju {destination}" - }, - "right": { - "default": "Belok kanan", - "name": "Belok kanan ke {way_name}", - "destination": "Belok kanan menuju {destination}" - }, - "straight": { - "default": "Lurus terus", - "name": "Tetap lurus ke {way_name} ", - "destination": "Tetap lurus menuju {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Lakukan {modifier}", - "name": "Lakukan {modifier} ke arah {way_name}", - "destination": "Lakukan {modifier} menuju {destination}" - }, - "left": { - "default": "Belok kiri", - "name": "Belok kiri ke {way_name}", - "destination": "Belok kiri menuju {destination}" - }, - "right": { - "default": "Belok kanan", - "name": "Belok kanan ke {way_name}", - "destination": "Belok kanan menuju {destination}" - }, - "straight": { - "default": "Lurus", - "name": "Lurus arah {way_name}", - "destination": "Lurus menuju {destination}" - } - }, - "turn": { - "default": { - "default": "Lakukan {modifier}", - "name": "Lakukan {modifier} ke arah {way_name}", - "destination": "Lakukan {modifier} menuju {destination}" - }, - "left": { - "default": "Belok kiri", - "name": "Belok kiri ke {way_name}", - "destination": "Belok kiri menuju {destination}" - }, - "right": { - "default": "Belok kanan", - "name": "Belok kanan ke {way_name}", - "destination": "Belok kanan menuju {destination}" - }, - "straight": { - "default": "Lurus", - "name": "Lurus arah {way_name}", - "destination": "Lurus menuju {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Lurus terus" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],33:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1ª", - "2": "2ª", - "3": "3ª", - "4": "4ª", - "5": "5ª", - "6": "6ª", - "7": "7ª", - "8": "8ª", - "9": "9ª", - "10": "10ª" - }, - "direction": { - "north": "nord", - "northeast": "nord-est", - "east": "est", - "southeast": "sud-est", - "south": "sud", - "southwest": "sud-ovest", - "west": "ovest", - "northwest": "nord-ovest" - }, - "modifier": { - "left": "sinistra", - "right": "destra", - "sharp left": "sinistra", - "sharp right": "destra", - "slight left": "sinistra leggermente", - "slight right": "destra leggermente", - "straight": "dritto", - "uturn": "inversione a U" - }, - "lanes": { - "xo": "Mantieni la destra", - "ox": "Mantieni la sinistra", - "xox": "Rimani in mezzo", - "oxo": "Mantieni la destra o la sinistra" - } - }, - "modes": { - "ferry": { - "default": "Prendi il traghetto", - "name": "Prendi il traghetto {way_name}", - "destination": "Prendi il traghetto verso {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, poi tra {distance},{instruction_two}", - "two linked": "{instruction_one}, poi {instruction_two}", - "one in distance": "tra {distance} {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "exit {exit}" - }, - "arrive": { - "default": { - "default": "Sei arrivato alla tua {nth} destinazione", - "upcoming": "Sei arrivato alla tua {nth} destinazione", - "short": "Sei arrivato alla tua {nth} destinazione", - "short-upcoming": "Sei arrivato alla tua {nth} destinazione", - "named": "Sei arrivato a {waypoint_name}" - }, - "left": { - "default": "sei arrivato alla tua {nth} destinazione, sulla sinistra", - "upcoming": "sei arrivato alla tua {nth} destinazione, sulla sinistra", - "short": "Sei arrivato alla tua {nth} destinazione", - "short-upcoming": "Sei arrivato alla tua {nth} destinazione", - "named": "sei arrivato a {waypoint_name}, sulla sinistra" - }, - "right": { - "default": "sei arrivato alla tua {nth} destinazione, sulla destra", - "upcoming": "sei arrivato alla tua {nth} destinazione, sulla destra", - "short": "Sei arrivato alla tua {nth} destinazione", - "short-upcoming": "Sei arrivato alla tua {nth} destinazione", - "named": "sei arrivato a {waypoint_name}, sulla destra" - }, - "sharp left": { - "default": "sei arrivato alla tua {nth} destinazione, sulla sinistra", - "upcoming": "sei arrivato alla tua {nth} destinazione, sulla sinistra", - "short": "Sei arrivato alla tua {nth} destinazione", - "short-upcoming": "Sei arrivato alla tua {nth} destinazione", - "named": "sei arrivato a {waypoint_name}, sulla sinistra" - }, - "sharp right": { - "default": "sei arrivato alla tua {nth} destinazione, sulla destra", - "upcoming": "sei arrivato alla tua {nth} destinazione, sulla destra", - "short": "Sei arrivato alla tua {nth} destinazione", - "short-upcoming": "Sei arrivato alla tua {nth} destinazione", - "named": "sei arrivato a {waypoint_name}, sulla destra" - }, - "slight right": { - "default": "sei arrivato alla tua {nth} destinazione, sulla destra", - "upcoming": "sei arrivato alla tua {nth} destinazione, sulla destra", - "short": "Sei arrivato alla tua {nth} destinazione", - "short-upcoming": "Sei arrivato alla tua {nth} destinazione", - "named": "sei arrivato a {waypoint_name}, sulla destra" - }, - "slight left": { - "default": "sei arrivato alla tua {nth} destinazione, sulla sinistra", - "upcoming": "sei arrivato alla tua {nth} destinazione, sulla sinistra", - "short": "Sei arrivato alla tua {nth} destinazione", - "short-upcoming": "Sei arrivato alla tua {nth} destinazione", - "named": "sei arrivato a {waypoint_name}, sulla sinistra" - }, - "straight": { - "default": "sei arrivato alla tua {nth} destinazione, si trova davanti a te", - "upcoming": "sei arrivato alla tua {nth} destinazione, si trova davanti a te", - "short": "Sei arrivato alla tua {nth} destinazione", - "short-upcoming": "Sei arrivato alla tua {nth} destinazione", - "named": "sei arrivato a {waypoint_name}, si trova davanti a te" - } - }, - "continue": { - "default": { - "default": "Gira a {modifier}", - "name": "Gira a {modifier} per stare su {way_name}", - "destination": "Gira a {modifier} verso {destination}", - "exit": "Gira a {modifier} in {way_name}" - }, - "straight": { - "default": "Continua dritto", - "name": "Continua dritto per stare su {way_name}", - "destination": "Continua verso {destination}", - "distance": "Continua dritto per {distance}", - "namedistance": "Continua su {way_name} per {distance}" - }, - "sharp left": { - "default": "Svolta a sinistra", - "name": "Fai una stretta curva a sinistra per stare su {way_name}", - "destination": "Svolta a sinistra verso {destination}" - }, - "sharp right": { - "default": "Svolta a destra", - "name": "Fau una stretta curva a destra per stare su {way_name}", - "destination": "Svolta a destra verso {destination}" - }, - "slight left": { - "default": "Fai una leggera curva a sinistra", - "name": "Fai una leggera curva a sinistra per stare su {way_name}", - "destination": "Fai una leggera curva a sinistra verso {destination}" - }, - "slight right": { - "default": "Fai una leggera curva a destra", - "name": "Fai una leggera curva a destra per stare su {way_name}", - "destination": "Fai una leggera curva a destra verso {destination}" - }, - "uturn": { - "default": "Fai un'inversione a U", - "name": "Fai un'inversione ad U poi continua su {way_name}", - "destination": "Fai un'inversione a U verso {destination}" - } - }, - "depart": { - "default": { - "default": "Continua verso {direction}", - "name": "Continua verso {direction} in {way_name}", - "namedistance": "Head {direction} on {way_name} for {distance}" - } - }, - "end of road": { - "default": { - "default": "Gira a {modifier}", - "name": "Gira a {modifier} in {way_name}", - "destination": "Gira a {modifier} verso {destination}" - }, - "straight": { - "default": "Continua dritto", - "name": "Continua dritto in {way_name}", - "destination": "Continua dritto verso {destination}" - }, - "uturn": { - "default": "Fai un'inversione a U alla fine della strada", - "name": "Fai un'inversione a U in {way_name} alla fine della strada", - "destination": "Fai un'inversione a U verso {destination} alla fine della strada" - } - }, - "fork": { - "default": { - "default": "Mantieni la {modifier} al bivio", - "name": "Mantieni la {modifier} al bivio in {way_name}", - "destination": "Mantieni la {modifier} al bivio verso {destination}" - }, - "slight left": { - "default": "Mantieni la sinistra al bivio", - "name": "Mantieni la sinistra al bivio in {way_name}", - "destination": "Mantieni la sinistra al bivio verso {destination}" - }, - "slight right": { - "default": "Mantieni la destra al bivio", - "name": "Mantieni la destra al bivio in {way_name}", - "destination": "Mantieni la destra al bivio verso {destination}" - }, - "sharp left": { - "default": "Svolta a sinistra al bivio", - "name": "Svolta a sinistra in {way_name}", - "destination": "Svolta a sinistra verso {destination}" - }, - "sharp right": { - "default": "Svolta a destra al bivio", - "name": "Svolta a destra in {way_name}", - "destination": "Svolta a destra verso {destination}" - }, - "uturn": { - "default": "Fai un'inversione a U", - "name": "Fai un'inversione a U in {way_name}", - "destination": "Fai un'inversione a U verso {destination}" - } - }, - "merge": { - "default": { - "default": "Immettiti a {modifier}", - "name": "Immettiti {modifier} in {way_name}", - "destination": "Immettiti {modifier} verso {destination}" - }, - "straight": { - "default": "Immettiti a dritto", - "name": "Immettiti dritto in {way_name}", - "destination": "Immettiti dritto verso {destination}" - }, - "slight left": { - "default": "Immettiti a sinistra", - "name": "Immettiti a sinistra in {way_name}", - "destination": "Immettiti a sinistra verso {destination}" - }, - "slight right": { - "default": "Immettiti a destra", - "name": "Immettiti a destra in {way_name}", - "destination": "Immettiti a destra verso {destination}" - }, - "sharp left": { - "default": "Immettiti a sinistra", - "name": "Immettiti a sinistra in {way_name}", - "destination": "Immettiti a sinistra verso {destination}" - }, - "sharp right": { - "default": "Immettiti a destra", - "name": "Immettiti a destra in {way_name}", - "destination": "Immettiti a destra verso {destination}" - }, - "uturn": { - "default": "Fai un'inversione a U", - "name": "Fai un'inversione a U in {way_name}", - "destination": "Fai un'inversione a U verso {destination}" - } - }, - "new name": { - "default": { - "default": "Continua a {modifier}", - "name": "Continua a {modifier} in {way_name}", - "destination": "Continua a {modifier} verso {destination}" - }, - "straight": { - "default": "Continua dritto", - "name": "Continua in {way_name}", - "destination": "Continua verso {destination}" - }, - "sharp left": { - "default": "Svolta a sinistra", - "name": "Svolta a sinistra in {way_name}", - "destination": "Svolta a sinistra verso {destination}" - }, - "sharp right": { - "default": "Svolta a destra", - "name": "Svolta a destra in {way_name}", - "destination": "Svolta a destra verso {destination}" - }, - "slight left": { - "default": "Continua leggermente a sinistra", - "name": "Continua leggermente a sinistra in {way_name}", - "destination": "Continua leggermente a sinistra verso {destination}" - }, - "slight right": { - "default": "Continua leggermente a destra", - "name": "Continua leggermente a destra in {way_name} ", - "destination": "Continua leggermente a destra verso {destination}" - }, - "uturn": { - "default": "Fai un'inversione a U", - "name": "Fai un'inversione a U in {way_name}", - "destination": "Fai un'inversione a U verso {destination}" - } - }, - "notification": { - "default": { - "default": "Continua a {modifier}", - "name": "Continua a {modifier} in {way_name}", - "destination": "Continua a {modifier} verso {destination}" - }, - "uturn": { - "default": "Fai un'inversione a U", - "name": "Fai un'inversione a U in {way_name}", - "destination": "Fai un'inversione a U verso {destination}" - } - }, - "off ramp": { - "default": { - "default": "Prendi la rampa", - "name": "Prendi la rampa in {way_name}", - "destination": "Prendi la rampa verso {destination}", - "exit": "Prendi l'uscita {exit}", - "exit_destination": "Prendi l'uscita {exit} verso {destination}" - }, - "left": { - "default": "Prendi la rampa a sinistra", - "name": "Prendi la rampa a sinistra in {way_name}", - "destination": "Prendi la rampa a sinistra verso {destination}", - "exit": "Prendi l'uscita {exit} a sinistra", - "exit_destination": "Prendi la {exit} uscita a sinistra verso {destination}" - }, - "right": { - "default": "Prendi la rampa a destra", - "name": "Prendi la rampa a destra in {way_name}", - "destination": "Prendi la rampa a destra verso {destination}", - "exit": "Prendi la {exit} uscita a destra", - "exit_destination": "Prendi la {exit} uscita a destra verso {destination}" - }, - "sharp left": { - "default": "Prendi la rampa a sinistra", - "name": "Prendi la rampa a sinistra in {way_name}", - "destination": "Prendi la rampa a sinistra verso {destination}", - "exit": "Prendi l'uscita {exit} a sinistra", - "exit_destination": "Prendi la {exit} uscita a sinistra verso {destination}" - }, - "sharp right": { - "default": "Prendi la rampa a destra", - "name": "Prendi la rampa a destra in {way_name}", - "destination": "Prendi la rampa a destra verso {destination}", - "exit": "Prendi la {exit} uscita a destra", - "exit_destination": "Prendi la {exit} uscita a destra verso {destination}" - }, - "slight left": { - "default": "Prendi la rampa a sinistra", - "name": "Prendi la rampa a sinistra in {way_name}", - "destination": "Prendi la rampa a sinistra verso {destination}", - "exit": "Prendi l'uscita {exit} a sinistra", - "exit_destination": "Prendi la {exit} uscita a sinistra verso {destination}" - }, - "slight right": { - "default": "Prendi la rampa a destra", - "name": "Prendi la rampa a destra in {way_name}", - "destination": "Prendi la rampa a destra verso {destination}", - "exit": "Prendi la {exit} uscita a destra", - "exit_destination": "Prendi la {exit} uscita a destra verso {destination}" - } - }, - "on ramp": { - "default": { - "default": "Prendi la rampa", - "name": "Prendi la rampa in {way_name}", - "destination": "Prendi la rampa verso {destination}" - }, - "left": { - "default": "Prendi la rampa a sinistra", - "name": "Prendi la rampa a sinistra in {way_name}", - "destination": "Prendi la rampa a sinistra verso {destination}" - }, - "right": { - "default": "Prendi la rampa a destra", - "name": "Prendi la rampa a destra in {way_name}", - "destination": "Prendi la rampa a destra verso {destination}" - }, - "sharp left": { - "default": "Prendi la rampa a sinistra", - "name": "Prendi la rampa a sinistra in {way_name}", - "destination": "Prendi la rampa a sinistra verso {destination}" - }, - "sharp right": { - "default": "Prendi la rampa a destra", - "name": "Prendi la rampa a destra in {way_name}", - "destination": "Prendi la rampa a destra verso {destination}" - }, - "slight left": { - "default": "Prendi la rampa a sinistra", - "name": "Prendi la rampa a sinistra in {way_name}", - "destination": "Prendi la rampa a sinistra verso {destination}" - }, - "slight right": { - "default": "Prendi la rampa a destra", - "name": "Prendi la rampa a destra in {way_name}", - "destination": "Prendi la rampa a destra verso {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Immettiti nella rotonda", - "name": "Immettiti nella ritonda ed esci in {way_name}", - "destination": "Immettiti nella ritonda ed esci verso {destination}" - }, - "name": { - "default": "Immettiti in {rotary_name}", - "name": "Immettiti in {rotary_name} ed esci su {way_name}", - "destination": "Immettiti in {rotary_name} ed esci verso {destination}" - }, - "exit": { - "default": "Immettiti nella rotonda e prendi la {exit_number} uscita", - "name": "Immettiti nella rotonda e prendi la {exit_number} uscita in {way_name}", - "destination": "Immettiti nella rotonda e prendi la {exit_number} uscita verso {destination}" - }, - "name_exit": { - "default": "Immettiti in {rotary_name} e prendi la {exit_number} uscita", - "name": "Immettiti in {rotary_name} e prendi la {exit_number} uscita in {way_name}", - "destination": "Immettiti in {rotary_name} e prendi la {exit_number} uscita verso {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Immettiti nella rotonda e prendi la {exit_number} uscita", - "name": "Immettiti nella rotonda e prendi la {exit_number} uscita in {way_name}", - "destination": "Immettiti nella rotonda e prendi la {exit_number} uscita verso {destination}" - }, - "default": { - "default": "Entra nella rotonda", - "name": "Entra nella rotonda e prendi l'uscita in {way_name}", - "destination": "Entra nella rotonda e prendi l'uscita verso {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Fai una {modifier}", - "name": "Fai una {modifier} in {way_name}", - "destination": "Fai una {modifier} verso {destination}" - }, - "left": { - "default": "Svolta a sinistra", - "name": "Svolta a sinistra in {way_name}", - "destination": "Svolta a sinistra verso {destination}" - }, - "right": { - "default": "Gira a destra", - "name": "Svolta a destra in {way_name}", - "destination": "Svolta a destra verso {destination}" - }, - "straight": { - "default": "Continua dritto", - "name": "Continua dritto in {way_name}", - "destination": "Continua dritto verso {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Fai una {modifier}", - "name": "Fai una {modifier} in {way_name}", - "destination": "Fai una {modifier} verso {destination}" - }, - "left": { - "default": "Svolta a sinistra", - "name": "Svolta a sinistra in {way_name}", - "destination": "Svolta a sinistra verso {destination}" - }, - "right": { - "default": "Gira a destra", - "name": "Svolta a destra in {way_name}", - "destination": "Svolta a destra verso {destination}" - }, - "straight": { - "default": "Continua dritto", - "name": "Continua dritto in {way_name}", - "destination": "Continua dritto verso {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Fai una {modifier}", - "name": "Fai una {modifier} in {way_name}", - "destination": "Fai una {modifier} verso {destination}" - }, - "left": { - "default": "Svolta a sinistra", - "name": "Svolta a sinistra in {way_name}", - "destination": "Svolta a sinistra verso {destination}" - }, - "right": { - "default": "Gira a destra", - "name": "Svolta a destra in {way_name}", - "destination": "Svolta a destra verso {destination}" - }, - "straight": { - "default": "Prosegui dritto", - "name": "Continua su {way_name}", - "destination": "Continua verso {destination}" - } - }, - "turn": { - "default": { - "default": "Fai una {modifier}", - "name": "Fai una {modifier} in {way_name}", - "destination": "Fai una {modifier} verso {destination}" - }, - "left": { - "default": "Svolta a sinistra", - "name": "Svolta a sinistra in {way_name}", - "destination": "Svolta a sinistra verso {destination}" - }, - "right": { - "default": "Gira a destra", - "name": "Svolta a destra in {way_name}", - "destination": "Svolta a destra verso {destination}" - }, - "straight": { - "default": "Prosegui dritto", - "name": "Continua su {way_name}", - "destination": "Continua verso {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Continua dritto" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],34:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": false - }, - "v5": { - "constants": { - "ordinalize": { - "1": "첫번쩨", - "2": "두번째", - "3": "세번째", - "4": "네번쩨", - "5": "다섯번째", - "6": "여섯번째", - "7": "일곱번째", - "8": "여덟번째", - "9": "아홉번째", - "10": "열번째" - }, - "direction": { - "north": "북쪽", - "northeast": "북동쪽", - "east": "동쪽", - "southeast": "남동쪽", - "south": "남쪽", - "southwest": "남서쪽", - "west": "서쪽", - "northwest": "북서쪽" - }, - "modifier": { - "left": "좌회전", - "right": "우회전", - "sharp left": "바로좌회전", - "sharp right": "바로우회전", - "slight left": "조금왼쪽", - "slight right": "조금오른쪽", - "straight": "직진", - "uturn": "유턴" - }, - "lanes": { - "xo": "우측차선 유지", - "ox": "좌측차선 유지", - "xox": "중앙유지", - "oxo": "계속 좌측 또는 우측 차선" - } - }, - "modes": { - "ferry": { - "default": "페리를 타시오", - "name": "페리를 타시오 {way_name}", - "destination": "페리를 타고 {destination}까지 가세요." - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, 그리고, {distance} 안에, {instruction_two}", - "two linked": "{instruction_one}, 그리고 {instruction_two}", - "one in distance": "{distance} 내에, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "{exit}번으로 나가세요." - }, - "arrive": { - "default": { - "default": " {nth}목적지에 도착하였습니다.", - "upcoming": "{nth}목적지에 곧 도착할 예정입니다.", - "short": "도착하였습니다", - "short-upcoming": "도착할 예정입니다.", - "named": "경유지 {waypoint_name}에 도착하였습니다." - }, - "left": { - "default": "좌측에 {nth} 목적지가 있습니다.", - "upcoming": "좌측에 {nth} 목적지에 도착할 예정입니다.", - "short": "도착하였습니다", - "short-upcoming": "목적지에 곧 도착할 예정입니다.", - "named": "좌측에 경유지 {waypoint_name}에 도착하였습니다." - }, - "right": { - "default": "우측에 {nth} 목적지가 있습니다.", - "upcoming": "우측에 {nth} 목적지에 도착할 예정입니다.", - "short": "도착하였습니다", - "short-upcoming": "목적지에 곧 도착할 예정입니다.", - "named": "우측에 경유지 {waypoint_name}에 도착하였습니다." - }, - "sharp left": { - "default": "좌측에 {nth} 목적지가 있습니다.", - "upcoming": "좌측에 {nth} 목적지에 도착할 예정입니다.", - "short": "도착하였습니다", - "short-upcoming": "목적지에 곧 도착할 예정입니다.", - "named": "좌측에 경유지 {waypoint_name}에 도착하였습니다." - }, - "sharp right": { - "default": "우측에 {nth} 목적지가 있습니다.", - "upcoming": "우측에 {nth} 목적지에 도착할 예정입니다.", - "short": "도착하였습니다", - "short-upcoming": "목적지에 곧 도착할 예정입니다.", - "named": "우측에 경유지 {waypoint_name}에 도착하였습니다." - }, - "slight right": { - "default": "우측에 {nth} 목적지가 있습니다.", - "upcoming": "우측에 {nth} 목적지에 도착할 예정입니다.", - "short": "도착하였습니다", - "short-upcoming": "목적지에 곧 도착할 예정입니다.", - "named": "우측에 경유지 {waypoint_name}에 도착하였습니다." - }, - "slight left": { - "default": "좌측에 {nth} 목적지가 있습니다.", - "upcoming": "좌측에 {nth} 목적지에 도착할 예정입니다.", - "short": "도착하였습니다", - "short-upcoming": "목적지에 곧 도착할 예정입니다.", - "named": "좌측에 경유지 {waypoint_name}에 도착하였습니다." - }, - "straight": { - "default": "바로 앞에 {nth} 목적지가 있습니다.", - "upcoming": "직진하시면 {nth} 목적지에 도착할 예정입니다.", - "short": "도착하였습니다", - "short-upcoming": "목적지에 곧 도착할 예정입니다.", - "named": "정면에 경유지 {waypoint_name}에 도착하였습니다." - } - }, - "continue": { - "default": { - "default": "{modifier} 회전", - "name": "{modifier} 회전하고 {way_name}로 직진해 주세요.", - "destination": "{modifier} 회전하고 {destination}까지 가세요.", - "exit": "{way_name} 쪽으로 {modifier} 회전 하세요." - }, - "straight": { - "default": "계속 직진해 주세요.", - "name": "{way_name} 로 계속 직진해 주세요.", - "destination": "{destination}까지 직진해 주세요.", - "distance": "{distance}까지 직진해 주세요.", - "namedistance": "{distance}까지 {way_name}로 가주세요." - }, - "sharp left": { - "default": "급좌회전 하세요.", - "name": "급좌회전 하신 후 {way_name}로 가세요.", - "destination": "급좌회전 하신 후 {destination}로 가세요." - }, - "sharp right": { - "default": "급우회전 하세요.", - "name": "급우회전 하고 {way_name}로 가세요.", - "destination": "급우회전 하신 후 {destination}로 가세요." - }, - "slight left": { - "default": "약간 좌회전하세요.", - "name": "약간 좌회전 하고 {way_name}로 가세요.", - "destination": "약간 좌회전 하신 후 {destination}로 가세요." - }, - "slight right": { - "default": "약간 우회전하세요.", - "name": "약간 우회전 하고 {way_name}로 가세요.", - "destination": "약간 우회전 하신 후 {destination}로 가세요." - }, - "uturn": { - "default": "유턴 하세요", - "name": "유턴해서 {way_name}로 가세요.", - "destination": "유턴하신 후 {destination}로 가세요." - } - }, - "depart": { - "default": { - "default": "{direction}로 가세요", - "name": "{direction} 로 가서 {way_name} 를 이용하세요. ", - "namedistance": "{direction}로 가서{way_name} 를 {distance}까지 가세요." - } - }, - "end of road": { - "default": { - "default": "{modifier} 회전하세요.", - "name": "{modifier}회전하고 {way_name}로 가세요.", - "destination": "{modifier}회전 하신 후 {destination}로 가세요." - }, - "straight": { - "default": "계속 직진해 주세요.", - "name": "{way_name}로 계속 직진해 주세요.", - "destination": "{destination}까지 직진해 주세요." - }, - "uturn": { - "default": "도로 끝까지 가서 유턴해 주세요.", - "name": "도로 끝까지 가서 유턴해서 {way_name}로 가세요.", - "destination": "도로 끝까지 가서 유턴해서 {destination} 까지 가세요." - } - }, - "fork": { - "default": { - "default": "갈림길에서 {modifier} 으로 가세요.", - "name": "{modifier}하고 {way_name}로 가세요.", - "destination": "{modifier}하고 {destination}까지 가세요." - }, - "slight left": { - "default": "갈림길에서 좌회전 하세요.", - "name": "좌회전 해서 {way_name}로 가세요.", - "destination": "좌회전 해서 {destination}까지 가세요." - }, - "slight right": { - "default": "갈림길에서 우회전 하세요.", - "name": "우회전 해서 {way_name}로 가세요.", - "destination": "우회전 해서 {destination}까지 가세요." - }, - "sharp left": { - "default": "갈림길에서 급좌회전 하세요.", - "name": "급좌회전 해서 {way_name}로 가세요.", - "destination": "급좌회전 해서 {destination}까지 가세요." - }, - "sharp right": { - "default": "갈림길에서 급우회전 하세요.", - "name": "급우회전 해서 {way_name}로 가세요.", - "destination": "급우회전 해서 {destination}까지 가세요." - }, - "uturn": { - "default": "유턴하세요.", - "name": "유턴해서 {way_name}로 가세요.", - "destination": "유턴해서 {destination}까지 가세요." - } - }, - "merge": { - "default": { - "default": "{modifier} 합류", - "name": "{modifier} 합류하여 {way_name}로 가세요.", - "destination": "{modifier} 합류하여 {destination}로 가세요." - }, - "straight": { - "default": "합류", - "name": "{way_name}로 합류하세요.", - "destination": "{destination}로 합류하세요." - }, - "slight left": { - "default": "좌측으로 합류하세요.", - "name": "좌측{way_name}로 합류하세요.", - "destination": "좌측으로 합류하여 {destination}까지 가세요." - }, - "slight right": { - "default": "우측으로 합류하세요.", - "name": "우측{way_name}로 합류하세요.", - "destination": "우측으로 합류하여 {destination}까지 가세요." - }, - "sharp left": { - "default": "좌측으로 합류하세요.", - "name": "좌측{way_name}로 합류하세요.", - "destination": "좌측으로 합류하여 {destination}까지 가세요." - }, - "sharp right": { - "default": "우측으로 합류하세요.", - "name": "우측{way_name}로 합류하세요.", - "destination": "우측으로 합류하여 {destination}까지 가세요." - }, - "uturn": { - "default": "유턴하세요.", - "name": "유턴해서 {way_name}로 가세요.", - "destination": "유턴해서 {destination}까지 가세요." - } - }, - "new name": { - "default": { - "default": "{modifier} 유지하세요.", - "name": "{modifier} 유지해서 {way_name}로 가세요.", - "destination": "{modifier} 유지해서 {destination}까지 가세요." - }, - "straight": { - "default": "직진해주세요.", - "name": "{way_name}로 계속 가세요.", - "destination": "{destination}까지 계속 가세요." - }, - "sharp left": { - "default": "급좌회전 하세요.", - "name": "급좌회전 해서 {way_name}로 가세요.", - "destination": "급좌회전 해서 {destination}까지 가세요." - }, - "sharp right": { - "default": "급우회전 하세요.", - "name": "급우회전 해서 {way_name}로 가세요.", - "destination": "급우회전 해서 {destination}까지 가세요." - }, - "slight left": { - "default": "약간 좌회전 해세요.", - "name": "약간 좌회전해서 {way_name}로 가세요.", - "destination": "약간 좌회전 해서 {destination}까지 가세요." - }, - "slight right": { - "default": "약간 우회전 해세요.", - "name": "약간 우회전해서 {way_name}로 가세요.", - "destination": "약간 우회전 해서 {destination}까지 가세요." - }, - "uturn": { - "default": "유턴해주세요.", - "name": "유턴해서 {way_name}로 가세요.", - "destination": "유턴해서 {destination}까지 가세요." - } - }, - "notification": { - "default": { - "default": "{modifier} 하세요.", - "name": "{modifier}해서 {way_name}로 가세요.", - "destination": "{modifier}해서 {destination}까지 가세요." - }, - "uturn": { - "default": "유턴하세요.", - "name": "유턴해서 {way_name}로 가세요.", - "destination": "유턴해서 {destination}까지 가세요." - } - }, - "off ramp": { - "default": { - "default": "램프로 진출해 주세요..", - "name": "램프로 진출해서 {way_name}로 가세요.", - "destination": "램프로 진출해서 {destination}까지 가세요.", - "exit": "{exit} 출구로 나가세요.", - "exit_destination": "{exit} 출구로 나가서 {destination}까지 가세요." - }, - "left": { - "default": "왼쪽의 램프로 진출해 주세요.", - "name": "왼쪽의 램프로 진출해서 {way_name}로 가세요.", - "destination": "왼쪽의 램프로 진출해서 {destination}까지 가세요.", - "exit": "{exit} 왼쪽의 출구로 나가세요.", - "exit_destination": "{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요." - }, - "right": { - "default": "오른쪽의 램프로 진출해 주세요.", - "name": "오른쪽의 램프로 진출해서 {way_name}로 가세요.", - "destination": "오른쪽의 램프로 진출해서 {destination}까지 가세요.", - "exit": "{exit} 오른쪽의 출구로 나가세요.", - "exit_destination": "{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요." - }, - "sharp left": { - "default": "왼쪽의 램프로 진출해 주세요.", - "name": "왼쪽의 램프로 진출해서 {way_name}로 가세요.", - "destination": "왼쪽의 램프로 진출해서 {destination}까지 가세요.", - "exit": "{exit} 왼쪽의 출구로 나가세요.", - "exit_destination": "{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요." - }, - "sharp right": { - "default": "오른쪽의 램프로 진출해 주세요.", - "name": "오른쪽의 램프로 진출해서 {way_name}로 가세요.", - "destination": "오른쪽의 램프로 진출해서 {destination}까지 가세요.", - "exit": "{exit} 오른쪽의 출구로 나가세요.", - "exit_destination": "{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요." - }, - "slight left": { - "default": "왼쪽의 램프로 진출해 주세요.", - "name": "왼쪽의 램프로 진출해서 {way_name}로 가세요.", - "destination": "왼쪽의 램프로 진출해서 {destination}까지 가세요.", - "exit": "{exit} 왼쪽의 출구로 나가세요.", - "exit_destination": "{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요." - }, - "slight right": { - "default": "오른쪽의 램프로 진출해 주세요.", - "name": "오른쪽의 램프로 진출해서 {way_name}로 가세요.", - "destination": "오른쪽의 램프로 진출해서 {destination}까지 가세요.", - "exit": "{exit} 오른쪽의 출구로 나가세요.", - "exit_destination": "{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요." - } - }, - "on ramp": { - "default": { - "default": "램프로 진입해 주세요..", - "name": "램프로 진입해서 {way_name}로 가세요.", - "destination": "램프로 진입해서 {destination}까지 가세요." - }, - "left": { - "default": "왼쪽의 램프로 진입해 주세요.", - "name": "왼쪽의 램프로 진입해서 {way_name}로 가세요.", - "destination": "왼쪽의 램프로 진입해서 {destination}까지 가세요." - }, - "right": { - "default": "오른쪽의 램프로 진입해 주세요.", - "name": "오른쪽의 램프로 진입해서 {way_name}로 가세요.", - "destination": "오른쪽의 램프로 진입해서 {destination}까지 가세요." - }, - "sharp left": { - "default": "왼쪽의 램프로 진입해 주세요.", - "name": "왼쪽의 램프로 진입해서 {way_name}로 가세요.", - "destination": "왼쪽의 램프로 진입해서 {destination}까지 가세요." - }, - "sharp right": { - "default": "오른쪽의 램프로 진입해 주세요.", - "name": "오른쪽의 램프로 진입해서 {way_name}로 가세요.", - "destination": "오른쪽의 램프로 진입해서 {destination}까지 가세요." - }, - "slight left": { - "default": "왼쪽의 램프로 진입해 주세요.", - "name": "왼쪽의 램프로 진입해서 {way_name}로 가세요.", - "destination": "왼쪽의 램프로 진입해서 {destination}까지 가세요." - }, - "slight right": { - "default": "오른쪽의 램프로 진입해 주세요.", - "name": "오른쪽의 램프로 진입해서 {way_name}로 가세요.", - "destination": "오른쪽의 램프로 진입해서 {destination}까지 가세요." - } - }, - "rotary": { - "default": { - "default": { - "default": "로터리로 진입하세요.", - "name": "로터리로 진입해서 {way_name} 나가세요.", - "destination": "로터리로 진입해서 {destination}로 나가세요." - }, - "name": { - "default": "{rotary_name}로 진입하세요.", - "name": "{rotary_name}로 진입해서 {way_name}로 나가세요.", - "destination": "{rotary_name}로 진입해서 {destination}로 나가세요." - }, - "exit": { - "default": "로터리로 진입해서 {exit_number} 출구로 나가세요.", - "name": "로터리로 진입해서 {exit_number} 출구로 나가 {way_name}로 가세요.", - "destination": "로터리로 진입해서 {exit_number} 출구로 나가 {destination}로 가세요." - }, - "name_exit": { - "default": "{rotary_name}로 진입해서 {exit_number}번 출구로 나가세요.", - "name": "{rotary_name}로 진입해서 {exit_number}번 출구로 나가 {way_name}로 가세요.", - "destination": "{rotary_name}로 진입해서 {exit_number}번 출구로 나가 {destination}로 가세요." - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "로터리로 진입해서 {exit_number}로 나가세요.", - "name": "로터리로 진입해서 {exit_number}로 나가서 {way_name}로 가세요.", - "destination": "로터리로 진입해서 {exit_number}로 나가서 {destination}로 가세요." - }, - "default": { - "default": "로터리로 진입하세요.", - "name": "로터리로 진입해서 {way_name} 나가세요.", - "destination": "로터리로 진입해서 {destination}로 나가세요." - } - } - }, - "roundabout turn": { - "default": { - "default": "{modifier} 하세요.", - "name": "{modifier} 하시고 {way_name}로 가세요.", - "destination": "{modifier} 하시고 {destination}까지 가세요." - }, - "left": { - "default": "좌회전 하세요.", - "name": "좌회전 하시고 {way_name}로 가세요.", - "destination": "좌회전 하시고 {destination}까지 가세요." - }, - "right": { - "default": "우회전 하세요.", - "name": "우회전 하시고 {way_name}로 가세요.", - "destination": "우회전 하시고 {destination}까지 가세요." - }, - "straight": { - "default": "직진 하세요.", - "name": "직진하시고 {way_name}로 가세요.", - "destination": "직진하시고 {destination}까지 가세요." - } - }, - "exit roundabout": { - "default": { - "default": "로타리에서 진출하세요.", - "name": "로타리에서 진출해서 {way_name}로 가세요.", - "destination": "로타리에서 진출해서 {destination}까지 가세요." - } - }, - "exit rotary": { - "default": { - "default": "로타리에서 진출하세요.", - "name": "로타리에서 진출해서 {way_name}로 가세요.", - "destination": "로타리에서 진출해서 {destination}까지 가세요." - } - }, - "turn": { - "default": { - "default": "{modifier} 하세요.", - "name": "{modifier} 하시고 {way_name}로 가세요.", - "destination": "{modifier} 하시고 {destination}까지 가세요." - }, - "left": { - "default": "좌회전 하세요.", - "name": "좌회전 하시고 {way_name}로 가세요.", - "destination": "좌회전 하시고 {destination}까지 가세요." - }, - "right": { - "default": "우회전 하세요.", - "name": "우회전 하시고 {way_name}로 가세요.", - "destination": "우회전 하시고 {destination}까지 가세요." - }, - "straight": { - "default": "직진 하세요.", - "name": "직진하시고 {way_name}로 가세요.", - "destination": "직진하시고 {destination}까지 가세요." - } - }, - "use lane": { - "no_lanes": { - "default": "직진하세요." - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],35:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": false - }, - "v5": { - "constants": { - "ordinalize": { - "1": "ပထမ", - "2": "ဒုတိယ", - "3": "တတိယ", - "4": "စတုတၳ", - "5": "ပဥၥမ", - "6": "ဆဌမ", - "7": "သတၱမ", - "8": "အဌမ", - "9": "နဝမ", - "10": "ဒသမ" - }, - "direction": { - "north": "ေျမာက္အရပ္", - "northeast": "အေရွ႕ေျမာက္အရပ္", - "east": "အေရွ႕အရပ္", - "southeast": "အေရွ႕ေတာင္အရပ္", - "south": "ေတာင္အရပ္", - "southwest": "အေနာက္ေတာင္အရပ္", - "west": "အေနာက္အရပ္", - "northwest": "အေနာက္ေျမာက္အရပ္" - }, - "modifier": { - "left": "ဘယ္ဘက္", - "right": "ညာဘက္", - "sharp left": "ဘယ္ဘက္ ေထာင့္ခ်ိဳး", - "sharp right": "ညာဘက္ ေထာင္႔ခ်ိဳး", - "slight left": "ဘယ္ဘက္ အနည္းငယ္", - "slight right": "ညာဘက္ အနည္းငယ္", - "straight": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း", - "uturn": "ဂ-ေကြ႔" - }, - "lanes": { - "xo": "ညာဘက္သို႕ဆက္သြားပါ", - "ox": "ဘယ္ဘက္သို႕ဆက္သြားပါ", - "xox": "အလယ္တြင္ဆက္ေနပါ", - "oxo": "ဘယ္ သို႕မဟုတ္ ညာဘက္သို႕ ဆက္သြားပါ" - } - }, - "modes": { - "ferry": { - "default": "ဖယ္ရီ စီးသြားပါ", - "name": "{way_name}ကို ဖယ္ရီစီးသြားပါ", - "destination": "{destination}ဆီသို႕ ဖယ္ရီစီးသြားပါ" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}ျပီးေနာက္ {distance}အတြင္း {instruction_two}", - "two linked": "{instruction_one}ျပီးေနာက္ {instruction_two}", - "one in distance": "{distance}အတြင္း {instruction_one}", - "name and ref": "{name}( {ref})", - "exit with number": "{exit}မွထြက္ပါ" - }, - "arrive": { - "default": { - "default": "{nth}သင္ သြားလိုေသာ ခရီးပန္းတိုင္သို႕ေရာက္ရွိျပီ", - "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ေရာက္လိမ့္မည္", - "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", - "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", - "named": "သင္ သည္ {waypoint_name} မွာ ေရာက္ရွိျပီ" - }, - "left": { - "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", - "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္လိမ့္မည္", - "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", - "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", - "named": "သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" - }, - "right": { - "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ", - "upcoming": "သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္", - "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", - "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", - "named": "သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" - }, - "sharp left": { - "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", - "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", - "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", - "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", - "named": "သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" - }, - "sharp right": { - "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ", - "upcoming": "သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္", - "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", - "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", - "named": "သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" - }, - "slight right": { - "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ", - "upcoming": "သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္", - "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ", - "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", - "named": "သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" - }, - "slight left": { - "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", - "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ", - "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရွိျပီ", - "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", - "named": "သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ" - }, - "straight": { - "default": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕တည့္တည့္သြားကာရာက္ရွိျပီ", - "upcoming": "သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕တည့္တည့္သြားကာရာက္ရွိမည္", - "short": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရွိျပီ", - "short-upcoming": "သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္", - "named": "သင္ သည္ {waypoint_name}မွာတည့္တည့္သြားကာ ေရာက္ရွိျပီ" - } - }, - "continue": { - "default": { - "default": "{modifier}ကိုလွည့္ပါ", - "name": "{way_name}​​ေပၚတြင္ေနရန္ {modifier}ကိုလွည့္ပါ", - "destination": "{destination}ဆီသို႕ {modifier}ကို လွည္႕ပါ", - "exit": "{way_name}​​ေပၚသို႕ {modifier}ကိုလွည့္ပါ" - }, - "straight": { - "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ", - "name": "{way_name}​​ေပၚတြင္ေနရန္တည္တည့္ဆက္သြာပါ", - "destination": "{destination}ဆီသို႕ဆက္သြားပါ", - "distance": "{distance}ေလာက္ တည့္တည့္ ဆက္သြားပါ", - "namedistance": "{way_name}​​ေပၚတြင္{distance}ေလာက္ဆက္သြားပါ" - }, - "sharp left": { - "default": "ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ", - "name": "{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ", - "destination": "{destination}ဆီသို႕ ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ" - }, - "sharp right": { - "default": "ညာဘက္ ေထာင္႔ခ်ိဳးေကြ႕ပါ", - "name": "{way_name}​ေပၚတြင္ေနရန္ ညာဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ", - "destination": "{destination}ဆီသို႕ ညာဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ" - }, - "slight left": { - "default": "ဘယ္ဘက္ အနည္းငယ္ေကြ႕ပါ", - "name": "{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္အနည္းငယ္ေကြ႕ပါ", - "destination": "{destination}ဆီသို႕ ဘယ္ဘက္အနည္းငယ္ခ်ိဳးေကြ႕ပါ" - }, - "slight right": { - "default": "ညာဘက္ အနည္းငယ္ခ်ိဳးေကြ႕ပါ", - "name": "{way_name}​ေပၚတြင္ေနရန္ ညာဘက္အနည္းငယ္ေကြ႕ပါ", - "destination": "{destination}ဆီသို႕ ညာဘက္အနည္းငယ္ခ်ိဳးေကြ႕ပါ" - }, - "uturn": { - "default": "ဂ-ေကြ႔ ေကြ႔ပါ", - "name": "{way_name}လမ္းဘက္သို႕ ဂ-ေကြ႕ေကြ႕ျပီးဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" - } - }, - "depart": { - "default": { - "default": "{direction}သို႕ ဦးတည္ပါ", - "name": "{direction}ကို {way_name}အေပၚတြင္ ဦးတည္ပါ", - "namedistance": "{direction}ကို {way_name}အေပၚတြင္{distance}ေလာက္ ဦးတည္ဆက္သြားပါ" - } - }, - "end of road": { - "default": { - "default": "{modifier}သို႕လွည့္ပါ", - "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုလွည့္ပါ", - "destination": "{destination}ဆီသို႕ {modifier}ကို လွည္႕ပါ" - }, - "straight": { - "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕တည့္တည့္ဆက္သြားပါ", - "destination": "{destination}ဆီသို႕တည့္တည့္ဆက္သြားပါ" - }, - "uturn": { - "default": "လမ္းအဆံုးတြင္ ဂ-ေကြ႕ေကြ႕ပါ", - "name": "လမ္းအဆံုးတြင္ {way_name}​​ေပၚသို႕ဂ-ေကြ႕ေကြ႕ပါ", - "destination": "လမ္းအဆံုးတြင္{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" - } - }, - "fork": { - "default": { - "default": "လမ္းဆံုလမ္းခြတြင္ {modifier}ကိုဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ" - }, - "slight left": { - "default": "လမ္းဆံုလမ္းခြတြင္ဘယ္ဘက္ကိုဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ဘယ္ဘက္ကို ဆက္သြားပါ" - }, - "slight right": { - "default": "လမ္းဆံုလမ္းခြတြင္ညာဘက္ကိုဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕ညာဘက္ကိုဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ညာဘက္ကို ဆက္သြားပါ" - }, - "sharp left": { - "default": "လမ္းဆံုလမ္းခြတြင္ဘယ္ဘက္ေထာင့္ခ်ိဳးကိုသြားပါ", - "name": "{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ", - "destination": "{destination}ဆီသို႕ဘယ္ဘက္ေထာင့္ခ်ိဳး သြားပါ" - }, - "sharp right": { - "default": "လမ္းဆံုလမ္းခြတြင္ညာဘက္ေထာင့္ခ်ိဳးကိုသြားပါ", - "name": "{way_name}​ေပၚသို႕ ညာဘက္ေထာင့္ခ်ိဳးယူပါ", - "destination": "{destination}ဆီသို႕ညာဘက္ေထာင့္ခ်ိဳး သြားပါ" - }, - "uturn": { - "default": "ဂ-ေကြ႔ ေကြ႔ပါ", - "name": "{way_name}သို႕ဂ-ေကြ႕ေကြ႕ပါ", - "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" - } - }, - "merge": { - "default": { - "default": "{modifier}ကိုလာေရာက္ေပါင္းဆံုပါ", - "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုလာေရာက္ေပါင္းဆံုပါ", - "destination": "{destination}ဆီသို႕ {modifier}ကို လာေရာက္ေပါင္းဆံုပါ" - }, - "straight": { - "default": "လာေရာက္ေပါင္းဆံုပါ", - "name": "{way_name}​​ေပၚသို႕လာေရာက္ေပါင္းဆံုပါ", - "destination": "{destination}ဆီသို႕ လာေရာက္ေပါင္းဆံုပါ" - }, - "slight left": { - "default": "ဘယ္ဘက္သို႕လာေရာက္ေပါင္းဆံုပါ", - "name": "{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုလာေရာက္ေပါင္းဆံုပါ", - "destination": "{destination}ဆီသို႕ဘယ္ဘက္ကို လာေရာက္ေပါင္းဆံုပါ" - }, - "slight right": { - "default": "ညာဘက္သို႕လာေရာက္ေပါင္းဆံုပါ", - "name": "{way_name}​​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ", - "destination": "{destination}ဆီသို႕ညာဘက္ကို လာေရာက္ေပါင္းဆံုပါ" - }, - "sharp left": { - "default": "ဘယ္ဘက္သို႕လာေရာက္ေပါင္းဆံုပါ", - "name": "{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုလာေရာက္ေပါင္းဆံုပါ", - "destination": "{destination}ဆီသို႕ဘယ္ဘက္ကို လာေရာက္ေပါင္းဆံုပါ" - }, - "sharp right": { - "default": "ညာဘက္သို႕လာေရာက္ေပါင္းဆံုပါ", - "name": "{way_name}​​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ", - "destination": "{destination}ဆီသို႕ညာဘက္ကို လာေရာက္ေပါင္းဆံုပါ" - }, - "uturn": { - "default": "ဂ-ေကြ႔ ေကြ႕ပါ", - "name": "{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ ", - "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" - } - }, - "new name": { - "default": { - "default": "{modifier}ကိုဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ" - }, - "straight": { - "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕ဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ဆက္သြားပါ" - }, - "sharp left": { - "default": "ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ", - "name": "{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ", - "destination": "{destination}ဆီသို႕ဘယ္ဘက္ေထာင့္ခ်ိဳး သြားပါ" - }, - "sharp right": { - "default": "ညာဘက္ ေထာင္႔ခ်ိဳးယူပါ", - "name": "{way_name}​ေပၚသို႕ ညာဘက္ေထာင့္ခ်ိဳးယူပါ", - "destination": "{destination}ဆီသို႕ညာဘက္ေထာင့္ခ်ိဳး သြားပါ" - }, - "slight left": { - "default": "ဘယ္ဘက္ အနည္းငယ္ဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕ဘယ္ဘက္ အနည္းငယ္ဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ဘယ္ဘက္အနည္းငယ္ဆက္သြားပါ" - }, - "slight right": { - "default": "ညာဘက္ အနည္းငယ္ဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕ညာဘက္ အနည္းငယ္ဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ညာဘက္အနည္းငယ္ဆက္သြားပါ" - }, - "uturn": { - "default": "ဂ-ေကြ႔ ေကြ႔ပါ", - "name": "{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ", - "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" - } - }, - "notification": { - "default": { - "default": "{modifier}ကိုဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ", - "destination": "{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ" - }, - "uturn": { - "default": "ဂ-ေကြ႔ ေကြ႔ပါ", - "name": "{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ", - "destination": "{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ" - } - }, - "off ramp": { - "default": { - "default": "ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "exit": "{exit}ကို ယူပါ", - "exit_destination": "{destination}ဆီသို႕ {exit} ကိုယူပါ" - }, - "left": { - "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "exit": "ဘယ္ဘက္တြင္{exit}ကို ယူပါ", - "exit_destination": "{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ" - }, - "right": { - "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "exit": "ညာဘက္တြင္{exit}ကို ယူပါ", - "exit_destination": "{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ" - }, - "sharp left": { - "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "exit": "ဘယ္ဘက္တြင္{exit}ကို ယူပါ", - "exit_destination": "{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ" - }, - "sharp right": { - "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "exit": "ညာဘက္တြင္{exit}ကို ယူပါ", - "exit_destination": "{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ" - }, - "slight left": { - "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "exit": "ဘယ္ဘက္တြင္{exit}ကို ယူပါ", - "exit_destination": "{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ" - }, - "slight right": { - "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "exit": "ညာဘက္တြင္{exit}ကို ယူပါ", - "exit_destination": "{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ" - } - }, - "on ramp": { - "default": { - "default": "ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ခ်ဥ္းကပ္လမ္းကိုယူပါ" - }, - "left": { - "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" - }, - "right": { - "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" - }, - "sharp left": { - "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" - }, - "sharp right": { - "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" - }, - "slight left": { - "default": "ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" - }, - "slight right": { - "default": "ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "name": "{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ", - "destination": "{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ" - } - }, - "rotary": { - "default": { - "default": { - "default": "အဝိုင္းပတ္သို႕ဝင္ပါ", - "name": "{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ ", - "destination": "{destination}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ" - }, - "name": { - "default": "{rotary_name}သို႕ဝင္ပါ", - "name": "{rotary_name}အဝိုင္းပတ္ဝင္ျပီး{way_name}ေပၚသို႕ထြက္ပါ", - "destination": "{rotary_name}အဝိုင္းပတ္ဝင္ျပီး{destination}ဆီသို႕ထြက္ပါ" - }, - "exit": { - "default": "အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာျပန္ထြက္ပါ", - "name": "အဝိုင္းပတ္သို႕ဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ", - "destination": "အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ" - }, - "name_exit": { - "default": "{rotary_name}ကိုဝင္ျပီး {exit_number}ကိုယူကာထြက္ပါ", - "name": "{rotary_name}ကိုဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ", - "destination": "{rotary_name}ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "{exit_number}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ", - "name": "အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ", - "destination": "အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ" - }, - "default": { - "default": "အဝိုင္းပတ္ဝင္ပါ", - "name": "{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ", - "destination": "{destination}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ" - } - } - }, - "roundabout turn": { - "default": { - "default": "{modifier}ကိုလွည့္ပါ ", - "name": "{modifier}​ေပၚသို{way_name}ကိုဆက္သြားပါ ", - "destination": "{modifier}ဆီသို႕{destination}ကို ဆက္သြားပါ " - }, - "left": { - "default": "ဘယ္ဘက္သို႕ျပန္လွည္႔ပါ", - "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ ", - "destination": "{destination}ဆီသို႕ဘယ္ဘက္မွ ေကြ႔ပါ" - }, - "right": { - "default": "ညာဘက္သို႔ျပန္လွည္႔ပါ", - "name": "{way_name}​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ ", - "destination": "{destination}ညာဘက္သို႔ ေကြ႔ပါ" - }, - "straight": { - "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ", - "name": "{way_name}​​ေပၚသို႕တည့္တည့္ဆက္သြားပါ", - "destination": "{destination}ဆီသို႕တည့္တည့္ဆက္သြားပါ" - } - }, - "exit roundabout": { - "default": { - "default": "အဝိုင္းပတ္လမ္းမွထြက္ပါ", - "name": "{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ", - "destination": "ဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ{destination}" - } - }, - "exit rotary": { - "default": { - "default": "အဝိုင္းပတ္လမ္းမွထြက္ပါဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ", - "name": "{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ", - "destination": "ဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ{destination}" - } - }, - "turn": { - "default": { - "default": "{modifier}ကိုလွည့္ပါ ", - "name": "{modifier}​ေပၚသို{way_name}ကိုဆက္သြားပါ ", - "destination": "{modifier}ဆီသို႕{destination}ကို ဆက္သြားပါ " - }, - "left": { - "default": "ဘယ္ဘက္သို႕ျပန္လွည္႔ပါ", - "name": "{way_name}​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ ", - "destination": "{destination}ဘယ္ဘက္သို႔ ေကြ႔ပါ" - }, - "right": { - "default": "ညာဘက္သို႔ျပန္လွည္႔ပါ", - "name": "{way_name}​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ ", - "destination": "{destination}ညာဘက္သို႔ ေကြ႔ပါ" - }, - "straight": { - "default": "တည္႔တည္႔သြားပါ", - "name": "{way_name}", - "destination": "{destination}ဆီသို႕တည့္တည့္သြားပါ" - } - }, - "use lane": { - "no_lanes": { - "default": "ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],36:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1e", - "2": "2e", - "3": "3e", - "4": "4e", - "5": "5e", - "6": "6e", - "7": "7e", - "8": "8e", - "9": "9e", - "10": "10e" - }, - "direction": { - "north": "noord", - "northeast": "noordoost", - "east": "oost", - "southeast": "zuidoost", - "south": "zuid", - "southwest": "zuidwest", - "west": "west", - "northwest": "noordwest" - }, - "modifier": { - "left": "links", - "right": "rechts", - "sharp left": "scherpe bocht naar links", - "sharp right": "scherpe bocht naar rechts", - "slight left": "iets naar links", - "slight right": "iets naar rechts", - "straight": "rechtdoor", - "uturn": "omkeren" - }, - "lanes": { - "xo": "Rechts aanhouden", - "ox": "Links aanhouden", - "xox": "In het midden blijven", - "oxo": "Links of rechts blijven" - } - }, - "modes": { - "ferry": { - "default": "Neem de veerpont", - "name": "Neem de veerpont {way_name}", - "destination": "Neem de veerpont richting {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, dan na {distance}, {instruction_two}", - "two linked": "{instruction_one}, daarna {instruction_two}", - "one in distance": "Over {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "afslag {exit}" - }, - "arrive": { - "default": { - "default": "Je bent gearriveerd op de {nth} bestemming.", - "upcoming": "U arriveert op de {nth} bestemming", - "short": "U bent gearriveerd", - "short-upcoming": "U zult aankomen", - "named": "U bent gearriveerd bij {waypoint_name}" - }, - "left": { - "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich links.", - "upcoming": "Uw {nth} bestemming bevindt zich aan de linkerkant", - "short": "U bent gearriveerd", - "short-upcoming": "U zult aankomen", - "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant" - }, - "right": { - "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.", - "upcoming": "Uw {nth} bestemming bevindt zich aan de rechterkant", - "short": "U bent gearriveerd", - "short-upcoming": "U zult aankomen", - "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant" - }, - "sharp left": { - "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich links.", - "upcoming": "Uw {nth} bestemming bevindt zich aan de linkerkant", - "short": "U bent gearriveerd", - "short-upcoming": "U zult aankomen", - "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant" - }, - "sharp right": { - "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.", - "upcoming": "Uw {nth} bestemming bevindt zich aan de rechterkant", - "short": "U bent gearriveerd", - "short-upcoming": "U zult aankomen", - "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant" - }, - "slight right": { - "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.", - "upcoming": "Uw {nth} bestemming bevindt zich aan de rechterkant", - "short": "U bent gearriveerd", - "short-upcoming": "U zult aankomen", - "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant" - }, - "slight left": { - "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich links.", - "upcoming": "Uw {nth} bestemming bevindt zich aan de linkerkant", - "short": "U bent gearriveerd", - "short-upcoming": "U zult aankomen", - "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant" - }, - "straight": { - "default": "Je bent gearriveerd. De {nth} bestemming bevindt zich voor je.", - "upcoming": "Uw {nth} bestemming is recht voor u", - "short": "U bent gearriveerd", - "short-upcoming": "U zult aankomen", - "named": "U bent gearriveerd bij {waypoint_name}, de bestemming is recht voor u" - } - }, - "continue": { - "default": { - "default": "Ga {modifier}", - "name": "Sla {modifier} om op {way_name} te blijven", - "destination": "Ga {modifier} richting {destination}", - "exit": "Ga {modifier} naar {way_name}" - }, - "straight": { - "default": "Ga rechtdoor", - "name": "Blijf rechtdoor gaan op {way_name}", - "destination": "Ga rechtdoor richting {destination}", - "distance": "Ga rechtdoor voor {distance}", - "namedistance": "Ga verder op {way_name} voor {distance}" - }, - "sharp left": { - "default": "Linksaf", - "name": "Sla scherp links af om op {way_name} te blijven", - "destination": "Linksaf richting {destination}" - }, - "sharp right": { - "default": "Rechtsaf", - "name": "Sla scherp rechts af om op {way_name} te blijven", - "destination": "Rechtsaf richting {destination}" - }, - "slight left": { - "default": "Ga links", - "name": "Links afbuigen om op {way_name} te blijven", - "destination": "Rechts afbuigen om op {destination} te blijven" - }, - "slight right": { - "default": "Rechts afbuigen", - "name": "Rechts afbuigen om op {way_name} te blijven", - "destination": "Rechts afbuigen richting {destination}" - }, - "uturn": { - "default": "Keer om", - "name": "Draai om en ga verder op {way_name}", - "destination": "Keer om richting {destination}" - } - }, - "depart": { - "default": { - "default": "Vertrek in {direction}elijke richting", - "name": "Neem {way_name} in {direction}elijke richting", - "namedistance": "Ga richting {direction} op {way_name} voor {distance}" - } - }, - "end of road": { - "default": { - "default": "Ga {modifier}", - "name": "Ga {modifier} naar {way_name}", - "destination": "Ga {modifier} richting {destination}" - }, - "straight": { - "default": "Ga in de aangegeven richting", - "name": "Ga naar {way_name}", - "destination": "Ga richting {destination}" - }, - "uturn": { - "default": "Keer om", - "name": "Keer om naar {way_name}", - "destination": "Keer om richting {destination}" - } - }, - "fork": { - "default": { - "default": "Ga {modifier} op de splitsing", - "name": "Houd {modifier} aan, tot {way_name}", - "destination": "Houd {modifier}, in de richting van {destination}" - }, - "slight left": { - "default": "Links aanhouden op de splitsing", - "name": "Houd links aan, tot {way_name}", - "destination": "Houd links aan, richting {destination}" - }, - "slight right": { - "default": "Rechts aanhouden op de splitsing", - "name": "Houd rechts aan, tot {way_name}", - "destination": "Houd rechts aan, richting {destination}" - }, - "sharp left": { - "default": "Neem bij de splitsing, een scherpe bocht, naar links ", - "name": "Neem een scherpe bocht naar links, tot aan {way_name}", - "destination": "Neem een scherpe bocht naar links, richting {destination}" - }, - "sharp right": { - "default": "Neem op de splitsing, een scherpe bocht, naar rechts", - "name": "Neem een scherpe bocht naar rechts, tot aan {way_name}", - "destination": "Neem een scherpe bocht naar rechts, richting {destination}" - }, - "uturn": { - "default": "Keer om", - "name": "Keer om naar {way_name}", - "destination": "Keer om richting {destination}" - } - }, - "merge": { - "default": { - "default": "Bij de splitsing {modifier}", - "name": "Bij de splitsing {modifier} naar {way_name}", - "destination": "Bij de splitsing {modifier} richting {destination}" - }, - "straight": { - "default": "Samenvoegen", - "name": "Ga verder op {way_name}", - "destination": "Ga verder richting {destination}" - }, - "slight left": { - "default": "Bij de splitsing links aanhouden", - "name": "Bij de splitsing links aanhouden naar {way_name}", - "destination": "Bij de splitsing links aanhouden richting {destination}" - }, - "slight right": { - "default": "Bij de splitsing rechts aanhouden", - "name": "Bij de splitsing rechts aanhouden naar {way_name}", - "destination": "Bij de splitsing rechts aanhouden richting {destination}" - }, - "sharp left": { - "default": "Bij de splitsing linksaf", - "name": "Bij de splitsing linksaf naar {way_name}", - "destination": "Bij de splitsing linksaf richting {destination}" - }, - "sharp right": { - "default": "Bij de splitsing rechtsaf", - "name": "Bij de splitsing rechtsaf naar {way_name}", - "destination": "Bij de splitsing rechtsaf richting {destination}" - }, - "uturn": { - "default": "Keer om", - "name": "Keer om naar {way_name}", - "destination": "Keer om richting {destination}" - } - }, - "new name": { - "default": { - "default": "Ga {modifier}", - "name": "Ga {modifier} naar {way_name}", - "destination": "Ga {modifier} richting {destination}" - }, - "straight": { - "default": "Ga in de aangegeven richting", - "name": "Ga rechtdoor naar {way_name}", - "destination": "Ga rechtdoor richting {destination}" - }, - "sharp left": { - "default": "Neem een scherpe bocht, naar links", - "name": "Linksaf naar {way_name}", - "destination": "Linksaf richting {destination}" - }, - "sharp right": { - "default": "Neem een scherpe bocht, naar rechts", - "name": "Rechtsaf naar {way_name}", - "destination": "Rechtsaf richting {destination}" - }, - "slight left": { - "default": "Links aanhouden", - "name": "Links aanhouden naar {way_name}", - "destination": "Links aanhouden richting {destination}" - }, - "slight right": { - "default": "Rechts aanhouden", - "name": "Rechts aanhouden naar {way_name}", - "destination": "Rechts aanhouden richting {destination}" - }, - "uturn": { - "default": "Keer om", - "name": "Keer om naar {way_name}", - "destination": "Keer om richting {destination}" - } - }, - "notification": { - "default": { - "default": "Ga {modifier}", - "name": "Ga {modifier} naar {way_name}", - "destination": "Ga {modifier} richting {destination}" - }, - "uturn": { - "default": "Keer om", - "name": "Keer om naar {way_name}", - "destination": "Keer om richting {destination}" - } - }, - "off ramp": { - "default": { - "default": "Neem de afrit", - "name": "Neem de afrit naar {way_name}", - "destination": "Neem de afrit richting {destination}", - "exit": "Neem afslag {exit}", - "exit_destination": "Neem afslag {exit} richting {destination}" - }, - "left": { - "default": "Neem de afrit links", - "name": "Neem de afrit links naar {way_name}", - "destination": "Neem de afrit links richting {destination}", - "exit": "Neem afslag {exit} aan de linkerkant", - "exit_destination": "Neem afslag {exit} aan de linkerkant richting {destination}" - }, - "right": { - "default": "Neem de afrit rechts", - "name": "Neem de afrit rechts naar {way_name}", - "destination": "Neem de afrit rechts richting {destination}", - "exit": "Neem afslag {exit} aan de rechterkant", - "exit_destination": "Neem afslag {exit} aan de rechterkant richting {destination}" - }, - "sharp left": { - "default": "Neem de afrit links", - "name": "Neem de afrit links naar {way_name}", - "destination": "Neem de afrit links richting {destination}", - "exit": "Neem afslag {exit} aan de linkerkant", - "exit_destination": "Neem afslag {exit} aan de linkerkant richting {destination}" - }, - "sharp right": { - "default": "Neem de afrit rechts", - "name": "Neem de afrit rechts naar {way_name}", - "destination": "Neem de afrit rechts richting {destination}", - "exit": "Neem afslag {exit} aan de rechterkant", - "exit_destination": "Neem afslag {exit} aan de rechterkant richting {destination}" - }, - "slight left": { - "default": "Neem de afrit links", - "name": "Neem de afrit links naar {way_name}", - "destination": "Neem de afrit links richting {destination}", - "exit": "Neem afslag {exit} aan de linkerkant", - "exit_destination": "Neem afslag {exit} aan de linkerkant richting {destination}" - }, - "slight right": { - "default": "Neem de afrit rechts", - "name": "Neem de afrit rechts naar {way_name}", - "destination": "Neem de afrit rechts richting {destination}", - "exit": "Neem afslag {exit} aan de rechterkant", - "exit_destination": "Neem afslag {exit} aan de rechterkant richting {destination}" - } - }, - "on ramp": { - "default": { - "default": "Neem de oprit", - "name": "Neem de oprit naar {way_name}", - "destination": "Neem de oprit richting {destination}" - }, - "left": { - "default": "Neem de oprit links", - "name": "Neem de oprit links naar {way_name}", - "destination": "Neem de oprit links richting {destination}" - }, - "right": { - "default": "Neem de oprit rechts", - "name": "Neem de oprit rechts naar {way_name}", - "destination": "Neem de oprit rechts richting {destination}" - }, - "sharp left": { - "default": "Neem de oprit links", - "name": "Neem de oprit links naar {way_name}", - "destination": "Neem de oprit links richting {destination}" - }, - "sharp right": { - "default": "Neem de oprit rechts", - "name": "Neem de oprit rechts naar {way_name}", - "destination": "Neem de oprit rechts richting {destination}" - }, - "slight left": { - "default": "Neem de oprit links", - "name": "Neem de oprit links naar {way_name}", - "destination": "Neem de oprit links richting {destination}" - }, - "slight right": { - "default": "Neem de oprit rechts", - "name": "Neem de oprit rechts naar {way_name}", - "destination": "Neem de oprit rechts richting {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Betreedt de rotonde", - "name": "Betreedt rotonde en sla af op {way_name}", - "destination": "Betreedt rotonde en sla af richting {destination}" - }, - "name": { - "default": "Ga het knooppunt {rotary_name} op", - "name": "Verlaat het knooppunt {rotary_name} naar {way_name}", - "destination": "Verlaat het knooppunt {rotary_name} richting {destination}" - }, - "exit": { - "default": "Betreedt rotonde en neem afslag {exit_number}", - "name": "Betreedt rotonde en neem afslag {exit_number} naar {way_name}", - "destination": "Betreedt rotonde en neem afslag {exit_number} richting {destination}" - }, - "name_exit": { - "default": "Ga het knooppunt {rotary_name} op en neem afslag {exit_number}", - "name": "Ga het knooppunt {rotary_name} op en neem afslag {exit_number} naar {way_name}", - "destination": "Ga het knooppunt {rotary_name} op en neem afslag {exit_number} richting {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Betreedt rotonde en neem afslag {exit_number}", - "name": "Betreedt rotonde en neem afslag {exit_number} naar {way_name}", - "destination": "Betreedt rotonde en neem afslag {exit_number} richting {destination}" - }, - "default": { - "default": "Betreedt de rotonde", - "name": "Betreedt rotonde en sla af op {way_name}", - "destination": "Betreedt rotonde en sla af richting {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Ga {modifier}", - "name": "Ga {modifier} naar {way_name}", - "destination": "Ga {modifier} richting {destination}" - }, - "left": { - "default": "Ga linksaf", - "name": "Ga linksaf naar {way_name}", - "destination": "Ga linksaf richting {destination}" - }, - "right": { - "default": "Ga rechtsaf", - "name": "Ga rechtsaf naar {way_name}", - "destination": "Ga rechtsaf richting {destination}" - }, - "straight": { - "default": "Ga in de aangegeven richting", - "name": "Ga naar {way_name}", - "destination": "Ga richting {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Verlaat de rotonde", - "name": "Verlaat de rotonde en ga verder op {way_name}", - "destination": "Verlaat de rotonde richting {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Verlaat de rotonde", - "name": "Verlaat de rotonde en ga verder op {way_name}", - "destination": "Verlaat de rotonde richting {destination}" - } - }, - "turn": { - "default": { - "default": "Ga {modifier}", - "name": "Ga {modifier} naar {way_name}", - "destination": "Ga {modifier} richting {destination}" - }, - "left": { - "default": "Ga linksaf", - "name": "Ga linksaf naar {way_name}", - "destination": "Ga linksaf richting {destination}" - }, - "right": { - "default": "Ga rechtsaf", - "name": "Ga rechtsaf naar {way_name}", - "destination": "Ga rechtsaf richting {destination}" - }, - "straight": { - "default": "Ga rechtdoor", - "name": "Ga rechtdoor naar {way_name}", - "destination": "Ga rechtdoor richting {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Rechtdoor" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],37:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1.", - "2": "2.", - "3": "3.", - "4": "4.", - "5": "5.", - "6": "6.", - "7": "7.", - "8": "8.", - "9": "9.", - "10": "10." - }, - "direction": { - "north": "nord", - "northeast": "nordøst", - "east": "øst", - "southeast": "sørøst", - "south": "sør", - "southwest": "sørvest", - "west": "vest", - "northwest": "nordvest" - }, - "modifier": { - "left": "venstre", - "right": "høyre", - "sharp left": "skarp venstre", - "sharp right": "skarp høyre", - "slight left": "litt til venstre", - "slight right": "litt til høyre", - "straight": "rett frem", - "uturn": "U-sving" - }, - "lanes": { - "xo": "Hold til høyre", - "ox": "Hold til venstre", - "xox": "Hold deg i midten", - "oxo": "Hold til venstre eller høyre" - } - }, - "modes": { - "ferry": { - "default": "Ta ferja", - "name": "Ta ferja {way_name}", - "destination": "Ta ferja til {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, deretter {instruction_two} om {distance}", - "two linked": "{instruction_one}, deretter {instruction_two}", - "one in distance": "Om {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "avkjørsel {exit}" - }, - "arrive": { - "default": { - "default": "Du har ankommet din {nth} destinasjon", - "upcoming": "Du vil ankomme din {nth} destinasjon", - "short": "Du har ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du har ankommet {waypoint_name}" - }, - "left": { - "default": "Du har ankommet din {nth} destinasjon, på din venstre side", - "upcoming": "Du vil ankomme din {nth} destinasjon, på din venstre side", - "short": "Du har ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du har ankommet {waypoint_name}, på din venstre side" - }, - "right": { - "default": "Du har ankommet din {nth} destinasjon, på din høyre side", - "upcoming": "Du vil ankomme din {nth} destinasjon, på din høyre side", - "short": "Du har ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du har ankommet {waypoint_name}, på din høyre side" - }, - "sharp left": { - "default": "Du har ankommet din {nth} destinasjon, på din venstre side", - "upcoming": "Du vil ankomme din {nth} destinasjon, på din venstre side", - "short": "Du har ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du har ankommet {waypoint_name}, på din venstre side" - }, - "sharp right": { - "default": "Du har ankommet din {nth} destinasjon, på din høyre side", - "upcoming": "Du vil ankomme din {nth} destinasjon, på din høyre side", - "short": "Du har ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du har ankommet {waypoint_name}, på din høyre side" - }, - "slight right": { - "default": "Du har ankommet din {nth} destinasjon, på din høyre side", - "upcoming": "Du vil ankomme din {nth} destinasjon, på din høyre side", - "short": "Du har ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du har ankommet {waypoint_name}, på din høyre side" - }, - "slight left": { - "default": "Du har ankommet din {nth} destinasjon, på din venstre side", - "upcoming": "Du vil ankomme din {nth} destinasjon, på din venstre side", - "short": "Du har ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du har ankommet {waypoint_name}, på din venstre side" - }, - "straight": { - "default": "Du har ankommet din {nth} destinasjon, rett forut", - "upcoming": "Du vil ankomme din {nth} destinasjon, rett forut", - "short": "Du har ankommet", - "short-upcoming": "Du vil ankomme", - "named": "Du har ankommet {waypoint_name}, rett forut" - } - }, - "continue": { - "default": { - "default": "Ta til {modifier}", - "name": "Ta til {modifier} for å bli værende på {way_name}", - "destination": "Ta til {modifier} mot {destination}", - "exit": "Ta til {modifier} inn på {way_name}" - }, - "straight": { - "default": "Fortsett rett frem", - "name": "Fortsett rett frem for å bli værende på {way_name}", - "destination": "Fortsett mot {destination}", - "distance": "Fortsett rett frem, {distance} ", - "namedistance": "Fortsett på {way_name}, {distance}" - }, - "sharp left": { - "default": "Sving skarpt til venstre", - "name": "Sving skarpt til venstre for å bli værende på {way_name}", - "destination": "Sving skarpt til venstre mot {destination}" - }, - "sharp right": { - "default": "Sving skarpt til høyre", - "name": "Sving skarpt til høyre for å bli værende på {way_name}", - "destination": "Sving skarpt mot {destination}" - }, - "slight left": { - "default": "Sving svakt til venstre", - "name": "Sving svakt til venstre for å bli værende på {way_name}", - "destination": "Sving svakt til venstre mot {destination}" - }, - "slight right": { - "default": "Sving svakt til høyre", - "name": "Sving svakt til høyre for å bli værende på {way_name}", - "destination": "Sving svakt til høyre mot {destination}" - }, - "uturn": { - "default": "Ta en U-sving", - "name": "Ta en U-sving og fortsett på {way_name}", - "destination": "Ta en U-sving mot {destination}" - } - }, - "depart": { - "default": { - "default": "Kjør i retning {direction}", - "name": "Kjør i retning {direction} på {way_name}", - "namedistance": "Kjør i retning {direction} på {way_name}, {distance}" - } - }, - "end of road": { - "default": { - "default": "Sving {modifier}", - "name": "Ta til {modifier} inn på {way_name}", - "destination": "Sving {modifier} mot {destination}" - }, - "straight": { - "default": "Fortsett rett frem", - "name": "Fortsett rett frem til {way_name}", - "destination": "Fortsett rett frem mot {destination}" - }, - "uturn": { - "default": "Ta en U-sving i enden av veien", - "name": "Ta en U-sving til {way_name} i enden av veien", - "destination": "Ta en U-sving mot {destination} i enden av veien" - } - }, - "fork": { - "default": { - "default": "Hold til {modifier} i veikrysset", - "name": "Hold til {modifier} inn på {way_name}", - "destination": "Hold til {modifier} mot {destination}" - }, - "slight left": { - "default": "Hold til venstre i veikrysset", - "name": "Hold til venstre inn på {way_name}", - "destination": "Hold til venstre mot {destination}" - }, - "slight right": { - "default": "Hold til høyre i veikrysset", - "name": "Hold til høyre inn på {way_name}", - "destination": "Hold til høyre mot {destination}" - }, - "sharp left": { - "default": "Sving skarpt til venstre i veikrysset", - "name": "Sving skarpt til venstre inn på {way_name}", - "destination": "Sving skarpt til venstre mot {destination}" - }, - "sharp right": { - "default": "Sving skarpt til høyre i veikrysset", - "name": "Sving skarpt til høyre inn på {way_name}", - "destination": "Svings skarpt til høyre mot {destination}" - }, - "uturn": { - "default": "Ta en U-sving", - "name": "Ta en U-sving til {way_name}", - "destination": "Ta en U-sving mot {destination}" - } - }, - "merge": { - "default": { - "default": "Hold {modifier} kjørefelt", - "name": "Hold {modifier} kjørefelt inn på {way_name}", - "destination": "Hold {modifier} kjørefelt mot {destination}" - }, - "straight": { - "default": "Hold kjørefelt", - "name": "Hold kjørefelt inn på {way_name}", - "destination": "Hold kjørefelt mot {destination}" - }, - "slight left": { - "default": "Hold venstre kjørefelt", - "name": "Hold venstre kjørefelt inn på {way_name}", - "destination": "Hold venstre kjørefelt mot {destination}" - }, - "slight right": { - "default": "Hold høyre kjørefelt", - "name": "Hold høyre kjørefelt inn på {way_name}", - "destination": "Hold høyre kjørefelt mot {destination}" - }, - "sharp left": { - "default": "Hold venstre kjørefelt", - "name": "Hold venstre kjørefelt inn på {way_name}", - "destination": "Hold venstre kjørefelt mot {destination}" - }, - "sharp right": { - "default": "Hold høyre kjørefelt", - "name": "Hold høyre kjørefelt inn på {way_name}", - "destination": "Hold høyre kjørefelt mot {destination}" - }, - "uturn": { - "default": "Ta en U-sving", - "name": "Ta en U-sving til {way_name}", - "destination": "Ta en U-sving mot {destination}" - } - }, - "new name": { - "default": { - "default": "Fortsett {modifier}", - "name": "Fortsett {modifier} til {way_name}", - "destination": "Fortsett {modifier} mot {destination}" - }, - "straight": { - "default": "Fortsett rett frem", - "name": "Fortsett inn på {way_name}", - "destination": "Fortsett mot {destination}" - }, - "sharp left": { - "default": "Sving skarpt til venstre", - "name": "Sving skarpt til venstre inn på {way_name}", - "destination": "Sving skarpt til venstre mot {destination}" - }, - "sharp right": { - "default": "Sving skarpt til høyre", - "name": "Sving skarpt til høyre inn på {way_name}", - "destination": "Svings skarpt til høyre mot {destination}" - }, - "slight left": { - "default": "Fortsett litt mot venstre", - "name": "Fortsett litt mot venstre til {way_name}", - "destination": "Fortsett litt mot venstre mot {destination}" - }, - "slight right": { - "default": "Fortsett litt mot høyre", - "name": "Fortsett litt mot høyre til {way_name}", - "destination": "Fortsett litt mot høyre mot {destination}" - }, - "uturn": { - "default": "Ta en U-sving", - "name": "Ta en U-sving til {way_name}", - "destination": "Ta en U-sving mot {destination}" - } - }, - "notification": { - "default": { - "default": "Fortsett {modifier}", - "name": "Fortsett {modifier} til {way_name}", - "destination": "Fortsett {modifier} mot {destination}" - }, - "uturn": { - "default": "Ta en U-sving", - "name": "Ta en U-sving til {way_name}", - "destination": "Ta en U-sving mot {destination}" - } - }, - "off ramp": { - "default": { - "default": "Ta avkjørselen", - "name": "Ta avkjørselen inn på {way_name}", - "destination": "Ta avkjørselen mot {destination}", - "exit": "Ta avkjørsel {exit}", - "exit_destination": "Ta avkjørsel {exit} mot {destination}" - }, - "left": { - "default": "Ta avkjørselen på venstre side", - "name": "Ta avkjørselen på venstre side inn på {way_name}", - "destination": "Ta avkjørselen på venstre side mot {destination}", - "exit": "Ta avkjørsel {exit} på venstre side", - "exit_destination": "Ta avkjørsel {exit} på venstre side mot {destination}" - }, - "right": { - "default": "Ta avkjørselen på høyre side", - "name": "Ta avkjørselen på høyre side inn på {way_name}", - "destination": "Ta avkjørselen på høyre side mot {destination}", - "exit": "Ta avkjørsel {exit} på høyre side", - "exit_destination": "Ta avkjørsel {exit} på høyre side mot {destination}" - }, - "sharp left": { - "default": "Ta avkjørselen på venstre side", - "name": "Ta avkjørselen på venstre side inn på {way_name}", - "destination": "Ta avkjørselen på venstre side mot {destination}", - "exit": "Ta avkjørsel {exit} på venstre side", - "exit_destination": "Ta avkjørsel {exit} på venstre side mot {destination}" - }, - "sharp right": { - "default": "Ta avkjørselen på høyre side", - "name": "Ta avkjørselen på høyre side inn på {way_name}", - "destination": "Ta avkjørselen på høyre side mot {destination}", - "exit": "Ta avkjørsel {exit} på høyre side", - "exit_destination": "Ta avkjørsel {exit} på høyre side mot {destination}" - }, - "slight left": { - "default": "Ta avkjørselen på venstre side", - "name": "Ta avkjørselen på venstre side inn på {way_name}", - "destination": "Ta avkjørselen på venstre side mot {destination}", - "exit": "Ta avkjørsel {exit} på venstre side", - "exit_destination": "Ta avkjørsel {exit} på venstre side mot {destination}" - }, - "slight right": { - "default": "Ta avkjørselen på høyre side", - "name": "Ta avkjørselen på høyre side inn på {way_name}", - "destination": "Ta avkjørselen på høyre side mot {destination}", - "exit": "Ta avkjørsel {exit} på høyre side", - "exit_destination": "Ta avkjørsel {exit} på høyre side mot {destination}" - } - }, - "on ramp": { - "default": { - "default": "Ta avkjørselen", - "name": "Ta avkjørselen inn på {way_name}", - "destination": "Ta avkjørselen mot {destination}" - }, - "left": { - "default": "Ta avkjørselen på venstre side", - "name": "Ta avkjørselen på venstre side inn på {way_name}", - "destination": "Ta avkjørselen på venstre side mot {destination}" - }, - "right": { - "default": "Ta avkjørselen på høyre side", - "name": "Ta avkjørselen på høyre side inn på {way_name}", - "destination": "Ta avkjørselen på høyre side mot {destination}" - }, - "sharp left": { - "default": "Ta avkjørselen på venstre side", - "name": "Ta avkjørselen på venstre side inn på {way_name}", - "destination": "Ta avkjørselen på venstre side mot {destination}" - }, - "sharp right": { - "default": "Ta avkjørselen på høyre side", - "name": "Ta avkjørselen på høyre side inn på {way_name}", - "destination": "Ta avkjørselen på høyre side mot {destination}" - }, - "slight left": { - "default": "Ta avkjørselen på venstre side", - "name": "Ta avkjørselen på venstre side inn på {way_name}", - "destination": "Ta avkjørselen på venstre side mot {destination}" - }, - "slight right": { - "default": "Ta avkjørselen på høyre side", - "name": "Ta avkjørselen på høyre side inn på {way_name}", - "destination": "Ta avkjørselen på høyre side mot {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Kjør inn i rundkjøringen", - "name": "Kjør inn i rundkjøringen og deretter ut på {way_name}", - "destination": "Kjør inn i rundkjøringen og deretter ut mot {destination}" - }, - "name": { - "default": "Kjør inn i {rotary_name}", - "name": "Kjør inn i {rotary_name} og deretter ut på {way_name}", - "destination": "Kjør inn i {rotary_name} og deretter ut mot {destination}" - }, - "exit": { - "default": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel", - "name": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut på {way_name}", - "destination": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut mot {destination} " - }, - "name_exit": { - "default": "Kjør inn i {rotary_name} og ta {exit_number} avkjørsel", - "name": "Kjør inn i {rotary_name} og ta {exit_number} avkjørsel inn på {way_name}", - "destination": "Kjør inn i {rotary_name} og ta {exit_number} avkjørsel mot {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel", - "name": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel inn på {way_name}", - "destination": "Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut mot {destination} " - }, - "default": { - "default": "Kjør inn i rundkjøringen", - "name": "Kjør inn i rundkjøringen og deretter ut på {way_name}", - "destination": "Kjør inn i rundkjøringen og deretter ut mot {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Ta en {modifier}", - "name": "Ta en {modifier} inn på {way_name}", - "destination": "Ta en {modifier} mot {destination}" - }, - "left": { - "default": "Sving til venstre", - "name": "Sving til venstre inn på {way_name}", - "destination": "Sving til venstre mot {destination}" - }, - "right": { - "default": "Sving til høyre", - "name": "Sving til høyre inn på {way_name}", - "destination": "Sving til høyre mot {destination}" - }, - "straight": { - "default": "Fortsett rett frem", - "name": "Fortsett rett frem til {way_name}", - "destination": "Fortsett rett frem mot {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Kjør ut av rundkjøringen", - "name": "Kjør ut av rundkjøringen og inn på {way_name}", - "destination": "Kjør ut av rundkjøringen mot {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Kjør ut av rundkjøringen", - "name": "Kjør ut av rundkjøringen og inn på {way_name}", - "destination": "Kjør ut av rundkjøringen mot {destination}" - } - }, - "turn": { - "default": { - "default": "Ta en {modifier}", - "name": "Ta en {modifier} inn på {way_name}", - "destination": "Ta en {modifier} mot {destination}" - }, - "left": { - "default": "Sving til venstre", - "name": "Sving til venstre inn på {way_name}", - "destination": "Sving til venstre mot {destination}" - }, - "right": { - "default": "Sving til høyre", - "name": "Sving til høyre inn på {way_name}", - "destination": "Sving til høyre mot {destination}" - }, - "straight": { - "default": "Kjør rett frem", - "name": "Kjør rett frem og inn på {way_name}", - "destination": "Kjør rett frem mot {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Fortsett rett frem" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],38:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1.", - "2": "2.", - "3": "3.", - "4": "4.", - "5": "5.", - "6": "6.", - "7": "7.", - "8": "8.", - "9": "9.", - "10": "10." - }, - "direction": { - "north": "północ", - "northeast": "północny wschód", - "east": "wschód", - "southeast": "południowy wschód", - "south": "południe", - "southwest": "południowy zachód", - "west": "zachód", - "northwest": "północny zachód" - }, - "modifier": { - "left": "lewo", - "right": "prawo", - "sharp left": "ostro w lewo", - "sharp right": "ostro w prawo", - "slight left": "łagodnie w lewo", - "slight right": "łagodnie w prawo", - "straight": "prosto", - "uturn": "zawróć" - }, - "lanes": { - "xo": "Trzymaj się prawej strony", - "ox": "Trzymaj się lewej strony", - "xox": "Trzymaj się środka", - "oxo": "Trzymaj się lewej lub prawej strony" - } - }, - "modes": { - "ferry": { - "default": "Weź prom", - "name": "Weź prom {way_name}", - "destination": "Weź prom w kierunku {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, następnie za {distance} {instruction_two}", - "two linked": "{instruction_one}, następnie {instruction_two}", - "one in distance": "Za {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "exit {exit}" - }, - "arrive": { - "default": { - "default": "Dojechano do miejsca docelowego {nth}", - "upcoming": "Dojechano do miejsca docelowego {nth}", - "short": "Dojechano do miejsca docelowego {nth}", - "short-upcoming": "Dojechano do miejsca docelowego {nth}", - "named": "Dojechano do {waypoint_name}" - }, - "left": { - "default": "Dojechano do miejsca docelowego {nth}, po lewej stronie", - "upcoming": "Dojechano do miejsca docelowego {nth}, po lewej stronie", - "short": "Dojechano do miejsca docelowego {nth}", - "short-upcoming": "Dojechano do miejsca docelowego {nth}", - "named": "Dojechano do {waypoint_name}, po lewej stronie" - }, - "right": { - "default": "Dojechano do miejsca docelowego {nth}, po prawej stronie", - "upcoming": "Dojechano do miejsca docelowego {nth}, po prawej stronie", - "short": "Dojechano do miejsca docelowego {nth}", - "short-upcoming": "Dojechano do miejsca docelowego {nth}", - "named": "Dojechano do {waypoint_name}, po prawej stronie" - }, - "sharp left": { - "default": "Dojechano do miejsca docelowego {nth}, po lewej stronie", - "upcoming": "Dojechano do miejsca docelowego {nth}, po lewej stronie", - "short": "Dojechano do miejsca docelowego {nth}", - "short-upcoming": "Dojechano do miejsca docelowego {nth}", - "named": "Dojechano do {waypoint_name}, po lewej stronie" - }, - "sharp right": { - "default": "Dojechano do miejsca docelowego {nth}, po prawej stronie", - "upcoming": "Dojechano do miejsca docelowego {nth}, po prawej stronie", - "short": "Dojechano do miejsca docelowego {nth}", - "short-upcoming": "Dojechano do miejsca docelowego {nth}", - "named": "Dojechano do {waypoint_name}, po prawej stronie" - }, - "slight right": { - "default": "Dojechano do miejsca docelowego {nth}, po prawej stronie", - "upcoming": "Dojechano do miejsca docelowego {nth}, po prawej stronie", - "short": "Dojechano do miejsca docelowego {nth}", - "short-upcoming": "Dojechano do miejsca docelowego {nth}", - "named": "Dojechano do {waypoint_name}, po prawej stronie" - }, - "slight left": { - "default": "Dojechano do miejsca docelowego {nth}, po lewej stronie", - "upcoming": "Dojechano do miejsca docelowego {nth}, po lewej stronie", - "short": "Dojechano do miejsca docelowego {nth}", - "short-upcoming": "Dojechano do miejsca docelowego {nth}", - "named": "Dojechano do {waypoint_name}, po lewej stronie" - }, - "straight": { - "default": "Dojechano do miejsca docelowego {nth} , prosto", - "upcoming": "Dojechano do miejsca docelowego {nth} , prosto", - "short": "Dojechano do miejsca docelowego {nth}", - "short-upcoming": "Dojechano do miejsca docelowego {nth}", - "named": "Dojechano do {waypoint_name}, prosto" - } - }, - "continue": { - "default": { - "default": "Skręć {modifier}", - "name": "Skręć w {modifier}, aby pozostać na {way_name}", - "destination": "Skręć {modifier} w kierunku {destination}", - "exit": "Skręć {modifier} na {way_name}" - }, - "straight": { - "default": "Kontynuuj prosto", - "name": "Jedź dalej prosto, aby pozostać na {way_name}", - "destination": "Kontynuuj w kierunku {destination}", - "distance": "Jedź dalej prosto przez {distance}", - "namedistance": "Jedź dalej {way_name} przez {distance}" - }, - "sharp left": { - "default": "Skręć ostro w lewo", - "name": "Skręć w lewo w ostry zakręt, aby pozostać na {way_name}", - "destination": "Skręć ostro w lewo w kierunku {destination}" - }, - "sharp right": { - "default": "Skręć ostro w prawo", - "name": "Skręć w prawo w ostry zakręt, aby pozostać na {way_name}", - "destination": "Skręć ostro w prawo w kierunku {destination}" - }, - "slight left": { - "default": "Skręć w lewo w łagodny zakręt", - "name": "Skręć w lewo w łagodny zakręt, aby pozostać na {way_name}", - "destination": "Skręć w lewo w łagodny zakręt na {destination}" - }, - "slight right": { - "default": "Skręć w prawo w łagodny zakręt", - "name": "Skręć w prawo w łagodny zakręt, aby pozostać na {way_name}", - "destination": "Skręć w prawo w łagodny zakręt na {destination}" - }, - "uturn": { - "default": "Zawróć", - "name": "Zawróć i jedź dalej {way_name}", - "destination": "Zawróć w kierunku {destination}" - } - }, - "depart": { - "default": { - "default": "Kieruj się {direction}", - "name": "Kieruj się {direction} na {way_name}", - "namedistance": "Head {direction} on {way_name} for {distance}" - } - }, - "end of road": { - "default": { - "default": "Skręć {modifier}", - "name": "Skręć {modifier} na {way_name}", - "destination": "Skręć {modifier} w kierunku {destination}" - }, - "straight": { - "default": "Kontynuuj prosto", - "name": "Kontynuuj prosto na {way_name}", - "destination": "Kontynuuj prosto w kierunku {destination}" - }, - "uturn": { - "default": "Zawróć na końcu ulicy", - "name": "Zawróć na końcu ulicy na {way_name}", - "destination": "Zawróć na końcu ulicy w kierunku {destination}" - } - }, - "fork": { - "default": { - "default": "Na rozwidleniu trzymaj się {modifier}", - "name": "Na rozwidleniu trzymaj się {modifier} na {way_name}", - "destination": "Na rozwidleniu trzymaj się {modifier} w kierunku {destination}" - }, - "slight left": { - "default": "Na rozwidleniu trzymaj się lewej strony", - "name": "Na rozwidleniu trzymaj się lewej strony w {way_name}", - "destination": "Na rozwidleniu trzymaj się lewej strony w kierunku {destination}" - }, - "slight right": { - "default": "Na rozwidleniu trzymaj się prawej strony", - "name": "Na rozwidleniu trzymaj się prawej strony na {way_name}", - "destination": "Na rozwidleniu trzymaj się prawej strony w kierunku {destination}" - }, - "sharp left": { - "default": "Na rozwidleniu skręć ostro w lewo", - "name": "Skręć ostro w lewo w {way_name}", - "destination": "Skręć ostro w lewo w kierunku {destination}" - }, - "sharp right": { - "default": "Na rozwidleniu skręć ostro w prawo", - "name": "Skręć ostro w prawo na {way_name}", - "destination": "Skręć ostro w prawo w kierunku {destination}" - }, - "uturn": { - "default": "Zawróć", - "name": "Zawróć na {way_name}", - "destination": "Zawróć w kierunku {destination}" - } - }, - "merge": { - "default": { - "default": "Włącz się {modifier}", - "name": "Włącz się {modifier} na {way_name}", - "destination": "Włącz się {modifier} w kierunku {destination}" - }, - "straight": { - "default": "Włącz się prosto", - "name": "Włącz się prosto na {way_name}", - "destination": "Włącz się prosto w kierunku {destination}" - }, - "slight left": { - "default": "Włącz się z lewej strony", - "name": "Włącz się z lewej strony na {way_name}", - "destination": "Włącz się z lewej strony w kierunku {destination}" - }, - "slight right": { - "default": "Włącz się z prawej strony", - "name": "Włącz się z prawej strony na {way_name}", - "destination": "Włącz się z prawej strony w kierunku {destination}" - }, - "sharp left": { - "default": "Włącz się z lewej strony", - "name": "Włącz się z lewej strony na {way_name}", - "destination": "Włącz się z lewej strony w kierunku {destination}" - }, - "sharp right": { - "default": "Włącz się z prawej strony", - "name": "Włącz się z prawej strony na {way_name}", - "destination": "Włącz się z prawej strony w kierunku {destination}" - }, - "uturn": { - "default": "Zawróć", - "name": "Zawróć na {way_name}", - "destination": "Zawróć w kierunku {destination}" - } - }, - "new name": { - "default": { - "default": "Kontynuuj {modifier}", - "name": "Kontynuuj {modifier} na {way_name}", - "destination": "Kontynuuj {modifier} w kierunku {destination}" - }, - "straight": { - "default": "Kontynuuj prosto", - "name": "Kontynuuj na {way_name}", - "destination": "Kontynuuj w kierunku {destination}" - }, - "sharp left": { - "default": "Skręć ostro w lewo", - "name": "Skręć ostro w lewo w {way_name}", - "destination": "Skręć ostro w lewo w kierunku {destination}" - }, - "sharp right": { - "default": "Skręć ostro w prawo", - "name": "Skręć ostro w prawo na {way_name}", - "destination": "Skręć ostro w prawo w kierunku {destination}" - }, - "slight left": { - "default": "Kontynuuj łagodnie w lewo", - "name": "Kontynuuj łagodnie w lewo na {way_name}", - "destination": "Kontynuuj łagodnie w lewo w kierunku {destination}" - }, - "slight right": { - "default": "Kontynuuj łagodnie w prawo", - "name": "Kontynuuj łagodnie w prawo na {way_name}", - "destination": "Kontynuuj łagodnie w prawo w kierunku {destination}" - }, - "uturn": { - "default": "Zawróć", - "name": "Zawróć na {way_name}", - "destination": "Zawróć w kierunku {destination}" - } - }, - "notification": { - "default": { - "default": "Kontynuuj {modifier}", - "name": "Kontynuuj {modifier} na {way_name}", - "destination": "Kontynuuj {modifier} w kierunku {destination}" - }, - "uturn": { - "default": "Zawróć", - "name": "Zawróć na {way_name}", - "destination": "Zawróć w kierunku {destination}" - } - }, - "off ramp": { - "default": { - "default": "Zjedź", - "name": "Weź zjazd na {way_name}", - "destination": "Weź zjazd w kierunku {destination}", - "exit": "Zjedź zjazdem {exit}", - "exit_destination": "Zjedź zjazdem {exit} na {destination}" - }, - "left": { - "default": "Weź zjazd po lewej", - "name": "Weź zjazd po lewej na {way_name}", - "destination": "Weź zjazd po lewej w kierunku {destination}", - "exit": "Zjedź zjazdem {exit} po lewej stronie", - "exit_destination": "Zjedź zjazdem {exit} po lewej stronie na {destination}" - }, - "right": { - "default": "Weź zjazd po prawej", - "name": "Weź zjazd po prawej na {way_name}", - "destination": "Weź zjazd po prawej w kierunku {destination}", - "exit": "Zjedź zjazdem {exit} po prawej stronie", - "exit_destination": "Zjedź zjazdem {exit} po prawej stronie na {destination}" - }, - "sharp left": { - "default": "Weź zjazd po lewej", - "name": "Weź zjazd po lewej na {way_name}", - "destination": "Weź zjazd po lewej w kierunku {destination}", - "exit": "Zjedź zjazdem {exit} po lewej stronie", - "exit_destination": "Zjedź zjazdem {exit} po lewej stronie na {destination}" - }, - "sharp right": { - "default": "Weź zjazd po prawej", - "name": "Weź zjazd po prawej na {way_name}", - "destination": "Weź zjazd po prawej w kierunku {destination}", - "exit": "Zjedź zjazdem {exit} po prawej stronie", - "exit_destination": "Zjedź zjazdem {exit} po prawej stronie na {destination}" - }, - "slight left": { - "default": "Weź zjazd po lewej", - "name": "Weź zjazd po lewej na {way_name}", - "destination": "Weź zjazd po lewej w kierunku {destination}", - "exit": "Zjedź zjazdem {exit} po lewej stronie", - "exit_destination": "Zjedź zjazdem {exit} po lewej stronie na {destination}" - }, - "slight right": { - "default": "Weź zjazd po prawej", - "name": "Weź zjazd po prawej na {way_name}", - "destination": "Weź zjazd po prawej w kierunku {destination}", - "exit": "Zjedź zjazdem {exit} po prawej stronie", - "exit_destination": "Zjedź zjazdem {exit} po prawej stronie na {destination}" - } - }, - "on ramp": { - "default": { - "default": "Weź zjazd", - "name": "Weź zjazd na {way_name}", - "destination": "Weź zjazd w kierunku {destination}" - }, - "left": { - "default": "Weź zjazd po lewej", - "name": "Weź zjazd po lewej na {way_name}", - "destination": "Weź zjazd po lewej w kierunku {destination}" - }, - "right": { - "default": "Weź zjazd po prawej", - "name": "Weź zjazd po prawej na {way_name}", - "destination": "Weź zjazd po prawej w kierunku {destination}" - }, - "sharp left": { - "default": "Weź zjazd po lewej", - "name": "Weź zjazd po lewej na {way_name}", - "destination": "Weź zjazd po lewej w kierunku {destination}" - }, - "sharp right": { - "default": "Weź zjazd po prawej", - "name": "Weź zjazd po prawej na {way_name}", - "destination": "Weź zjazd po prawej w kierunku {destination}" - }, - "slight left": { - "default": "Weź zjazd po lewej", - "name": "Weź zjazd po lewej na {way_name}", - "destination": "Weź zjazd po lewej w kierunku {destination}" - }, - "slight right": { - "default": "Weź zjazd po prawej", - "name": "Weź zjazd po prawej na {way_name}", - "destination": "Weź zjazd po prawej w kierunku {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Wjedź na rondo", - "name": "Wjedź na rondo i skręć na {way_name}", - "destination": "Wjedź na rondo i skręć w kierunku {destination}" - }, - "name": { - "default": "Wjedź na {rotary_name}", - "name": "Wjedź na {rotary_name} i skręć na {way_name}", - "destination": "Wjedź na {rotary_name} i skręć w kierunku {destination}" - }, - "exit": { - "default": "Wjedź na rondo i wyjedź {exit_number} zjazdem", - "name": "Wjedź na rondo i wyjedź {exit_number} zjazdem na {way_name}", - "destination": "Wjedź na rondo i wyjedź {exit_number} zjazdem w kierunku {destination}" - }, - "name_exit": { - "default": "Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem", - "name": "Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem na {way_name}", - "destination": "Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem w kierunku {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Wjedź na rondo i wyjedź {exit_number} zjazdem", - "name": "Wjedź na rondo i wyjedź {exit_number} zjazdem na {way_name}", - "destination": "Wjedź na rondo i wyjedź {exit_number} zjazdem w kierunku {destination}" - }, - "default": { - "default": "Wjedź na rondo", - "name": "Wjedź na rondo i wyjedź na {way_name}", - "destination": "Wjedź na rondo i wyjedź w kierunku {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "{modifier}", - "name": "{modifier} na {way_name}", - "destination": "{modifier} w kierunku {destination}" - }, - "left": { - "default": "Skręć w lewo", - "name": "Skręć w lewo na {way_name}", - "destination": "Skręć w lewo w kierunku {destination}" - }, - "right": { - "default": "Skręć w prawo", - "name": "Skręć w prawo na {way_name}", - "destination": "Skręć w prawo w kierunku {destination}" - }, - "straight": { - "default": "Kontynuuj prosto", - "name": "Kontynuuj prosto na {way_name}", - "destination": "Kontynuuj prosto w kierunku {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "{modifier}", - "name": "{modifier} na {way_name}", - "destination": "{modifier} w kierunku {destination}" - }, - "left": { - "default": "Skręć w lewo", - "name": "Skręć w lewo na {way_name}", - "destination": "Skręć w lewo w kierunku {destination}" - }, - "right": { - "default": "Skręć w prawo", - "name": "Skręć w prawo na {way_name}", - "destination": "Skręć w prawo w kierunku {destination}" - }, - "straight": { - "default": "Kontynuuj prosto", - "name": "Kontynuuj prosto na {way_name}", - "destination": "Kontynuuj prosto w kierunku {destination}" - } - }, - "exit rotary": { - "default": { - "default": "{modifier}", - "name": "{modifier} na {way_name}", - "destination": "{modifier} w kierunku {destination}" - }, - "left": { - "default": "Skręć w lewo", - "name": "Skręć w lewo na {way_name}", - "destination": "Skręć w lewo w kierunku {destination}" - }, - "right": { - "default": "Skręć w prawo", - "name": "Skręć w prawo na {way_name}", - "destination": "Skręć w prawo w kierunku {destination}" - }, - "straight": { - "default": "Jedź prosto", - "name": "Jedź prosto na {way_name}", - "destination": "Jedź prosto w kierunku {destination}" - } - }, - "turn": { - "default": { - "default": "{modifier}", - "name": "{modifier} na {way_name}", - "destination": "{modifier} w kierunku {destination}" - }, - "left": { - "default": "Skręć w lewo", - "name": "Skręć w lewo na {way_name}", - "destination": "Skręć w lewo w kierunku {destination}" - }, - "right": { - "default": "Skręć w prawo", - "name": "Skręć w prawo na {way_name}", - "destination": "Skręć w prawo w kierunku {destination}" - }, - "straight": { - "default": "Jedź prosto", - "name": "Jedź prosto na {way_name}", - "destination": "Jedź prosto w kierunku {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Kontynuuj prosto" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],39:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1º", - "2": "2º", - "3": "3º", - "4": "4º", - "5": "5º", - "6": "6º", - "7": "7º", - "8": "8º", - "9": "9º", - "10": "10º" - }, - "direction": { - "north": "norte", - "northeast": "nordeste", - "east": "leste", - "southeast": "sudeste", - "south": "sul", - "southwest": "sudoeste", - "west": "oeste", - "northwest": "noroeste" - }, - "modifier": { - "left": "à esquerda", - "right": "à direita", - "sharp left": "fechada à esquerda", - "sharp right": "fechada à direita", - "slight left": "suave à esquerda", - "slight right": "suave à direita", - "straight": "em frente", - "uturn": "retorno" - }, - "lanes": { - "xo": "Mantenha-se à direita", - "ox": "Mantenha-se à esquerda", - "xox": "Mantenha-se ao centro", - "oxo": "Mantenha-se à esquerda ou direita" - } - }, - "modes": { - "ferry": { - "default": "Pegue a balsa", - "name": "Pegue a balsa {way_name}", - "destination": "Pegue a balsa sentido {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, então, em {distance}, {instruction_two}", - "two linked": "{instruction_one}, então {instruction_two}", - "one in distance": "Em {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "saída {exit}" - }, - "arrive": { - "default": { - "default": "Você chegou ao seu {nth} destino", - "upcoming": "Você chegará ao seu {nth} destino", - "short": "Você chegou", - "short-upcoming": "Você vai chegar", - "named": "Você chegou a {waypoint_name}" - }, - "left": { - "default": "Você chegou ao seu {nth} destino, à esquerda", - "upcoming": "Você chegará ao seu {nth} destino, à esquerda", - "short": "Você chegou", - "short-upcoming": "Você vai chegar", - "named": "Você chegou {waypoint_name}, à esquerda" - }, - "right": { - "default": "Você chegou ao seu {nth} destino, à direita", - "upcoming": "Você chegará ao seu {nth} destino, à direita", - "short": "Você chegou", - "short-upcoming": "Você vai chegar", - "named": "Você chegou {waypoint_name}, à direita" - }, - "sharp left": { - "default": "Você chegou ao seu {nth} destino, à esquerda", - "upcoming": "Você chegará ao seu {nth} destino, à esquerda", - "short": "Você chegou", - "short-upcoming": "Você vai chegar", - "named": "Você chegou {waypoint_name}, à esquerda" - }, - "sharp right": { - "default": "Você chegou ao seu {nth} destino, à direita", - "upcoming": "Você chegará ao seu {nth} destino, à direita", - "short": "Você chegou", - "short-upcoming": "Você vai chegar", - "named": "Você chegou {waypoint_name}, à direita" - }, - "slight right": { - "default": "Você chegou ao seu {nth} destino, à direita", - "upcoming": "Você chegará ao seu {nth} destino, à direita", - "short": "Você chegou", - "short-upcoming": "Você vai chegar", - "named": "Você chegou {waypoint_name}, à direita" - }, - "slight left": { - "default": "Você chegou ao seu {nth} destino, à esquerda", - "upcoming": "Você chegará ao seu {nth} destino, à esquerda", - "short": "Você chegou", - "short-upcoming": "Você vai chegar", - "named": "Você chegou {waypoint_name}, à esquerda" - }, - "straight": { - "default": "Você chegou ao seu {nth} destino, em frente", - "upcoming": "Você vai chegar ao seu {nth} destino, em frente", - "short": "Você chegou", - "short-upcoming": "Você vai chegar", - "named": "You have arrived at {waypoint_name}, straight ahead" - } - }, - "continue": { - "default": { - "default": "Vire {modifier}", - "name": "Vire {modifier} para manter-se na {way_name}", - "destination": "Vire {modifier} sentido {destination}", - "exit": "Vire {modifier} em {way_name}" - }, - "straight": { - "default": "Continue em frente", - "name": "Continue em frente para manter-se na {way_name}", - "destination": "Continue em direção à {destination}", - "distance": "Continue em frente por {distance}", - "namedistance": "Continue na {way_name} por {distance}" - }, - "sharp left": { - "default": "Faça uma curva fechada a esquerda", - "name": "Faça uma curva fechada a esquerda para manter-se na {way_name}", - "destination": "Faça uma curva fechada a esquerda sentido {destination}" - }, - "sharp right": { - "default": "Faça uma curva fechada a direita", - "name": "Faça uma curva fechada a direita para manter-se na {way_name}", - "destination": "Faça uma curva fechada a direita sentido {destination}" - }, - "slight left": { - "default": "Faça uma curva suave a esquerda", - "name": "Faça uma curva suave a esquerda para manter-se na {way_name}", - "destination": "Faça uma curva suave a esquerda em direção a {destination}" - }, - "slight right": { - "default": "Faça uma curva suave a direita", - "name": "Faça uma curva suave a direita para manter-se na {way_name}", - "destination": "Faça uma curva suave a direita em direção a {destination}" - }, - "uturn": { - "default": "Faça o retorno", - "name": "Faça o retorno e continue em {way_name}", - "destination": "Faça o retorno sentido {destination}" - } - }, - "depart": { - "default": { - "default": "Siga {direction}", - "name": "Siga {direction} em {way_name}", - "namedistance": "Siga {direction} na {way_name} por {distance}" - } - }, - "end of road": { - "default": { - "default": "Vire {modifier}", - "name": "Vire {modifier} em {way_name}", - "destination": "Vire {modifier} sentido {destination}" - }, - "straight": { - "default": "Continue em frente", - "name": "Continue em frente em {way_name}", - "destination": "Continue em frente sentido {destination}" - }, - "uturn": { - "default": "Faça o retorno no fim da rua", - "name": "Faça o retorno em {way_name} no fim da rua", - "destination": "Faça o retorno sentido {destination} no fim da rua" - } - }, - "fork": { - "default": { - "default": "Mantenha-se {modifier} na bifurcação", - "name": "Mantenha-se {modifier} na bifurcação em {way_name}", - "destination": "Mantenha-se {modifier} na bifurcação sentido {destination}" - }, - "slight left": { - "default": "Mantenha-se à esquerda na bifurcação", - "name": "Mantenha-se à esquerda na bifurcação em {way_name}", - "destination": "Mantenha-se à esquerda na bifurcação sentido {destination}" - }, - "slight right": { - "default": "Mantenha-se à direita na bifurcação", - "name": "Mantenha-se à direita na bifurcação em {way_name}", - "destination": "Mantenha-se à direita na bifurcação sentido {destination}" - }, - "sharp left": { - "default": "Faça uma curva fechada à esquerda na bifurcação", - "name": "Faça uma curva fechada à esquerda em {way_name}", - "destination": "Faça uma curva fechada à esquerda sentido {destination}" - }, - "sharp right": { - "default": "Faça uma curva fechada à direita na bifurcação", - "name": "Faça uma curva fechada à direita em {way_name}", - "destination": "Faça uma curva fechada à direita sentido {destination}" - }, - "uturn": { - "default": "Faça o retorno", - "name": "Faça o retorno em {way_name}", - "destination": "Faça o retorno sentido {destination}" - } - }, - "merge": { - "default": { - "default": "Entre {modifier}", - "name": "Entre {modifier} na {way_name}", - "destination": "Entre {modifier} em direção à {destination}" - }, - "straight": { - "default": "Mesclar", - "name": "Entre reto na {way_name}", - "destination": "Entre reto em direção à {destination}" - }, - "slight left": { - "default": "Entre à esquerda", - "name": "Entre à esquerda na {way_name}", - "destination": "Entre à esquerda em direção à {destination}" - }, - "slight right": { - "default": "Entre à direita", - "name": "Entre à direita na {way_name}", - "destination": "Entre à direita em direção à {destination}" - }, - "sharp left": { - "default": "Entre à esquerda", - "name": "Entre à esquerda na {way_name}", - "destination": "Entre à esquerda em direção à {destination}" - }, - "sharp right": { - "default": "Entre à direita", - "name": "Entre à direita na {way_name}", - "destination": "Entre à direita em direção à {destination}" - }, - "uturn": { - "default": "Faça o retorno", - "name": "Faça o retorno em {way_name}", - "destination": "Faça o retorno sentido {destination}" - } - }, - "new name": { - "default": { - "default": "Continue {modifier}", - "name": "Continue {modifier} em {way_name}", - "destination": "Continue {modifier} sentido {destination}" - }, - "straight": { - "default": "Continue em frente", - "name": "Continue em {way_name}", - "destination": "Continue em direção à {destination}" - }, - "sharp left": { - "default": "Faça uma curva fechada à esquerda", - "name": "Faça uma curva fechada à esquerda em {way_name}", - "destination": "Faça uma curva fechada à esquerda sentido {destination}" - }, - "sharp right": { - "default": "Faça uma curva fechada à direita", - "name": "Faça uma curva fechada à direita em {way_name}", - "destination": "Faça uma curva fechada à direita sentido {destination}" - }, - "slight left": { - "default": "Continue ligeiramente à esquerda", - "name": "Continue ligeiramente à esquerda em {way_name}", - "destination": "Continue ligeiramente à esquerda sentido {destination}" - }, - "slight right": { - "default": "Continue ligeiramente à direita", - "name": "Continue ligeiramente à direita em {way_name}", - "destination": "Continue ligeiramente à direita sentido {destination}" - }, - "uturn": { - "default": "Faça o retorno", - "name": "Faça o retorno em {way_name}", - "destination": "Faça o retorno sentido {destination}" - } - }, - "notification": { - "default": { - "default": "Continue {modifier}", - "name": "Continue {modifier} em {way_name}", - "destination": "Continue {modifier} sentido {destination}" - }, - "uturn": { - "default": "Faça o retorno", - "name": "Faça o retorno em {way_name}", - "destination": "Faça o retorno sentido {destination}" - } - }, - "off ramp": { - "default": { - "default": "Pegue a rampa", - "name": "Pegue a rampa em {way_name}", - "destination": "Pegue a rampa sentido {destination}", - "exit": "Pegue a saída {exit}", - "exit_destination": "Pegue a saída {exit} em direção à {destination}" - }, - "left": { - "default": "Pegue a rampa à esquerda", - "name": "Pegue a rampa à esquerda em {way_name}", - "destination": "Pegue a rampa à esquerda sentido {destination}", - "exit": "Pegue a saída {exit} à esquerda", - "exit_destination": "Pegue a saída {exit} à esquerda em direção à {destination}" - }, - "right": { - "default": "Pegue a rampa à direita", - "name": "Pegue a rampa à direita em {way_name}", - "destination": "Pegue a rampa à direita sentido {destination}", - "exit": "Pegue a saída {exit} à direita", - "exit_destination": "Pegue a saída {exit} à direita em direção à {destination}" - }, - "sharp left": { - "default": "Pegue a rampa à esquerda", - "name": "Pegue a rampa à esquerda em {way_name}", - "destination": "Pegue a rampa à esquerda sentido {destination}", - "exit": "Pegue a saída {exit} à esquerda", - "exit_destination": "Pegue a saída {exit} à esquerda em direção à {destination}" - }, - "sharp right": { - "default": "Pegue a rampa à direita", - "name": "Pegue a rampa à direita em {way_name}", - "destination": "Pegue a rampa à direita sentido {destination}", - "exit": "Pegue a saída {exit} à direita", - "exit_destination": "Pegue a saída {exit} à direita em direção à {destination}" - }, - "slight left": { - "default": "Pegue a rampa à esquerda", - "name": "Pegue a rampa à esquerda em {way_name}", - "destination": "Pegue a rampa à esquerda sentido {destination}", - "exit": "Pegue a saída {exit} à esquerda", - "exit_destination": "Pegue a saída {exit} à esquerda em direção à {destination}" - }, - "slight right": { - "default": "Pegue a rampa à direita", - "name": "Pegue a rampa à direita em {way_name}", - "destination": "Pegue a rampa à direita sentido {destination}", - "exit": "Pegue a saída {exit} à direita", - "exit_destination": "Pegue a saída {exit} à direita em direção à {destination}" - } - }, - "on ramp": { - "default": { - "default": "Pegue a rampa", - "name": "Pegue a rampa em {way_name}", - "destination": "Pegue a rampa sentido {destination}" - }, - "left": { - "default": "Pegue a rampa à esquerda", - "name": "Pegue a rampa à esquerda em {way_name}", - "destination": "Pegue a rampa à esquerda sentido {destination}" - }, - "right": { - "default": "Pegue a rampa à direita", - "name": "Pegue a rampa à direita em {way_name}", - "destination": "Pegue a rampa à direita sentid {destination}" - }, - "sharp left": { - "default": "Pegue a rampa à esquerda", - "name": "Pegue a rampa à esquerda em {way_name}", - "destination": "Pegue a rampa à esquerda sentido {destination}" - }, - "sharp right": { - "default": "Pegue a rampa à direita", - "name": "Pegue a rampa à direita em {way_name}", - "destination": "Pegue a rampa à direita sentido {destination}" - }, - "slight left": { - "default": "Pegue a rampa à esquerda", - "name": "Pegue a rampa à esquerda em {way_name}", - "destination": "Pegue a rampa à esquerda sentido {destination}" - }, - "slight right": { - "default": "Pegue a rampa à direita", - "name": "Pegue a rampa à direita em {way_name}", - "destination": "Pegue a rampa à direita sentido {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Entre na rotatória", - "name": "Entre na rotatória e saia na {way_name}", - "destination": "Entre na rotatória e saia sentido {destination}" - }, - "name": { - "default": "Entre em {rotary_name}", - "name": "Entre em {rotary_name} e saia em {way_name}", - "destination": "Entre em {rotary_name} e saia sentido {destination}" - }, - "exit": { - "default": "Entre na rotatória e pegue a {exit_number} saída", - "name": "Entre na rotatória e pegue a {exit_number} saída na {way_name}", - "destination": "Entre na rotatória e pegue a {exit_number} saída sentido {destination}" - }, - "name_exit": { - "default": "Entre em {rotary_name} e saia na {exit_number} saída", - "name": "Entre em {rotary_name} e saia na {exit_number} saída em {way_name}", - "destination": "Entre em {rotary_name} e saia na {exit_number} saída sentido {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Entre na rotatória e pegue a {exit_number} saída", - "name": "Entre na rotatória e pegue a {exit_number} saída na {way_name}", - "destination": "Entre na rotatória e pegue a {exit_number} saída sentido {destination}" - }, - "default": { - "default": "Entre na rotatória", - "name": "Entre na rotatória e saia na {way_name}", - "destination": "Entre na rotatória e saia sentido {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Siga {modifier}", - "name": "Siga {modifier} em {way_name}", - "destination": "Siga {modifier} sentido {destination}" - }, - "left": { - "default": "Vire à esquerda", - "name": "Vire à esquerda em {way_name}", - "destination": "Vire à esquerda sentido {destination}" - }, - "right": { - "default": "Vire à direita", - "name": "Vire à direita em {way_name}", - "destination": "Vire à direita sentido {destination}" - }, - "straight": { - "default": "Continue em frente", - "name": "Continue em frente em {way_name}", - "destination": "Continue em frente sentido {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Saia da rotatória", - "name": "Exit the traffic circle onto {way_name}", - "destination": "Exit the traffic circle towards {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Saia da rotatória", - "name": "Exit the traffic circle onto {way_name}", - "destination": "Exit the traffic circle towards {destination}" - } - }, - "turn": { - "default": { - "default": "Siga {modifier}", - "name": "Siga {modifier} em {way_name}", - "destination": "Siga {modifier} sentido {destination}" - }, - "left": { - "default": "Vire à esquerda", - "name": "Vire à esquerda em {way_name}", - "destination": "Vire à esquerda sentido {destination}" - }, - "right": { - "default": "Vire à direita", - "name": "Vire à direita em {way_name}", - "destination": "Vire à direita sentido {destination}" - }, - "straight": { - "default": "Siga em frente", - "name": "Siga em frente em {way_name}", - "destination": "Siga em frente sentido {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Continue em frente" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],40:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1º", - "2": "2º", - "3": "3º", - "4": "4º", - "5": "5º", - "6": "6º", - "7": "7º", - "8": "8º", - "9": "9º", - "10": "10º" - }, - "direction": { - "north": "norte", - "northeast": "nordeste", - "east": "este", - "southeast": "sudeste", - "south": "sul", - "southwest": "sudoeste", - "west": "oeste", - "northwest": "noroeste" - }, - "modifier": { - "left": "à esquerda", - "right": "à direita", - "sharp left": "acentuadamente à esquerda", - "sharp right": "acentuadamente à direita", - "slight left": "ligeiramente à esquerda", - "slight right": "ligeiramente à direita", - "straight": "em frente", - "uturn": "inversão de marcha" - }, - "lanes": { - "xo": "Mantenha-se à direita", - "ox": "Mantenha-se à esquerda", - "xox": "Mantenha-se ao meio", - "oxo": "Mantenha-se à esquerda ou à direita" - } - }, - "modes": { - "ferry": { - "default": "Apanhe o ferry", - "name": "Apanhe o ferry {way_name}", - "destination": "Apanhe o ferry para {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, depois, a {distance}, {instruction_two}", - "two linked": "{instruction_one}, depois {instruction_two}", - "one in distance": "A {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "saída {exit}" - }, - "arrive": { - "default": { - "default": "Chegou ao seu {nth} destino", - "upcoming": "Está a chegar ao seu {nth} destino", - "short": "Chegou", - "short-upcoming": "Está a chegar", - "named": "Chegou a {waypoint_name}" - }, - "left": { - "default": "Chegou ao seu {nth} destino, à esquerda", - "upcoming": "Está a chegar ao seu {nth} destino, à esquerda", - "short": "Chegou", - "short-upcoming": "Está a chegar", - "named": "Chegou a {waypoint_name}, à esquerda" - }, - "right": { - "default": "Chegou ao seu {nth} destino, à direita", - "upcoming": "Está a chegar ao seu {nth} destino, à direita", - "short": "Chegou", - "short-upcoming": "Está a chegar", - "named": "Chegou a {waypoint_name}, à direita" - }, - "sharp left": { - "default": "Chegou ao seu {nth} destino, à esquerda", - "upcoming": "Está a chegar ao seu {nth} destino, à esquerda", - "short": "Chegou", - "short-upcoming": "Está a chegar", - "named": "Chegou a {waypoint_name}, à esquerda" - }, - "sharp right": { - "default": "Chegou ao seu {nth} destino, à direita", - "upcoming": "Está a chegar ao seu {nth} destino, à direita", - "short": "Chegou", - "short-upcoming": "Está a chegar", - "named": "Chegou a {waypoint_name}, à direita" - }, - "slight right": { - "default": "Chegou ao seu {nth} destino, à direita", - "upcoming": "Está a chegar ao seu {nth} destino, à direita", - "short": "Chegou", - "short-upcoming": "Está a chegar", - "named": "Chegou a {waypoint_name}, à direita" - }, - "slight left": { - "default": "Chegou ao seu {nth} destino, à esquerda", - "upcoming": "Está a chegar ao seu {nth} destino, à esquerda", - "short": "Chegou", - "short-upcoming": "Está a chegar", - "named": "Chegou a {waypoint_name}, à esquerda" - }, - "straight": { - "default": "Chegou ao seu {nth} destino, em frente", - "upcoming": "Está a chegar ao seu {nth} destino, em frente", - "short": "Chegou", - "short-upcoming": "Está a chegar", - "named": "Chegou a {waypoint_name}, em frente" - } - }, - "continue": { - "default": { - "default": "Vire {modifier}", - "name": "Vire {modifier} para se manter em {way_name}", - "destination": "Vire {modifier} em direção a {destination}", - "exit": "Vire {modifier} para {way_name}" - }, - "straight": { - "default": "Continue em frente", - "name": "Continue em frente para se manter em {way_name}", - "destination": "Continue em direção a {destination}", - "distance": "Continue em frente por {distance}", - "namedistance": "Continue em {way_name} por {distance}" - }, - "sharp left": { - "default": "Vire acentuadamente à esquerda", - "name": "Vire acentuadamente à esquerda para se manter em {way_name}", - "destination": "Vire acentuadamente à esquerda em direção a {destination}" - }, - "sharp right": { - "default": "Vire acentuadamente à direita", - "name": "Vire acentuadamente à direita para se manter em {way_name}", - "destination": "Vire acentuadamente à direita em direção a {destination}" - }, - "slight left": { - "default": "Vire ligeiramente à esquerda", - "name": "Vire ligeiramente à esquerda para se manter em {way_name}", - "destination": "Vire ligeiramente à esquerda em direção a {destination}" - }, - "slight right": { - "default": "Vire ligeiramente à direita", - "name": "Vire ligeiramente à direita para se manter em {way_name}", - "destination": "Vire ligeiramente à direita em direção a {destination}" - }, - "uturn": { - "default": "Faça inversão de marcha", - "name": "Faça inversão de marcha e continue em {way_name}", - "destination": "Faça inversão de marcha em direção a {destination}" - } - }, - "depart": { - "default": { - "default": "Dirija-se para {direction}", - "name": "Dirija-se para {direction} em {way_name}", - "namedistance": "Dirija-se para {direction} em {way_name} por {distance}" - } - }, - "end of road": { - "default": { - "default": "Vire {modifier}", - "name": "Vire {modifier} para {way_name}", - "destination": "Vire {modifier} em direção a {destination}" - }, - "straight": { - "default": "Continue em frente", - "name": "Continue em frente para {way_name}", - "destination": "Continue em frente em direção a {destination}" - }, - "uturn": { - "default": "No final da estrada faça uma inversão de marcha", - "name": "No final da estrada faça uma inversão de marcha para {way_name} ", - "destination": "No final da estrada faça uma inversão de marcha em direção a {destination}" - } - }, - "fork": { - "default": { - "default": "Na bifurcação mantenha-se {modifier}", - "name": "Mantenha-se {modifier} para {way_name}", - "destination": "Mantenha-se {modifier} em direção a {destination}" - }, - "slight left": { - "default": "Na bifurcação mantenha-se à esquerda", - "name": "Mantenha-se à esquerda para {way_name}", - "destination": "Mantenha-se à esquerda em direção a {destination}" - }, - "slight right": { - "default": "Na bifurcação mantenha-se à direita", - "name": "Mantenha-se à direita para {way_name}", - "destination": "Mantenha-se à direita em direção a {destination}" - }, - "sharp left": { - "default": "Na bifurcação vire acentuadamente à esquerda", - "name": "Vire acentuadamente à esquerda para {way_name}", - "destination": "Vire acentuadamente à esquerda em direção a {destination}" - }, - "sharp right": { - "default": "Na bifurcação vire acentuadamente à direita", - "name": "Vire acentuadamente à direita para {way_name}", - "destination": "Vire acentuadamente à direita em direção a {destination}" - }, - "uturn": { - "default": "Faça inversão de marcha", - "name": "Faça inversão de marcha para {way_name}", - "destination": "Faça inversão de marcha em direção a {destination}" - } - }, - "merge": { - "default": { - "default": "Una-se ao tráfego {modifier}", - "name": "Una-se ao tráfego {modifier} para {way_name}", - "destination": "Una-se ao tráfego {modifier} em direção a {destination}" - }, - "straight": { - "default": "Una-se ao tráfego", - "name": " Una-se ao tráfego para {way_name}", - "destination": "Una-se ao tráfego em direção a {destination}" - }, - "slight left": { - "default": "Una-se ao tráfego à esquerda", - "name": "Una-se ao tráfego à esquerda para {way_name}", - "destination": "Una-se ao tráfego à esquerda em direção a {destination}" - }, - "slight right": { - "default": "Una-se ao tráfego à direita", - "name": "Una-se ao tráfego à direita para {way_name}", - "destination": "Una-se ao tráfego à direita em direção a {destination}" - }, - "sharp left": { - "default": "Una-se ao tráfego à esquerda", - "name": "Una-se ao tráfego à esquerda para {way_name}", - "destination": "Una-se ao tráfego à esquerda em direção a {destination}" - }, - "sharp right": { - "default": "Una-se ao tráfego à direita", - "name": "Una-se ao tráfego à direita para {way_name}", - "destination": "Una-se ao tráfego à direita em direção a {destination}" - }, - "uturn": { - "default": "Faça inversão de marcha", - "name": "Faça inversão de marcha para {way_name}", - "destination": "Faça inversão de marcha em direção a {destination}" - } - }, - "new name": { - "default": { - "default": "Continue {modifier}", - "name": "Continue {modifier} para {way_name}", - "destination": "Continue {modifier} em direção a {destination}" - }, - "straight": { - "default": "Continue em frente", - "name": "Continue para {way_name}", - "destination": "Continue em direção a {destination}" - }, - "sharp left": { - "default": "Vire acentuadamente à esquerda", - "name": "Vire acentuadamente à esquerda para {way_name}", - "destination": "Vire acentuadamente à esquerda em direção a{destination}" - }, - "sharp right": { - "default": "Vire acentuadamente à direita", - "name": "Vire acentuadamente à direita para {way_name}", - "destination": "Vire acentuadamente à direita em direção a {destination}" - }, - "slight left": { - "default": "Continue ligeiramente à esquerda", - "name": "Continue ligeiramente à esquerda para {way_name}", - "destination": "Continue ligeiramente à esquerda em direção a {destination}" - }, - "slight right": { - "default": "Continue ligeiramente à direita", - "name": "Continue ligeiramente à direita para {way_name}", - "destination": "Continue ligeiramente à direita em direção a {destination}" - }, - "uturn": { - "default": "Faça inversão de marcha", - "name": "Faça inversão de marcha para {way_name}", - "destination": "Faça inversão de marcha em direção a {destination}" - } - }, - "notification": { - "default": { - "default": "Continue {modifier}", - "name": "Continue {modifier} para {way_name}", - "destination": "Continue {modifier} em direção a {destination}" - }, - "uturn": { - "default": "Faça inversão de marcha", - "name": "Faça inversão de marcha para {way_name}", - "destination": "Faça inversão de marcha em direção a {destination}" - } - }, - "off ramp": { - "default": { - "default": "Saia na saída", - "name": "Saia na saída para {way_name}", - "destination": "Saia na saída em direção a {destination}", - "exit": "Saia na saída {exit}", - "exit_destination": "Saia na saída {exit} em direção a {destination}" - }, - "left": { - "default": "Saia na saída à esquerda", - "name": "Saia na saída à esquerda para {way_name}", - "destination": "Saia na saída à esquerda em direção a {destination}", - "exit": "Saia na saída {exit} à esquerda", - "exit_destination": "Saia na saída {exit} à esquerda em direção a {destination}" - }, - "right": { - "default": "Saia na saída à direita", - "name": "Saia na saída à direita para {way_name}", - "destination": "Saia na saída à direita em direção a {destination}", - "exit": "Saia na saída {exit} à direita", - "exit_destination": "Saia na saída {exit} à direita em direção a {destination}" - }, - "sharp left": { - "default": "Saia na saída à esquerda", - "name": "Saia na saída à esquerda para {way_name}", - "destination": "Saia na saída à esquerda em direção a {destination}", - "exit": "Saia na saída {exit} à esquerda", - "exit_destination": "Saia na saída {exit} à esquerda em direção a {destination}" - }, - "sharp right": { - "default": "Saia na saída à direita", - "name": "Saia na saída à direita para {way_name}", - "destination": "Saia na saída à direita em direção a {destination}", - "exit": "Saia na saída {exit} à direita", - "exit_destination": "Saia na saída {exit} à direita em direção a {destination}" - }, - "slight left": { - "default": "Saia na saída à esquerda", - "name": "Saia na saída à esquerda para {way_name}", - "destination": "Saia na saída à esquerda em direção a {destination}", - "exit": "Saia na saída {exit} à esquerda", - "exit_destination": "Saia na saída {exit} à esquerda em direção a {destination}" - }, - "slight right": { - "default": "Saia na saída à direita", - "name": "Saia na saída à direita para {way_name}", - "destination": "Saia na saída à direita em direção a {destination}", - "exit": "Saia na saída {exit} à direita", - "exit_destination": "Saia na saída {exit} à direita em direção a {destination}" - } - }, - "on ramp": { - "default": { - "default": "Saia na saída", - "name": "Saia na saída para {way_name}", - "destination": "Saia na saída em direção a {destination}" - }, - "left": { - "default": "Saia na saída à esquerda", - "name": "Saia na saída à esquerda para {way_name}", - "destination": "Saia na saída à esquerda em direção a {destination}" - }, - "right": { - "default": "Saia na saída à direita", - "name": "Saia na saída à direita para {way_name}", - "destination": "Saia na saída à direita em direção a {destination}" - }, - "sharp left": { - "default": "Saia na saída à esquerda", - "name": "Saia na saída à esquerda para {way_name}", - "destination": "Saia na saída à esquerda em direção a {destination}" - }, - "sharp right": { - "default": "Saia na saída à direita", - "name": "Saia na saída à direita para {way_name}", - "destination": "Saia na saída à direita em direção a {destination}" - }, - "slight left": { - "default": "Saia na saída à esquerda", - "name": "Saia na saída à esquerda para {way_name}", - "destination": "Saia na saída à esquerda em direção a {destination}" - }, - "slight right": { - "default": "Saia na saída à direita", - "name": "Saia na saída à direita para {way_name}", - "destination": "Saia na saída à direita em direção a {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Entre na rotunda", - "name": "Entre na rotunda e saia para {way_name}", - "destination": "Entre na rotunda e saia em direção a {destination}" - }, - "name": { - "default": "Entre em {rotary_name}", - "name": "Entre em {rotary_name} e saia para {way_name}", - "destination": "Entre em {rotary_name} e saia em direção a {destination}" - }, - "exit": { - "default": "Entre na rotunda e saia na saída {exit_number}", - "name": "Entre na rotunda e saia na saída {exit_number} para {way_name}", - "destination": "Entre na rotunda e saia na saída {exit_number} em direção a {destination}" - }, - "name_exit": { - "default": "Entre em {rotary_name} e saia na saída {exit_number}", - "name": "Entre em {rotary_name} e saia na saída {exit_number} para {way_name}", - "destination": "Entre em{rotary_name} e saia na saída {exit_number} em direção a {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Entre na rotunda e saia na saída {exit_number}", - "name": "Entre na rotunda e saia na saída {exit_number} para {way_name}", - "destination": "Entre na rotunda e saia na saída {exit_number} em direção a {destination}" - }, - "default": { - "default": "Entre na rotunda", - "name": "Entre na rotunda e saia para {way_name}", - "destination": "Entre na rotunda e saia em direção a {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Siga {modifier}", - "name": "Siga {modifier} para {way_name}", - "destination": "Siga {modifier} em direção a {destination}" - }, - "left": { - "default": "Vire à esquerda", - "name": "Vire à esquerda para {way_name}", - "destination": "Vire à esquerda em direção a {destination}" - }, - "right": { - "default": "Vire à direita", - "name": "Vire à direita para {way_name}", - "destination": "Vire à direita em direção a {destination}" - }, - "straight": { - "default": "Continue em frente", - "name": "Continue em frente para {way_name}", - "destination": "Continue em frente em direção a {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Saia da rotunda", - "name": "Saia da rotunda para {way_name}", - "destination": "Saia da rotunda em direção a {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Saia da rotunda", - "name": "Saia da rotunda para {way_name}", - "destination": "Saia da rotunda em direção a {destination}" - } - }, - "turn": { - "default": { - "default": "Siga {modifier}", - "name": "Siga {modifier} para{way_name}", - "destination": "Siga {modifier} em direção a {destination}" - }, - "left": { - "default": "Vire à esquerda", - "name": "Vire à esquerda para {way_name}", - "destination": "Vire à esquerda em direção a {destination}" - }, - "right": { - "default": "Vire à direita", - "name": "Vire à direita para {way_name}", - "destination": "Vire à direita em direção a {destination}" - }, - "straight": { - "default": "Vá em frente", - "name": "Vá em frente para {way_name}", - "destination": "Vá em frente em direção a {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Continue em frente" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],41:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "prima", - "2": "a doua", - "3": "a treia", - "4": "a patra", - "5": "a cincea", - "6": "a șasea", - "7": "a șaptea", - "8": "a opta", - "9": "a noua", - "10": "a zecea" - }, - "direction": { - "north": "nord", - "northeast": "nord-est", - "east": "est", - "southeast": "sud-est", - "south": "sud", - "southwest": "sud-vest", - "west": "vest", - "northwest": "nord-vest" - }, - "modifier": { - "left": "stânga", - "right": "dreapta", - "sharp left": "puternic stânga", - "sharp right": "puternic dreapta", - "slight left": "ușor stânga", - "slight right": "ușor dreapta", - "straight": "înainte", - "uturn": "întoarcere" - }, - "lanes": { - "xo": "Țineți stânga", - "ox": "Țineți dreapta", - "xox": "Țineți pe mijloc", - "oxo": "Țineți pe laterale" - } - }, - "modes": { - "ferry": { - "default": "Luați feribotul", - "name": "Luați feribotul {way_name}", - "destination": "Luați feribotul spre {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, apoi în {distance}, {instruction_two}", - "two linked": "{instruction_one} apoi {instruction_two}", - "one in distance": "În {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "ieșirea {exit}" - }, - "arrive": { - "default": { - "default": "Ați ajuns la {nth} destinație", - "upcoming": "Ați ajuns la {nth} destinație", - "short": "Ați ajuns", - "short-upcoming": "Veți ajunge", - "named": "Ați ajuns {waypoint_name}" - }, - "left": { - "default": "Ați ajuns la {nth} destinație, pe stânga", - "upcoming": "Ați ajuns la {nth} destinație, pe stânga", - "short": "Ați ajuns", - "short-upcoming": "Veți ajunge", - "named": "Ați ajuns {waypoint_name}, pe stânga" - }, - "right": { - "default": "Ați ajuns la {nth} destinație, pe dreapta", - "upcoming": "Ați ajuns la {nth} destinație, pe dreapta", - "short": "Ați ajuns", - "short-upcoming": "Veți ajunge", - "named": "Ați ajuns {waypoint_name}, pe dreapta" - }, - "sharp left": { - "default": "Ați ajuns la {nth} destinație, pe stânga", - "upcoming": "Ați ajuns la {nth} destinație, pe stânga", - "short": "Ați ajuns", - "short-upcoming": "Veți ajunge", - "named": "Ați ajuns {waypoint_name}, pe stânga" - }, - "sharp right": { - "default": "Ați ajuns la {nth} destinație, pe dreapta", - "upcoming": "Ați ajuns la {nth} destinație, pe dreapta", - "short": "Ați ajuns", - "short-upcoming": "Veți ajunge", - "named": "Ați ajuns {waypoint_name}, pe dreapta" - }, - "slight right": { - "default": "Ați ajuns la {nth} destinație, pe dreapta", - "upcoming": "Ați ajuns la {nth} destinație, pe dreapta", - "short": "Ați ajuns", - "short-upcoming": "Veți ajunge", - "named": "Ați ajuns {waypoint_name}, pe dreapta" - }, - "slight left": { - "default": "Ați ajuns la {nth} destinație, pe stânga", - "upcoming": "Ați ajuns la {nth} destinație, pe stânga", - "short": "Ați ajuns", - "short-upcoming": "Veți ajunge", - "named": "Ați ajuns {waypoint_name}, pe stânga" - }, - "straight": { - "default": "Ați ajuns la {nth} destinație, în față", - "upcoming": "Ați ajuns la {nth} destinație, în față", - "short": "Ați ajuns", - "short-upcoming": "Veți ajunge", - "named": "Ați ajuns {waypoint_name}, în față" - } - }, - "continue": { - "default": { - "default": "Virați {modifier}", - "name": "Virați {modifier} pe {way_name}", - "destination": "Virați {modifier} spre {destination}", - "exit": "Virați {modifier} pe {way_name}" - }, - "straight": { - "default": "Mergeți înainte", - "name": "Mergeți înainte pe {way_name}", - "destination": "Continuați spre {destination}", - "distance": "Mergeți înainte pentru {distance}", - "namedistance": "Continuați pe {way_name} pentru {distance}" - }, - "sharp left": { - "default": "Virați puternic la stânga", - "name": "Virați puternic la stânga pe {way_name}", - "destination": "Virați puternic la stânga spre {destination}" - }, - "sharp right": { - "default": "Virați puternic la dreapta", - "name": "Virați puternic la dreapta pe {way_name}", - "destination": "Virați puternic la dreapta spre {destination}" - }, - "slight left": { - "default": "Virați ușor la stânga", - "name": "Virați ușor la stânga pe {way_name}", - "destination": "Virați ușor la stânga spre {destination}" - }, - "slight right": { - "default": "Virați ușor la dreapta", - "name": "Virați ușor la dreapta pe {way_name}", - "destination": "Virați ușor la dreapta spre {destination}" - }, - "uturn": { - "default": "Întoarceți-vă", - "name": "Întoarceți-vă și continuați pe {way_name}", - "destination": "Întoarceți-vă spre {destination}" - } - }, - "depart": { - "default": { - "default": "Mergeți spre {direction}", - "name": "Mergeți spre {direction} pe {way_name}", - "namedistance": "Mergeți spre {direction} pe {way_name} pentru {distance}" - } - }, - "end of road": { - "default": { - "default": "Virați {modifier}", - "name": "Virați {modifier} pe {way_name}", - "destination": "Virați {modifier} spre {destination}" - }, - "straight": { - "default": "Continuați înainte", - "name": "Continuați înainte pe {way_name}", - "destination": "Continuați înainte spre {destination}" - }, - "uturn": { - "default": "Întoarceți-vă la sfârșitul drumului", - "name": "Întoarceți-vă pe {way_name} la sfârșitul drumului", - "destination": "Întoarceți-vă spre {destination} la sfârșitul drumului" - } - }, - "fork": { - "default": { - "default": "Țineți {modifier} la bifurcație", - "name": "Țineți {modifier} la bifurcație pe {way_name}", - "destination": "Țineți {modifier} la bifurcație spre {destination}" - }, - "slight left": { - "default": "Țineți pe stânga la bifurcație", - "name": "Țineți pe stânga la bifurcație pe {way_name}", - "destination": "Țineți pe stânga la bifurcație spre {destination}" - }, - "slight right": { - "default": "Țineți pe dreapta la bifurcație", - "name": "Țineți pe dreapta la bifurcație pe {way_name}", - "destination": "Țineți pe dreapta la bifurcație spre {destination}" - }, - "sharp left": { - "default": "Virați puternic stânga la bifurcație", - "name": "Virați puternic stânga la bifurcație pe {way_name}", - "destination": "Virați puternic stânga la bifurcație spre {destination}" - }, - "sharp right": { - "default": "Virați puternic dreapta la bifurcație", - "name": "Virați puternic dreapta la bifurcație pe {way_name}", - "destination": "Virați puternic dreapta la bifurcație spre {destination}" - }, - "uturn": { - "default": "Întoarceți-vă", - "name": "Întoarceți-vă pe {way_name}", - "destination": "Întoarceți-vă spre {destination}" - } - }, - "merge": { - "default": { - "default": "Intrați în {modifier}", - "name": "Intrați în {modifier} pe {way_name}", - "destination": "Intrați în {modifier} spre {destination}" - }, - "straight": { - "default": "Intrați", - "name": "Intrați pe {way_name}", - "destination": "Intrați spre {destination}" - }, - "slight left": { - "default": "Intrați în stânga", - "name": "Intrați în stânga pe {way_name}", - "destination": "Intrați în stânga spre {destination}" - }, - "slight right": { - "default": "Intrați în dreapta", - "name": "Intrați în dreapta pe {way_name}", - "destination": "Intrați în dreapta spre {destination}" - }, - "sharp left": { - "default": "Intrați în stânga", - "name": "Intrați în stânga pe {way_name}", - "destination": "Intrați în stânga spre {destination}" - }, - "sharp right": { - "default": "Intrați în dreapta", - "name": "Intrați în dreapta pe {way_name}", - "destination": "Intrați în dreapta spre {destination}" - }, - "uturn": { - "default": "Întoarceți-vă", - "name": "Întoarceți-vă pe {way_name}", - "destination": "Întoarceți-vă spre {destination}" - } - }, - "new name": { - "default": { - "default": "Continuați {modifier}", - "name": "Continuați {modifier} pe {way_name}", - "destination": "Continuați {modifier} spre {destination}" - }, - "straight": { - "default": "Continuați înainte", - "name": "Continuați pe {way_name}", - "destination": "Continuați spre {destination}" - }, - "sharp left": { - "default": "Virați puternic la stânga", - "name": "Virați puternic la stânga pe {way_name}", - "destination": "Virați puternic la stânga spre {destination}" - }, - "sharp right": { - "default": "Virați puternic la dreapta", - "name": "Virați puternic la dreapta pe {way_name}", - "destination": "Virați puternic la dreapta spre {destination}" - }, - "slight left": { - "default": "Continuați ușor la stânga", - "name": "Continuați ușor la stânga pe {way_name}", - "destination": "Continuați ușor la stânga spre {destination}" - }, - "slight right": { - "default": "Continuați ușor la dreapta", - "name": "Continuați ușor la dreapta pe {way_name}", - "destination": "Continuați ușor la dreapta spre {destination}" - }, - "uturn": { - "default": "Întoarceți-vă", - "name": "Întoarceți-vă pe {way_name}", - "destination": "Întoarceți-vă spre {destination}" - } - }, - "notification": { - "default": { - "default": "Continuați {modifier}", - "name": "Continuați {modifier} pe {way_name}", - "destination": "Continuați {modifier} spre {destination}" - }, - "uturn": { - "default": "Întoarceți-vă", - "name": "Întoarceți-vă pe {way_name}", - "destination": "Întoarceți-vă spre {destination}" - } - }, - "off ramp": { - "default": { - "default": "Urmați breteaua", - "name": "Urmați breteaua pe {way_name}", - "destination": "Urmați breteaua spre {destination}", - "exit": "Urmați ieșirea {exit}", - "exit_destination": "Urmați ieșirea {exit} spre {destination}" - }, - "left": { - "default": "Urmați breteaua din stânga", - "name": "Urmați breteaua din stânga pe {way_name}", - "destination": "Urmați breteaua din stânga spre {destination}", - "exit": "Urmați ieșirea {exit} pe stânga", - "exit_destination": "Urmați ieșirea {exit} pe stânga spre {destination}" - }, - "right": { - "default": "Urmați breteaua din dreapta", - "name": "Urmați breteaua din dreapta pe {way_name}", - "destination": "Urmați breteaua din dreapta spre {destination}", - "exit": "Urmați ieșirea {exit} pe dreapta", - "exit_destination": "Urmați ieșirea {exit} pe dreapta spre {destination}" - }, - "sharp left": { - "default": "Urmați breteaua din stânga", - "name": "Urmați breteaua din stânga pe {way_name}", - "destination": "Urmați breteaua din stânga spre {destination}", - "exit": "Urmați ieșirea {exit} pe stânga", - "exit_destination": "Urmați ieșirea {exit} pe stânga spre {destination}" - }, - "sharp right": { - "default": "Urmați breteaua din dreapta", - "name": "Urmați breteaua din dreapta pe {way_name}", - "destination": "Urmați breteaua din dreapta spre {destination}", - "exit": "Urmați ieșirea {exit} pe dreapta", - "exit_destination": "Urmați ieșirea {exit} pe dreapta spre {destination}" - }, - "slight left": { - "default": "Urmați breteaua din stânga", - "name": "Urmați breteaua din stânga pe {way_name}", - "destination": "Urmați breteaua din stânga spre {destination}", - "exit": "Urmați ieșirea {exit} pe stânga", - "exit_destination": "Urmați ieșirea {exit} pe stânga spre {destination}" - }, - "slight right": { - "default": "Urmați breteaua din dreapta", - "name": "Urmați breteaua din dreapta pe {way_name}", - "destination": "Urmați breteaua din dreapta spre {destination}", - "exit": "Urmați ieșirea {exit} pe dreapta", - "exit_destination": "Urmați ieșirea {exit} pe dreapta spre {destination}" - } - }, - "on ramp": { - "default": { - "default": "Urmați breteaua de intrare", - "name": "Urmați breteaua pe {way_name}", - "destination": "Urmați breteaua spre {destination}" - }, - "left": { - "default": "Urmați breteaua din stânga", - "name": "Urmați breteaua din stânga pe {way_name}", - "destination": "Urmați breteaua din stânga spre {destination}" - }, - "right": { - "default": "Urmați breteaua din dreapta", - "name": "Urmați breteaua din dreapta pe {way_name}", - "destination": "Urmați breteaua din dreapta spre {destination}" - }, - "sharp left": { - "default": "Urmați breteaua din stânga", - "name": "Urmați breteaua din stânga pe {way_name}", - "destination": "Urmați breteaua din stânga spre {destination}" - }, - "sharp right": { - "default": "Urmați breteaua din dreapta", - "name": "Urmați breteaua din dreapta pe {way_name}", - "destination": "Urmați breteaua din dreapta spre {destination}" - }, - "slight left": { - "default": "Urmați breteaua din stânga", - "name": "Urmați breteaua din stânga pe {way_name}", - "destination": "Urmați breteaua din stânga spre {destination}" - }, - "slight right": { - "default": "Urmați breteaua din dreapta", - "name": "Urmați breteaua din dreapta pe {way_name}", - "destination": "Urmați breteaua din dreapta spre {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Intrați în sensul giratoriu", - "name": "Intrați în sensul giratoriu și ieșiți pe {way_name}", - "destination": "Intrați în sensul giratoriu și ieșiți spre {destination}" - }, - "name": { - "default": "Intrați în {rotary_name}", - "name": "Intrați în {rotary_name} și ieșiți pe {way_name}", - "destination": "Intrați în {rotary_name} și ieșiți spre {destination}" - }, - "exit": { - "default": "Intrați în sensul giratoriu și urmați {exit_number} ieșire", - "name": "Intrați în sensul giratoriu și urmați {exit_number} ieșire pe {way_name}", - "destination": "Intrați în sensul giratoriu și urmați {exit_number} ieșire spre {destination}" - }, - "name_exit": { - "default": "Intrați în {rotary_name} și urmați {exit_number} ieșire", - "name": "Intrați în {rotary_name} și urmați {exit_number} ieșire pe {way_name}", - "destination": "Intrați în {rotary_name} și urmați {exit_number} ieșire spre {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Intrați în sensul giratoriu și urmați {exit_number} ieșire", - "name": "Intrați în sensul giratoriu și urmați {exit_number} ieșire pe {way_name}", - "destination": "Intrați în sensul giratoriu și urmați {exit_number} ieșire spre {destination}" - }, - "default": { - "default": "Intrați în sensul giratoriu", - "name": "Intrați în sensul giratoriu și ieșiți pe {way_name}", - "destination": "Intrați în sensul giratoriu și ieșiți spre {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "La sensul giratoriu virați {modifier}", - "name": "La sensul giratoriu virați {modifier} pe {way_name}", - "destination": "La sensul giratoriu virați {modifier} spre {destination}" - }, - "left": { - "default": "La sensul giratoriu virați la stânga", - "name": "La sensul giratoriu virați la stânga pe {way_name}", - "destination": "La sensul giratoriu virați la stânga spre {destination}" - }, - "right": { - "default": "La sensul giratoriu virați la dreapta", - "name": "La sensul giratoriu virați la dreapta pe {way_name}", - "destination": "La sensul giratoriu virați la dreapta spre {destination}" - }, - "straight": { - "default": "La sensul giratoriu continuați înainte", - "name": "La sensul giratoriu continuați înainte pe {way_name}", - "destination": "La sensul giratoriu continuați înainte spre {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Ieșiți din sensul giratoriu", - "name": "Ieșiți din sensul giratoriu pe {way_name}", - "destination": "Ieșiți din sensul giratoriu spre {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Ieșiți din sensul giratoriu", - "name": "Ieșiți din sensul giratoriu pe {way_name}", - "destination": "Ieșiți din sensul giratoriu spre {destination}" - } - }, - "turn": { - "default": { - "default": "Virați {modifier}", - "name": "Virați {modifier} pe {way_name}", - "destination": "Virați {modifier} spre {destination}" - }, - "left": { - "default": "Virați la stânga", - "name": "Virați la stânga pe {way_name}", - "destination": "Virați la stânga spre {destination}" - }, - "right": { - "default": "Virați la dreapta", - "name": "Virați la dreapta pe {way_name}", - "destination": "Virați la dreapta spre {destination}" - }, - "straight": { - "default": "Mergeți înainte", - "name": "Mergeți înainte pe {way_name}", - "destination": "Mergeți înainte spre {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Mergeți înainte" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],42:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "первый", - "2": "второй", - "3": "третий", - "4": "четвёртый", - "5": "пятый", - "6": "шестой", - "7": "седьмой", - "8": "восьмой", - "9": "девятый", - "10": "десятый" - }, - "direction": { - "north": "северном", - "northeast": "северо-восточном", - "east": "восточном", - "southeast": "юго-восточном", - "south": "южном", - "southwest": "юго-западном", - "west": "западном", - "northwest": "северо-западном" - }, - "modifier": { - "left": "налево", - "right": "направо", - "sharp left": "налево", - "sharp right": "направо", - "slight left": "левее", - "slight right": "правее", - "straight": "прямо", - "uturn": "на разворот" - }, - "lanes": { - "xo": "Держитесь правее", - "ox": "Держитесь левее", - "xox": "Держитесь посередине", - "oxo": "Держитесь слева или справа" - } - }, - "modes": { - "ferry": { - "default": "Погрузитесь на паром", - "name": "Погрузитесь на паром {way_name}", - "destination": "Погрузитесь на паром в направлении {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, затем через {distance} {instruction_two}", - "two linked": "{instruction_one}, затем {instruction_two}", - "one in distance": "Через {distance} {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "съезд {exit}" - }, - "arrive": { - "default": { - "default": "Вы прибыли в {nth} пункт назначения", - "upcoming": "Вы прибудете в {nth} пункт назначения", - "short": "Вы прибыли", - "short-upcoming": "Вы скоро прибудете", - "named": "Вы прибыли в пункт назначения, {waypoint_name}" - }, - "left": { - "default": "Вы прибыли в {nth} пункт назначения, он находится слева", - "upcoming": "Вы прибудете в {nth} пункт назначения, он будет слева", - "short": "Вы прибыли", - "short-upcoming": "Вы скоро прибудете", - "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится слева" - }, - "right": { - "default": "Вы прибыли в {nth} пункт назначения, он находится справа", - "upcoming": "Вы прибудете в {nth} пункт назначения, он будет справа", - "short": "Вы прибыли", - "short-upcoming": "Вы скоро прибудете", - "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится справа" - }, - "sharp left": { - "default": "Вы прибыли в {nth} пункт назначения, он находится слева сзади", - "upcoming": "Вы прибудете в {nth} пункт назначения, он будет слева сзади", - "short": "Вы прибыли", - "short-upcoming": "Вы скоро прибудете", - "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится слева сзади" - }, - "sharp right": { - "default": "Вы прибыли в {nth} пункт назначения, он находится справа сзади", - "upcoming": "Вы прибудете в {nth} пункт назначения, он будет справа сзади", - "short": "Вы прибыли", - "short-upcoming": "Вы скоро прибудете", - "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится справа сзади" - }, - "slight right": { - "default": "Вы прибыли в {nth} пункт назначения, он находится справа впереди", - "upcoming": "Вы прибудете в {nth} пункт назначения, он будет справа впереди", - "short": "Вы прибыли", - "short-upcoming": "Вы скоро прибудете", - "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится справа впереди" - }, - "slight left": { - "default": "Вы прибыли в {nth} пункт назначения, он находится слева впереди", - "upcoming": "Вы прибудете в {nth} пункт назначения, он будет слева впереди", - "short": "Вы прибыли", - "short-upcoming": "Вы скоро прибудете", - "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится слева впереди" - }, - "straight": { - "default": "Вы прибыли в {nth} пункт назначения, он находится перед Вами", - "upcoming": "Вы прибудете в {nth} пункт назначения, он будет перед Вами", - "short": "Вы прибыли", - "short-upcoming": "Вы скоро прибудете", - "named": "Вы прибыли в пункт назначения, {waypoint_name}, он находится перед Вами" - } - }, - "continue": { - "default": { - "default": "Двигайтесь {modifier}", - "name": "Двигайтесь {modifier} по {way_name:dative}", - "destination": "Двигайтесь {modifier} в направлении {destination}", - "exit": "Двигайтесь {modifier} на {way_name:accusative}" - }, - "straight": { - "default": "Двигайтесь прямо", - "name": "Продолжите движение по {way_name:dative}", - "destination": "Продолжите движение в направлении {destination}", - "distance": "Двигайтесь прямо {distance}", - "namedistance": "Двигайтесь прямо {distance} по {way_name:dative}" - }, - "sharp left": { - "default": "Резко поверните налево", - "name": "Резко поверните налево на {way_name:accusative}", - "destination": "Резко поверните налево в направлении {destination}" - }, - "sharp right": { - "default": "Резко поверните направо", - "name": "Резко поверните направо на {way_name:accusative}", - "destination": "Резко поверните направо в направлении {destination}" - }, - "slight left": { - "default": "Плавно поверните налево", - "name": "Плавно поверните налево на {way_name:accusative}", - "destination": "Плавно поверните налево в направлении {destination}" - }, - "slight right": { - "default": "Плавно поверните направо", - "name": "Плавно поверните направо на {way_name:accusative}", - "destination": "Плавно поверните направо в направлении {destination}" - }, - "uturn": { - "default": "Развернитесь", - "name": "Развернитесь и продолжите движение по {way_name:dative}", - "destination": "Развернитесь в направлении {destination}" - } - }, - "depart": { - "default": { - "default": "Двигайтесь в {direction} направлении", - "name": "Двигайтесь в {direction} направлении по {way_name:dative}", - "namedistance": "Двигайтесь {distance} в {direction} направлении по {way_name:dative}" - } - }, - "end of road": { - "default": { - "default": "Поверните {modifier}", - "name": "Поверните {modifier} на {way_name:accusative}", - "destination": "Поверните {modifier} в направлении {destination}" - }, - "straight": { - "default": "Двигайтесь прямо", - "name": "Двигайтесь прямо по {way_name:dative}", - "destination": "Двигайтесь прямо в направлении {destination}" - }, - "uturn": { - "default": "В конце дороги развернитесь", - "name": "Развернитесь в конце {way_name:genitive}", - "destination": "В конце дороги развернитесь в направлении {destination}" - } - }, - "fork": { - "default": { - "default": "На развилке двигайтесь {modifier}", - "name": "На развилке двигайтесь {modifier} на {way_name:accusative}", - "destination": "На развилке двигайтесь {modifier} в направлении {destination}" - }, - "slight left": { - "default": "На развилке держитесь левее", - "name": "На развилке держитесь левее на {way_name:accusative}", - "destination": "На развилке держитесь левее и продолжите движение в направлении {destination}" - }, - "slight right": { - "default": "На развилке держитесь правее", - "name": "На развилке держитесь правее на {way_name:accusative}", - "destination": "На развилке держитесь правее и продолжите движение в направлении {destination}" - }, - "sharp left": { - "default": "На развилке резко поверните налево", - "name": "Резко поверните налево на {way_name:accusative}", - "destination": "Резко поверните налево и продолжите движение в направлении {destination}" - }, - "sharp right": { - "default": "На развилке резко поверните направо", - "name": "Резко поверните направо на {way_name:accusative}", - "destination": "Резко поверните направо и продолжите движение в направлении {destination}" - }, - "uturn": { - "default": "На развилке развернитесь", - "name": "На развилке развернитесь на {way_name:prepositional}", - "destination": "На развилке развернитесь и продолжите движение в направлении {destination}" - } - }, - "merge": { - "default": { - "default": "Перестройтесь {modifier}", - "name": "Перестройтесь {modifier} на {way_name:accusative}", - "destination": "Перестройтесь {modifier} в направлении {destination}" - }, - "straight": { - "default": "Двигайтесь прямо", - "name": "Продолжите движение по {way_name:dative}", - "destination": "Продолжите движение в направлении {destination}" - }, - "slight left": { - "default": "Перестройтесь левее", - "name": "Перестройтесь левее на {way_name:accusative}", - "destination": "Перестройтесь левее в направлении {destination}" - }, - "slight right": { - "default": "Перестройтесь правее", - "name": "Перестройтесь правее на {way_name:accusative}", - "destination": "Перестройтесь правее в направлении {destination}" - }, - "sharp left": { - "default": "Перестраивайтесь левее", - "name": "Перестраивайтесь левее на {way_name:accusative}", - "destination": "Перестраивайтесь левее в направлении {destination}" - }, - "sharp right": { - "default": "Перестраивайтесь правее", - "name": "Перестраивайтесь правее на {way_name:accusative}", - "destination": "Перестраивайтесь правее в направлении {destination}" - }, - "uturn": { - "default": "Развернитесь", - "name": "Развернитесь на {way_name:prepositional}", - "destination": "Развернитесь в направлении {destination}" - } - }, - "new name": { - "default": { - "default": "Двигайтесь {modifier}", - "name": "Двигайтесь {modifier} на {way_name:accusative}", - "destination": "Двигайтесь {modifier} в направлении {destination}" - }, - "straight": { - "default": "Двигайтесь прямо", - "name": "Продолжите движение по {way_name:dative}", - "destination": "Продолжите движение в направлении {destination}" - }, - "sharp left": { - "default": "Резко поверните налево", - "name": "Резко поверните налево на {way_name:accusative}", - "destination": "Резко поверните налево и продолжите движение в направлении {destination}" - }, - "sharp right": { - "default": "Резко поверните направо", - "name": "Резко поверните направо на {way_name:accusative}", - "destination": "Резко поверните направо и продолжите движение в направлении {destination}" - }, - "slight left": { - "default": "Плавно поверните налево", - "name": "Плавно поверните налево на {way_name:accusative}", - "destination": "Плавно поверните налево в направлении {destination}" - }, - "slight right": { - "default": "Плавно поверните направо", - "name": "Плавно поверните направо на {way_name:accusative}", - "destination": "Плавно поверните направо в направлении {destination}" - }, - "uturn": { - "default": "Развернитесь", - "name": "Развернитесь на {way_name:prepositional}", - "destination": "Развернитесь и продолжите движение в направлении {destination}" - } - }, - "notification": { - "default": { - "default": "Двигайтесь {modifier}", - "name": "Двигайтесь {modifier} по {way_name:dative}", - "destination": "Двигайтесь {modifier} в направлении {destination}" - }, - "uturn": { - "default": "Развернитесь", - "name": "Развернитесь на {way_name:prepositional}", - "destination": "Развернитесь и продолжите движение в направлении {destination}" - } - }, - "off ramp": { - "default": { - "default": "Сверните на съезд", - "name": "Сверните на съезд на {way_name:accusative}", - "destination": "Сверните на съезд в направлении {destination}", - "exit": "Сверните на съезд {exit}", - "exit_destination": "Сверните на съезд {exit} в направлении {destination}" - }, - "left": { - "default": "Сверните на левый съезд", - "name": "Сверните на левый съезд на {way_name:accusative}", - "destination": "Сверните на левый съезд в направлении {destination}", - "exit": "Сверните на съезд {exit} слева", - "exit_destination": "Сверните на съезд {exit} слева в направлении {destination}" - }, - "right": { - "default": "Сверните на правый съезд", - "name": "Сверните на правый съезд на {way_name:accusative}", - "destination": "Сверните на правый съезд в направлении {destination}", - "exit": "Сверните на съезд {exit} справа", - "exit_destination": "Сверните на съезд {exit} справа в направлении {destination}" - }, - "sharp left": { - "default": "Поверните налево на съезд", - "name": "Поверните налево на съезд на {way_name:accusative}", - "destination": "Поверните налево на съезд в направлении {destination}", - "exit": "Поверните налево на съезд {exit}", - "exit_destination": "Поверните налево на съезд {exit} в направлении {destination}" - }, - "sharp right": { - "default": "Поверните направо на съезд", - "name": "Поверните направо на съезд на {way_name:accusative}", - "destination": "Поверните направо на съезд в направлении {destination}", - "exit": "Поверните направо на съезд {exit}", - "exit_destination": "Поверните направо на съезд {exit} в направлении {destination}" - }, - "slight left": { - "default": "Перестройтесь левее на съезд", - "name": "Перестройтесь левее на съезд на {way_name:accusative}", - "destination": "Перестройтесь левее на съезд в направлении {destination}", - "exit": "Перестройтесь левее на {exit}", - "exit_destination": "Перестройтесь левее на съезд {exit} в направлении {destination}" - }, - "slight right": { - "default": "Перестройтесь правее на съезд", - "name": "Перестройтесь правее на съезд на {way_name:accusative}", - "destination": "Перестройтесь правее на съезд в направлении {destination}", - "exit": "Перестройтесь правее на съезд {exit}", - "exit_destination": "Перестройтесь правее на съезд {exit} в направлении {destination}" - } - }, - "on ramp": { - "default": { - "default": "Сверните на автомагистраль", - "name": "Сверните на въезд на {way_name:accusative}", - "destination": "Сверните на въезд на автомагистраль в направлении {destination}" - }, - "left": { - "default": "Сверните на левый въезд на автомагистраль", - "name": "Сверните на левый въезд на {way_name:accusative}", - "destination": "Сверните на левый въезд на автомагистраль в направлении {destination}" - }, - "right": { - "default": "Сверните на правый въезд на автомагистраль", - "name": "Сверните на правый въезд на {way_name:accusative}", - "destination": "Сверните на правый въезд на автомагистраль в направлении {destination}" - }, - "sharp left": { - "default": "Поверните на левый въезд на автомагистраль", - "name": "Поверните на левый въезд на {way_name:accusative}", - "destination": "Поверните на левый въезд на автомагистраль в направлении {destination}" - }, - "sharp right": { - "default": "Поверните на правый въезд на автомагистраль", - "name": "Поверните на правый въезд на {way_name:accusative}", - "destination": "Поверните на правый въезд на автомагистраль в направлении {destination}" - }, - "slight left": { - "default": "Перестройтесь левее на въезд на автомагистраль", - "name": "Перестройтесь левее на {way_name:accusative}", - "destination": "Перестройтесь левее на автомагистраль в направлении {destination}" - }, - "slight right": { - "default": "Перестройтесь правее на въезд на автомагистраль", - "name": "Перестройтесь правее на {way_name:accusative}", - "destination": "Перестройтесь правее на автомагистраль в направлении {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Продолжите движение по круговой развязке", - "name": "На круговой развязке сверните на {way_name:accusative}", - "destination": "На круговой развязке сверните в направлении {destination}" - }, - "name": { - "default": "Продолжите движение по {rotary_name:dative}", - "name": "На {rotary_name:prepositional} сверните на {way_name:accusative}", - "destination": "На {rotary_name:prepositional} сверните в направлении {destination}" - }, - "exit": { - "default": "На круговой развязке сверните на {exit_number} съезд", - "name": "На круговой развязке сверните на {exit_number} съезд на {way_name:accusative}", - "destination": "На круговой развязке сверните на {exit_number} съезд в направлении {destination}" - }, - "name_exit": { - "default": "На {rotary_name:prepositional} сверните на {exit_number} съезд", - "name": "На {rotary_name:prepositional} сверните на {exit_number} съезд на {way_name:accusative}", - "destination": "На {rotary_name:prepositional} сверните на {exit_number} съезд в направлении {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "На круговой развязке сверните на {exit_number} съезд", - "name": "На круговой развязке сверните на {exit_number} съезд на {way_name:accusative}", - "destination": "На круговой развязке сверните на {exit_number} съезд в направлении {destination}" - }, - "default": { - "default": "Продолжите движение по круговой развязке", - "name": "На круговой развязке сверните на {way_name:accusative}", - "destination": "На круговой развязке сверните в направлении {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Двигайтесь {modifier}", - "name": "Двигайтесь {modifier} на {way_name:accusative}", - "destination": "Двигайтесь {modifier} в направлении {destination}" - }, - "left": { - "default": "Сверните налево", - "name": "Сверните налево на {way_name:accusative}", - "destination": "Сверните налево в направлении {destination}" - }, - "right": { - "default": "Сверните направо", - "name": "Сверните направо на {way_name:accusative}", - "destination": "Сверните направо в направлении {destination}" - }, - "straight": { - "default": "Двигайтесь прямо", - "name": "Двигайтесь прямо по {way_name:dative}", - "destination": "Двигайтесь прямо в направлении {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Сверните с круговой развязки", - "name": "Сверните с круговой развязки на {way_name:accusative}", - "destination": "Сверните с круговой развязки в направлении {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Сверните с круговой развязки", - "name": "Сверните с круговой развязки на {way_name:accusative}", - "destination": "Сверните с круговой развязки в направлении {destination}" - } - }, - "turn": { - "default": { - "default": "Двигайтесь {modifier}", - "name": "Двигайтесь {modifier} на {way_name:accusative}", - "destination": "Двигайтесь {modifier} в направлении {destination}" - }, - "left": { - "default": "Поверните налево", - "name": "Поверните налево на {way_name:accusative}", - "destination": "Поверните налево в направлении {destination}" - }, - "right": { - "default": "Поверните направо", - "name": "Поверните направо на {way_name:accusative}", - "destination": "Поверните направо в направлении {destination}" - }, - "straight": { - "default": "Двигайтесь прямо", - "name": "Двигайтесь по {way_name:dative}", - "destination": "Двигайтесь в направлении {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Продолжайте движение прямо" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],43:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1:a", - "2": "2:a", - "3": "3:e", - "4": "4:e", - "5": "5:e", - "6": "6:e", - "7": "7:e", - "8": "8:e", - "9": "9:e", - "10": "10:e" - }, - "direction": { - "north": "norr", - "northeast": "nordost", - "east": "öster", - "southeast": "sydost", - "south": "söder", - "southwest": "sydväst", - "west": "väster", - "northwest": "nordväst" - }, - "modifier": { - "left": "vänster", - "right": "höger", - "sharp left": "vänster", - "sharp right": "höger", - "slight left": "vänster", - "slight right": "höger", - "straight": "rakt fram", - "uturn": "U-sväng" - }, - "lanes": { - "xo": "Håll till höger", - "ox": "Håll till vänster", - "xox": "Håll till mitten", - "oxo": "Håll till vänster eller höger" - } - }, - "modes": { - "ferry": { - "default": "Ta färjan", - "name": "Ta färjan på {way_name}", - "destination": "Ta färjan mot {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, sedan efter {distance}, {instruction_two}", - "two linked": "{instruction_one}, sedan {instruction_two}", - "one in distance": "Om {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "exit {exit}" - }, - "arrive": { - "default": { - "default": "Du är framme vid din {nth} destination", - "upcoming": "Du är snart framme vid din {nth} destination", - "short": "Du är framme", - "short-upcoming": "Du är snart framme", - "named": "Du är framme vid {waypoint_name}" - }, - "left": { - "default": "Du är framme vid din {nth} destination, till vänster", - "upcoming": "Du är snart framme vid din {nth} destination, till vänster", - "short": "Du är framme", - "short-upcoming": "Du är snart framme", - "named": "Du är framme vid {waypoint_name}, till vänster" - }, - "right": { - "default": "Du är framme vid din {nth} destination, till höger", - "upcoming": "Du är snart framme vid din {nth} destination, till höger", - "short": "Du är framme", - "short-upcoming": "Du är snart framme", - "named": "Du är framme vid {waypoint_name}, till höger" - }, - "sharp left": { - "default": "Du är framme vid din {nth} destination, till vänster", - "upcoming": "Du är snart framme vid din {nth} destination, till vänster", - "short": "Du är framme", - "short-upcoming": "Du är snart framme", - "named": "Du är framme vid {waypoint_name}, till vänster" - }, - "sharp right": { - "default": "Du är framme vid din {nth} destination, till höger", - "upcoming": "Du är snart framme vid din {nth} destination, till höger", - "short": "Du är framme", - "short-upcoming": "Du är snart framme", - "named": "Du är framme vid {waypoint_name}, till höger" - }, - "slight right": { - "default": "Du är framme vid din {nth} destination, till höger", - "upcoming": "Du är snart framme vid din {nth} destination, till höger", - "short": "Du är framme", - "short-upcoming": "Du är snart framme", - "named": "Du är framme vid {waypoint_name}, till höger" - }, - "slight left": { - "default": "Du är framme vid din {nth} destination, till vänster", - "upcoming": "Du är snart framme vid din {nth} destination, till vänster", - "short": "Du är framme", - "short-upcoming": "Du är snart framme", - "named": "Du är framme vid {waypoint_name}, till vänster" - }, - "straight": { - "default": "Du är framme vid din {nth} destination, rakt fram", - "upcoming": "Du är snart framme vid din {nth} destination, rakt fram", - "short": "Du är framme", - "short-upcoming": "Du är snart framme", - "named": "Du är framme vid {waypoint_name}, rakt fram" - } - }, - "continue": { - "default": { - "default": "Sväng {modifier}", - "name": "Sväng {modifier} och fortsätt på {way_name}", - "destination": "Sväng {modifier} mot {destination}", - "exit": "Sväng {modifier} in på {way_name}" - }, - "straight": { - "default": "Fortsätt rakt fram", - "name": "Kör rakt fram och fortsätt på {way_name}", - "destination": "Fortsätt mot {destination}", - "distance": "Fortsätt rakt fram i {distance}", - "namedistance": "Fortsätt på {way_name} i {distance}" - }, - "sharp left": { - "default": "Sväng vänster", - "name": "Sväng vänster och fortsätt på {way_name}", - "destination": "Sväng vänster mot {destination}" - }, - "sharp right": { - "default": "Sväng höger", - "name": "Sväng höger och fortsätt på {way_name}", - "destination": "Sväng höger mot {destination}" - }, - "slight left": { - "default": "Sväng vänster", - "name": "Sväng vänster och fortsätt på {way_name}", - "destination": "Sväng vänster mot {destination}" - }, - "slight right": { - "default": "Sväng höger", - "name": "Sväng höger och fortsätt på {way_name}", - "destination": "Sväng höger mot {destination}" - }, - "uturn": { - "default": "Gör en U-sväng", - "name": "Gör en U-sväng och fortsätt på {way_name}", - "destination": "Gör en U-sväng mot {destination}" - } - }, - "depart": { - "default": { - "default": "Kör åt {direction}", - "name": "Kör åt {direction} på {way_name}", - "namedistance": "Kör {distance} åt {direction} på {way_name}" - } - }, - "end of road": { - "default": { - "default": "Sväng {modifier}", - "name": "Sväng {modifier} in på {way_name}", - "destination": "Sväng {modifier} mot {destination}" - }, - "straight": { - "default": "Fortsätt rakt fram", - "name": "Fortsätt rakt fram in på {way_name}", - "destination": "Fortsätt rakt fram mot {destination}" - }, - "uturn": { - "default": "Gör en U-sväng i slutet av vägen", - "name": "Gör en U-sväng in på {way_name} i slutet av vägen", - "destination": "Gör en U-sväng mot {destination} i slutet av vägen" - } - }, - "fork": { - "default": { - "default": "Håll till {modifier} där vägen delar sig", - "name": "Håll till {modifier} in på {way_name}", - "destination": "Håll till {modifier} mot {destination}" - }, - "slight left": { - "default": "Håll till vänster där vägen delar sig", - "name": "Håll till vänster in på {way_name}", - "destination": "Håll till vänster mot {destination}" - }, - "slight right": { - "default": "Håll till höger där vägen delar sig", - "name": "Håll till höger in på {way_name}", - "destination": "Håll till höger mot {destination}" - }, - "sharp left": { - "default": "Sväng vänster där vägen delar sig", - "name": "Sväng vänster in på {way_name}", - "destination": "Sväng vänster mot {destination}" - }, - "sharp right": { - "default": "Sväng höger där vägen delar sig", - "name": "Sväng höger in på {way_name}", - "destination": "Sväng höger mot {destination}" - }, - "uturn": { - "default": "Gör en U-sväng", - "name": "Gör en U-sväng in på {way_name}", - "destination": "Gör en U-sväng mot {destination}" - } - }, - "merge": { - "default": { - "default": "Byt till {modifier} körfält", - "name": "Byt till {modifier} körfält, in på {way_name}", - "destination": "Byt till {modifier} körfält, mot {destination}" - }, - "straight": { - "default": "Fortsätt", - "name": "Kör in på {way_name}", - "destination": "Kör mot {destination}" - }, - "slight left": { - "default": "Byt till vänstra körfältet", - "name": "Byt till vänstra körfältet, in på {way_name}", - "destination": "Byt till vänstra körfältet, mot {destination}" - }, - "slight right": { - "default": "Byt till högra körfältet", - "name": "Byt till högra körfältet, in på {way_name}", - "destination": "Byt till högra körfältet, mot {destination}" - }, - "sharp left": { - "default": "Byt till vänstra körfältet", - "name": "Byt till vänstra körfältet, in på {way_name}", - "destination": "Byt till vänstra körfältet, mot {destination}" - }, - "sharp right": { - "default": "Byt till högra körfältet", - "name": "Byt till högra körfältet, in på {way_name}", - "destination": "Byt till högra körfältet, mot {destination}" - }, - "uturn": { - "default": "Gör en U-sväng", - "name": "Gör en U-sväng in på {way_name}", - "destination": "Gör en U-sväng mot {destination}" - } - }, - "new name": { - "default": { - "default": "Fortsätt {modifier}", - "name": "Fortsätt {modifier} på {way_name}", - "destination": "Fortsätt {modifier} mot {destination}" - }, - "straight": { - "default": "Fortsätt rakt fram", - "name": "Fortsätt in på {way_name}", - "destination": "Fortsätt mot {destination}" - }, - "sharp left": { - "default": "Gör en skarp vänstersväng", - "name": "Gör en skarp vänstersväng in på {way_name}", - "destination": "Gör en skarp vänstersväng mot {destination}" - }, - "sharp right": { - "default": "Gör en skarp högersväng", - "name": "Gör en skarp högersväng in på {way_name}", - "destination": "Gör en skarp högersväng mot {destination}" - }, - "slight left": { - "default": "Fortsätt med lätt vänstersväng", - "name": "Fortsätt med lätt vänstersväng in på {way_name}", - "destination": "Fortsätt med lätt vänstersväng mot {destination}" - }, - "slight right": { - "default": "Fortsätt med lätt högersväng", - "name": "Fortsätt med lätt högersväng in på {way_name}", - "destination": "Fortsätt med lätt högersväng mot {destination}" - }, - "uturn": { - "default": "Gör en U-sväng", - "name": "Gör en U-sväng in på {way_name}", - "destination": "Gör en U-sväng mot {destination}" - } - }, - "notification": { - "default": { - "default": "Fortsätt {modifier}", - "name": "Fortsätt {modifier} på {way_name}", - "destination": "Fortsätt {modifier} mot {destination}" - }, - "uturn": { - "default": "Gör en U-sväng", - "name": "Gör en U-sväng in på {way_name}", - "destination": "Gör en U-sväng mot {destination}" - } - }, - "off ramp": { - "default": { - "default": "Ta avfarten", - "name": "Ta avfarten in på {way_name}", - "destination": "Ta avfarten mot {destination}", - "exit": "Ta avfart {exit} ", - "exit_destination": "Ta avfart {exit} mot {destination}" - }, - "left": { - "default": "Ta avfarten till vänster", - "name": "Ta avfarten till vänster in på {way_name}", - "destination": "Ta avfarten till vänster mot {destination}", - "exit": "Ta avfart {exit} till vänster", - "exit_destination": "Ta avfart {exit} till vänster mot {destination}" - }, - "right": { - "default": "Ta avfarten till höger", - "name": "Ta avfarten till höger in på {way_name}", - "destination": "Ta avfarten till höger mot {destination}", - "exit": "Ta avfart {exit} till höger", - "exit_destination": "Ta avfart {exit} till höger mot {destination}" - }, - "sharp left": { - "default": "Ta avfarten till vänster", - "name": "Ta avfarten till vänster in på {way_name}", - "destination": "Ta avfarten till vänster mot {destination}", - "exit": "Ta avfart {exit} till vänster", - "exit_destination": "Ta avfart {exit} till vänster mot {destination}" - }, - "sharp right": { - "default": "Ta avfarten till höger", - "name": "Ta avfarten till höger in på {way_name}", - "destination": "Ta avfarten till höger mot {destination}", - "exit": "Ta avfart {exit} till höger", - "exit_destination": "Ta avfart {exit} till höger mot {destination}" - }, - "slight left": { - "default": "Ta avfarten till vänster", - "name": "Ta avfarten till vänster in på {way_name}", - "destination": "Ta avfarten till vänster mot {destination}", - "exit": "Ta avfart {exit} till vänster", - "exit_destination": "Ta avfart{exit} till vänster mot {destination}" - }, - "slight right": { - "default": "Ta avfarten till höger", - "name": "Ta avfarten till höger in på {way_name}", - "destination": "Ta avfarten till höger mot {destination}", - "exit": "Ta avfart {exit} till höger", - "exit_destination": "Ta avfart {exit} till höger mot {destination}" - } - }, - "on ramp": { - "default": { - "default": "Ta påfarten", - "name": "Ta påfarten in på {way_name}", - "destination": "Ta påfarten mot {destination}" - }, - "left": { - "default": "Ta påfarten till vänster", - "name": "Ta påfarten till vänster in på {way_name}", - "destination": "Ta påfarten till vänster mot {destination}" - }, - "right": { - "default": "Ta påfarten till höger", - "name": "Ta påfarten till höger in på {way_name}", - "destination": "Ta påfarten till höger mot {destination}" - }, - "sharp left": { - "default": "Ta påfarten till vänster", - "name": "Ta påfarten till vänster in på {way_name}", - "destination": "Ta påfarten till vänster mot {destination}" - }, - "sharp right": { - "default": "Ta påfarten till höger", - "name": "Ta påfarten till höger in på {way_name}", - "destination": "Ta påfarten till höger mot {destination}" - }, - "slight left": { - "default": "Ta påfarten till vänster", - "name": "Ta påfarten till vänster in på {way_name}", - "destination": "Ta påfarten till vänster mot {destination}" - }, - "slight right": { - "default": "Ta påfarten till höger", - "name": "Ta påfarten till höger in på {way_name}", - "destination": "Ta påfarten till höger mot {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Kör in i rondellen", - "name": "I rondellen, ta avfarten in på {way_name}", - "destination": "I rondellen, ta av mot {destination}" - }, - "name": { - "default": "Kör in i {rotary_name}", - "name": "I {rotary_name}, ta av in på {way_name}", - "destination": "I {rotary_name}, ta av mot {destination}" - }, - "exit": { - "default": "I rondellen, ta {exit_number} avfarten", - "name": "I rondellen, ta {exit_number} avfarten in på {way_name}", - "destination": "I rondellen, ta {exit_number} avfarten mot {destination}" - }, - "name_exit": { - "default": "I {rotary_name}, ta {exit_number} avfarten", - "name": "I {rotary_name}, ta {exit_number} avfarten in på {way_name}", - "destination": "I {rotary_name}, ta {exit_number} avfarten mot {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "I rondellen, ta {exit_number} avfarten", - "name": "I rondellen, ta {exit_number} avfarten in på {way_name}", - "destination": "I rondellen, ta {exit_number} avfarten mot {destination}" - }, - "default": { - "default": "Kör in i rondellen", - "name": "I rondellen, ta avfarten in på {way_name}", - "destination": "I rondellen, ta av mot {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Sväng {modifier}", - "name": "Sväng {modifier} in på {way_name}", - "destination": "Sväng {modifier} mot {destination}" - }, - "left": { - "default": "Sväng vänster", - "name": "Sväng vänster in på {way_name}", - "destination": "Sväng vänster mot {destination}" - }, - "right": { - "default": "Sväng höger", - "name": "Sväng höger in på {way_name}", - "destination": "Sväng höger mot {destination}" - }, - "straight": { - "default": "Fortsätt rakt fram", - "name": "Fortsätt rakt fram in på {way_name}", - "destination": "Fortsätt rakt fram mot {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Kör ut ur rondellen", - "name": "Kör ut ur rondellen in på {way_name}", - "destination": "Kör ut ur rondellen mot {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Kör ut ur rondellen", - "name": "Kör ut ur rondellen in på {way_name}", - "destination": "Kör ut ur rondellen mot {destination}" - } - }, - "turn": { - "default": { - "default": "Sväng {modifier}", - "name": "Sväng {modifier} in på {way_name}", - "destination": "Sväng {modifier} mot {destination}" - }, - "left": { - "default": "Sväng vänster", - "name": "Sväng vänster in på {way_name}", - "destination": "Sväng vänster mot {destination}" - }, - "right": { - "default": "Sväng höger", - "name": "Sväng höger in på {way_name}", - "destination": "Sväng höger mot {destination}" - }, - "straight": { - "default": "Kör rakt fram", - "name": "Kör rakt fram in på {way_name}", - "destination": "Kör rakt fram mot {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Fortsätt rakt fram" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],44:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "birinci", - "2": "ikinci", - "3": "üçüncü", - "4": "dördüncü", - "5": "beşinci", - "6": "altıncı", - "7": "yedinci", - "8": "sekizinci", - "9": "dokuzuncu", - "10": "onuncu" - }, - "direction": { - "north": "kuzey", - "northeast": "kuzeydoğu", - "east": "doğu", - "southeast": "güneydoğu", - "south": "güney", - "southwest": "güneybatı", - "west": "batı", - "northwest": "kuzeybatı" - }, - "modifier": { - "left": "sol", - "right": "sağ", - "sharp left": "keskin sol", - "sharp right": "keskin sağ", - "slight left": "hafif sol", - "slight right": "hafif sağ", - "straight": "düz", - "uturn": "U dönüşü" - }, - "lanes": { - "xo": "Sağda kalın", - "ox": "Solda kalın", - "xox": "Ortada kalın", - "oxo": "Solda veya sağda kalın" - } - }, - "modes": { - "ferry": { - "default": "Vapur kullan", - "name": "{way_name} vapurunu kullan", - "destination": "{destination} istikametine giden vapuru kullan" - } - }, - "phrase": { - "two linked by distance": "{instruction_one} ve {distance} sonra {instruction_two}", - "two linked": "{instruction_one} ve sonra {instruction_two}", - "one in distance": "{distance} sonra, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "exit {exit}" - }, - "arrive": { - "default": { - "default": "{nth} hedefinize ulaştınız", - "upcoming": "{nth} hedefinize ulaştınız", - "short": "{nth} hedefinize ulaştınız", - "short-upcoming": "{nth} hedefinize ulaştınız", - "named": "{waypoint_name} ulaştınız" - }, - "left": { - "default": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", - "upcoming": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", - "short": "{nth} hedefinize ulaştınız", - "short-upcoming": "{nth} hedefinize ulaştınız", - "named": "{waypoint_name} ulaştınız, hedefiniz solunuzdadır" - }, - "right": { - "default": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", - "upcoming": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", - "short": "{nth} hedefinize ulaştınız", - "short-upcoming": "{nth} hedefinize ulaştınız", - "named": "{waypoint_name} ulaştınız, hedefiniz sağınızdadır" - }, - "sharp left": { - "default": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", - "upcoming": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", - "short": "{nth} hedefinize ulaştınız", - "short-upcoming": "{nth} hedefinize ulaştınız", - "named": "{waypoint_name} ulaştınız, hedefiniz solunuzdadır" - }, - "sharp right": { - "default": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", - "upcoming": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", - "short": "{nth} hedefinize ulaştınız", - "short-upcoming": "{nth} hedefinize ulaştınız", - "named": "{waypoint_name} ulaştınız, hedefiniz sağınızdadır" - }, - "slight right": { - "default": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", - "upcoming": "{nth} hedefinize ulaştınız, hedefiniz sağınızdadır", - "short": "{nth} hedefinize ulaştınız", - "short-upcoming": "{nth} hedefinize ulaştınız", - "named": "{waypoint_name} ulaştınız, hedefiniz sağınızdadır" - }, - "slight left": { - "default": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", - "upcoming": "{nth} hedefinize ulaştınız, hedefiniz solunuzdadır", - "short": "{nth} hedefinize ulaştınız", - "short-upcoming": "{nth} hedefinize ulaştınız", - "named": "{waypoint_name} ulaştınız, hedefiniz solunuzdadır" - }, - "straight": { - "default": "{nth} hedefinize ulaştınız, hedefiniz karşınızdadır", - "upcoming": "{nth} hedefinize ulaştınız, hedefiniz karşınızdadır", - "short": "{nth} hedefinize ulaştınız", - "short-upcoming": "{nth} hedefinize ulaştınız", - "named": "{waypoint_name} ulaştınız, hedefiniz karşınızdadır" - } - }, - "continue": { - "default": { - "default": "{modifier} yöne dön", - "name": "{way_name} üzerinde kalmak için {modifier} yöne dön", - "destination": "{destination} istikametinde {modifier} yöne dön", - "exit": "{way_name} üzerinde {modifier} yöne dön" - }, - "straight": { - "default": "Düz devam edin", - "name": "{way_name} üzerinde kalmak için düz devam et", - "destination": "{destination} istikametinde devam et", - "distance": "{distance} boyunca düz devam et", - "namedistance": "{distance} boyunca {way_name} üzerinde devam et" - }, - "sharp left": { - "default": "Sola keskin dönüş yap", - "name": "{way_name} üzerinde kalmak için sola keskin dönüş yap", - "destination": "{destination} istikametinde sola keskin dönüş yap" - }, - "sharp right": { - "default": "Sağa keskin dönüş yap", - "name": "{way_name} üzerinde kalmak için sağa keskin dönüş yap", - "destination": "{destination} istikametinde sağa keskin dönüş yap" - }, - "slight left": { - "default": "Sola hafif dönüş yap", - "name": "{way_name} üzerinde kalmak için sola hafif dönüş yap", - "destination": "{destination} istikametinde sola hafif dönüş yap" - }, - "slight right": { - "default": "Sağa hafif dönüş yap", - "name": "{way_name} üzerinde kalmak için sağa hafif dönüş yap", - "destination": "{destination} istikametinde sağa hafif dönüş yap" - }, - "uturn": { - "default": "U dönüşü yapın", - "name": "Bir U-dönüşü yap ve {way_name} devam et", - "destination": "{destination} istikametinde bir U-dönüşü yap" - } - }, - "depart": { - "default": { - "default": "{direction} tarafına yönelin", - "name": "{way_name} üzerinde {direction} yöne git", - "namedistance": "Head {direction} on {way_name} for {distance}" - } - }, - "end of road": { - "default": { - "default": "{modifier} tarafa dönün", - "name": "{way_name} üzerinde {modifier} yöne dön", - "destination": "{destination} istikametinde {modifier} yöne dön" - }, - "straight": { - "default": "Düz devam edin", - "name": "{way_name} üzerinde düz devam et", - "destination": "{destination} istikametinde düz devam et" - }, - "uturn": { - "default": "Yolun sonunda U dönüşü yapın", - "name": "Yolun sonunda {way_name} üzerinde bir U-dönüşü yap", - "destination": "Yolun sonunda {destination} istikametinde bir U-dönüşü yap" - } - }, - "fork": { - "default": { - "default": "Yol ayrımında {modifier} yönde kal", - "name": "{way_name} üzerindeki yol ayrımında {modifier} yönde kal", - "destination": "{destination} istikametindeki yol ayrımında {modifier} yönde kal" - }, - "slight left": { - "default": "Çatalın solundan devam edin", - "name": "Çatalın solundan {way_name} yoluna doğru ", - "destination": "{destination} istikametindeki yol ayrımında solda kal" - }, - "slight right": { - "default": "Çatalın sağından devam edin", - "name": "{way_name} üzerindeki yol ayrımında sağda kal", - "destination": "{destination} istikametindeki yol ayrımında sağda kal" - }, - "sharp left": { - "default": "Çatalda keskin sola dönün", - "name": "{way_name} yoluna doğru sola keskin dönüş yapın", - "destination": "{destination} istikametinde sola keskin dönüş yap" - }, - "sharp right": { - "default": "Çatalda keskin sağa dönün", - "name": "{way_name} yoluna doğru sağa keskin dönüş yapın", - "destination": "{destination} istikametinde sağa keskin dönüş yap" - }, - "uturn": { - "default": "U dönüşü yapın", - "name": "{way_name} yoluna U dönüşü yapın", - "destination": "{destination} istikametinde bir U-dönüşü yap" - } - }, - "merge": { - "default": { - "default": "{modifier} yöne gir", - "name": "{way_name} üzerinde {modifier} yöne gir", - "destination": "{destination} istikametinde {modifier} yöne gir" - }, - "straight": { - "default": "düz yöne gir", - "name": "{way_name} üzerinde düz yöne gir", - "destination": "{destination} istikametinde düz yöne gir" - }, - "slight left": { - "default": "Sola gir", - "name": "{way_name} üzerinde sola gir", - "destination": "{destination} istikametinde sola gir" - }, - "slight right": { - "default": "Sağa gir", - "name": "{way_name} üzerinde sağa gir", - "destination": "{destination} istikametinde sağa gir" - }, - "sharp left": { - "default": "Sola gir", - "name": "{way_name} üzerinde sola gir", - "destination": "{destination} istikametinde sola gir" - }, - "sharp right": { - "default": "Sağa gir", - "name": "{way_name} üzerinde sağa gir", - "destination": "{destination} istikametinde sağa gir" - }, - "uturn": { - "default": "U dönüşü yapın", - "name": "{way_name} yoluna U dönüşü yapın", - "destination": "{destination} istikametinde bir U-dönüşü yap" - } - }, - "new name": { - "default": { - "default": "{modifier} yönde devam et", - "name": "{way_name} üzerinde {modifier} yönde devam et", - "destination": "{destination} istikametinde {modifier} yönde devam et" - }, - "straight": { - "default": "Düz devam et", - "name": "{way_name} üzerinde devam et", - "destination": "{destination} istikametinde devam et" - }, - "sharp left": { - "default": "Sola keskin dönüş yapın", - "name": "{way_name} yoluna doğru sola keskin dönüş yapın", - "destination": "{destination} istikametinde sola keskin dönüş yap" - }, - "sharp right": { - "default": "Sağa keskin dönüş yapın", - "name": "{way_name} yoluna doğru sağa keskin dönüş yapın", - "destination": "{destination} istikametinde sağa keskin dönüş yap" - }, - "slight left": { - "default": "Hafif soldan devam edin", - "name": "{way_name} üzerinde hafif solda devam et", - "destination": "{destination} istikametinde hafif solda devam et" - }, - "slight right": { - "default": "Hafif sağdan devam edin", - "name": "{way_name} üzerinde hafif sağda devam et", - "destination": "{destination} istikametinde hafif sağda devam et" - }, - "uturn": { - "default": "U dönüşü yapın", - "name": "{way_name} yoluna U dönüşü yapın", - "destination": "{destination} istikametinde bir U-dönüşü yap" - } - }, - "notification": { - "default": { - "default": "{modifier} yönde devam et", - "name": "{way_name} üzerinde {modifier} yönde devam et", - "destination": "{destination} istikametinde {modifier} yönde devam et" - }, - "uturn": { - "default": "U dönüşü yapın", - "name": "{way_name} yoluna U dönüşü yapın", - "destination": "{destination} istikametinde bir U-dönüşü yap" - } - }, - "off ramp": { - "default": { - "default": "Bağlantı yoluna geç", - "name": "{way_name} üzerindeki bağlantı yoluna geç", - "destination": "{destination} istikametine giden bağlantı yoluna geç", - "exit": "{exit} çıkış yoluna geç", - "exit_destination": "{destination} istikametindeki {exit} çıkış yoluna geç" - }, - "left": { - "default": "Soldaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sol bağlantı yoluna geç", - "destination": "{destination} istikametine giden sol bağlantı yoluna geç", - "exit": "Soldaki {exit} çıkış yoluna geç", - "exit_destination": "{destination} istikametindeki {exit} sol çıkış yoluna geç" - }, - "right": { - "default": "Sağdaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", - "destination": "{destination} istikametine giden sağ bağlantı yoluna geç", - "exit": "Sağdaki {exit} çıkış yoluna geç", - "exit_destination": "{destination} istikametindeki {exit} sağ çıkış yoluna geç" - }, - "sharp left": { - "default": "Soldaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sol bağlantı yoluna geç", - "destination": "{destination} istikametine giden sol bağlantı yoluna geç", - "exit": "Soldaki {exit} çıkış yoluna geç", - "exit_destination": "{destination} istikametindeki {exit} sol çıkış yoluna geç" - }, - "sharp right": { - "default": "Sağdaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", - "destination": "{destination} istikametine giden sağ bağlantı yoluna geç", - "exit": "Sağdaki {exit} çıkış yoluna geç", - "exit_destination": "{destination} istikametindeki {exit} sağ çıkış yoluna geç" - }, - "slight left": { - "default": "Soldaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sol bağlantı yoluna geç", - "destination": "{destination} istikametine giden sol bağlantı yoluna geç", - "exit": "Soldaki {exit} çıkış yoluna geç", - "exit_destination": "{destination} istikametindeki {exit} sol çıkış yoluna geç" - }, - "slight right": { - "default": "Sağdaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", - "destination": "{destination} istikametine giden sağ bağlantı yoluna geç", - "exit": "Sağdaki {exit} çıkış yoluna geç", - "exit_destination": "{destination} istikametindeki {exit} sağ çıkış yoluna geç" - } - }, - "on ramp": { - "default": { - "default": "Bağlantı yoluna geç", - "name": "{way_name} üzerindeki bağlantı yoluna geç", - "destination": "{destination} istikametine giden bağlantı yoluna geç" - }, - "left": { - "default": "Soldaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sol bağlantı yoluna geç", - "destination": "{destination} istikametine giden sol bağlantı yoluna geç" - }, - "right": { - "default": "Sağdaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", - "destination": "{destination} istikametine giden sağ bağlantı yoluna geç" - }, - "sharp left": { - "default": "Soldaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sol bağlantı yoluna geç", - "destination": "{destination} istikametine giden sol bağlantı yoluna geç" - }, - "sharp right": { - "default": "Sağdaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", - "destination": "{destination} istikametine giden sağ bağlantı yoluna geç" - }, - "slight left": { - "default": "Soldaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sol bağlantı yoluna geç", - "destination": "{destination} istikametine giden sol bağlantı yoluna geç" - }, - "slight right": { - "default": "Sağdaki bağlantı yoluna geç", - "name": "{way_name} üzerindeki sağ bağlantı yoluna geç", - "destination": "{destination} istikametine giden sağ bağlantı yoluna geç" - } - }, - "rotary": { - "default": { - "default": { - "default": "Dönel kavşağa gir", - "name": "Dönel kavşağa gir ve {way_name} üzerinde çık", - "destination": "Dönel kavşağa gir ve {destination} istikametinde çık" - }, - "name": { - "default": "{rotary_name} dönel kavşağa gir", - "name": "{rotary_name} dönel kavşağa gir ve {way_name} üzerinde çık", - "destination": "{rotary_name} dönel kavşağa gir ve {destination} istikametinde çık" - }, - "exit": { - "default": "Dönel kavşağa gir ve {exit_number} numaralı çıkışa gir", - "name": "Dönel kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir", - "destination": "Dönel kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir" - }, - "name_exit": { - "default": "{rotary_name} dönel kavşağa gir ve {exit_number} numaralı çıkışa gir", - "name": "{rotary_name} dönel kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir", - "destination": "{rotary_name} dönel kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Göbekli kavşağa gir ve {exit_number} numaralı çıkışa gir", - "name": "Göbekli kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir", - "destination": "Göbekli kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir" - }, - "default": { - "default": "Göbekli kavşağa gir", - "name": "Göbekli kavşağa gir ve {way_name} üzerinde çık", - "destination": "Göbekli kavşağa gir ve {destination} istikametinde çık" - } - } - }, - "roundabout turn": { - "default": { - "default": "{modifier} yöne dön", - "name": "{way_name} üzerinde {modifier} yöne dön", - "destination": "{destination} istikametinde {modifier} yöne dön" - }, - "left": { - "default": "Sola dön", - "name": "{way_name} üzerinde sola dön", - "destination": "{destination} istikametinde sola dön" - }, - "right": { - "default": "Sağa dön", - "name": "{way_name} üzerinde sağa dön", - "destination": "{destination} istikametinde sağa dön" - }, - "straight": { - "default": "Düz devam et", - "name": "{way_name} üzerinde düz devam et", - "destination": "{destination} istikametinde düz devam et" - } - }, - "exit roundabout": { - "default": { - "default": "{modifier} yöne dön", - "name": "{way_name} üzerinde {modifier} yöne dön", - "destination": "{destination} istikametinde {modifier} yöne dön" - }, - "left": { - "default": "Sola dön", - "name": "{way_name} üzerinde sola dön", - "destination": "{destination} istikametinde sola dön" - }, - "right": { - "default": "Sağa dön", - "name": "{way_name} üzerinde sağa dön", - "destination": "{destination} istikametinde sağa dön" - }, - "straight": { - "default": "Düz devam et", - "name": "{way_name} üzerinde düz devam et", - "destination": "{destination} istikametinde düz devam et" - } - }, - "exit rotary": { - "default": { - "default": "{modifier} yöne dön", - "name": "{way_name} üzerinde {modifier} yöne dön", - "destination": "{destination} istikametinde {modifier} yöne dön" - }, - "left": { - "default": "Sola dön", - "name": "{way_name} üzerinde sola dön", - "destination": "{destination} istikametinde sola dön" - }, - "right": { - "default": "Sağa dön", - "name": "{way_name} üzerinde sağa dön", - "destination": "{destination} istikametinde sağa dön" - }, - "straight": { - "default": "Düz devam et", - "name": "{way_name} üzerinde düz devam et", - "destination": "{destination} istikametinde düz devam et" - } - }, - "turn": { - "default": { - "default": "{modifier} yöne dön", - "name": "{way_name} üzerinde {modifier} yöne dön", - "destination": "{destination} istikametinde {modifier} yöne dön" - }, - "left": { - "default": "Sola dönün", - "name": "{way_name} üzerinde sola dön", - "destination": "{destination} istikametinde sola dön" - }, - "right": { - "default": "Sağa dönün", - "name": "{way_name} üzerinde sağa dön", - "destination": "{destination} istikametinde sağa dön" - }, - "straight": { - "default": "Düz git", - "name": "{way_name} üzerinde düz git", - "destination": "{destination} istikametinde düz git" - } - }, - "use lane": { - "no_lanes": { - "default": "Düz devam edin" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],45:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "1й", - "2": "2й", - "3": "3й", - "4": "4й", - "5": "5й", - "6": "6й", - "7": "7й", - "8": "8й", - "9": "9й", - "10": "10й" - }, - "direction": { - "north": "північ", - "northeast": "північний схід", - "east": "схід", - "southeast": "південний схід", - "south": "південь", - "southwest": "південний захід", - "west": "захід", - "northwest": "північний захід" - }, - "modifier": { - "left": "ліворуч", - "right": "праворуч", - "sharp left": "різко ліворуч", - "sharp right": "різко праворуч", - "slight left": "плавно ліворуч", - "slight right": "плавно праворуч", - "straight": "прямо", - "uturn": "розворот" - }, - "lanes": { - "xo": "Тримайтесь праворуч", - "ox": "Тримайтесь ліворуч", - "xox": "Тримайтесь в середині", - "oxo": "Тримайтесь праворуч або ліворуч" - } - }, - "modes": { - "ferry": { - "default": "Скористайтесь поромом", - "name": "Скористайтесь поромом {way_name}", - "destination": "Скористайтесь поромом у напрямку {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, потім, через {distance}, {instruction_two}", - "two linked": "{instruction_one}, потім {instruction_two}", - "one in distance": "Через {distance}, {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "з'їзд {exit}" - }, - "arrive": { - "default": { - "default": "Ви прибули у ваш {nth} пункт призначення", - "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення", - "short": "Ви прибули", - "short-upcoming": "Ви прибудете", - "named": "Ви прибули у {waypoint_name}" - }, - "left": { - "default": "Ви прибули у ваш {nth} пункт призначення, він – ліворуч", - "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, ліворуч", - "short": "Ви прибули", - "short-upcoming": "Ви прибудете", - "named": "Ви прибули у {waypoint_name} ліворуч" - }, - "right": { - "default": "Ви прибули у ваш {nth} пункт призначення, він – праворуч", - "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, праворуч", - "short": "Ви прибули", - "short-upcoming": "Ви прибудете", - "named": "Ви прибули у {waypoint_name} праворуч" - }, - "sharp left": { - "default": "Ви прибули у ваш {nth} пункт призначення, він – ліворуч", - "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, ліворуч", - "short": "Ви прибули", - "short-upcoming": "Ви прибудете", - "named": "Ви прибули у {waypoint_name} ліворуч" - }, - "sharp right": { - "default": "Ви прибули у ваш {nth} пункт призначення, він – праворуч", - "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, праворуч", - "short": "Ви прибули", - "short-upcoming": "Ви прибудете", - "named": "Ви прибули у {waypoint_name} праворуч" - }, - "slight right": { - "default": "Ви прибули у ваш {nth} пункт призначення, він – праворуч", - "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, праворуч", - "short": "Ви прибули", - "short-upcoming": "Ви прибудете", - "named": "Ви прибули у {waypoint_name} праворуч" - }, - "slight left": { - "default": "Ви прибули у ваш {nth} пункт призначення, він – ліворуч", - "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, ліворуч", - "short": "Ви прибули", - "short-upcoming": "Ви прибудете", - "named": "Ви прибули у {waypoint_name} ліворуч" - }, - "straight": { - "default": "Ви прибули у ваш {nth} пункт призначення, він – прямо перед вами", - "upcoming": "Ви наближаєтесь до вашого {nth} місця призначення, прямо перед вами", - "short": "Ви прибули", - "short-upcoming": "Ви прибудете", - "named": "Ви прибули у {waypoint_name} прямо перед вами" - } - }, - "continue": { - "default": { - "default": "Поверніть {modifier}", - "name": "Поверніть{modifier} залишаючись на {way_name}", - "destination": "Поверніть {modifier} у напрямку {destination}", - "exit": "Поверніть {modifier} на {way_name}" - }, - "straight": { - "default": "Продовжуйте рух прямо", - "name": "Продовжуйте рух прямо залишаючись на {way_name}", - "destination": "Рухайтесь у напрямку {destination}", - "distance": "Продовжуйте рух прямо {distance}", - "namedistance": "Продовжуйте рух по {way_name} {distance}" - }, - "sharp left": { - "default": "Поверніть різко ліворуч", - "name": "Поверніть різко ліворуч щоб залишитись на {way_name}", - "destination": "Поверніть різко ліворуч у напрямку {destination}" - }, - "sharp right": { - "default": "Поверніть різко праворуч", - "name": "Поверніть різко праворуч щоб залишитись на {way_name}", - "destination": "Поверніть різко праворуч у напрямку {destination}" - }, - "slight left": { - "default": "Поверніть різко ліворуч", - "name": "Поверніть плавно ліворуч щоб залишитись на {way_name}", - "destination": "Поверніть плавно ліворуч у напрямку {destination}" - }, - "slight right": { - "default": "Поверніть плавно праворуч", - "name": "Поверніть плавно праворуч щоб залишитись на {way_name}", - "destination": "Поверніть плавно праворуч у напрямку {destination}" - }, - "uturn": { - "default": "Здійсніть розворот", - "name": "Здійсніть розворот та рухайтесь по {way_name}", - "destination": "Здійсніть розворот у напрямку {destination}" - } - }, - "depart": { - "default": { - "default": "Прямуйте на {direction}", - "name": "Прямуйте на {direction} по {way_name}", - "namedistance": "Прямуйте на {direction} по {way_name} {distance}" - } - }, - "end of road": { - "default": { - "default": "Поверніть {modifier}", - "name": "Поверніть {modifier} на {way_name}", - "destination": "Поверніть {modifier} у напрямку {destination}" - }, - "straight": { - "default": "Продовжуйте рух прямо", - "name": "Продовжуйте рух прямо до {way_name}", - "destination": "Продовжуйте рух прямо у напрямку {destination}" - }, - "uturn": { - "default": "Здійсніть розворот в кінці дороги", - "name": "Здійсніть розворот на {way_name} в кінці дороги", - "destination": "Здійсніть розворот у напрямку {destination} в кінці дороги" - } - }, - "fork": { - "default": { - "default": "На роздоріжжі тримайтеся {modifier}", - "name": "Тримайтеся {modifier} і рухайтесь на {way_name}", - "destination": "Тримайтеся {modifier} в напрямку {destination}" - }, - "slight left": { - "default": "На роздоріжжі тримайтеся ліворуч", - "name": "Тримайтеся ліворуч і рухайтесь на {way_name}", - "destination": "Тримайтеся ліворуч в напрямку {destination}" - }, - "slight right": { - "default": "На роздоріжжі тримайтеся праворуч", - "name": "Тримайтеся праворуч і рухайтесь на {way_name}", - "destination": "Тримайтеся праворуч в напрямку {destination}" - }, - "sharp left": { - "default": "На роздоріжжі різко поверніть ліворуч", - "name": "Прийміть різко ліворуч на {way_name}", - "destination": "Прийміть різко ліворуч у напрямку {destination}" - }, - "sharp right": { - "default": "На роздоріжжі різко поверніть праворуч", - "name": "Прийміть різко праворуч на {way_name}", - "destination": "Прийміть різко праворуч у напрямку {destination}" - }, - "uturn": { - "default": "Здійсніть розворот", - "name": "Здійсніть розворот на {way_name}", - "destination": "Здійсніть розворот у напрямку {destination}" - } - }, - "merge": { - "default": { - "default": "Приєднайтеся до потоку {modifier}", - "name": "Приєднайтеся до потоку {modifier} на {way_name}", - "destination": "Приєднайтеся до потоку {modifier} у напрямку {destination}" - }, - "straight": { - "default": "Приєднайтеся до потоку", - "name": "Приєднайтеся до потоку на {way_name}", - "destination": "Приєднайтеся до потоку у напрямку {destination}" - }, - "slight left": { - "default": "Приєднайтеся до потоку ліворуч", - "name": "Приєднайтеся до потоку ліворуч на {way_name}", - "destination": "Приєднайтеся до потоку ліворуч у напрямку {destination}" - }, - "slight right": { - "default": "Приєднайтеся до потоку праворуч", - "name": "Приєднайтеся до потоку праворуч на {way_name}", - "destination": "Приєднайтеся до потоку праворуч у напрямку {destination}" - }, - "sharp left": { - "default": "Приєднайтеся до потоку ліворуч", - "name": "Приєднайтеся до потоку ліворуч на {way_name}", - "destination": "Приєднайтеся до потоку ліворуч у напрямку {destination}" - }, - "sharp right": { - "default": "Приєднайтеся до потоку праворуч", - "name": "Приєднайтеся до потоку праворуч на {way_name}", - "destination": "Приєднайтеся до потоку праворуч у напрямку {destination}" - }, - "uturn": { - "default": "Здійсніть розворот", - "name": "Здійсніть розворот на {way_name}", - "destination": "Здійсніть розворот у напрямку {destination}" - } - }, - "new name": { - "default": { - "default": "Рухайтесь {modifier}", - "name": "Рухайтесь {modifier} на {way_name}", - "destination": "Рухайтесь {modifier} у напрямку {destination}" - }, - "straight": { - "default": "Рухайтесь прямо", - "name": "Рухайтесь по {way_name}", - "destination": "Рухайтесь у напрямку {destination}" - }, - "sharp left": { - "default": "Прийміть різко ліворуч", - "name": "Прийміть різко ліворуч на {way_name}", - "destination": "Прийміть різко ліворуч у напрямку {destination}" - }, - "sharp right": { - "default": "Прийміть різко праворуч", - "name": "Прийміть різко праворуч на {way_name}", - "destination": "Прийміть різко праворуч у напрямку {destination}" - }, - "slight left": { - "default": "Рухайтесь плавно ліворуч", - "name": "Рухайтесь плавно ліворуч на {way_name}", - "destination": "Рухайтесь плавно ліворуч у напрямку {destination}" - }, - "slight right": { - "default": "Рухайтесь плавно праворуч", - "name": "Рухайтесь плавно праворуч на {way_name}", - "destination": "Рухайтесь плавно праворуч у напрямку {destination}" - }, - "uturn": { - "default": "Здійсніть розворот", - "name": "Здійсніть розворот на {way_name}", - "destination": "Здійсніть розворот у напрямку {destination}" - } - }, - "notification": { - "default": { - "default": "Рухайтесь {modifier}", - "name": "Рухайтесь {modifier} на {way_name}", - "destination": "Рухайтесь {modifier} у напрямку {destination}" - }, - "uturn": { - "default": "Здійсніть розворот", - "name": "Здійсніть розворот на {way_name}", - "destination": "Здійсніть розворот у напрямку {destination}" - } - }, - "off ramp": { - "default": { - "default": "Рухайтесь на зʼїзд", - "name": "Рухайтесь на зʼїзд на {way_name}", - "destination": "Рухайтесь на зʼїзд у напрямку {destination}", - "exit": "Оберіть з'їзд {exit}", - "exit_destination": "Оберіть з'їзд {exit} у напрямку {destination}" - }, - "left": { - "default": "Рухайтесь на зʼїзд ліворуч", - "name": "Рухайтесь на зʼїзд ліворуч на {way_name}", - "destination": "Рухайтесь на зʼїзд ліворуч у напрямку {destination}", - "exit": "Оберіть з'їзд {exit} ліворуч", - "exit_destination": "Оберіть з'їзд {exit} ліворуч у напрямку {destination}" - }, - "right": { - "default": "Рухайтесь на зʼїзд праворуч", - "name": "Рухайтесь на зʼїзд праворуч на {way_name}", - "destination": "Рухайтесь на зʼїзд праворуч у напрямку {destination}", - "exit": "Оберіть з'їзд {exit} праворуч", - "exit_destination": "Оберіть з'їзд {exit} праворуч у напрямку {destination}" - }, - "sharp left": { - "default": "Рухайтесь на зʼїзд ліворуч", - "name": "Рухайтесь на зʼїзд ліворуч на {way_name}", - "destination": "Рухайтесь на зʼїзд ліворуч у напрямку {destination}", - "exit": "Оберіть з'їзд {exit} ліворуч", - "exit_destination": "Оберіть з'їзд {exit} ліворуч у напрямку {destination}" - }, - "sharp right": { - "default": "Рухайтесь на зʼїзд праворуч", - "name": "Рухайтесь на зʼїзд праворуч на {way_name}", - "destination": "Рухайтесь на зʼїзд праворуч у напрямку {destination}", - "exit": "Оберіть з'їзд {exit} праворуч", - "exit_destination": "Оберіть з'їзд {exit} праворуч у напрямку {destination}" - }, - "slight left": { - "default": "Рухайтесь на зʼїзд ліворуч", - "name": "Рухайтесь на зʼїзд ліворуч на {way_name}", - "destination": "Рухайтесь на зʼїзд ліворуч у напрямку {destination}", - "exit": "Оберіть з'їзд {exit} ліворуч", - "exit_destination": "Оберіть з'їзд {exit} ліворуч у напрямку {destination}" - }, - "slight right": { - "default": "Рухайтесь на зʼїзд праворуч", - "name": "Рухайтесь на зʼїзд праворуч на {way_name}", - "destination": "Рухайтесь на зʼїзд праворуч у напрямку {destination}", - "exit": "Оберіть з'їзд {exit} праворуч", - "exit_destination": "Оберіть з'їзд {exit} праворуч у напрямку {destination}" - } - }, - "on ramp": { - "default": { - "default": "Рухайтесь на вʼїзд", - "name": "Рухайтесь на вʼїзд на {way_name}", - "destination": "Рухайтесь на вʼїзд у напрямку {destination}" - }, - "left": { - "default": "Рухайтесь на вʼїзд ліворуч", - "name": "Рухайтесь на вʼїзд ліворуч на {way_name}", - "destination": "Рухайтесь на вʼїзд ліворуч у напрямку {destination}" - }, - "right": { - "default": "Рухайтесь на вʼїзд праворуч", - "name": "Рухайтесь на вʼїзд праворуч на {way_name}", - "destination": "Рухайтесь на вʼїзд праворуч у напрямку {destination}" - }, - "sharp left": { - "default": "Рухайтесь на вʼїзд ліворуч", - "name": "Рухайтесь на вʼїзд ліворуч на {way_name}", - "destination": "Рухайтесь на вʼїзд ліворуч у напрямку {destination}" - }, - "sharp right": { - "default": "Рухайтесь на вʼїзд праворуч", - "name": "Рухайтесь на вʼїзд праворуч на {way_name}", - "destination": "Рухайтесь на вʼїзд праворуч у напрямку {destination}" - }, - "slight left": { - "default": "Рухайтесь на вʼїзд ліворуч", - "name": "Рухайтесь на вʼїзд ліворуч на {way_name}", - "destination": "Рухайтесь на вʼїзд ліворуч у напрямку {destination}" - }, - "slight right": { - "default": "Рухайтесь на вʼїзд праворуч", - "name": "Рухайтесь на вʼїзд праворуч на {way_name}", - "destination": "Рухайтесь на вʼїзд праворуч у напрямку {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Рухайтесь по колу", - "name": "Рухайтесь по колу до {way_name}", - "destination": "Рухайтесь по колу в напрямку {destination}" - }, - "name": { - "default": "Рухайтесь по {rotary_name}", - "name": "Рухайтесь по {rotary_name} та поверніть на {way_name}", - "destination": "Рухайтесь по {rotary_name} та поверніть в напрямку {destination}" - }, - "exit": { - "default": "Рухайтесь по колу та повереніть у {exit_number} з'їзд", - "name": "Рухайтесь по колу та поверніть у {exit_number} з'їзд на {way_name}", - "destination": "Рухайтесь по колу та поверніть у {exit_number} з'їзд у напрямку {destination}" - }, - "name_exit": { - "default": "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд", - "name": "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд на {way_name}", - "destination": "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд в напрямку {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Рухайтесь по колу та повереніть у {exit_number} з'їзд", - "name": "Рухайтесь по колу та поверніть у {exit_number} з'їзд на {way_name}", - "destination": "Рухайтесь по колу та поверніть у {exit_number} з'їзд у напрямку {destination}" - }, - "default": { - "default": "Рухайтесь по колу", - "name": "Рухайтесь по колу до {way_name}", - "destination": "Рухайтесь по колу в напрямку {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Рухайтесь {modifier}", - "name": "Рухайтесь {modifier} на {way_name}", - "destination": "Рухайтесь {modifier} в напрямку {destination}" - }, - "left": { - "default": "Поверніть ліворуч", - "name": "Поверніть ліворуч на {way_name}", - "destination": "Поверніть ліворуч у напрямку {destination}" - }, - "right": { - "default": "Поверніть праворуч", - "name": "Поверніть праворуч на {way_name}", - "destination": "Поверніть праворуч у напрямку {destination}" - }, - "straight": { - "default": "Рухайтесь прямо", - "name": "Продовжуйте рух прямо до {way_name}", - "destination": "Продовжуйте рух прямо у напрямку {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Залишить коло", - "name": "Залишить коло на {way_name} зʼїзді", - "destination": "Залишить коло в напрямку {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Залишить коло", - "name": "Залишить коло на {way_name} зʼїзді", - "destination": "Залишить коло в напрямку {destination}" - } - }, - "turn": { - "default": { - "default": "Рухайтесь {modifier}", - "name": "Рухайтесь {modifier} на {way_name}", - "destination": "Рухайтесь {modifier} в напрямку {destination}" - }, - "left": { - "default": "Поверніть ліворуч", - "name": "Поверніть ліворуч на {way_name}", - "destination": "Поверніть ліворуч у напрямку {destination}" - }, - "right": { - "default": "Поверніть праворуч", - "name": "Поверніть праворуч на {way_name}", - "destination": "Поверніть праворуч у напрямку {destination}" - }, - "straight": { - "default": "Рухайтесь прямо", - "name": "Рухайтесь прямо по {way_name}", - "destination": "Рухайтесь прямо у напрямку {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Продовжуйте рух прямо" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],46:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": true - }, - "v5": { - "constants": { - "ordinalize": { - "1": "đầu tiên", - "2": "thứ 2", - "3": "thứ 3", - "4": "thứ 4", - "5": "thứ 5", - "6": "thú 6", - "7": "thứ 7", - "8": "thứ 8", - "9": "thứ 9", - "10": "thứ 10" - }, - "direction": { - "north": "bắc", - "northeast": "đông bắc", - "east": "đông", - "southeast": "đông nam", - "south": "nam", - "southwest": "tây nam", - "west": "tây", - "northwest": "tây bắc" - }, - "modifier": { - "left": "trái", - "right": "phải", - "sharp left": "trái gắt", - "sharp right": "phải gắt", - "slight left": "trái nghiêng", - "slight right": "phải nghiêng", - "straight": "thẳng", - "uturn": "ngược" - }, - "lanes": { - "xo": "Đi bên phải", - "ox": "Đi bên trái", - "xox": "Đi vào giữa", - "oxo": "Đi bên trái hay bên phải" - } - }, - "modes": { - "ferry": { - "default": "Lên phà", - "name": "Lên phà {way_name}", - "destination": "Lên phà đi {destination}" - } - }, - "phrase": { - "two linked by distance": "{instruction_one}, rồi {distance} nữa thì {instruction_two}", - "two linked": "{instruction_one}, rồi {instruction_two}", - "one in distance": "{distance} nữa thì {instruction_one}", - "name and ref": "{name} ({ref})", - "exit with number": "lối ra {exit}" - }, - "arrive": { - "default": { - "default": "Đến nơi {nth}", - "upcoming": "Đến nơi {nth}", - "short": "Đến nơi", - "short-upcoming": "Đến nơi", - "named": "Đến {waypoint_name}" - }, - "left": { - "default": "Đến nơi {nth} ở bên trái", - "upcoming": "Đến nơi {nth} ở bên trái", - "short": "Đến nơi", - "short-upcoming": "Đến nơi", - "named": "Đến {waypoint_name} ở bên trái" - }, - "right": { - "default": "Đến nơi {nth} ở bên phải", - "upcoming": "Đến nơi {nth} ở bên phải", - "short": "Đến nơi", - "short-upcoming": "Đến nơi", - "named": "Đến {waypoint_name} ở bên phải" - }, - "sharp left": { - "default": "Đến nơi {nth} ở bên trái", - "upcoming": "Đến nơi {nth} ở bên trái", - "short": "Đến nơi", - "short-upcoming": "Đến nơi", - "named": "Đến {waypoint_name} ở bên trái" - }, - "sharp right": { - "default": "Đến nơi {nth} ở bên phải", - "upcoming": "Đến nơi {nth} ở bên phải", - "short": "Đến nơi", - "short-upcoming": "Đến nơi", - "named": "Đến {waypoint_name} ở bên phải" - }, - "slight right": { - "default": "Đến nơi {nth} ở bên phải", - "upcoming": "Đến nơi {nth} ở bên phải", - "short": "Đến nơi", - "short-upcoming": "Đến nơi", - "named": "Đến {waypoint_name} ở bên phải" - }, - "slight left": { - "default": "Đến nơi {nth} ở bên trái", - "upcoming": "Đến nơi {nth} ở bên trái", - "short": "Đến nơi", - "short-upcoming": "Đến nơi", - "named": "Đến {waypoint_name} ở bên trái" - }, - "straight": { - "default": "Đến nơi {nth} ở trước mặt", - "upcoming": "Đến nơi {nth} ở trước mặt", - "short": "Đến nơi", - "short-upcoming": "Đến nơi", - "named": "Đến {waypoint_name} ở trước mặt" - } - }, - "continue": { - "default": { - "default": "Quẹo {modifier}", - "name": "Quẹo {modifier} để chạy tiếp trên {way_name}", - "destination": "Quẹo {modifier} về {destination}", - "exit": "Quẹo {modifier} vào {way_name}" - }, - "straight": { - "default": "Chạy thẳng", - "name": "Chạy tiếp trên {way_name}", - "destination": "Chạy tiếp về {destination}", - "distance": "Chạy thẳng cho {distance}", - "namedistance": "Chạy tiếp trên {way_name} cho {distance}" - }, - "sharp left": { - "default": "Quẹo gắt bên trái", - "name": "Quẹo gắt bên trái để chạy tiếp trên {way_name}", - "destination": "Quẹo gắt bên trái về {destination}" - }, - "sharp right": { - "default": "Quẹo gắt bên phải", - "name": "Quẹo gắt bên phải để chạy tiếp trên {way_name}", - "destination": "Quẹo gắt bên phải về {destination}" - }, - "slight left": { - "default": "Nghiêng về bên trái", - "name": "Nghiêng về bên trái để chạy tiếp trên {way_name}", - "destination": "Nghiêng về bên trái về {destination}" - }, - "slight right": { - "default": "Nghiêng về bên phải", - "name": "Nghiêng về bên phải để chạy tiếp trên {way_name}", - "destination": "Nghiêng về bên phải về {destination}" - }, - "uturn": { - "default": "Quẹo ngược lại", - "name": "Quẹo ngược lại trên {way_name}", - "destination": "Quẹo ngược về {destination}" - } - }, - "depart": { - "default": { - "default": "Đi về hướng {direction}", - "name": "Đi về hướng {direction} trên {way_name}", - "namedistance": "Đi về hướng {direction} trên {way_name} cho {distance}" - } - }, - "end of road": { - "default": { - "default": "Quẹo {modifier}", - "name": "Quẹo {modifier} vào {way_name}", - "destination": "Quẹo {modifier} về {destination}" - }, - "straight": { - "default": "Chạy thẳng", - "name": "Chạy tiếp trên {way_name}", - "destination": "Chạy tiếp về {destination}" - }, - "uturn": { - "default": "Quẹo ngược lại tại cuối đường", - "name": "Quẹo ngược vào {way_name} tại cuối đường", - "destination": "Quẹo ngược về {destination} tại cuối đường" - } - }, - "fork": { - "default": { - "default": "Đi bên {modifier} ở ngã ba", - "name": "Giữ bên {modifier} vào {way_name}", - "destination": "Giữ bên {modifier} về {destination}" - }, - "slight left": { - "default": "Nghiêng về bên trái ở ngã ba", - "name": "Giữ bên trái vào {way_name}", - "destination": "Giữ bên trái về {destination}" - }, - "slight right": { - "default": "Nghiêng về bên phải ở ngã ba", - "name": "Giữ bên phải vào {way_name}", - "destination": "Giữ bên phải về {destination}" - }, - "sharp left": { - "default": "Quẹo gắt bên trái ở ngã ba", - "name": "Quẹo gắt bên trái vào {way_name}", - "destination": "Quẹo gắt bên trái về {destination}" - }, - "sharp right": { - "default": "Quẹo gắt bên phải ở ngã ba", - "name": "Quẹo gắt bên phải vào {way_name}", - "destination": "Quẹo gắt bên phải về {destination}" - }, - "uturn": { - "default": "Quẹo ngược lại", - "name": "Quẹo ngược lại {way_name}", - "destination": "Quẹo ngược lại về {destination}" - } - }, - "merge": { - "default": { - "default": "Nhập sang {modifier}", - "name": "Nhập sang {modifier} vào {way_name}", - "destination": "Nhập sang {modifier} về {destination}" - }, - "straight": { - "default": "Nhập đường", - "name": "Nhập vào {way_name}", - "destination": "Nhập đường về {destination}" - }, - "slight left": { - "default": "Nhập sang trái", - "name": "Nhập sang trái vào {way_name}", - "destination": "Nhập sang trái về {destination}" - }, - "slight right": { - "default": "Nhập sang phải", - "name": "Nhập sang phải vào {way_name}", - "destination": "Nhập sang phải về {destination}" - }, - "sharp left": { - "default": "Nhập sang trái", - "name": "Nhập sang trái vào {way_name}", - "destination": "Nhập sang trái về {destination}" - }, - "sharp right": { - "default": "Nhập sang phải", - "name": "Nhập sang phải vào {way_name}", - "destination": "Nhập sang phải về {destination}" - }, - "uturn": { - "default": "Quẹo ngược lại", - "name": "Quẹo ngược lại {way_name}", - "destination": "Quẹo ngược lại về {destination}" - } - }, - "new name": { - "default": { - "default": "Chạy tiếp bên {modifier}", - "name": "Chạy tiếp bên {modifier} trên {way_name}", - "destination": "Chạy tiếp bên {modifier} về {destination}" - }, - "straight": { - "default": "Chạy thẳng", - "name": "Chạy tiếp trên {way_name}", - "destination": "Chạy tiếp về {destination}" - }, - "sharp left": { - "default": "Quẹo gắt bên trái", - "name": "Quẹo gắt bên trái vào {way_name}", - "destination": "Quẹo gắt bên trái về {destination}" - }, - "sharp right": { - "default": "Quẹo gắt bên phải", - "name": "Quẹo gắt bên phải vào {way_name}", - "destination": "Quẹo gắt bên phải về {destination}" - }, - "slight left": { - "default": "Nghiêng về bên trái", - "name": "Nghiêng về bên trái vào {way_name}", - "destination": "Nghiêng về bên trái về {destination}" - }, - "slight right": { - "default": "Nghiêng về bên phải", - "name": "Nghiêng về bên phải vào {way_name}", - "destination": "Nghiêng về bên phải về {destination}" - }, - "uturn": { - "default": "Quẹo ngược lại", - "name": "Quẹo ngược lại {way_name}", - "destination": "Quẹo ngược lại về {destination}" - } - }, - "notification": { - "default": { - "default": "Chạy tiếp bên {modifier}", - "name": "Chạy tiếp bên {modifier} trên {way_name}", - "destination": "Chạy tiếp bên {modifier} về {destination}" - }, - "uturn": { - "default": "Quẹo ngược lại", - "name": "Quẹo ngược lại {way_name}", - "destination": "Quẹo ngược lại về {destination}" - } - }, - "off ramp": { - "default": { - "default": "Đi đường nhánh", - "name": "Đi đường nhánh {way_name}", - "destination": "Đi đường nhánh về {destination}", - "exit": "Đi theo lối ra {exit}", - "exit_destination": "Đi theo lối ra {exit} về {destination}" - }, - "left": { - "default": "Đi đường nhánh bên trái", - "name": "Đi đường nhánh {way_name} bên trái", - "destination": "Đi đường nhánh bên trái về {destination}", - "exit": "Đi theo lối ra {exit} bên trái", - "exit_destination": "Đi theo lối ra {exit} bên trái về {destination}" - }, - "right": { - "default": "Đi đường nhánh bên phải", - "name": "Đi đường nhánh {way_name} bên phải", - "destination": "Đi đường nhánh bên phải về {destination}", - "exit": "Đi theo lối ra {exit} bên phải", - "exit_destination": "Đi theo lối ra {exit} bên phải về {destination}" - }, - "sharp left": { - "default": "Đi đường nhánh bên trái", - "name": "Đi đường nhánh {way_name} bên trái", - "destination": "Đi đường nhánh bên trái về {destination}", - "exit": "Đi theo lối ra {exit} bên trái", - "exit_destination": "Đi theo lối ra {exit} bên trái về {destination}" - }, - "sharp right": { - "default": "Đi đường nhánh bên phải", - "name": "Đi đường nhánh {way_name} bên phải", - "destination": "Đi đường nhánh bên phải về {destination}", - "exit": "Đi theo lối ra {exit} bên phải", - "exit_destination": "Đi theo lối ra {exit} bên phải về {destination}" - }, - "slight left": { - "default": "Đi đường nhánh bên trái", - "name": "Đi đường nhánh {way_name} bên trái", - "destination": "Đi đường nhánh bên trái về {destination}", - "exit": "Đi theo lối ra {exit} bên trái", - "exit_destination": "Đi theo lối ra {exit} bên trái về {destination}" - }, - "slight right": { - "default": "Đi đường nhánh bên phải", - "name": "Đi đường nhánh {way_name} bên phải", - "destination": "Đi đường nhánh bên phải về {destination}", - "exit": "Đi theo lối ra {exit} bên phải", - "exit_destination": "Đi theo lối ra {exit} bên phải về {destination}" - } - }, - "on ramp": { - "default": { - "default": "Đi đường nhánh", - "name": "Đi đường nhánh {way_name}", - "destination": "Đi đường nhánh về {destination}" - }, - "left": { - "default": "Đi đường nhánh bên trái", - "name": "Đi đường nhánh {way_name} bên trái", - "destination": "Đi đường nhánh bên trái về {destination}" - }, - "right": { - "default": "Đi đường nhánh bên phải", - "name": "Đi đường nhánh {way_name} bên phải", - "destination": "Đi đường nhánh bên phải về {destination}" - }, - "sharp left": { - "default": "Đi đường nhánh bên trái", - "name": "Đi đường nhánh {way_name} bên trái", - "destination": "Đi đường nhánh bên trái về {destination}" - }, - "sharp right": { - "default": "Đi đường nhánh bên phải", - "name": "Đi đường nhánh {way_name} bên phải", - "destination": "Đi đường nhánh bên phải về {destination}" - }, - "slight left": { - "default": "Đi đường nhánh bên trái", - "name": "Đi đường nhánh {way_name} bên trái", - "destination": "Đi đường nhánh bên trái về {destination}" - }, - "slight right": { - "default": "Đi đường nhánh bên phải", - "name": "Đi đường nhánh {way_name} bên phải", - "destination": "Đi đường nhánh bên phải về {destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "Đi vào bùng binh", - "name": "Đi vào bùng binh và ra tại {way_name}", - "destination": "Đi vào bùng binh và ra về {destination}" - }, - "name": { - "default": "Đi vào {rotary_name}", - "name": "Đi vào {rotary_name} và ra tại {way_name}", - "destination": "Đi và {rotary_name} và ra về {destination}" - }, - "exit": { - "default": "Đi vào bùng binh và ra tại đường {exit_number}", - "name": "Đi vào bùng binh và ra tại đường {exit_number} tức {way_name}", - "destination": "Đi vào bùng binh và ra tại đường {exit_number} về {destination}" - }, - "name_exit": { - "default": "Đi vào {rotary_name} và ra tại đường {exit_number}", - "name": "Đi vào {rotary_name} và ra tại đường {exit_number} tức {way_name}", - "destination": "Đi vào {rotary_name} và ra tại đường {exit_number} về {destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "Đi vào bùng binh và ra tại đường {exit_number}", - "name": "Đi vào bùng binh và ra tại đường {exit_number} tức {way_name}", - "destination": "Đi vào bùng binh và ra tại đường {exit_number} về {destination}" - }, - "default": { - "default": "Đi vào bùng binh", - "name": "Đi vào bùng binh và ra tại {way_name}", - "destination": "Đi vào bùng binh và ra về {destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "Quẹo {modifier}", - "name": "Quẹo {modifier} vào {way_name}", - "destination": "Quẹo {modifier} về {destination}" - }, - "left": { - "default": "Quẹo trái", - "name": "Quẹo trái vào {way_name}", - "destination": "Quẹo trái về {destination}" - }, - "right": { - "default": "Quẹo phải", - "name": "Quẹo phải vào {way_name}", - "destination": "Quẹo phải về {destination}" - }, - "straight": { - "default": "Chạy thẳng", - "name": "Chạy tiếp trên {way_name}", - "destination": "Chạy tiếp về {destination}" - } - }, - "exit roundabout": { - "default": { - "default": "Ra bùng binh", - "name": "Ra bùng binh vào {way_name}", - "destination": "Ra bùng binh về {destination}" - } - }, - "exit rotary": { - "default": { - "default": "Ra bùng binh", - "name": "Ra bùng binh vào {way_name}", - "destination": "Ra bùng binh về {destination}" - } - }, - "turn": { - "default": { - "default": "Quẹo {modifier}", - "name": "Quẹo {modifier} vào {way_name}", - "destination": "Quẹo {modifier} về {destination}" - }, - "left": { - "default": "Quẹo trái", - "name": "Quẹo trái vào {way_name}", - "destination": "Quẹo trái về {destination}" - }, - "right": { - "default": "Quẹo phải", - "name": "Quẹo phải vào {way_name}", - "destination": "Quẹo phải về {destination}" - }, - "straight": { - "default": "Chạy thẳng", - "name": "Chạy thẳng vào {way_name}", - "destination": "Chạy thẳng về {destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "Chạy thẳng" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],47:[function(_dereq_,module,exports){ -module.exports={ - "meta": { - "capitalizeFirstLetter": false - }, - "v5": { - "constants": { - "ordinalize": { - "1": "第一", - "2": "第二", - "3": "第三", - "4": "第四", - "5": "第五", - "6": "第六", - "7": "第七", - "8": "第八", - "9": "第九", - "10": "第十" - }, - "direction": { - "north": "北", - "northeast": "东北", - "east": "东", - "southeast": "东南", - "south": "南", - "southwest": "西南", - "west": "西", - "northwest": "西北" - }, - "modifier": { - "left": "向左", - "right": "向右", - "sharp left": "急向左", - "sharp right": "急向右", - "slight left": "稍向左", - "slight right": "稍向右", - "straight": "直行", - "uturn": "调头" - }, - "lanes": { - "xo": "靠右行驶", - "ox": "靠左行驶", - "xox": "保持在道路中间行驶", - "oxo": "保持在道路左侧或右侧行驶" - } - }, - "modes": { - "ferry": { - "default": "乘坐轮渡", - "name": "乘坐{way_name}轮渡", - "destination": "乘坐开往{destination}的轮渡" - } - }, - "phrase": { - "two linked by distance": "{instruction_one},{distance}后{instruction_two}", - "two linked": "{instruction_one},随后{instruction_two}", - "one in distance": "{distance}后{instruction_one}", - "name and ref": "{name}({ref})", - "exit with number": "出口{exit}" - }, - "arrive": { - "default": { - "default": "您已经到达您的{nth}个目的地", - "upcoming": "您即将到达您的{nth}个目的地", - "short": "已到达目的地", - "short-upcoming": "即将到达目的地", - "named": "您已到达{waypoint_name}" - }, - "left": { - "default": "您已经到达您的{nth}个目的地,目的地在道路左侧", - "upcoming": "您即将到达您的{nth}个目的地,目的地在道路左侧", - "short": "已到达目的地", - "short-upcoming": "即将到达目的地", - "named": "您已到达{waypoint_name},目的地在您左边。" - }, - "right": { - "default": "您已经到达您的{nth}个目的地,目的地在道路右侧", - "upcoming": "您即将到达您的{nth}个目的地,目的地在道路右侧", - "short": "已到达目的地", - "short-upcoming": "即将到达目的地", - "named": "您已到达{waypoint_name},目的地在您右边。" - }, - "sharp left": { - "default": "您已经到达您的{nth}个目的地,目的地在道路左侧", - "upcoming": "您即将到达您的{nth}个目的地,目的地在道路左侧", - "short": "已到达目的地", - "short-upcoming": "即将到达目的地", - "named": "您已到达{waypoint_name},目的地在您左边。" - }, - "sharp right": { - "default": "您已经到达您的{nth}个目的地,目的地在道路右侧", - "upcoming": "您即将到达您的{nth}个目的地,目的地在道路右侧", - "short": "已到达目的地", - "short-upcoming": "即将到达目的地", - "named": "您已到达{waypoint_name},目的地在您右边。" - }, - "slight right": { - "default": "您已经到达您的{nth}个目的地,目的地在道路左侧", - "upcoming": "您即将到达您的{nth}个目的地,目的地在道路左侧", - "short": "已到达目的地", - "short-upcoming": "即将到达目的地", - "named": "您已到达{waypoint_name},目的地在您右边。" - }, - "slight left": { - "default": "您已经到达您的{nth}个目的地,目的地在道路右侧", - "upcoming": "您即将到达您的{nth}个目的地,目的地在道路右侧", - "short": "已到达目的地", - "short-upcoming": "即将到达目的地", - "named": "您已到达{waypoint_name},目的地在您左边。" - }, - "straight": { - "default": "您已经到达您的{nth}个目的地,目的地在您正前方", - "upcoming": "您即将到达您的{nth}个目的地,目的地在您正前方", - "short": "已到达目的地", - "short-upcoming": "即将到达目的地", - "named": "您已到达{waypoint_name},目的地在您前方。" - } - }, - "continue": { - "default": { - "default": "{modifier}行驶", - "name": "在{way_name}上继续{modifier}行驶", - "destination": "{modifier}行驶,{destination}方向", - "exit": "{modifier}行驶,驶入{way_name}" - }, - "straight": { - "default": "继续直行", - "name": "在{way_name}上继续直行", - "destination": "继续直行,前往{destination}", - "distance": "继续直行{distance}", - "namedistance": "继续在{way_name}上直行{distance}" - }, - "sharp left": { - "default": "前方左急转弯", - "name": "前方左急转弯,继续在{way_name}上行驶", - "destination": "左急转弯,前往{destination}" - }, - "sharp right": { - "default": "前方右急转弯", - "name": "前方右急转弯,继续在{way_name}上行驶", - "destination": "右急转弯,前往{destination}" - }, - "slight left": { - "default": "前方稍向左转", - "name": "前方稍向左转,继续在{way_name}上行驶", - "destination": "稍向左转,前往{destination}" - }, - "slight right": { - "default": "前方稍向右转", - "name": "前方稍向右转,继续在{way_name}上行驶", - "destination": "前方稍向右转,前往{destination}" - }, - "uturn": { - "default": "前方调头", - "name": "前方调头,继续在{way_name}上行驶", - "destination": "前方调头,前往{destination}" - } - }, - "depart": { - "default": { - "default": "出发向{direction}", - "name": "出发向{direction},驶入{way_name}", - "namedistance": "出发向{direction},在{way_name}上继续行驶{distance}" - } - }, - "end of road": { - "default": { - "default": "{modifier}行驶", - "name": "{modifier}行驶,驶入{way_name}", - "destination": "{modifier}行驶,前往{destination}" - }, - "straight": { - "default": "继续直行", - "name": "继续直行,驶入{way_name}", - "destination": "继续直行,前往{destination}" - }, - "uturn": { - "default": "在道路尽头调头", - "name": "在道路尽头调头驶入{way_name}", - "destination": "在道路尽头调头,前往{destination}" - } - }, - "fork": { - "default": { - "default": "在岔道保持{modifier}", - "name": "在岔道口保持{modifier},驶入{way_name}", - "destination": "在岔道口保持{modifier},前往{destination}" - }, - "slight left": { - "default": "在岔道口保持左侧行驶", - "name": "在岔道口保持左侧行驶,驶入{way_name}", - "destination": "在岔道口保持左侧行驶,前往{destination}" - }, - "slight right": { - "default": "在岔道口保持右侧行驶", - "name": "在岔道口保持右侧行驶,驶入{way_name}", - "destination": "在岔道口保持右侧行驶,前往{destination}" - }, - "sharp left": { - "default": "在岔道口左急转弯", - "name": "在岔道口左急转弯,驶入{way_name}", - "destination": "在岔道口左急转弯,前往{destination}" - }, - "sharp right": { - "default": "在岔道口右急转弯", - "name": "在岔道口右急转弯,驶入{way_name}", - "destination": "在岔道口右急转弯,前往{destination}" - }, - "uturn": { - "default": "前方调头", - "name": "前方调头,驶入{way_name}", - "destination": "前方调头,前往{destination}" - } - }, - "merge": { - "default": { - "default": "{modifier}并道", - "name": "{modifier}并道,驶入{way_name}", - "destination": "{modifier}并道,前往{destination}" - }, - "straight": { - "default": "直行并道", - "name": "直行并道,驶入{way_name}", - "destination": "直行并道,前往{destination}" - }, - "slight left": { - "default": "稍向左并道", - "name": "稍向左并道,驶入{way_name}", - "destination": "稍向左并道,前往{destination}" - }, - "slight right": { - "default": "稍向右并道", - "name": "稍向右并道,驶入{way_name}", - "destination": "稍向右并道,前往{destination}" - }, - "sharp left": { - "default": "急向左并道", - "name": "急向左并道,驶入{way_name}", - "destination": "急向左并道,前往{destination}" - }, - "sharp right": { - "default": "急向右并道", - "name": "急向右并道,驶入{way_name}", - "destination": "急向右并道,前往{destination}" - }, - "uturn": { - "default": "前方调头", - "name": "前方调头,驶入{way_name}", - "destination": "前方调头,前往{destination}" - } - }, - "new name": { - "default": { - "default": "继续{modifier}", - "name": "继续{modifier},驶入{way_name}", - "destination": "继续{modifier},前往{destination}" - }, - "straight": { - "default": "继续直行", - "name": "继续在{way_name}上直行", - "destination": "继续直行,前往{destination}" - }, - "sharp left": { - "default": "前方左急转弯", - "name": "前方左急转弯,驶入{way_name}", - "destination": "左急转弯,前往{destination}" - }, - "sharp right": { - "default": "前方右急转弯", - "name": "前方右急转弯,驶入{way_name}", - "destination": "右急转弯,前往{destination}" - }, - "slight left": { - "default": "继续稍向左", - "name": "继续稍向左,驶入{way_name}", - "destination": "继续稍向左,前往{destination}" - }, - "slight right": { - "default": "继续稍向右", - "name": "继续稍向右,驶入{way_name}", - "destination": "继续稍向右,前往{destination}" - }, - "uturn": { - "default": "前方调头", - "name": "前方调头,上{way_name}", - "destination": "前方调头,前往{destination}" - } - }, - "notification": { - "default": { - "default": "继续{modifier}", - "name": "继续{modifier},驶入{way_name}", - "destination": "继续{modifier},前往{destination}" - }, - "uturn": { - "default": "前方调头", - "name": "前方调头,驶入{way_name}", - "destination": "前方调头,前往{destination}" - } - }, - "off ramp": { - "default": { - "default": "下匝道", - "name": "下匝道,驶入{way_name}", - "destination": "下匝道,前往{destination}", - "exit": "从{exit}出口驶出", - "exit_destination": "从{exit}出口驶出,前往{destination}" - }, - "left": { - "default": "下左侧匝道", - "name": "下左侧匝道,上{way_name}", - "destination": "下左侧匝道,前往{destination}", - "exit": "从左侧{exit}出口驶出", - "exit_destination": "从左侧{exit}出口驶出,前往{destination}" - }, - "right": { - "default": "下右侧匝道", - "name": "下右侧匝道,驶入{way_name}", - "destination": "下右侧匝道,前往{destination}", - "exit": "从右侧{exit}出口驶出", - "exit_destination": "从右侧{exit}出口驶出,前往{destination}" - }, - "sharp left": { - "default": "急向左下匝道", - "name": "急向左下匝道,驶入{way_name}", - "destination": "急向左下匝道,前往{destination}", - "exit": "从左侧{exit}出口驶出", - "exit_destination": "从左侧{exit}出口驶出,前往{destination}" - }, - "sharp right": { - "default": "急向右下匝道", - "name": "急向右下匝道,驶入{way_name}", - "destination": "急向右下匝道,前往{destination}", - "exit": "从右侧{exit}出口驶出", - "exit_destination": "从右侧{exit}出口驶出,前往{destination}" - }, - "slight left": { - "default": "稍向左下匝道", - "name": "稍向左下匝道,驶入{way_name}", - "destination": "稍向左下匝道,前往{destination}", - "exit": "从左侧{exit}出口驶出", - "exit_destination": "从左侧{exit}出口驶出,前往{destination}" - }, - "slight right": { - "default": "稍向右下匝道", - "name": "稍向右下匝道,驶入{way_name}", - "destination": "稍向右下匝道,前往{destination}", - "exit": "从右侧{exit}出口驶出", - "exit_destination": "从右侧{exit}出口驶出,前往{destination}" - } - }, - "on ramp": { - "default": { - "default": "上匝道", - "name": "上匝道,驶入{way_name}", - "destination": "上匝道,前往{destination}" - }, - "left": { - "default": "上左侧匝道", - "name": "上左侧匝道,驶入{way_name}", - "destination": "上左侧匝道,前往{destination}" - }, - "right": { - "default": "上右侧匝道", - "name": "上右侧匝道,驶入{way_name}", - "destination": "上右侧匝道,前往{destination}" - }, - "sharp left": { - "default": "急向左上匝道", - "name": "急向左上匝道,驶入{way_name}", - "destination": "急向左上匝道,前往{destination}" - }, - "sharp right": { - "default": "急向右上匝道", - "name": "急向右上匝道,驶入{way_name}", - "destination": "急向右上匝道,前往{destination}" - }, - "slight left": { - "default": "稍向左上匝道", - "name": "稍向左上匝道,驶入{way_name}", - "destination": "稍向左上匝道,前往{destination}" - }, - "slight right": { - "default": "稍向右上匝道", - "name": "稍向右上匝道,驶入{way_name}", - "destination": "稍向右上匝道,前往{destination}" - } - }, - "rotary": { - "default": { - "default": { - "default": "进入环岛", - "name": "通过环岛后驶入{way_name}", - "destination": "通过环岛后前往{destination}" - }, - "name": { - "default": "进入{rotary_name}环岛", - "name": "通过{rotary_name}环岛后驶入{way_name}", - "destination": "通过{rotary_name}环岛后前往{destination}" - }, - "exit": { - "default": "进入环岛后从{exit_number}出口驶出", - "name": "进入环岛后从{exit_number}出口驶出,上{way_name}", - "destination": "进入环岛后从{exit_number}出口驶出,前往{destination}" - }, - "name_exit": { - "default": "进入{rotary_name}环岛后从{exit_number}出口驶出", - "name": "进入{rotary_name}环岛后从{exit_number}出口驶出,上{way_name}", - "destination": "进入{rotary_name}环岛后从{exit_number}出口驶出,前往{destination}" - } - } - }, - "roundabout": { - "default": { - "exit": { - "default": "进入环岛后从{exit_number}出口驶出", - "name": "进入环岛后从{exit_number}出口驶出,上{way_name}", - "destination": "进入环岛后从{exit_number}出口驶出,前往{destination}" - }, - "default": { - "default": "进入环岛", - "name": "通过环岛后驶入{way_name}", - "destination": "通过环岛后前往{destination}" - } - } - }, - "roundabout turn": { - "default": { - "default": "{modifier}转弯", - "name": "{modifier}转弯,驶入{way_name}", - "destination": "{modifier}转弯,前往{destination}" - }, - "left": { - "default": "左转", - "name": "左转,驶入{way_name}", - "destination": "左转,前往{destination}" - }, - "right": { - "default": "右转", - "name": "右转,驶入{way_name}", - "destination": "右转,前往{destination}" - }, - "straight": { - "default": "继续直行", - "name": "继续直行,驶入{way_name}", - "destination": "继续直行,前往{destination}" - } - }, - "exit roundabout": { - "default": { - "default": "驶离环岛", - "name": "驶离环岛,驶入{way_name}", - "destination": "驶离环岛,前往{destination}" - } - }, - "exit rotary": { - "default": { - "default": "驶离环岛", - "name": "驶离环岛,驶入{way_name}", - "destination": "驶离环岛,前往{destination}" - } - }, - "turn": { - "default": { - "default": "{modifier}转弯", - "name": "{modifier}转弯,驶入{way_name}", - "destination": "{modifier}转弯,前往{destination}" - }, - "left": { - "default": "左转", - "name": "左转,驶入{way_name}", - "destination": "左转,前往{destination}" - }, - "right": { - "default": "右转", - "name": "右转,驶入{way_name}", - "destination": "右转,前往{destination}" - }, - "straight": { - "default": "直行", - "name": "直行,驶入{way_name}", - "destination": "直行,前往{destination}" - } - }, - "use lane": { - "no_lanes": { - "default": "继续直行" - }, - "default": { - "default": "{lane_instruction}" - } - } - } -} - -},{}],48:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - - module.exports = L.Class.extend({ - options: { - timeout: 500, - blurTimeout: 100, - noResultsMessage: 'No results found.' - }, - - initialize: function(elem, callback, context, options) { - L.setOptions(this, options); - - this._elem = elem; - this._resultFn = options.resultFn ? L.Util.bind(options.resultFn, options.resultContext) : null; - this._autocomplete = options.autocompleteFn ? L.Util.bind(options.autocompleteFn, options.autocompleteContext) : null; - this._selectFn = L.Util.bind(callback, context); - this._container = L.DomUtil.create('div', 'leaflet-routing-geocoder-result'); - this._resultTable = L.DomUtil.create('table', '', this._container); - - // TODO: looks a bit like a kludge to register same for input and keypress - - // browsers supporting both will get duplicate events; just registering - // input will not catch enter, though. - L.DomEvent.addListener(this._elem, 'input', this._keyPressed, this); - L.DomEvent.addListener(this._elem, 'keypress', this._keyPressed, this); - L.DomEvent.addListener(this._elem, 'keydown', this._keyDown, this); - L.DomEvent.addListener(this._elem, 'blur', function() { - if (this._isOpen) { - this.close(); - } - }, this); - }, - - close: function() { - L.DomUtil.removeClass(this._container, 'leaflet-routing-geocoder-result-open'); - this._isOpen = false; - }, - - _open: function() { - var rect = this._elem.getBoundingClientRect(); - if (!this._container.parentElement) { - // See notes section under https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollX - // This abomination is required to support all flavors of IE - var scrollX = (window.pageXOffset !== undefined) ? window.pageXOffset - : (document.documentElement || document.body.parentNode || document.body).scrollLeft; - var scrollY = (window.pageYOffset !== undefined) ? window.pageYOffset - : (document.documentElement || document.body.parentNode || document.body).scrollTop; - this._container.style.left = (rect.left + scrollX) + 'px'; - this._container.style.top = (rect.bottom + scrollY) + 'px'; - this._container.style.width = (rect.right - rect.left) + 'px'; - document.body.appendChild(this._container); - } - - L.DomUtil.addClass(this._container, 'leaflet-routing-geocoder-result-open'); - this._isOpen = true; - }, - - _setResults: function(results) { - var i, - tr, - td, - text; - - delete this._selection; - this._results = results; - - while (this._resultTable.firstChild) { - this._resultTable.removeChild(this._resultTable.firstChild); - } - - for (i = 0; i < results.length; i++) { - tr = L.DomUtil.create('tr', '', this._resultTable); - tr.setAttribute('data-result-index', i); - td = L.DomUtil.create('td', '', tr); - text = document.createTextNode(results[i].name); - td.appendChild(text); - // mousedown + click because: - // http://stackoverflow.com/questions/10652852/jquery-fire-click-before-blur-event - L.DomEvent.addListener(td, 'mousedown', L.DomEvent.preventDefault); - L.DomEvent.addListener(td, 'click', this._createClickListener(results[i])); - } - - if (!i) { - tr = L.DomUtil.create('tr', '', this._resultTable); - td = L.DomUtil.create('td', 'leaflet-routing-geocoder-no-results', tr); - td.innerHTML = this.options.noResultsMessage; - } - - this._open(); - - if (results.length > 0) { - // Select the first entry - this._select(1); - } - }, - - _createClickListener: function(r) { - var resultSelected = this._resultSelected(r); - return L.bind(function() { - this._elem.blur(); - resultSelected(); - }, this); - }, - - _resultSelected: function(r) { - return L.bind(function() { - this.close(); - this._elem.value = r.name; - this._lastCompletedText = r.name; - this._selectFn(r); - }, this); - }, - - _keyPressed: function(e) { - var index; - - if (this._isOpen && e.keyCode === 13 && this._selection) { - index = parseInt(this._selection.getAttribute('data-result-index'), 10); - this._resultSelected(this._results[index])(); - L.DomEvent.preventDefault(e); - return; - } - - if (e.keyCode === 13) { - L.DomEvent.preventDefault(e); - this._complete(this._resultFn, true); - return; - } - - if (this._autocomplete && document.activeElement === this._elem) { - if (this._timer) { - clearTimeout(this._timer); - } - this._timer = setTimeout(L.Util.bind(function() { this._complete(this._autocomplete); }, this), - this.options.timeout); - return; - } - - this._unselect(); - }, - - _select: function(dir) { - var sel = this._selection; - if (sel) { - L.DomUtil.removeClass(sel.firstChild, 'leaflet-routing-geocoder-selected'); - sel = sel[dir > 0 ? 'nextSibling' : 'previousSibling']; - } - if (!sel) { - sel = this._resultTable[dir > 0 ? 'firstChild' : 'lastChild']; - } - - if (sel) { - L.DomUtil.addClass(sel.firstChild, 'leaflet-routing-geocoder-selected'); - this._selection = sel; - } - }, - - _unselect: function() { - if (this._selection) { - L.DomUtil.removeClass(this._selection.firstChild, 'leaflet-routing-geocoder-selected'); - } - delete this._selection; - }, - - _keyDown: function(e) { - if (this._isOpen) { - switch (e.keyCode) { - // Escape - case 27: - this.close(); - L.DomEvent.preventDefault(e); - return; - // Up - case 38: - this._select(-1); - L.DomEvent.preventDefault(e); - return; - // Down - case 40: - this._select(1); - L.DomEvent.preventDefault(e); - return; - } - } - }, - - _complete: function(completeFn, trySelect) { - var v = this._elem.value; - function completeResults(results) { - this._lastCompletedText = v; - if (trySelect && results.length === 1) { - this._resultSelected(results[0])(); - } else { - this._setResults(results); - } - } - - if (!v) { - return; - } - - if (v !== this._lastCompletedText) { - completeFn(v, completeResults, this); - } else if (trySelect) { - completeResults.call(this, this._results); - } - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],49:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - - var Itinerary = _dereq_('./itinerary'); - var Line = _dereq_('./line'); - var Plan = _dereq_('./plan'); - var OSRMv1 = _dereq_('./osrm-v1'); - - module.exports = Itinerary.extend({ - options: { - fitSelectedRoutes: 'smart', - routeLine: function(route, options) { return new Line(route, options); }, - autoRoute: true, - routeWhileDragging: false, - routeDragInterval: 500, - waypointMode: 'connect', - showAlternatives: false, - defaultErrorHandler: function(e) { - console.error('Routing error:', e.error); - } - }, - - initialize: function(options) { - L.Util.setOptions(this, options); - - this._router = this.options.router || new OSRMv1(options); - this._plan = this.options.plan || new Plan(this.options.waypoints, options); - this._requestCount = 0; - - Itinerary.prototype.initialize.call(this, options); - - this.on('routeselected', this._routeSelected, this); - if (this.options.defaultErrorHandler) { - this.on('routingerror', this.options.defaultErrorHandler); - } - this._plan.on('waypointschanged', this._onWaypointsChanged, this); - if (options.routeWhileDragging) { - this._setupRouteDragging(); - } - }, - - _onZoomEnd: function() { - if (!this._selectedRoute || - !this._router.requiresMoreDetail) { - return; - } - - var map = this._map; - if (this._router.requiresMoreDetail(this._selectedRoute, - map.getZoom(), map.getBounds())) { - this.route({ - callback: L.bind(function(err, routes) { - var i; - if (!err) { - for (i = 0; i < routes.length; i++) { - this._routes[i].properties = routes[i].properties; - } - this._updateLineCallback(err, routes); - } - - }, this), - simplifyGeometry: false, - geometryOnly: true - }); - } - }, - - onAdd: function(map) { - if (this.options.autoRoute) { - this.route(); - } - - var container = Itinerary.prototype.onAdd.call(this, map); - - this._map = map; - this._map.addLayer(this._plan); - - this._map.on('zoomend', this._onZoomEnd, this); - - if (this._plan.options.geocoder) { - container.insertBefore(this._plan.createGeocoders(), container.firstChild); - } - - return container; - }, - - onRemove: function(map) { - map.off('zoomend', this._onZoomEnd, this); - if (this._line) { - map.removeLayer(this._line); - } - map.removeLayer(this._plan); - if (this._alternatives && this._alternatives.length > 0) { - for (var i = 0, len = this._alternatives.length; i < len; i++) { - map.removeLayer(this._alternatives[i]); - } - } - return Itinerary.prototype.onRemove.call(this, map); - }, - - getWaypoints: function() { - return this._plan.getWaypoints(); - }, - - setWaypoints: function(waypoints) { - this._plan.setWaypoints(waypoints); - return this; - }, - - spliceWaypoints: function() { - var removed = this._plan.spliceWaypoints.apply(this._plan, arguments); - return removed; - }, - - getPlan: function() { - return this._plan; - }, - - getRouter: function() { - return this._router; - }, - - _routeSelected: function(e) { - var route = this._selectedRoute = e.route, - alternatives = this.options.showAlternatives && e.alternatives, - fitMode = this.options.fitSelectedRoutes, - fitBounds = - (fitMode === 'smart' && !this._waypointsVisible()) || - (fitMode !== 'smart' && fitMode); - - this._updateLines({route: route, alternatives: alternatives}); - - if (fitBounds) { - this._map.fitBounds(this._line.getBounds()); - } - - if (this.options.waypointMode === 'snap') { - this._plan.off('waypointschanged', this._onWaypointsChanged, this); - this.setWaypoints(route.waypoints); - this._plan.on('waypointschanged', this._onWaypointsChanged, this); - } - }, - - _waypointsVisible: function() { - var wps = this.getWaypoints(), - mapSize, - bounds, - boundsSize, - i, - p; - - try { - mapSize = this._map.getSize(); - - for (i = 0; i < wps.length; i++) { - p = this._map.latLngToLayerPoint(wps[i].latLng); - - if (bounds) { - bounds.extend(p); - } else { - bounds = L.bounds([p]); - } - } - - boundsSize = bounds.getSize(); - return (boundsSize.x > mapSize.x / 5 || - boundsSize.y > mapSize.y / 5) && this._waypointsInViewport(); - - } catch (e) { - return false; - } - }, - - _waypointsInViewport: function() { - var wps = this.getWaypoints(), - mapBounds, - i; - - try { - mapBounds = this._map.getBounds(); - } catch (e) { - return false; - } - - for (i = 0; i < wps.length; i++) { - if (mapBounds.contains(wps[i].latLng)) { - return true; - } - } - - return false; - }, - - _updateLines: function(routes) { - var addWaypoints = this.options.addWaypoints !== undefined ? - this.options.addWaypoints : true; - this._clearLines(); - - // add alternatives first so they lie below the main route - this._alternatives = []; - if (routes.alternatives) routes.alternatives.forEach(function(alt, i) { - this._alternatives[i] = this.options.routeLine(alt, - L.extend({ - isAlternative: true - }, this.options.altLineOptions || this.options.lineOptions)); - this._alternatives[i].addTo(this._map); - this._hookAltEvents(this._alternatives[i]); - }, this); - - this._line = this.options.routeLine(routes.route, - L.extend({ - addWaypoints: addWaypoints, - extendToWaypoints: this.options.waypointMode === 'connect' - }, this.options.lineOptions)); - this._line.addTo(this._map); - this._hookEvents(this._line); - }, - - _hookEvents: function(l) { - l.on('linetouched', function(e) { - this._plan.dragNewWaypoint(e); - }, this); - }, - - _hookAltEvents: function(l) { - l.on('linetouched', function(e) { - var alts = this._routes.slice(); - var selected = alts.splice(e.target._route.routesIndex, 1)[0]; - this.fire('routeselected', {route: selected, alternatives: alts}); - }, this); - }, - - _onWaypointsChanged: function(e) { - if (this.options.autoRoute) { - this.route({}); - } - if (!this._plan.isReady()) { - this._clearLines(); - this._clearAlts(); - } - this.fire('waypointschanged', {waypoints: e.waypoints}); - }, - - _setupRouteDragging: function() { - var timer = 0, - waypoints; - - this._plan.on('waypointdrag', L.bind(function(e) { - waypoints = e.waypoints; - - if (!timer) { - timer = setTimeout(L.bind(function() { - this.route({ - waypoints: waypoints, - geometryOnly: true, - callback: L.bind(this._updateLineCallback, this) - }); - timer = undefined; - }, this), this.options.routeDragInterval); - } - }, this)); - this._plan.on('waypointdragend', function() { - if (timer) { - clearTimeout(timer); - timer = undefined; - } - this.route(); - }, this); - }, - - _updateLineCallback: function(err, routes) { - if (!err) { - routes = routes.slice(); - var selected = routes.splice(this._selectedRoute.routesIndex, 1)[0]; - this._updateLines({ - route: selected, - alternatives: this.options.showAlternatives ? routes : [] - }); - } else if (err.type !== 'abort') { - this._clearLines(); - } - }, - - route: function(options) { - var ts = ++this._requestCount, - wps; - - if (this._pendingRequest && this._pendingRequest.abort) { - this._pendingRequest.abort(); - this._pendingRequest = null; - } - - options = options || {}; - - if (this._plan.isReady()) { - if (this.options.useZoomParameter) { - options.z = this._map && this._map.getZoom(); - } - - wps = options && options.waypoints || this._plan.getWaypoints(); - this.fire('routingstart', {waypoints: wps}); - this._pendingRequest = this._router.route(wps, function(err, routes) { - this._pendingRequest = null; - - if (options.callback) { - return options.callback.call(this, err, routes); - } - - // Prevent race among multiple requests, - // by checking the current request's count - // against the last request's; ignore result if - // this isn't the last request. - if (ts === this._requestCount) { - this._clearLines(); - this._clearAlts(); - if (err && err.type !== 'abort') { - this.fire('routingerror', {error: err}); - return; - } - - routes.forEach(function(route, i) { route.routesIndex = i; }); - - if (!options.geometryOnly) { - this.fire('routesfound', {waypoints: wps, routes: routes}); - this.setAlternatives(routes); - } else { - var selectedRoute = routes.splice(0,1)[0]; - this._routeSelected({route: selectedRoute, alternatives: routes}); - } - } - }, this, options); - } - }, - - _clearLines: function() { - if (this._line) { - this._map.removeLayer(this._line); - delete this._line; - } - if (this._alternatives && this._alternatives.length) { - for (var i in this._alternatives) { - this._map.removeLayer(this._alternatives[i]); - } - this._alternatives = []; - } - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./itinerary":55,"./line":56,"./osrm-v1":59,"./plan":60}],50:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - - module.exports = L.Control.extend({ - options: { - header: 'Routing error', - formatMessage: function(error) { - if (error.status < 0) { - return 'Calculating the route caused an error. Technical description follows:
' +
-                        error.message + '
= 1000) { - data = { - value: round(d / 1609.344, sensitivity), - unit: un.miles - }; - } else { - data = { - value: round(yards, sensitivity), - unit: un.yards - }; - } - } else { - v = round(d, sensitivity); - data = { - value: v >= 1000 ? (v / 1000) : v, - unit: v >= 1000 ? un.kilometers : un.meters - }; - } - - if (simpleRounding) { - data.value = data.value.toFixed(-sensitivity); - } - - return L.Util.template(this.options.distanceTemplate, data); - }, - - _round: function(d, sensitivity) { - var s = sensitivity || this.options.roundingSensitivity, - pow10 = Math.pow(10, (Math.floor(d / s) + '').length - 1), - r = Math.floor(d / pow10), - p = (r > 5) ? pow10 : pow10 / 2; - - return Math.round(d / p) * p; - }, - - formatTime: function(t /* Number (seconds) */) { - var un = this.options.unitNames || this._localization.localize('units'); - // More than 30 seconds precision looks ridiculous - t = Math.round(t / 30) * 30; - - if (t > 86400) { - return Math.round(t / 3600) + ' ' + un.hours; - } else if (t > 3600) { - return Math.floor(t / 3600) + ' ' + un.hours + ' ' + - Math.round((t % 3600) / 60) + ' ' + un.minutes; - } else if (t > 300) { - return Math.round(t / 60) + ' ' + un.minutes; - } else if (t > 60) { - return Math.floor(t / 60) + ' ' + un.minutes + - (t % 60 !== 0 ? ' ' + (t % 60) + ' ' + un.seconds : ''); - } else { - return t + ' ' + un.seconds; - } - }, - - formatInstruction: function(instr, i) { - if (instr.text === undefined) { - return this.capitalize(L.Util.template(this._getInstructionTemplate(instr, i), - L.extend({}, instr, { - exitStr: instr.exit ? this._localization.localize('formatOrder')(instr.exit) : '', - dir: this._localization.localize(['directions', instr.direction]), - modifier: this._localization.localize(['directions', instr.modifier]) - }))); - } else { - return instr.text; - } - }, - - getIconName: function(instr, i) { - switch (instr.type) { - case 'Head': - if (i === 0) { - return 'depart'; - } - break; - case 'WaypointReached': - return 'via'; - case 'Roundabout': - return 'enter-roundabout'; - case 'DestinationReached': - return 'arrive'; - } - - switch (instr.modifier) { - case 'Straight': - return 'continue'; - case 'SlightRight': - return 'bear-right'; - case 'Right': - return 'turn-right'; - case 'SharpRight': - return 'sharp-right'; - case 'TurnAround': - case 'Uturn': - return 'u-turn'; - case 'SharpLeft': - return 'sharp-left'; - case 'Left': - return 'turn-left'; - case 'SlightLeft': - return 'bear-left'; - } - }, - - capitalize: function(s) { - return s.charAt(0).toUpperCase() + s.substring(1); - }, - - _getInstructionTemplate: function(instr, i) { - var type = instr.type === 'Straight' ? (i === 0 ? 'Head' : 'Continue') : instr.type, - strings = this._localization.localize(['instructions', type]); - - if (!strings) { - strings = [ - this._localization.localize(['directions', type]), - ' ' + this._localization.localize(['instructions', 'Onto']) - ]; - } - - return strings[0] + (strings.length > 1 && instr.road ? strings[1] : ''); - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./localization":57}],52:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - var Autocomplete = _dereq_('./autocomplete'); - var Localization = _dereq_('./localization'); - - function selectInputText(input) { - if (input.setSelectionRange) { - // On iOS, select() doesn't work - input.setSelectionRange(0, 9999); - } else { - // On at least IE8, setSeleectionRange doesn't exist - input.select(); - } - } - - module.exports = L.Class.extend({ - includes: ((typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events), - - options: { - createGeocoder: function(i, nWps, options) { - var container = L.DomUtil.create('div', 'leaflet-routing-geocoder'), - input = L.DomUtil.create('input', '', container), - remove = options.addWaypoints ? L.DomUtil.create('span', 'leaflet-routing-remove-waypoint', container) : undefined; - - input.disabled = !options.addWaypoints; - - return { - container: container, - input: input, - closeButton: remove - }; - }, - geocoderPlaceholder: function(i, numberWaypoints, geocoderElement) { - var l = new Localization(geocoderElement.options.language).localize('ui'); - return i === 0 ? - l.startPlaceholder : - (i < numberWaypoints - 1 ? - L.Util.template(l.viaPlaceholder, {viaNumber: i}) : - l.endPlaceholder); - }, - - geocoderClass: function() { - return ''; - }, - - waypointNameFallback: function(latLng) { - var ns = latLng.lat < 0 ? 'S' : 'N', - ew = latLng.lng < 0 ? 'W' : 'E', - lat = (Math.round(Math.abs(latLng.lat) * 10000) / 10000).toString(), - lng = (Math.round(Math.abs(latLng.lng) * 10000) / 10000).toString(); - return ns + lat + ', ' + ew + lng; - }, - maxGeocoderTolerance: 200, - autocompleteOptions: {}, - language: 'en', - }, - - initialize: function(wp, i, nWps, options) { - L.setOptions(this, options); - - var g = this.options.createGeocoder(i, nWps, this.options), - closeButton = g.closeButton, - geocoderInput = g.input; - geocoderInput.setAttribute('placeholder', this.options.geocoderPlaceholder(i, nWps, this)); - geocoderInput.className = this.options.geocoderClass(i, nWps); - - this._element = g; - this._waypoint = wp; - - this.update(); - // This has to be here, or geocoder's value will not be properly - // initialized. - // TODO: look into why and make _updateWaypointName fix this. - geocoderInput.value = wp.name; - - L.DomEvent.addListener(geocoderInput, 'click', function() { - selectInputText(this); - }, geocoderInput); - - if (closeButton) { - L.DomEvent.addListener(closeButton, 'click', function() { - this.fire('delete', { waypoint: this._waypoint }); - }, this); - } - - new Autocomplete(geocoderInput, function(r) { - geocoderInput.value = r.name; - wp.name = r.name; - wp.latLng = r.center; - this.fire('geocoded', { waypoint: wp, value: r }); - }, this, L.extend({ - resultFn: this.options.geocoder.geocode, - resultContext: this.options.geocoder, - autocompleteFn: this.options.geocoder.suggest, - autocompleteContext: this.options.geocoder - }, this.options.autocompleteOptions)); - }, - - getContainer: function() { - return this._element.container; - }, - - setValue: function(v) { - this._element.input.value = v; - }, - - update: function(force) { - var wp = this._waypoint, - wpCoords; - - wp.name = wp.name || ''; - - if (wp.latLng && (force || !wp.name)) { - wpCoords = this.options.waypointNameFallback(wp.latLng); - if (this.options.geocoder && this.options.geocoder.reverse) { - this.options.geocoder.reverse(wp.latLng, 67108864 /* zoom 18 */, function(rs) { - if (rs.length > 0 && rs[0].center.distanceTo(wp.latLng) < this.options.maxGeocoderTolerance) { - wp.name = rs[0].name; - } else { - wp.name = wpCoords; - } - this._update(); - }, this); - } else { - wp.name = wpCoords; - this._update(); - } - } - }, - - focus: function() { - var input = this._element.input; - input.focus(); - selectInputText(input); - }, - - _update: function() { - var wp = this._waypoint, - value = wp && wp.name ? wp.name : ''; - this.setValue(value); - this.fire('reversegeocoded', {waypoint: wp, value: value}); - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./autocomplete":48,"./localization":57}],53:[function(_dereq_,module,exports){ -(function (global){ -var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null), - Control = _dereq_('./control'), - Itinerary = _dereq_('./itinerary'), - Line = _dereq_('./line'), - OSRMv1 = _dereq_('./osrm-v1'), - Plan = _dereq_('./plan'), - Waypoint = _dereq_('./waypoint'), - Autocomplete = _dereq_('./autocomplete'), - Formatter = _dereq_('./formatter'), - GeocoderElement = _dereq_('./geocoder-element'), - Localization = _dereq_('./localization'), - ItineraryBuilder = _dereq_('./itinerary-builder'), - Mapbox = _dereq_('./mapbox'), - ErrorControl = _dereq_('./error-control'); - -L.routing = { - control: function(options) { return new Control(options); }, - itinerary: function(options) { - return Itinerary(options); - }, - line: function(route, options) { - return new Line(route, options); - }, - plan: function(waypoints, options) { - return new Plan(waypoints, options); - }, - waypoint: function(latLng, name, options) { - return new Waypoint(latLng, name, options); - }, - osrmv1: function(options) { - return new OSRMv1(options); - }, - localization: function(options) { - return new Localization(options); - }, - formatter: function(options) { - return new Formatter(options); - }, - geocoderElement: function(wp, i, nWps, plan) { - return new L.Routing.GeocoderElement(wp, i, nWps, plan); - }, - itineraryBuilder: function(options) { - return new ItineraryBuilder(options); - }, - mapbox: function(accessToken, options) { - return new Mapbox(accessToken, options); - }, - errorControl: function(routingControl, options) { - return new ErrorControl(routingControl, options); - }, - autocomplete: function(elem, callback, context, options) { - return new Autocomplete(elem, callback, context, options); - } -}; - -module.exports = L.Routing = { - Control: Control, - Itinerary: Itinerary, - Line: Line, - OSRMv1: OSRMv1, - Plan: Plan, - Waypoint: Waypoint, - Autocomplete: Autocomplete, - Formatter: Formatter, - GeocoderElement: GeocoderElement, - Localization: Localization, - Formatter: Formatter, - ItineraryBuilder: ItineraryBuilder, - - // Legacy; remove these in next major release - control: L.routing.control, - itinerary: L.routing.itinerary, - line: L.routing.line, - plan: L.routing.plan, - waypoint: L.routing.waypoint, - osrmv1: L.routing.osrmv1, - geocoderElement: L.routing.geocoderElement, - mapbox: L.routing.mapbox, - errorControl: L.routing.errorControl, -}; - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./autocomplete":48,"./control":49,"./error-control":50,"./formatter":51,"./geocoder-element":52,"./itinerary":55,"./itinerary-builder":54,"./line":56,"./localization":57,"./mapbox":58,"./osrm-v1":59,"./plan":60,"./waypoint":61}],54:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - - module.exports = L.Class.extend({ - options: { - containerClassName: '' - }, - - initialize: function(options) { - L.setOptions(this, options); - }, - - createContainer: function(className) { - var table = L.DomUtil.create('table', (className || '') + ' ' + this.options.containerClassName), - colgroup = L.DomUtil.create('colgroup', '', table); - - L.DomUtil.create('col', 'leaflet-routing-instruction-icon', colgroup); - L.DomUtil.create('col', 'leaflet-routing-instruction-text', colgroup); - L.DomUtil.create('col', 'leaflet-routing-instruction-distance', colgroup); - - return table; - }, - - createStepsContainer: function() { - return L.DomUtil.create('tbody', ''); - }, - - createStep: function(text, distance, icon, steps) { - var row = L.DomUtil.create('tr', '', steps), - span, - td; - td = L.DomUtil.create('td', '', row); - span = L.DomUtil.create('span', 'leaflet-routing-icon leaflet-routing-icon-'+icon, td); - td.appendChild(span); - td = L.DomUtil.create('td', '', row); - td.appendChild(document.createTextNode(text)); - td = L.DomUtil.create('td', '', row); - td.appendChild(document.createTextNode(distance)); - return row; - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],55:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - var Formatter = _dereq_('./formatter'); - var ItineraryBuilder = _dereq_('./itinerary-builder'); - - module.exports = L.Control.extend({ - includes: ((typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events), - - options: { - pointMarkerStyle: { - radius: 5, - color: '#03f', - fillColor: 'white', - opacity: 1, - fillOpacity: 0.7 - }, - summaryTemplate: '

{name}

{distance}, {time}

', - timeTemplate: '{time}', - containerClassName: '', - alternativeClassName: '', - minimizedClassName: '', - itineraryClassName: '', - totalDistanceRoundingSensitivity: -1, - show: true, - collapsible: undefined, - collapseBtn: function(itinerary) { - var collapseBtn = L.DomUtil.create('span', itinerary.options.collapseBtnClass); - L.DomEvent.on(collapseBtn, 'click', itinerary._toggle, itinerary); - itinerary._container.insertBefore(collapseBtn, itinerary._container.firstChild); - }, - collapseBtnClass: 'leaflet-routing-collapse-btn' - }, - - initialize: function(options) { - L.setOptions(this, options); - this._formatter = this.options.formatter || new Formatter(this.options); - this._itineraryBuilder = this.options.itineraryBuilder || new ItineraryBuilder({ - containerClassName: this.options.itineraryClassName - }); - }, - - onAdd: function(map) { - var collapsible = this.options.collapsible; - - collapsible = collapsible || (collapsible === undefined && map.getSize().x <= 640); - - this._container = L.DomUtil.create('div', 'leaflet-routing-container leaflet-bar ' + - (!this.options.show ? 'leaflet-routing-container-hide ' : '') + - (collapsible ? 'leaflet-routing-collapsible ' : '') + - this.options.containerClassName); - this._altContainer = this.createAlternativesContainer(); - this._container.appendChild(this._altContainer); - L.DomEvent.disableClickPropagation(this._container); - L.DomEvent.addListener(this._container, 'mousewheel', function(e) { - L.DomEvent.stopPropagation(e); - }); - - if (collapsible) { - this.options.collapseBtn(this); - } - - return this._container; - }, - - onRemove: function() { - }, - - createAlternativesContainer: function() { - return L.DomUtil.create('div', 'leaflet-routing-alternatives-container'); - }, - - setAlternatives: function(routes) { - var i, - alt, - altDiv; - - this._clearAlts(); - - this._routes = routes; - - for (i = 0; i < this._routes.length; i++) { - alt = this._routes[i]; - altDiv = this._createAlternative(alt, i); - this._altContainer.appendChild(altDiv); - this._altElements.push(altDiv); - } - - this._selectRoute({route: this._routes[0], alternatives: this._routes.slice(1)}); - - return this; - }, - - show: function() { - L.DomUtil.removeClass(this._container, 'leaflet-routing-container-hide'); - }, - - hide: function() { - L.DomUtil.addClass(this._container, 'leaflet-routing-container-hide'); - }, - - _toggle: function() { - var collapsed = L.DomUtil.hasClass(this._container, 'leaflet-routing-container-hide'); - this[collapsed ? 'show' : 'hide'](); - }, - - _createAlternative: function(alt, i) { - var altDiv = L.DomUtil.create('div', 'leaflet-routing-alt ' + - this.options.alternativeClassName + - (i > 0 ? ' leaflet-routing-alt-minimized ' + this.options.minimizedClassName : '')), - template = this.options.summaryTemplate, - data = L.extend({ - name: alt.name, - distance: this._formatter.formatDistance(alt.summary.totalDistance, this.options.totalDistanceRoundingSensitivity), - time: this._formatter.formatTime(alt.summary.totalTime) - }, alt); - altDiv.innerHTML = typeof(template) === 'function' ? template(data) : L.Util.template(template, data); - L.DomEvent.addListener(altDiv, 'click', this._onAltClicked, this); - this.on('routeselected', this._selectAlt, this); - - altDiv.appendChild(this._createItineraryContainer(alt)); - return altDiv; - }, - - _clearAlts: function() { - var el = this._altContainer; - while (el && el.firstChild) { - el.removeChild(el.firstChild); - } - - this._altElements = []; - }, - - _createItineraryContainer: function(r) { - var container = this._itineraryBuilder.createContainer(), - steps = this._itineraryBuilder.createStepsContainer(), - i, - instr, - step, - distance, - text, - icon; - - container.appendChild(steps); - - for (i = 0; i < r.instructions.length; i++) { - instr = r.instructions[i]; - text = this._formatter.formatInstruction(instr, i); - distance = this._formatter.formatDistance(instr.distance); - icon = this._formatter.getIconName(instr, i); - step = this._itineraryBuilder.createStep(text, distance, icon, steps); - - if(instr.index) { - this._addRowListeners(step, r.coordinates[instr.index]); - } - } - - return container; - }, - - _addRowListeners: function(row, coordinate) { - L.DomEvent.addListener(row, 'mouseover', function() { - this._marker = L.circleMarker(coordinate, - this.options.pointMarkerStyle).addTo(this._map); - }, this); - L.DomEvent.addListener(row, 'mouseout', function() { - if (this._marker) { - this._map.removeLayer(this._marker); - delete this._marker; - } - }, this); - L.DomEvent.addListener(row, 'click', function(e) { - this._map.panTo(coordinate); - L.DomEvent.stopPropagation(e); - }, this); - }, - - _onAltClicked: function(e) { - var altElem = e.target || window.event.srcElement; - while (!L.DomUtil.hasClass(altElem, 'leaflet-routing-alt')) { - altElem = altElem.parentElement; - } - - var j = this._altElements.indexOf(altElem); - var alts = this._routes.slice(); - var route = alts.splice(j, 1)[0]; - - this.fire('routeselected', { - route: route, - alternatives: alts - }); - }, - - _selectAlt: function(e) { - var altElem, - j, - n, - classFn; - - altElem = this._altElements[e.route.routesIndex]; - - if (L.DomUtil.hasClass(altElem, 'leaflet-routing-alt-minimized')) { - for (j = 0; j < this._altElements.length; j++) { - n = this._altElements[j]; - classFn = j === e.route.routesIndex ? 'removeClass' : 'addClass'; - L.DomUtil[classFn](n, 'leaflet-routing-alt-minimized'); - if (this.options.minimizedClassName) { - L.DomUtil[classFn](n, this.options.minimizedClassName); - } - - if (j !== e.route.routesIndex) n.scrollTop = 0; - } - } - - L.DomEvent.stop(e); - }, - - _selectRoute: function(routes) { - if (this._marker) { - this._map.removeLayer(this._marker); - delete this._marker; - } - this.fire('routeselected', routes); - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./formatter":51,"./itinerary-builder":54}],56:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - - module.exports = L.LayerGroup.extend({ - includes: ((typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events), - - options: { - styles: [ - {color: 'black', opacity: 0.15, weight: 9}, - {color: 'white', opacity: 0.8, weight: 6}, - {color: 'red', opacity: 1, weight: 2} - ], - missingRouteStyles: [ - {color: 'black', opacity: 0.15, weight: 7}, - {color: 'white', opacity: 0.6, weight: 4}, - {color: 'gray', opacity: 0.8, weight: 2, dashArray: '7,12'} - ], - addWaypoints: true, - extendToWaypoints: true, - missingRouteTolerance: 10 - }, - - initialize: function(route, options) { - L.setOptions(this, options); - L.LayerGroup.prototype.initialize.call(this, options); - this._route = route; - - if (this.options.extendToWaypoints) { - this._extendToWaypoints(); - } - - this._addSegment( - route.coordinates, - this.options.styles, - this.options.addWaypoints); - }, - - getBounds: function() { - return L.latLngBounds(this._route.coordinates); - }, - - _findWaypointIndices: function() { - var wps = this._route.inputWaypoints, - indices = [], - i; - for (i = 0; i < wps.length; i++) { - indices.push(this._findClosestRoutePoint(wps[i].latLng)); - } - - return indices; - }, - - _findClosestRoutePoint: function(latlng) { - var minDist = Number.MAX_VALUE, - minIndex, - i, - d; - - for (i = this._route.coordinates.length - 1; i >= 0 ; i--) { - // TODO: maybe do this in pixel space instead? - d = latlng.distanceTo(this._route.coordinates[i]); - if (d < minDist) { - minIndex = i; - minDist = d; - } - } - - return minIndex; - }, - - _extendToWaypoints: function() { - var wps = this._route.inputWaypoints, - wpIndices = this._getWaypointIndices(), - i, - wpLatLng, - routeCoord; - - for (i = 0; i < wps.length; i++) { - wpLatLng = wps[i].latLng; - routeCoord = L.latLng(this._route.coordinates[wpIndices[i]]); - if (wpLatLng.distanceTo(routeCoord) > - this.options.missingRouteTolerance) { - this._addSegment([wpLatLng, routeCoord], - this.options.missingRouteStyles); - } - } - }, - - _addSegment: function(coords, styles, mouselistener) { - var i, - pl; - - for (i = 0; i < styles.length; i++) { - pl = L.polyline(coords, styles[i]); - this.addLayer(pl); - if (mouselistener) { - pl.on('mousedown', this._onLineTouched, this); - } - } - }, - - _findNearestWpBefore: function(i) { - var wpIndices = this._getWaypointIndices(), - j = wpIndices.length - 1; - while (j >= 0 && wpIndices[j] > i) { - j--; - } - - return j; - }, - - _onLineTouched: function(e) { - var afterIndex = this._findNearestWpBefore(this._findClosestRoutePoint(e.latlng)); - this.fire('linetouched', { - afterIndex: afterIndex, - latlng: e.latlng - }); - L.DomEvent.stop(e); - }, - - _getWaypointIndices: function() { - if (!this._wpIndices) { - this._wpIndices = this._route.waypointIndices || this._findWaypointIndices(); - } - - return this._wpIndices; - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],57:[function(_dereq_,module,exports){ -/* +(function () { + function r(e, n, t) { + function o(i, f) { + if (!n[i]) { + if (!e[i]) { + var c = 'function' == typeof require && require; + if (!f && c) return c(i, !0); + if (u) return u(i, !0); + var a = new Error("Cannot find module '" + i + "'"); + throw ((a.code = 'MODULE_NOT_FOUND'), a); + } + var p = (n[i] = { exports: {} }); + e[i][0].call( + p.exports, + function (r) { + var n = e[i][1][r]; + return o(n || r); + }, + p, + p.exports, + r, + e, + n, + t + ); + } + return n[i].exports; + } + for (var u = 'function' == typeof require && require, i = 0; i < t.length; i++) o(t[i]); + return o; + } + return r; +})()( + { + 1: [ + function (_dereq_, module, exports) { + function corslite(url, callback, cors) { + var sent = false; + + if (typeof window.XMLHttpRequest === 'undefined') { + return callback(Error('Browser not supported')); + } + + if (typeof cors === 'undefined') { + var m = url.match(/^\s*https?:\/\/[^\/]*/); + cors = + m && + m[0] !== + location.protocol + + '//' + + location.hostname + + (location.port ? ':' + location.port : ''); + } + + var x = new window.XMLHttpRequest(); + + function isSuccessful(status) { + return (status >= 200 && status < 300) || status === 304; + } + + if (cors && !('withCredentials' in x)) { + // IE8-9 + x = new window.XDomainRequest(); + + // Ensure callback is never called synchronously, i.e., before + // x.send() returns (this has been observed in the wild). + // See https://github.com/mapbox/mapbox.js/issues/472 + var original = callback; + callback = function () { + if (sent) { + original.apply(this, arguments); + } else { + var that = this, + args = arguments; + setTimeout(function () { + original.apply(that, args); + }, 0); + } + }; + } + + function loaded() { + if ( + // XDomainRequest + x.status === undefined || + // modern browsers + isSuccessful(x.status) + ) + callback.call(x, null, x); + else callback.call(x, x, null); + } + + // Both `onreadystatechange` and `onload` can fire. `onreadystatechange` + // has [been supported for longer](http://stackoverflow.com/a/9181508/229001). + if ('onload' in x) { + x.onload = loaded; + } else { + x.onreadystatechange = function readystate() { + if (x.readyState === 4) { + loaded(); + } + }; + } + + // Call the callback with the XMLHttpRequest object as an error and prevent + // it from ever being called again by reassigning it to `noop` + x.onerror = function error(evt) { + // XDomainRequest provides no evt parameter + callback.call(this, evt || true, null); + callback = function () {}; + }; + + // IE9 must have onprogress be set to a unique function. + x.onprogress = function () {}; + + x.ontimeout = function (evt) { + callback.call(this, evt, null); + callback = function () {}; + }; + + x.onabort = function (evt) { + callback.call(this, evt, null); + callback = function () {}; + }; + + // GET is the only supported HTTP Verb by XDomainRequest and is the + // only one supported here. + x.open('GET', url, true); + + // Send the request. Sending data is not supported. + x.send(null); + sent = true; + + return x; + } + + if (typeof module !== 'undefined') module.exports = corslite; + }, + {}, + ], + 2: [ + function (_dereq_, module, exports) { + 'use strict'; + + /** + * Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm) + * + * Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js) + * by [Mark McClure](http://facstaff.unca.edu/mcmcclur/) + * + * @module polyline + */ + + var polyline = {}; + + function py2_round(value) { + // Google's polyline algorithm uses the same rounding strategy as Python 2, which is different from JS for negative values + return Math.floor(Math.abs(value) + 0.5) * Math.sign(value); + } + + function encode(current, previous, factor) { + current = py2_round(current * factor); + previous = py2_round(previous * factor); + var coordinate = current - previous; + coordinate <<= 1; + if (current - previous < 0) { + coordinate = ~coordinate; + } + var output = ''; + while (coordinate >= 0x20) { + output += String.fromCharCode((0x20 | (coordinate & 0x1f)) + 63); + coordinate >>= 5; + } + output += String.fromCharCode(coordinate + 63); + return output; + } + + /** + * Decodes to a [latitude, longitude] coordinates array. + * + * This is adapted from the implementation in Project-OSRM. + * + * @param {String} str + * @param {Number} precision + * @returns {Array} + * + * @see https://github.com/Project-OSRM/osrm-frontend/blob/master/WebContent/routing/OSRM.RoutingGeometry.js + */ + polyline.decode = function (str, precision) { + var index = 0, + lat = 0, + lng = 0, + coordinates = [], + shift = 0, + result = 0, + byte = null, + latitude_change, + longitude_change, + factor = Math.pow(10, precision || 5); + + // Coordinates have variable length when encoded, so just keep + // track of whether we've hit the end of the string. In each + // loop iteration, a single coordinate is decoded. + while (index < str.length) { + // Reset shift, result, and byte + byte = null; + shift = 0; + result = 0; + + do { + byte = str.charCodeAt(index++) - 63; + result |= (byte & 0x1f) << shift; + shift += 5; + } while (byte >= 0x20); + + latitude_change = result & 1 ? ~(result >> 1) : result >> 1; + + shift = result = 0; + + do { + byte = str.charCodeAt(index++) - 63; + result |= (byte & 0x1f) << shift; + shift += 5; + } while (byte >= 0x20); + + longitude_change = result & 1 ? ~(result >> 1) : result >> 1; + + lat += latitude_change; + lng += longitude_change; + + coordinates.push([lat / factor, lng / factor]); + } + + return coordinates; + }; + + /** + * Encodes the given [latitude, longitude] coordinates array. + * + * @param {Array.>} coordinates + * @param {Number} precision + * @returns {String} + */ + polyline.encode = function (coordinates, precision) { + if (!coordinates.length) { + return ''; + } + + var factor = Math.pow(10, precision || 5), + output = encode(coordinates[0][0], 0, factor) + encode(coordinates[0][1], 0, factor); + + for (var i = 1; i < coordinates.length; i++) { + var a = coordinates[i], + b = coordinates[i - 1]; + output += encode(a[0], b[0], factor); + output += encode(a[1], b[1], factor); + } + + return output; + }; + + function flipped(coords) { + var flipped = []; + for (var i = 0; i < coords.length; i++) { + flipped.push(coords[i].slice().reverse()); + } + return flipped; + } + + /** + * Encodes a GeoJSON LineString feature/geometry. + * + * @param {Object} geojson + * @param {Number} precision + * @returns {String} + */ + polyline.fromGeoJSON = function (geojson, precision) { + if (geojson && geojson.type === 'Feature') { + geojson = geojson.geometry; + } + if (!geojson || geojson.type !== 'LineString') { + throw new Error('Input must be a GeoJSON LineString'); + } + return polyline.encode(flipped(geojson.coordinates), precision); + }; + + /** + * Decodes to a GeoJSON LineString geometry. + * + * @param {String} str + * @param {Number} precision + * @returns {Object} + */ + polyline.toGeoJSON = function (str, precision) { + var coords = polyline.decode(str, precision); + return { + type: 'LineString', + coordinates: flipped(coords), + }; + }; + + if (typeof module === 'object' && module.exports) { + module.exports = polyline; + } + }, + {}, + ], + 3: [ + function (_dereq_, module, exports) { + var languages = _dereq_('./languages'); + var instructions = languages.instructions; + var grammars = languages.grammars; + var abbreviations = languages.abbreviations; + + module.exports = function (version) { + Object.keys(instructions).forEach(function (code) { + if (!instructions[code][version]) { + throw 'invalid version ' + version + ': ' + code + ' not supported'; + } + }); + + return { + capitalizeFirstLetter: function (language, string) { + return string.charAt(0).toLocaleUpperCase(language) + string.slice(1); + }, + ordinalize: function (language, number) { + // Transform numbers to their translated ordinalized value + if (!language) throw new Error('No language code provided'); + + return instructions[language][version].constants.ordinalize[number.toString()] || ''; + }, + directionFromDegree: function (language, degree) { + // Transform degrees to their translated compass direction + if (!language) throw new Error('No language code provided'); + if (!degree && degree !== 0) { + // step had no bearing_after degree, ignoring + return ''; + } else if (degree >= 0 && degree <= 20) { + return instructions[language][version].constants.direction.north; + } else if (degree > 20 && degree < 70) { + return instructions[language][version].constants.direction.northeast; + } else if (degree >= 70 && degree <= 110) { + return instructions[language][version].constants.direction.east; + } else if (degree > 110 && degree < 160) { + return instructions[language][version].constants.direction.southeast; + } else if (degree >= 160 && degree <= 200) { + return instructions[language][version].constants.direction.south; + } else if (degree > 200 && degree < 250) { + return instructions[language][version].constants.direction.southwest; + } else if (degree >= 250 && degree <= 290) { + return instructions[language][version].constants.direction.west; + } else if (degree > 290 && degree < 340) { + return instructions[language][version].constants.direction.northwest; + } else if (degree >= 340 && degree <= 360) { + return instructions[language][version].constants.direction.north; + } else { + throw new Error('Degree ' + degree + ' invalid'); + } + }, + laneConfig: function (step) { + // Reduce any lane combination down to a contracted lane diagram + if (!step.intersections || !step.intersections[0].lanes) throw new Error('No lanes object'); + + var config = []; + var currentLaneValidity = null; + + step.intersections[0].lanes.forEach(function (lane) { + if (currentLaneValidity === null || currentLaneValidity !== lane.valid) { + if (lane.valid) { + config.push('o'); + } else { + config.push('x'); + } + currentLaneValidity = lane.valid; + } + }); + + return config.join(''); + }, + getWayName: function (language, step, options) { + var classes = options ? options.classes || [] : []; + if (typeof step !== 'object') throw new Error('step must be an Object'); + if (!language) throw new Error('No language code provided'); + if (!Array.isArray(classes)) throw new Error('classes must be an Array or undefined'); + + var wayName; + var name = step.name || ''; + var ref = (step.ref || '').split(';')[0]; + + // Remove hacks from Mapbox Directions mixing ref into name + if (name === step.ref) { + // if both are the same we assume that there used to be an empty name, with the ref being filled in for it + // we only need to retain the ref then + name = ''; + } + name = name.replace(' (' + step.ref + ')', ''); + + // In attempt to avoid using the highway name of a way, + // check and see if the step has a class which should signal + // the ref should be used instead of the name. + var wayMotorway = classes.indexOf('motorway') !== -1; + + if (name && ref && name !== ref && !wayMotorway) { + var phrase = + instructions[language][version].phrase['name and ref'] || + instructions.en[version].phrase['name and ref']; + wayName = this.tokenize( + language, + phrase, + { + name: name, + ref: ref, + }, + options + ); + } else if (name && ref && wayMotorway && /\d/.test(ref)) { + wayName = options && options.formatToken ? options.formatToken('ref', ref) : ref; + } else if (!name && ref) { + wayName = options && options.formatToken ? options.formatToken('ref', ref) : ref; + } else { + wayName = options && options.formatToken ? options.formatToken('name', name) : name; + } + + return wayName; + }, + + /** + * Formulate a localized text instruction from a step. + * + * @param {string} language Language code. + * @param {object} step Step including maneuver property. + * @param {object} opts Additional options. + * @param {string} opts.legIndex Index of leg in the route. + * @param {string} opts.legCount Total number of legs in the route. + * @param {array} opts.classes List of road classes. + * @param {string} opts.waypointName Name of waypoint for arrival instruction. + * + * @return {string} Localized text instruction. + */ + compile: function (language, step, opts) { + if (!language) throw new Error('No language code provided'); + if (languages.supportedCodes.indexOf(language) === -1) + throw new Error('language code ' + language + ' not loaded'); + if (!step.maneuver) throw new Error('No step maneuver provided'); + var options = opts || {}; + + var type = step.maneuver.type; + var modifier = step.maneuver.modifier; + var mode = step.mode; + // driving_side will only be defined in OSRM 5.14+ + var side = step.driving_side; + + if (!type) { + throw new Error('Missing step maneuver type'); + } + if (type !== 'depart' && type !== 'arrive' && !modifier) { + throw new Error('Missing step maneuver modifier'); + } + + if (!instructions[language][version][type]) { + // Log for debugging + console.log('Encountered unknown instruction type: ' + type); // eslint-disable-line no-console + // OSRM specification assumes turn types can be added without + // major version changes. Unknown types are to be treated as + // type `turn` by clients + type = 'turn'; + } + + // Use special instructions if available, otherwise `defaultinstruction` + var instructionObject; + if (instructions[language][version].modes[mode]) { + instructionObject = instructions[language][version].modes[mode]; + } else { + // omit side from off ramp if same as driving_side + // note: side will be undefined if the input is from OSRM <5.14 + // but the condition should still evaluate properly regardless + var omitSide = type === 'off ramp' && modifier.indexOf(side) >= 0; + if (instructions[language][version][type][modifier] && !omitSide) { + instructionObject = instructions[language][version][type][modifier]; + } else { + instructionObject = instructions[language][version][type].default; + } + } + + // Special case handling + var laneInstruction; + switch (type) { + case 'use lane': + laneInstruction = + instructions[language][version].constants.lanes[this.laneConfig(step)]; + if (!laneInstruction) { + // If the lane combination is not found, default to continue straight + instructionObject = instructions[language][version]['use lane'].no_lanes; + } + break; + case 'rotary': + case 'roundabout': + if (step.rotary_name && step.maneuver.exit && instructionObject.name_exit) { + instructionObject = instructionObject.name_exit; + } else if (step.rotary_name && instructionObject.name) { + instructionObject = instructionObject.name; + } else if (step.maneuver.exit && instructionObject.exit) { + instructionObject = instructionObject.exit; + } else { + instructionObject = instructionObject.default; + } + break; + default: + // NOOP, since no special logic for that type + } + + // Decide way_name with special handling for name and ref + var wayName = this.getWayName(language, step, options); + + // Decide which instruction string to use + // Destination takes precedence over name + var instruction; + if (step.destinations && step.exits && instructionObject.exit_destination) { + instruction = instructionObject.exit_destination; + } else if (step.destinations && instructionObject.destination) { + instruction = instructionObject.destination; + } else if (step.exits && instructionObject.exit) { + instruction = instructionObject.exit; + } else if (wayName && instructionObject.name) { + instruction = instructionObject.name; + } else if (options.waypointName && instructionObject.named) { + instruction = instructionObject.named; + } else { + instruction = instructionObject.default; + } + + var destinations = step.destinations && step.destinations.split(': '); + var destinationRef = destinations && destinations[0].split(',')[0]; + var destination = destinations && destinations[1] && destinations[1].split(',')[0]; + var firstDestination; + if (destination && destinationRef) { + firstDestination = destinationRef + ': ' + destination; + } else { + firstDestination = destinationRef || destination || ''; + } + + var nthWaypoint = + options.legIndex >= 0 && options.legIndex !== options.legCount - 1 + ? this.ordinalize(language, options.legIndex + 1) + : ''; + + // Replace tokens + // NOOP if they don't exist + var replaceTokens = { + way_name: wayName, + destination: firstDestination, + exit: (step.exits || '').split(';')[0], + exit_number: this.ordinalize(language, step.maneuver.exit || 1), + rotary_name: step.rotary_name, + lane_instruction: laneInstruction, + modifier: instructions[language][version].constants.modifier[modifier], + direction: this.directionFromDegree(language, step.maneuver.bearing_after), + nth: nthWaypoint, + waypoint_name: options.waypointName, + }; + + return this.tokenize(language, instruction, replaceTokens, options); + }, + grammarize: function (language, name, grammar) { + if (!language) throw new Error('No language code provided'); + // Process way/rotary name with applying grammar rules if any + if (name && grammar && grammars && grammars[language] && grammars[language][version]) { + var rules = grammars[language][version][grammar]; + if (rules) { + // Pass original name to rules' regular expressions enclosed with spaces for simplier parsing + var n = ' ' + name + ' '; + var flags = grammars[language].meta.regExpFlags || ''; + rules.forEach(function (rule) { + var re = new RegExp(rule[0], flags); + n = n.replace(re, rule[1]); + }); + + return n.trim(); + } + } + + return name; + }, + abbreviations: abbreviations, + tokenize: function (language, instruction, tokens, options) { + if (!language) throw new Error('No language code provided'); + // Keep this function context to use in inline function below (no arrow functions in ES4) + var that = this; + var startedWithToken = false; + var output = instruction + .replace(/\{(\w+)(?::(\w+))?\}/g, function (token, tag, grammar, offset) { + var value = tokens[tag]; + + // Return unknown token unchanged + if (typeof value === 'undefined') { + return token; + } + + value = that.grammarize(language, value, grammar); + + // If this token appears at the beginning of the instruction, capitalize it. + if (offset === 0 && instructions[language].meta.capitalizeFirstLetter) { + startedWithToken = true; + value = that.capitalizeFirstLetter(language, value); + } + + if (options && options.formatToken) { + value = options.formatToken(tag, value); + } + + return value; + }) + .replace(/ {2}/g, ' '); // remove excess spaces + + if (!startedWithToken && instructions[language].meta.capitalizeFirstLetter) { + return this.capitalizeFirstLetter(language, output); + } + + return output; + }, + }; + }; + }, + { './languages': 4 }, + ], + 4: [ + function (_dereq_, module, exports) { + // Load all language files explicitly to allow integration + // with bundling tools like webpack and browserify + var instructionsDa = _dereq_('./languages/translations/da.json'); + var instructionsDe = _dereq_('./languages/translations/de.json'); + var instructionsEn = _dereq_('./languages/translations/en.json'); + var instructionsEo = _dereq_('./languages/translations/eo.json'); + var instructionsEs = _dereq_('./languages/translations/es.json'); + var instructionsEsEs = _dereq_('./languages/translations/es-ES.json'); + var instructionsFi = _dereq_('./languages/translations/fi.json'); + var instructionsFr = _dereq_('./languages/translations/fr.json'); + var instructionsHe = _dereq_('./languages/translations/he.json'); + var instructionsId = _dereq_('./languages/translations/id.json'); + var instructionsIt = _dereq_('./languages/translations/it.json'); + var instructionsKo = _dereq_('./languages/translations/ko.json'); + var instructionsMy = _dereq_('./languages/translations/my.json'); + var instructionsNl = _dereq_('./languages/translations/nl.json'); + var instructionsNo = _dereq_('./languages/translations/no.json'); + var instructionsPl = _dereq_('./languages/translations/pl.json'); + var instructionsPtBr = _dereq_('./languages/translations/pt-BR.json'); + var instructionsPtPt = _dereq_('./languages/translations/pt-PT.json'); + var instructionsRo = _dereq_('./languages/translations/ro.json'); + var instructionsRu = _dereq_('./languages/translations/ru.json'); + var instructionsSv = _dereq_('./languages/translations/sv.json'); + var instructionsTr = _dereq_('./languages/translations/tr.json'); + var instructionsUk = _dereq_('./languages/translations/uk.json'); + var instructionsVi = _dereq_('./languages/translations/vi.json'); + var instructionsZhHans = _dereq_('./languages/translations/zh-Hans.json'); + + // Load all grammar files + var grammarFr = _dereq_('./languages/grammar/fr.json'); + var grammarRu = _dereq_('./languages/grammar/ru.json'); + + // Load all abbreviations files + var abbreviationsBg = _dereq_('./languages/abbreviations/bg.json'); + var abbreviationsCa = _dereq_('./languages/abbreviations/ca.json'); + var abbreviationsDa = _dereq_('./languages/abbreviations/da.json'); + var ebbreviationsDe = _dereq_('./languages/abbreviations/de.json'); + var abbreviationsEn = _dereq_('./languages/abbreviations/en.json'); + var abbreviationsEs = _dereq_('./languages/abbreviations/es.json'); + var abbreviationsFr = _dereq_('./languages/abbreviations/fr.json'); + var abbreviationsHe = _dereq_('./languages/abbreviations/he.json'); + var abbreviationsHu = _dereq_('./languages/abbreviations/hu.json'); + var abbreviationsLt = _dereq_('./languages/abbreviations/lt.json'); + var abbreviationsNl = _dereq_('./languages/abbreviations/nl.json'); + var abbreviationsRu = _dereq_('./languages/abbreviations/ru.json'); + var abbreviationsSl = _dereq_('./languages/abbreviations/sl.json'); + var abbreviationsSv = _dereq_('./languages/abbreviations/sv.json'); + var abbreviationsUk = _dereq_('./languages/abbreviations/uk.json'); + var abbreviationsVi = _dereq_('./languages/abbreviations/vi.json'); + + // Create a list of supported codes + var instructions = { + da: instructionsDa, + de: instructionsDe, + en: instructionsEn, + eo: instructionsEo, + es: instructionsEs, + 'es-ES': instructionsEsEs, + fi: instructionsFi, + fr: instructionsFr, + he: instructionsHe, + id: instructionsId, + it: instructionsIt, + ko: instructionsKo, + my: instructionsMy, + nl: instructionsNl, + no: instructionsNo, + pl: instructionsPl, + 'pt-BR': instructionsPtBr, + 'pt-PT': instructionsPtPt, + ro: instructionsRo, + ru: instructionsRu, + sv: instructionsSv, + tr: instructionsTr, + uk: instructionsUk, + vi: instructionsVi, + 'zh-Hans': instructionsZhHans, + }; + + // Create list of supported grammar + var grammars = { + fr: grammarFr, + ru: grammarRu, + }; + + // Create list of supported abbrevations + var abbreviations = { + bg: abbreviationsBg, + ca: abbreviationsCa, + da: abbreviationsDa, + de: ebbreviationsDe, + en: abbreviationsEn, + es: abbreviationsEs, + fr: abbreviationsFr, + he: abbreviationsHe, + hu: abbreviationsHu, + lt: abbreviationsLt, + nl: abbreviationsNl, + ru: abbreviationsRu, + sl: abbreviationsSl, + sv: abbreviationsSv, + uk: abbreviationsUk, + vi: abbreviationsVi, + }; + module.exports = { + supportedCodes: Object.keys(instructions), + instructions: instructions, + grammars: grammars, + abbreviations: abbreviations, + }; + }, + { + './languages/abbreviations/bg.json': 5, + './languages/abbreviations/ca.json': 6, + './languages/abbreviations/da.json': 7, + './languages/abbreviations/de.json': 8, + './languages/abbreviations/en.json': 9, + './languages/abbreviations/es.json': 10, + './languages/abbreviations/fr.json': 11, + './languages/abbreviations/he.json': 12, + './languages/abbreviations/hu.json': 13, + './languages/abbreviations/lt.json': 14, + './languages/abbreviations/nl.json': 15, + './languages/abbreviations/ru.json': 16, + './languages/abbreviations/sl.json': 17, + './languages/abbreviations/sv.json': 18, + './languages/abbreviations/uk.json': 19, + './languages/abbreviations/vi.json': 20, + './languages/grammar/fr.json': 21, + './languages/grammar/ru.json': 22, + './languages/translations/da.json': 23, + './languages/translations/de.json': 24, + './languages/translations/en.json': 25, + './languages/translations/eo.json': 26, + './languages/translations/es-ES.json': 27, + './languages/translations/es.json': 28, + './languages/translations/fi.json': 29, + './languages/translations/fr.json': 30, + './languages/translations/he.json': 31, + './languages/translations/id.json': 32, + './languages/translations/it.json': 33, + './languages/translations/ko.json': 34, + './languages/translations/my.json': 35, + './languages/translations/nl.json': 36, + './languages/translations/no.json': 37, + './languages/translations/pl.json': 38, + './languages/translations/pt-BR.json': 39, + './languages/translations/pt-PT.json': 40, + './languages/translations/ro.json': 41, + './languages/translations/ru.json': 42, + './languages/translations/sv.json': 43, + './languages/translations/tr.json': 44, + './languages/translations/uk.json': 45, + './languages/translations/vi.json': 46, + './languages/translations/zh-Hans.json': 47, + }, + ], + 5: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + международен: 'Межд', + старши: 'Стрш', + възел: 'Въз', + пазар: 'Mkt', + светисвети: 'СвСв', + сестра: 'сес', + уилям: 'Ум', + апартаменти: 'ап', + езеро: 'Ез', + свети: 'Св', + център: 'Ц-р', + парк: 'Пк', + маршрут: 'М-т', + площад: 'Пл', + национален: 'Нац', + училище: 'Уч', + река: 'Рек', + поток: 'П-к', + район: 'Р-н', + крепост: 'К-т', + паметник: 'Пам', + университет: 'Уни', + Връх: 'Вр', + точка: 'Точ', + планина: 'Пл', + село: 'с.', + височини: 'вис', + младши: 'Мл', + станция: 'С-я', + проход: 'Прох', + баща: 'Бщ', + }, + classifications: { + шофиране: 'Шоф', + плавен: 'Пл', + място: 'Мя', + тераса: 'Тер', + магистрала: 'М-ла', + площад: 'Пл', + пеш: 'Пеш', + залив: 'З-в', + пътека: 'П-ка', + платно: 'Пл', + улица: 'Ул', + алея: 'Ал', + пешеходна: 'Пеш', + точка: 'Тч', + задминаване: 'Задм', + кръгово: 'Кр', + връх: 'Вр', + съд: 'Сд', + булевард: 'Бул', + път: 'Път', + скоростна: 'Скор', + мост: 'Мо', + }, + directions: { + северозапад: 'СЗ', + североизток: 'СИ', + югозапад: 'ЮЗ', + югоизток: 'ЮИ', + север: 'С', + изток: 'И', + юг: 'Ю', + }, + }; + }, + {}, + ], + 6: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + comunicacions: 'Com.', + 'entitat de població': 'Nucli', + disseminat: 'Diss.', + 'cap de municipi': 'Cap', + indret: 'Indr.', + comarca: 'Cca.', + 'relleu del litoral': 'Lit.', + municipi: 'Mun.', + 'xarxa hidrogràfica': 'Curs Fluv.', + equipament: 'Equip.', + orografia: 'Orogr.', + barri: 'Barri', + edificació: 'Edif.', + 'edificació històrica': 'Edif. Hist.', + 'entitat descentralitzada': 'E.M.D.', + 'element hidrogràfic': 'Hidr.', + }, + classifications: { + rotonda: 'Rot.', + carrerada: 'Ca.', + jardí: 'J.', + paratge: 'Pge.', + pont: 'Pont', + lloc: 'Lloc', + rambla: 'Rbla.', + cases: 'Cses.', + barranc: 'Bnc.', + plana: 'Plana', + polígon: 'Pol.', + muralla: 'Mur.', + enllaç: 'Ellaç', + 'antiga carretera': 'Actra', + glorieta: 'Glor.', + autovia: 'Autv.', + prolongació: 'Prol.', + calçada: 'Cda.', + carretera: 'Ctra.', + pujada: 'Pda.', + torrent: 'T.', + disseminat: 'Disse', + barri: 'B.', + cinturó: 'Cinto', + passera: 'Psera', + sender: 'Send.', + carrer: 'C.', + sèquia: 'Sèq.', + blocs: 'Bloc', + rambleta: 'Rblt.', + partida: 'Par.', + costa: 'Cos.', + sector: 'Sec.', + corraló: 'Crral', + urbanització: 'Urb.', + autopista: 'Autp.', + grup: 'Gr.', + platja: 'Pja.', + jardins: 'J.', + complex: 'Comp.', + portals: 'Ptals', + finca: 'Fin.', + travessera: 'Trav.', + plaça: 'Pl.', + travessia: 'Trv.', + 'polígon industrial': 'PI.', + passatge: 'Ptge.', + apartaments: 'Apmt.', + mirador: 'Mira.', + antic: 'Antic', + accés: 'Acc.', + colònia: 'Col.', + corriol: 'Crol.', + portal: 'Ptal.', + porta: 'Pta.', + port: 'Port', + carreró: 'Cró.', + riera: 'Ra.', + 'circumval·lació': 'Cval.', + baixada: 'Bda.', + placeta: 'Plta.', + escala: 'Esc.', + 'gran via': 'GV', + rial: 'Rial', + conjunt: 'Conj.', + avinguda: 'Av.', + esplanada: 'Esp.', + cantonada: 'Cant.', + ronda: 'Rda.', + corredor: 'Cdor.', + drecera: 'Drec.', + passadís: 'Pdís.', + viaducte: 'Vdct.', + passeig: 'Pg.', + veïnat: 'Veï.', + }, + directions: { + sudest: 'SE', + sudoest: 'SO', + nordest: 'NE', + nordoest: 'NO', + est: 'E', + nord: 'N', + oest: 'O', + sud: 'S', + }, + }; + }, + {}, + ], + 7: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + skole: 'Sk.', + ved: 'v.', + centrum: 'C.', + sankt: 'Skt.', + vestre: 'v.', + hospital: 'Hosp.', + stræde: 'Str.', + nordre: 'Nr.', + plads: 'Pl.', + universitet: 'Uni.', + vænge: 'vg.', + station: 'St.', + }, + classifications: { + avenue: 'Ave', + gammel: 'Gl.', + dronning: 'Dronn.', + sønder: 'Sdr.', + nørre: 'Nr.', + vester: 'V.', + vestre: 'V.', + øster: 'Ø.', + østre: 'Ø.', + boulevard: 'Boul.', + }, + directions: { + sydøst: 'SØ', + nordvest: 'NV', + syd: 'S', + nordøst: 'NØ', + sydvest: 'SV', + vest: 'V', + nord: 'N', + øst: 'Ø', + }, + }; + }, + {}, + ], + 8: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: {}, + classifications: {}, + directions: { + osten: 'O', + nordosten: 'NO', + süden: 'S', + nordwest: 'NW', + norden: 'N', + südost: 'SO', + südwest: 'SW', + westen: 'W', + }, + }; + }, + {}, + ], + 9: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + square: 'Sq', + centre: 'Ctr', + sister: 'Sr', + lake: 'Lk', + fort: 'Ft', + route: 'Rte', + william: 'Wm', + national: 'Nat’l', + junction: 'Jct', + center: 'Ctr', + saint: 'St', + saints: 'SS', + station: 'Sta', + mount: 'Mt', + junior: 'Jr', + mountain: 'Mtn', + heights: 'Hts', + university: 'Univ', + school: 'Sch', + international: 'Int’l', + apartments: 'Apts', + crossing: 'Xing', + creek: 'Crk', + township: 'Twp', + downtown: 'Dtwn', + father: 'Fr', + senior: 'Sr', + point: 'Pt', + river: 'Riv', + market: 'Mkt', + village: 'Vil', + park: 'Pk', + memorial: 'Mem', + }, + classifications: { + place: 'Pl', + circle: 'Cir', + bypass: 'Byp', + motorway: 'Mwy', + crescent: 'Cres', + road: 'Rd', + cove: 'Cv', + lane: 'Ln', + square: 'Sq', + street: 'St', + freeway: 'Fwy', + walk: 'Wk', + plaza: 'Plz', + parkway: 'Pky', + avenue: 'Ave', + pike: 'Pk', + drive: 'Dr', + highway: 'Hwy', + footway: 'Ftwy', + point: 'Pt', + court: 'Ct', + terrace: 'Ter', + walkway: 'Wky', + alley: 'Aly', + expressway: 'Expy', + bridge: 'Br', + boulevard: 'Blvd', + turnpike: 'Tpk', + }, + directions: { + southeast: 'SE', + northwest: 'NW', + south: 'S', + west: 'W', + southwest: 'SW', + north: 'N', + east: 'E', + northeast: 'NE', + }, + }; + }, + {}, + ], + 10: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + segunda: '2ª', + octubre: '8bre', + doctores: 'Drs', + doctora: 'Dra', + internacional: 'Intl', + doctor: 'Dr', + segundo: '2º', + señorita: 'Srta', + doctoras: 'Drs', + primera: '1ª', + primero: '1º', + san: 'S', + colonia: 'Col', + doña: 'Dña', + septiembre: '7bre', + diciembre: '10bre', + señor: 'Sr', + ayuntamiento: 'Ayto', + señora: 'Sra', + tercera: '3ª', + tercero: '3º', + don: 'D', + santa: 'Sta', + ciudad: 'Cdad', + noviembre: '9bre', + departamento: 'Dep', + }, + classifications: { + camino: 'Cmno', + avenida: 'Av', + paseo: 'Pº', + autopista: 'Auto', + calle: 'C', + plaza: 'Pza', + carretera: 'Crta', + }, + directions: { + este: 'E', + noreste: 'NE', + sur: 'S', + suroeste: 'SO', + noroeste: 'NO', + oeste: 'O', + sureste: 'SE', + norte: 'N', + }, + }; + }, + {}, + ], + 11: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + allée: 'All', + aérodrome: 'Aérod', + aéroport: 'Aérop', + }, + classifications: { + centrale: 'Ctrale', + campings: 'Camp.', + urbains: 'Urb.', + mineure: 'Min.', + publique: 'Publ.', + supérieur: 'Sup.', + fédération: 'Féd.', + 'notre-dame': 'ND', + saint: 'St', + 'centre hospitalier régional': 'CHR', + exploitation: 'Exploit.', + général: 'Gal', + civiles: 'Civ.', + maritimes: 'Marit.', + aviation: 'Aviat.', + iii: '3', + archéologique: 'Archéo.', + musical: 'Music.', + musicale: 'Music.', + immeuble: 'Imm.', + xv: '15', + hôtel: 'Hôt.', + alpine: 'Alp.', + communale: 'Commun.', + v: '5', + global: 'Glob.', + université: 'Univ.', + confédéral: 'Conféd.', + xx: '20', + x: '10', + piscine: 'Pisc.', + dimanche: 'di.', + fleuve: 'Flv', + postaux: 'Post.', + musicienne: 'Music.', + département: 'Dépt', + février: 'Févr.', + municipales: 'Munic.', + province: 'Prov.', + communautés: 'Commtés', + barrage: 'Barr.', + mercredi: 'me.', + présidentes: 'Pdtes', + cafétérias: 'Cafét.', + théâtral: 'Thé.', + viticulteur: 'Vitic.', + poste: 'Post.', + spécialisée: 'Spéc.', + agriculture: 'Agric.', + infirmier: 'Infirm.', + animation: 'Anim.', + mondiale: 'Mond.', + arrêt: 'Arr.', + zone: 'zon.', + municipaux: 'Munic.', + grand: 'Gd', + janvier: 'Janv.', + fondateur: 'Fond.', + première: '1re', + municipale: 'Munic.', + direction: 'Dir.', + anonyme: 'Anon.', + départementale: 'Dépt', + moyens: 'Moy.', + novembre: 'Nov.', + jardin: 'Jard.', + petites: 'Pet.', + privé: 'Priv.', + centres: 'Ctres', + forestier: 'Forest.', + xiv: '14', + africaines: 'Afric.', + sergent: 'Sgt', + européenne: 'Eur.', + privée: 'Priv.', + café: 'Cfé', + xix: '19', + hautes: 'Htes', + major: 'Mjr', + vendredi: 've.', + municipalité: 'Munic.', + 'sous-préfecture': 'Ss-préf.', + spéciales: 'Spéc.', + secondaires: 'Second.', + viie: '7e', + moyenne: 'Moy.', + commerciale: 'Commerc.', + région: 'Rég.', + américaines: 'Amér.', + américains: 'Amér.', + service: 'Sce', + professeur: 'Prof.', + départemental: 'Dépt', + hôtels: 'Hôt.', + mondiales: 'Mond.', + ire: '1re', + caporal: 'Capo.', + militaire: 'Milit.', + "lycée d'enseignement professionnel": 'LEP', + adjudant: 'Adj.', + médicale: 'Méd.', + conférences: 'Confér.', + universelle: 'Univ.', + xiie: '12e', + supérieures: 'Sup.', + naturel: 'Natur.', + 'société nationale': 'SN', + hospitalier: 'Hosp.', + culturelle: 'Cult.', + américain: 'Amér.', + 'son altesse royale': 'S.A.R.', + infirmière: 'Infirm.', + viii: '8', + fondatrice: 'Fond.', + madame: 'Mme', + métropolitain: 'Métrop.', + ophtalmologues: 'Ophtalmos', + xviie: '18e', + viiie: '8e', + commerçante: 'Commerç.', + "centre d'enseignement du second degré": 'CES', + septembre: 'Sept.', + agriculteur: 'Agric.', + xiii: '13', + pontifical: 'Pontif.', + cafétéria: 'Cafét.', + prince: 'Pce', + vie: '6e', + archiduchesse: 'Archid.', + occidental: 'Occ.', + spectacles: 'Spect.', + camping: 'Camp.', + métro: 'Mº', + arrondissement: 'Arrond.', + viticole: 'Vitic.', + ii: '2', + siècle: 'Si.', + chapelles: 'Chap.', + centre: 'Ctre', + 'sapeur-pompiers': 'Sap.-pomp.', + établissements: 'Étabts', + 'société anonyme': 'SA', + directeurs: 'Dir.', + vii: '7', + culturel: 'Cult.', + central: 'Ctral', + métropolitaine: 'Métrop.', + administrations: 'Admin.', + amiraux: 'Amir.', + sur: 's/', + premiers: '1ers', + "provence-alpes-côte d'azur": 'PACA', + cathédrale: 'Cathéd.', + iv: '4', + postale: 'Post.', + social: 'Soc.', + spécialisé: 'Spéc.', + district: 'Distr.', + technologique: 'Techno.', + viticoles: 'Vitic.', + ix: '9', + protégés: 'Prot.', + historiques: 'Hist.', + sous: 's/s', + national: 'Nal', + ambassade: 'Amb.', + cafés: 'Cfés', + agronomie: 'Agro.', + sapeurs: 'Sap.', + petits: 'Pet.', + monsieur: 'M.', + boucher: 'Bouch.', + restaurant: 'Restau.', + lycée: 'Lyc.', + urbaine: 'Urb.', + préfecture: 'Préf.', + districts: 'Distr.', + civil: 'Civ.', + protégées: 'Prot.', + sapeur: 'Sap.', + théâtre: 'Thé.', + collège: 'Coll.', + mardi: 'ma.', + mémorial: 'Mémor.', + africain: 'Afric.', + républicaine: 'Républ.', + sociale: 'Soc.', + spécial: 'Spéc.', + technologie: 'Techno.', + charcuterie: 'Charc.', + commerces: 'Commerc.', + fluviale: 'Flv', + parachutistes: 'Para.', + primaires: 'Prim.', + directions: 'Dir.', + présidentiel: 'Pdtl', + nationales: 'Nales', + après: 'apr.', + samedi: 'sa.', + unité: 'U.', + xxiii: '23', + associé: 'Assoc.', + électrique: 'Électr.', + populaire: 'Pop.', + asiatique: 'Asiat.', + navigable: 'Navig.', + présidente: 'Pdte', + xive: '14e', + associés: 'Assoc.', + pompiers: 'Pomp.', + agricoles: 'Agric.', + élém: 'Élém.', + décembre: 'Déc.', + 'son altesse': 'S.Alt.', + 'après-midi': 'a.-m.', + mineures: 'Min.', + juillet: 'Juil.', + aviatrices: 'Aviat.', + fondation: 'Fond.', + pontificaux: 'Pontif.', + temple: 'Tple', + européennes: 'Eur.', + régionale: 'Rég.', + informations: 'Infos', + mondiaux: 'Mond.', + infanterie: 'Infant.', + archéologie: 'Archéo.', + dans: 'd/', + hospice: 'Hosp.', + spectacle: 'Spect.', + 'hôtels-restaurants': 'Hôt.-Rest.', + 'hôtel-restaurant': 'Hôt.-Rest.', + hélicoptère: 'hélico', + xixe: '19e', + cliniques: 'Clin.', + docteur: 'Dr', + secondaire: 'Second.', + municipal: 'Munic.', + générale: 'Gale', + château: 'Chât.', + commerçant: 'Commerç.', + avril: 'Avr.', + clinique: 'Clin.', + urbaines: 'Urb.', + navale: 'Nav.', + navigation: 'Navig.', + asiatiques: 'Asiat.', + pontificales: 'Pontif.', + administrative: 'Admin.', + syndicat: 'Synd.', + lundi: 'lu.', + petite: 'Pet.', + maritime: 'Marit.', + métros: 'Mº', + enseignement: 'Enseign.', + fluviales: 'Flv', + historique: 'Hist.', + comtés: 'Ctés', + résidentiel: 'Résid.', + international: 'Int.', + supérieure: 'Sup.', + 'centre hospitalier universitaire': 'CHU', + confédération: 'Conféd.', + boucherie: 'Bouch.', + fondatrices: 'Fond.', + médicaux: 'Méd.', + européens: 'Eur.', + orientaux: 'Ori.', + naval: 'Nav.', + étang: 'Étg', + provincial: 'Prov.', + junior: 'Jr', + départementales: 'Dépt', + musique: 'Musiq.', + directrices: 'Dir.', + maréchal: 'Mal', + civils: 'Civ.', + protégé: 'Prot.', + établissement: 'Étabt', + trafic: 'Traf.', + aviateur: 'Aviat.', + archives: 'Arch.', + africains: 'Afric.', + maternelle: 'Matern.', + industrielle: 'Ind.', + administratif: 'Admin.', + oriental: 'Ori.', + universitaire: 'Univ.', + majeur: 'Maj.', + haute: 'Hte', + communal: 'Commun.', + petit: 'Pet.', + commune: 'Commun.', + exploitant: 'Exploit.', + conférence: 'Confér.', + monseigneur: 'Mgr', + pharmacien: 'Pharm.', + jeudi: 'je.', + primaire: 'Prim.', + hélicoptères: 'hélicos', + agronomique: 'Agro.', + médecin: 'Méd.', + ve: '5e', + pontificale: 'Pontif.', + ier: '1er', + cinéma: 'Ciné', + fluvial: 'Flv', + occidentaux: 'Occ.', + commerçants: 'Commerç.', + banque: 'Bq', + moyennes: 'Moy.', + pharmacienne: 'Pharm.', + démocratique: 'Dém.', + cinémas: 'Cinés', + spéciale: 'Spéc.', + présidents: 'Pdts', + directrice: 'Dir.', + vi: '6', + basse: 'Bas.', + xve: '15e', + état: 'É.', + aviateurs: 'Aviat.', + majeurs: 'Maj.', + infirmiers: 'Infirm.', + église: 'Égl.', + confédérale: 'Conféd.', + xxie: '21e', + comte: 'Cte', + européen: 'Eur.', + union: 'U.', + pharmacie: 'Pharm.', + infirmières: 'Infirm.', + comté: 'Cté', + sportive: 'Sport.', + deuxième: '2e', + xvi: '17', + haut: 'Ht', + médicales: 'Méd.', + développé: 'Dévelop.', + bâtiment: 'Bât.', + commerce: 'Commerc.', + ive: '4e', + associatif: 'Assoc.', + rural: 'Rur.', + cimetière: 'Cim.', + régional: 'Rég.', + ferroviaire: 'Ferr.', + vers: 'v/', + mosquée: 'Mosq.', + mineurs: 'Min.', + nautique: 'Naut.', + châteaux: 'Chât.', + sportif: 'Sport.', + mademoiselle: 'Mle', + école: 'Éc.', + doyen: 'Doy.', + industriel: 'Ind.', + chapelle: 'Chap.', + sociétés: 'Stés', + internationale: 'Int.', + coopératif: 'Coop.', + hospices: 'Hosp.', + xxii: '22', + parachutiste: 'Para.', + alpines: 'Alp.', + civile: 'Civ.', + xvie: '17e', + états: 'É.', + musée: 'Msée', + centrales: 'Ctrales', + globaux: 'Glob.', + supérieurs: 'Sup.', + syndicats: 'Synd.', + archevêque: 'Archev.', + docteurs: 'Drs', + bibliothèque: 'Biblio.', + lieutenant: 'Lieut.', + république: 'Rép.', + vétérinaire: 'Vét.', + départementaux: 'Dépt', + premier: '1er', + fluviaux: 'Flv', + animé: 'Anim.', + orientales: 'Ori.', + technologiques: 'Techno.', + princesse: 'Pse', + routière: 'Rout.', + coopérative: 'Coop.', + scolaire: 'Scol.', + écoles: 'Éc.', + football: 'Foot', + territoriale: 'Territ.', + commercial: 'Commerc.', + mineur: 'Min.', + millénaires: 'Mill.', + association: 'Assoc.', + catholique: 'Cathol.', + administration: 'Admin.', + mairie: 'Mair.', + portuaire: 'Port.', + tertiaires: 'Terti.', + théâtrale: 'Thé.', + palais: 'Pal.', + troisième: '3e', + directeur: 'Dir.', + vétérinaires: 'Vét.', + faculté: 'Fac.', + occidentales: 'Occ.', + viticulteurs: 'Vitic.', + xvii: '18', + occidentale: 'Occ.', + amiral: 'Amir.', + professionnel: 'Profess.', + administratives: 'Admin.', + commerciales: 'Commerc.', + saints: 'Sts', + agronomes: 'Agro.', + stade: 'Std', + 'sous-préfet': 'Ss-préf.', + senior: 'Sr', + agronome: 'Agro.', + terrain: 'Terr.', + catholiques: 'Cathol.', + résidentielle: 'Résid.', + grands: 'Gds', + exploitants: 'Exploit.', + xiiie: '13e', + croix: 'Cx', + généraux: 'Gaux', + crédit: 'Créd.', + cimetières: 'Cim.', + antenne: 'Ant.', + médical: 'Méd.', + collèges: 'Coll.', + musicien: 'Music.', + apostolique: 'Apost.', + postal: 'Post.', + territorial: 'Territ.', + urbanisme: 'Urb.', + préfectorale: 'Préf.', + fondateurs: 'Fond.', + information: 'Info.', + églises: 'Égl.', + ophtalmologue: 'Ophtalmo', + congrégation: 'Congrég.', + charcutier: 'Charc.', + étage: 'ét.', + consulat: 'Consul.', + public: 'Publ.', + ferrée: 'Ferr.', + matin: 'mat.', + 'société anonyme à responsabilité limitée': 'SARL', + monuments: 'Mmts', + protection: 'Prot.', + universel: 'Univ.', + nationale: 'Nale', + président: 'Pdt', + provinciale: 'Prov.', + agriculteurs: 'Agric.', + préfectoral: 'Préf.', + xxe: '20e', + alpins: 'Alp.', + avant: 'av.', + infirmerie: 'Infirm.', + 'deux mil': '2000', + rurale: 'Rur.', + administratifs: 'Admin.', + octobre: 'Oct.', + archipel: 'Archip.', + communauté: 'Commté', + globales: 'Glob.', + alpin: 'Alp.', + numéros: 'Nºˢ', + 'lieutenant-colonel': 'Lieut.-Col.', + 'jésus-christ': 'J.-C.', + agricole: 'Agric.', + 'sa majesté': 'S.Maj.', + associative: 'Assoc.', + xxi: '21', + présidentielle: 'Pdtle', + moyen: 'Moy.', + fédéral: 'Féd.', + professionnelle: 'Profess.', + tertiaire: 'Terti.', + ixe: '9e', + hôpital: 'Hôp.', + technologies: 'Techno.', + iiie: '3e', + développement: 'Dévelop.', + monument: 'Mmt', + forestière: 'Forest.', + numéro: 'Nº', + viticulture: 'Vitic.', + traversière: 'Traver.', + technique: 'Tech.', + électriques: 'Électr.', + militaires: 'Milit.', + pompier: 'Pomp.', + américaine: 'Amér.', + préfet: 'Préf.', + congrégations: 'Congrég.', + pâtissier: 'Pâtiss.', + mondial: 'Mond.', + ophtalmologie: 'Ophtalm.', + sainte: 'Ste', + africaine: 'Afric.', + aviatrice: 'Aviat.', + doyens: 'Doy.', + société: 'Sté', + majeures: 'Maj.', + orientale: 'Ori.', + ministère: 'Min.', + archiduc: 'Archid.', + territoire: 'Territ.', + techniques: 'Tech.', + 'île-de-france': 'IDF', + globale: 'Glob.', + xe: '10e', + xie: '11e', + majeure: 'Maj.', + commerciaux: 'Commerc.', + maire: 'Mair.', + spéciaux: 'Spéc.', + grande: 'Gde', + messieurs: 'MM', + colonel: 'Col.', + millénaire: 'Mill.', + xi: '11', + urbain: 'Urb.', + fédérale: 'Féd.', + ferré: 'Ferr.', + rivière: 'Riv.', + républicain: 'Républ.', + grandes: 'Gdes', + régiment: 'Régim.', + hauts: 'Hts', + catégorie: 'Catég.', + basses: 'Bas.', + xii: '12', + agronomiques: 'Agro.', + iie: '2e', + protégée: 'Prot.', + 'sapeur-pompier': 'Sap.-pomp.', + }, + directions: { + 'est-nord-est': 'ENE', + 'nord-est': 'NE', + ouest: 'O', + 'sud-est': 'SE', + 'est-sud-est': 'ESE', + 'nord-nord-est': 'NNE', + sud: 'S', + 'nord-nord-ouest': 'NNO', + 'nord-ouest': 'NO', + nord: 'N', + 'ouest-sud-ouest': 'OSO', + 'ouest-nord-ouest': 'ONO', + 'sud-ouest': 'SO', + 'sud-sud-est': 'SSE', + 'sud-sud-ouest': 'SSO', + est: 'E', + }, + }; + }, + {}, + ], + 12: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + שדרות: "שד'", + }, + classifications: {}, + directions: {}, + }; + }, + {}, + ], + 13: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: {}, + classifications: {}, + directions: { + kelet: 'K', + északkelet: 'ÉK', + dél: 'D', + északnyugat: 'ÉNY', + észak: 'É', + délkelet: 'DK', + délnyugat: 'DNY', + nyugat: 'NY', + }, + }; + }, + {}, + ], + 14: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + apartamentai: 'Apt', + aukštumos: 'Aukš', + centras: 'Ctr', + ežeras: 'Ež', + fortas: 'Ft', + greitkelis: 'Grtkl', + juosta: 'Jst', + kaimas: 'Km', + kalnas: 'Kln', + kelias: 'Kl', + kiemelis: 'Kml', + miestelis: 'Mstl', + 'miesto centras': 'M.Ctr', + mokykla: 'Mok', + nacionalinis: 'Nac', + paminklas: 'Pmkl', + parkas: 'Pk', + pusratis: 'Psrt', + sankryža: 'Skrž', + sesė: 'Sesė', + skveras: 'Skv', + stotis: 'St', + šv: 'Šv', + tarptautinis: 'Trptaut', + taškas: 'Tšk', + tėvas: 'Tėv', + turgus: 'Tgs', + universitetas: 'Univ', + upė: 'Up', + upelis: 'Up', + vieta: 'Vt', + }, + classifications: { + aikštė: 'a.', + alėja: 'al.', + aplinkkelis: 'aplinkl.', + autostrada: 'auto.', + bulvaras: 'b.', + gatvė: 'g.', + kelias: 'kel.', + krantinė: 'krant.', + prospektas: 'pr.', + plentas: 'pl.', + skersgatvis: 'skg.', + takas: 'tak.', + tiltas: 'tlt.', + }, + directions: { + pietūs: 'P', + vakarai: 'V', + šiaurė: 'Š', + 'šiaurės vakarai': 'ŠV', + pietryčiai: 'PR', + 'šiaurės rytai': 'ŠR', + rytai: 'R', + pietvakariai: 'PV', + }, + }; + }, + {}, + ], + 15: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + centrum: 'Cntrm', + nationaal: 'Nat’l', + berg: 'Brg', + meer: 'Mr', + kruising: 'Krsng', + toetreden: 'Ttrdn', + }, + classifications: { + bypass: 'Pass', + brug: 'Br', + straat: 'Str', + rechtbank: 'Rbank', + snoek: 'Snk', + autobaan: 'Baan', + terras: 'Trrs', + punt: 'Pt', + plaza: 'Plz', + rijden: 'Rijd', + parkway: 'Pky', + inham: 'Nham', + snelweg: 'Weg', + 'halve maan': 'Maan', + cirkel: 'Crkl', + laan: 'Ln', + rijbaan: 'Strook', + weg: 'Weg', + lopen: 'Lpn', + autoweg: 'Weg', + boulevard: 'Blvd', + plaats: 'Plts', + steeg: 'Stg', + voetpad: 'Stoep', + }, + directions: { + noordoost: 'NO', + westen: 'W', + zuiden: 'Z', + zuidwest: 'ZW', + oost: 'O', + zuidoost: 'ZO', + noordwest: 'NW', + noorden: 'N', + }, + }; + }, + {}, + ], + 16: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + апостола: 'ап.', + апостолов: 'апп.', + великомученика: 'вмч', + великомученицы: 'вмц.', + владение: 'вл.', + город: 'г.', + деревня: 'д.', + имени: 'им.', + мученика: 'мч.', + мучеников: 'мчч.', + мучениц: 'мцц.', + мученицы: 'мц.', + озеро: 'о.', + посёлок: 'п.', + преподобного: 'прп.', + преподобных: 'прпп.', + река: 'р.', + святителей: 'свтт.', + святителя: 'свт.', + священномученика: 'сщмч.', + священномучеников: 'сщмчч.', + станция: 'ст.', + участок: 'уч.', + }, + classifications: { + проезд: 'пр-д', + проспект: 'пр.', + переулок: 'пер.', + набережная: 'наб.', + площадь: 'пл.', + шоссе: 'ш.', + бульвар: 'б.', + тупик: 'туп.', + улица: 'ул.', + }, + directions: { + восток: 'В', + 'северо-восток': 'СВ', + 'юго-восток': 'ЮВ', + 'юго-запад': 'ЮЗ', + 'северо-запад': 'СЗ', + север: 'С', + запад: 'З', + юг: 'Ю', + }, + }; + }, + {}, + ], + 17: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: {}, + classifications: {}, + directions: { + vzhod: 'V', + severovzhod: 'SV', + jug: 'J', + severozahod: 'SZ', + sever: 'S', + jugovzhod: 'JV', + jugozahod: 'JZ', + zahod: 'Z', + }, + }; + }, + {}, + ], + 18: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + sankta: 's:ta', + gamla: 'G:la', + sankt: 's:t', + }, + classifications: { + Bro: 'Br', + }, + directions: { + norr: 'N', + sydöst: 'SO', + väster: 'V', + öster: 'O', + nordväst: 'NV', + sydväst: 'SV', + söder: 'S', + nordöst: 'NO', + }, + }; + }, + {}, + ], + 19: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: {}, + classifications: {}, + directions: { + схід: 'Сх', + 'північний схід': 'ПнСх', + південь: 'Пд', + 'північний захід': 'ПнЗд', + північ: 'Пн', + 'південний схід': 'ПдСх', + 'південний захід': 'ПдЗх', + захід: 'Зх', + }, + }; + }, + {}, + ], + 20: [ + function (_dereq_, module, exports) { + module.exports = { + abbreviations: { + 'viện bảo tàng': 'VBT', + 'thị trấn': 'Tt', + 'đại học': 'ĐH', + 'căn cứ không quan': 'CCKQ', + 'câu lạc bộ': 'CLB', + 'bưu điện': 'BĐ', + 'khách sạn': 'KS', + 'khu du lịch': 'KDL', + 'khu công nghiệp': 'KCN', + 'khu nghỉ mát': 'KNM', + 'thị xã': 'Tx', + 'khu chung cư': 'KCC', + 'phi trường': 'PT', + 'trung tâm': 'TT', + 'tổng công ty': 'TCty', + 'trung học cơ sở': 'THCS', + 'sân bay quốc tế': 'SBQT', + 'trung học phổ thông': 'THPT', + 'cao đẳng': 'CĐ', + 'công ty': 'Cty', + 'sân bay': 'SB', + 'thành phố': 'Tp', + 'công viên': 'CV', + 'sân vận động': 'SVĐ', + 'linh mục': 'LM', + 'vườn quốc gia': 'VQG', + }, + classifications: { + 'huyện lộ': 'HL', + 'đường tỉnh': 'ĐT', + 'quốc lộ': 'QL', + 'xa lộ': 'XL', + 'hương lộ': 'HL', + 'tỉnh lộ': 'TL', + 'đường huyện': 'ĐH', + 'đường cao tốc': 'ĐCT', + 'đại lộ': 'ĐL', + 'việt nam': 'VN', + 'quảng trường': 'QT', + 'đường bộ': 'ĐB', + }, + directions: { + tây: 'T', + nam: 'N', + 'đông nam': 'ĐN', + 'đông bắc': 'ĐB', + 'tây nam': 'TN', + đông: 'Đ', + bắc: 'B', + }, + }; + }, + {}, + ], + 21: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + regExpFlags: 'gi', + }, + v5: { + article: [ + ['^ Acc[èe]s ', ' l’accès '], + ['^ Aire ', ' l’aire '], + ['^ All[ée]e ', ' l’allée '], + ['^ Anse ', ' l’anse '], + ["^ (L['’])?Autoroute ", ' l’autoroute '], + ['^ Avenue ', ' l’avenue '], + ['^ Barreau ', ' le barreau '], + ['^ Boulevard ', ' le boulevard '], + ['^ Chemin ', ' le chemin '], + ['^ Petit[\\- ]Chemin ', ' le petit chemin '], + ['^ Cit[ée] ', ' la cité '], + ['^ Clos ', ' le clos '], + ['^ Corniche ', ' la corniche '], + ['^ Cour ', ' la cour '], + ['^ Cours ', ' le cours '], + ['^ D[ée]viation ', ' la déviation '], + ['^ Entr[ée]e ', ' l’entrée '], + ['^ Esplanade ', ' l’esplanade '], + ['^ Galerie ', ' la galerie '], + ['^ Impasse ', ' l’impasse '], + ['^ Lotissement ', ' le lotissement '], + ['^ Mont[ée]e ', ' la montée '], + ['^ Parc ', ' le parc '], + ['^ Parvis ', ' le parvis '], + ['^ Passage ', ' le passage '], + ['^ Place ', ' la place '], + ['^ Petit[\\- ]Pont ', ' le petit-pont '], + ['^ Pont ', ' le pont '], + ['^ Promenade ', ' la promenade '], + ['^ Quai ', ' le quai '], + ['^ Rocade ', ' la rocade '], + ['^ Rond[\\- ]?Point ', ' le rond-point '], + ['^ Route ', ' la route '], + ['^ Rue ', ' la rue '], + ['^ Grande Rue ', ' la grande rue '], + ['^ Sente ', ' la sente '], + ['^ Sentier ', ' le sentier '], + ['^ Sortie ', ' la sortie '], + ['^ Souterrain ', ' le souterrain '], + ['^ Square ', ' le square '], + ['^ Terrasse ', ' la terrasse '], + ['^ Traverse ', ' la traverse '], + ['^ Tunnel ', ' le tunnel '], + ['^ Viaduc ', ' le viaduc '], + ['^ Villa ', ' la villa '], + ['^ Village ', ' le village '], + ['^ Voie ', ' la voie '], + + [" ([dl])'", ' $1’'], + ], + preposition: [ + ['^ Le ', ' du '], + ['^ Les ', ' des '], + ['^ La ', ' de La '], + + ['^ Acc[èe]s ', ' de l’accès '], + ['^ Aire ', ' de l’aire '], + ['^ All[ée]e ', ' de l’allée '], + ['^ Anse ', ' de l’anse '], + ["^ (L['’])?Autoroute ", ' de l’autoroute '], + ['^ Avenue ', ' de l’avenue '], + ['^ Barreau ', ' du barreau '], + ['^ Boulevard ', ' du boulevard '], + ['^ Chemin ', ' du chemin '], + ['^ Petit[\\- ]Chemin ', ' du petit chemin '], + ['^ Cit[ée] ', ' de la cité '], + ['^ Clos ', ' du clos '], + ['^ Corniche ', ' de la corniche '], + ['^ Cour ', ' de la cour '], + ['^ Cours ', ' du cours '], + ['^ D[ée]viation ', ' de la déviation '], + ['^ Entr[ée]e ', ' de l’entrée '], + ['^ Esplanade ', ' de l’esplanade '], + ['^ Galerie ', ' de la galerie '], + ['^ Impasse ', ' de l’impasse '], + ['^ Lotissement ', ' du lotissement '], + ['^ Mont[ée]e ', ' de la montée '], + ['^ Parc ', ' du parc '], + ['^ Parvis ', ' du parvis '], + ['^ Passage ', ' du passage '], + ['^ Place ', ' de la place '], + ['^ Petit[\\- ]Pont ', ' du petit-pont '], + ['^ Pont ', ' du pont '], + ['^ Promenade ', ' de la promenade '], + ['^ Quai ', ' du quai '], + ['^ Rocade ', ' de la rocade '], + ['^ Rond[\\- ]?Point ', ' du rond-point '], + ['^ Route ', ' de la route '], + ['^ Rue ', ' de la rue '], + ['^ Grande Rue ', ' de la grande rue '], + ['^ Sente ', ' de la sente '], + ['^ Sentier ', ' du sentier '], + ['^ Sortie ', ' de la sortie '], + ['^ Souterrain ', ' du souterrain '], + ['^ Square ', ' du square '], + ['^ Terrasse ', ' de la terrasse '], + ['^ Traverse ', ' de la traverse '], + ['^ Tunnel ', ' du tunnel '], + ['^ Viaduc ', ' du viaduc '], + ['^ Villa ', ' de la villa '], + ['^ Village ', ' du village '], + ['^ Voie ', ' de la voie '], + + ['^ ([AÂÀEÈÉÊËIÎÏOÔUÙÛÜYŸÆŒ])', ' d’$1'], + ['^ (\\S)', ' de $1'], + [" ([dl])'", ' $1’'], + ], + rotary: [ + ['^ Le ', ' le rond-point du '], + ['^ Les ', ' le rond-point des '], + ['^ La ', ' le rond-point de La '], + + ['^ Acc[èe]s ', ' le rond-point de l’accès '], + ['^ Aire ', ' le rond-point de l’aire '], + ['^ All[ée]e ', ' le rond-point de l’allée '], + ['^ Anse ', ' le rond-point de l’anse '], + ["^ (L['’])?Autoroute ", ' le rond-point de l’autoroute '], + ['^ Avenue ', ' le rond-point de l’avenue '], + ['^ Barreau ', ' le rond-point du barreau '], + ['^ Boulevard ', ' le rond-point du boulevard '], + ['^ Chemin ', ' le rond-point du chemin '], + ['^ Petit[\\- ]Chemin ', ' le rond-point du petit chemin '], + ['^ Cit[ée] ', ' le rond-point de la cité '], + ['^ Clos ', ' le rond-point du clos '], + ['^ Corniche ', ' le rond-point de la corniche '], + ['^ Cour ', ' le rond-point de la cour '], + ['^ Cours ', ' le rond-point du cours '], + ['^ D[ée]viation ', ' le rond-point de la déviation '], + ['^ Entr[ée]e ', ' le rond-point de l’entrée '], + ['^ Esplanade ', ' le rond-point de l’esplanade '], + ['^ Galerie ', ' le rond-point de la galerie '], + ['^ Impasse ', ' le rond-point de l’impasse '], + ['^ Lotissement ', ' le rond-point du lotissement '], + ['^ Mont[ée]e ', ' le rond-point de la montée '], + ['^ Parc ', ' le rond-point du parc '], + ['^ Parvis ', ' le rond-point du parvis '], + ['^ Passage ', ' le rond-point du passage '], + ['^ Place ', ' le rond-point de la place '], + ['^ Petit[\\- ]Pont ', ' le rond-point du petit-pont '], + ['^ Pont ', ' le rond-point du pont '], + ['^ Promenade ', ' le rond-point de la promenade '], + ['^ Quai ', ' le rond-point du quai '], + ['^ Rocade ', ' le rond-point de la rocade '], + ['^ Rond[\\- ]?Point ', ' le rond-point '], + ['^ Route ', ' le rond-point de la route '], + ['^ Rue ', ' le rond-point de la rue '], + ['^ Grande Rue ', ' le rond-point de la grande rue '], + ['^ Sente ', ' le rond-point de la sente '], + ['^ Sentier ', ' le rond-point du sentier '], + ['^ Sortie ', ' le rond-point de la sortie '], + ['^ Souterrain ', ' le rond-point du souterrain '], + ['^ Square ', ' le rond-point du square '], + ['^ Terrasse ', ' le rond-point de la terrasse '], + ['^ Traverse ', ' le rond-point de la traverse '], + ['^ Tunnel ', ' le rond-point du tunnel '], + ['^ Viaduc ', ' le rond-point du viaduc '], + ['^ Villa ', ' le rond-point de la villa '], + ['^ Village ', ' le rond-point du village '], + ['^ Voie ', ' le rond-point de la voie '], + + ['^ ([AÂÀEÈÉÊËIÎÏOÔUÙÛÜYŸÆŒ])', ' le rond-point d’$1'], + ['^ (\\S)', ' le rond-point de $1'], + [" ([dl])'", ' $1’'], + ], + arrival: [ + ['^ Le ', ' au '], + ['^ Les ', ' aux '], + ['^ La ', ' à La '], + ['^ (\\S)', ' à $1'], + + [" ([dl])'", ' $1’'], + ], + }, + }; + }, + {}, + ], + 22: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + regExpFlags: '', + }, + v5: { + accusative: [ + ['^ ([«"])', ' трасса $1'], + + ['^ (\\S+)ая [Аа]ллея ', ' $1ую аллею '], + ['^ (\\S+)ья [Аа]ллея ', ' $1ью аллею '], + ['^ (\\S+)яя [Аа]ллея ', ' $1юю аллею '], + ['^ (\\d+)-я (\\S+)ая [Аа]ллея ', ' $1-ю $2ую аллею '], + ['^ [Аа]ллея ', ' аллею '], + + ['^ (\\S+)ая-(\\S+)ая [Уу]лица ', ' $1ую-$2ую улицу '], + ['^ (\\S+)ая [Уу]лица ', ' $1ую улицу '], + ['^ (\\S+)ья [Уу]лица ', ' $1ью улицу '], + ['^ (\\S+)яя [Уу]лица ', ' $1юю улицу '], + ['^ (\\d+)-я [Уу]лица ', ' $1-ю улицу '], + ['^ (\\d+)-я (\\S+)ая [Уу]лица ', ' $1-ю $2ую улицу '], + ['^ (\\S+)ая (\\S+)ая [Уу]лица ', ' $1ую $2ую улицу '], + ['^ (\\S+[вн])а [Уу]лица ', ' $1у улицу '], + ['^ (\\S+)ая (\\S+[вн])а [Уу]лица ', ' $1ую $2у улицу '], + ['^ Даньславля [Уу]лица ', ' Даньславлю улицу '], + ['^ Добрыня [Уу]лица ', ' Добрыню улицу '], + ['^ Людогоща [Уу]лица ', ' Людогощу улицу '], + ['^ [Уу]лица ', ' улицу '], + + ['^ (\\d+)-я [Лл]иния ', ' $1-ю линию '], + ['^ (\\d+)-(\\d+)-я [Лл]иния ', ' $1-$2-ю линию '], + ['^ (\\S+)ая [Лл]иния ', ' $1ую линию '], + ['^ (\\S+)ья [Лл]иния ', ' $1ью линию '], + ['^ (\\S+)яя [Лл]иния ', ' $1юю линию '], + ['^ (\\d+)-я (\\S+)ая [Лл]иния ', ' $1-ю $2ую линию '], + ['^ [Лл]иния ', ' линию '], + + ['^ (\\d+)-(\\d+)-я [Лл]инии ', ' $1-$2-ю линии '], + + ['^ (\\S+)ая [Нн]абережная ', ' $1ую набережную '], + ['^ (\\S+)ья [Нн]абережная ', ' $1ью набережную '], + ['^ (\\S+)яя [Нн]абережная ', ' $1юю набережную '], + ['^ (\\d+)-я (\\S+)ая [Нн]абережная ', ' $1-ю $2ую набережную '], + ['^ [Нн]абережная ', ' набережную '], + + ['^ (\\S+)ая [Пп]лощадь ', ' $1ую площадь '], + ['^ (\\S+)ья [Пп]лощадь ', ' $1ью площадь '], + ['^ (\\S+)яя [Пп]лощадь ', ' $1юю площадь '], + ['^ (\\S+[вн])а [Пп]лощадь ', ' $1у площадь '], + ['^ (\\d+)-я (\\S+)ая [Пп]лощадь ', ' $1-ю $2ую площадь '], + ['^ [Пп]лощадь ', ' площадь '], + + ['^ (\\S+)ая [Пп]росека ', ' $1ую просеку '], + ['^ (\\S+)ья [Пп]росека ', ' $1ью просеку '], + ['^ (\\S+)яя [Пп]росека ', ' $1юю просеку '], + ['^ (\\d+)-я [Пп]росека ', ' $1-ю просеку '], + ['^ [Пп]росека ', ' просеку '], + + ['^ (\\S+)ая [Ээ]стакада ', ' $1ую эстакаду '], + ['^ (\\S+)ья [Ээ]стакада ', ' $1ью эстакаду '], + ['^ (\\S+)яя [Ээ]стакада ', ' $1юю эстакаду '], + ['^ (\\d+)-я (\\S+)ая [Ээ]стакада ', ' $1-ю $2ую эстакаду '], + ['^ [Ээ]стакада ', ' эстакаду '], + + ['^ (\\S+)ая [Мм]агистраль ', ' $1ую магистраль '], + ['^ (\\S+)ья [Мм]агистраль ', ' $1ью магистраль '], + ['^ (\\S+)яя [Мм]агистраль ', ' $1юю магистраль '], + ['^ (\\S+)ая (\\S+)ая [Мм]агистраль ', ' $1ую $2ую магистраль '], + ['^ (\\d+)-я (\\S+)ая [Мм]агистраль ', ' $1-ю $2ую магистраль '], + ['^ [Мм]агистраль ', ' магистраль '], + + ['^ (\\S+)ая [Рр]азвязка ', ' $1ую развязку '], + ['^ (\\S+)ья [Рр]азвязка ', ' $1ью развязку '], + ['^ (\\S+)яя [Рр]азвязка ', ' $1юю развязку '], + ['^ (\\d+)-я (\\S+)ая [Рр]азвязка ', ' $1-ю $2ую развязку '], + ['^ [Рр]азвязка ', ' развязку '], + + ['^ (\\S+)ая [Тт]расса ', ' $1ую трассу '], + ['^ (\\S+)ья [Тт]расса ', ' $1ью трассу '], + ['^ (\\S+)яя [Тт]расса ', ' $1юю трассу '], + ['^ (\\d+)-я (\\S+)ая [Тт]расса ', ' $1-ю $2ую трассу '], + ['^ [Тт]расса ', ' трассу '], + + ['^ (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1ую $2дорогу '], + ['^ (\\S+)ья ([Аа]вто)?[Дд]орога ', ' $1ью $2дорогу '], + ['^ (\\S+)яя ([Аа]вто)?[Дд]орога ', ' $1юю $2дорогу '], + ['^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1ую $2ую $3дорогу '], + ['^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1-ю $2ую $3дорогу '], + ['^ ([Аа]вто)?[Дд]орога ', ' $1дорогу '], + + ['^ (\\S+)ая [Дд]орожка ', ' $1ую дорожку '], + ['^ (\\S+)ья [Дд]орожка ', ' $1ью дорожку '], + ['^ (\\S+)яя [Дд]орожка ', ' $1юю дорожку '], + ['^ (\\d+)-я (\\S+)ая [Дд]орожка ', ' $1-ю $2ую дорожку '], + ['^ [Дд]орожка ', ' дорожку '], + + ['^ (\\S+)ая [Кк]оса ', ' $1ую косу '], + ['^ (\\S+)ая [Хх]орда ', ' $1ую хорду '], + + ['^ [Дд]убл[её]р ', ' дублёр '], + ], + dative: [ + ['^ ([«"])', ' трасса $1'], + + ['^ (\\S+)ая [Аа]ллея ', ' $1ой аллее '], + ['^ (\\S+)ья [Аа]ллея ', ' $1ьей аллее '], + ['^ (\\S+)яя [Аа]ллея ', ' $1ей аллее '], + ['^ (\\d+)-я (\\S+)ая [Аа]ллея ', ' $1-й $2ой аллее '], + ['^ [Аа]ллея ', ' аллее '], + + ['^ (\\S+)ая-(\\S+)ая [Уу]лица ', ' $1ой-$2ой улице '], + ['^ (\\S+)ая [Уу]лица ', ' $1ой улице '], + ['^ (\\S+)ья [Уу]лица ', ' $1ьей улице '], + ['^ (\\S+)яя [Уу]лица ', ' $1ей улице '], + ['^ (\\d+)-я [Уу]лица ', ' $1-й улице '], + ['^ (\\d+)-я (\\S+)ая [Уу]лица ', ' $1-й $2ой улице '], + ['^ (\\S+)ая (\\S+)ая [Уу]лица ', ' $1ой $2ой улице '], + ['^ (\\S+[вн])а [Уу]лица ', ' $1ой улице '], + ['^ (\\S+)ая (\\S+[вн])а [Уу]лица ', ' $1ой $2ой улице '], + ['^ Даньславля [Уу]лица ', ' Даньславлей улице '], + ['^ Добрыня [Уу]лица ', ' Добрыней улице '], + ['^ Людогоща [Уу]лица ', ' Людогощей улице '], + ['^ [Уу]лица ', ' улице '], + + ['^ (\\d+)-я [Лл]иния ', ' $1-й линии '], + ['^ (\\d+)-(\\d+)-я [Лл]иния ', ' $1-$2-й линии '], + ['^ (\\S+)ая [Лл]иния ', ' $1ой линии '], + ['^ (\\S+)ья [Лл]иния ', ' $1ьей линии '], + ['^ (\\S+)яя [Лл]иния ', ' $1ей линии '], + ['^ (\\d+)-я (\\S+)ая [Лл]иния ', ' $1-й $2ой линии '], + ['^ [Лл]иния ', ' линии '], + + ['^ (\\d+)-(\\d+)-я [Лл]инии ', ' $1-$2-й линиям '], + + ['^ (\\S+)ая [Нн]абережная ', ' $1ой набережной '], + ['^ (\\S+)ья [Нн]абережная ', ' $1ьей набережной '], + ['^ (\\S+)яя [Нн]абережная ', ' $1ей набережной '], + ['^ (\\d+)-я (\\S+)ая [Нн]абережная ', ' $1-й $2ой набережной '], + ['^ [Нн]абережная ', ' набережной '], + + ['^ (\\S+)ая [Пп]лощадь ', ' $1ой площади '], + ['^ (\\S+)ья [Пп]лощадь ', ' $1ьей площади '], + ['^ (\\S+)яя [Пп]лощадь ', ' $1ей площади '], + ['^ (\\S+[вн])а [Пп]лощадь ', ' $1ой площади '], + ['^ (\\d+)-я (\\S+)ая [Пп]лощадь ', ' $1-й $2ой площади '], + ['^ [Пп]лощадь ', ' площади '], + + ['^ (\\S+)ая [Пп]росека ', ' $1ой просеке '], + ['^ (\\S+)ья [Пп]росека ', ' $1ьей просеке '], + ['^ (\\S+)яя [Пп]росека ', ' $1ей просеке '], + ['^ (\\d+)-я [Пп]росека ', ' $1-й просеке '], + ['^ [Пп]росека ', ' просеке '], + + ['^ (\\S+)ая [Ээ]стакада ', ' $1ой эстакаде '], + ['^ (\\S+)ья [Ээ]стакада ', ' $1ьей эстакаде '], + ['^ (\\S+)яя [Ээ]стакада ', ' $1ей эстакаде '], + ['^ (\\d+)-я (\\S+)ая [Ээ]стакада ', ' $1-й $2ой эстакаде '], + ['^ [Ээ]стакада ', ' эстакаде '], + + ['^ (\\S+)ая [Мм]агистраль ', ' $1ой магистрали '], + ['^ (\\S+)ья [Мм]агистраль ', ' $1ьей магистрали '], + ['^ (\\S+)яя [Мм]агистраль ', ' $1ей магистрали '], + ['^ (\\S+)ая (\\S+)ая [Мм]агистраль ', ' $1ой $2ой магистрали '], + ['^ (\\d+)-я (\\S+)ая [Мм]агистраль ', ' $1-й $2ой магистрали '], + ['^ [Мм]агистраль ', ' магистрали '], + + ['^ (\\S+)ая [Рр]азвязка ', ' $1ой развязке '], + ['^ (\\S+)ья [Рр]азвязка ', ' $1ьей развязке '], + ['^ (\\S+)яя [Рр]азвязка ', ' $1ей развязке '], + ['^ (\\d+)-я (\\S+)ая [Рр]азвязка ', ' $1-й $2ой развязке '], + ['^ [Рр]азвязка ', ' развязке '], + + ['^ (\\S+)ая [Тт]расса ', ' $1ой трассе '], + ['^ (\\S+)ья [Тт]расса ', ' $1ьей трассе '], + ['^ (\\S+)яя [Тт]расса ', ' $1ей трассе '], + ['^ (\\d+)-я (\\S+)ая [Тт]расса ', ' $1-й $2ой трассе '], + ['^ [Тт]расса ', ' трассе '], + + ['^ (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1ой $2дороге '], + ['^ (\\S+)ья ([Аа]вто)?[Дд]орога ', ' $1ьей $2дороге '], + ['^ (\\S+)яя ([Аа]вто)?[Дд]орога ', ' $1ей $2дороге '], + ['^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1ой $2ой $3дороге '], + ['^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1-й $2ой $3дороге '], + ['^ ([Аа]вто)?[Дд]орога ', ' $1дороге '], + + ['^ (\\S+)ая [Дд]орожка ', ' $1ой дорожке '], + ['^ (\\S+)ья [Дд]орожка ', ' $1ьей дорожке '], + ['^ (\\S+)яя [Дд]орожка ', ' $1ей дорожке '], + ['^ (\\d+)-я (\\S+)ая [Дд]орожка ', ' $1-й $2ой дорожке '], + ['^ [Дд]орожка ', ' дорожке '], + + ['^ (\\S+)во [Пп]оле ', ' $1ву полю '], + ['^ (\\S+)ая [Кк]оса ', ' $1ой косе '], + ['^ (\\S+)ая [Хх]орда ', ' $1ой хорде '], + ['^ (\\S+)[иоы]й [Пп]роток ', ' $1ому протоку '], + + ['^ (\\S+н)ий [Бб]ульвар ', ' $1ему бульвару '], + ['^ (\\S+)[иоы]й [Бб]ульвар ', ' $1ому бульвару '], + ['^ (\\S+[иы]н) [Бб]ульвар ', ' $1у бульвару '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ', ' $1ому $2ему бульвару '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ', ' $1ему $2ому бульвару '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ', ' $1ому $2ому бульвару '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ', ' $1ому $2у бульвару '], + ['^ (\\d+)-й (\\S+н)ий [Бб]ульвар ', ' $1-му $2ему бульвару '], + ['^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ', ' $1-му $2ому бульвару '], + ['^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ', ' $1-му $2у бульвару '], + ['^ [Бб]ульвар ', ' бульвару '], + + ['^ [Дд]убл[её]р ', ' дублёру '], + + ['^ (\\S+н)ий [Зз]аезд ', ' $1ему заезду '], + ['^ (\\S+)[иоы]й [Зз]аезд ', ' $1ому заезду '], + ['^ (\\S+[еёо]в) [Зз]аезд ', ' $1у заезду '], + ['^ (\\S+[иы]н) [Зз]аезд ', ' $1у заезду '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ', ' $1ому $2ему заезду '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ', ' $1ему $2ому заезду '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ', ' $1ому $2ому заезду '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ', ' $1ому $2у заезду '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ', ' $1ому $2у заезду '], + ['^ (\\d+)-й (\\S+н)ий [Зз]аезд ', ' $1-му $2ему заезду '], + ['^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ', ' $1-му $2ому заезду '], + ['^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ', ' $1-му $2у заезду '], + ['^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ', ' $1-му $2у заезду '], + ['^ [Зз]аезд ', ' заезду '], + + ['^ (\\S+н)ий [Мм]ост ', ' $1ему мосту '], + ['^ (\\S+)[иоы]й [Мм]ост ', ' $1ому мосту '], + ['^ (\\S+[еёо]в) [Мм]ост ', ' $1у мосту '], + ['^ (\\S+[иы]н) [Мм]ост ', ' $1у мосту '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ', ' $1ому $2ему мосту '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ', ' $1ему $2ому мосту '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ', ' $1ому $2ому мосту '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ', ' $1ому $2у мосту '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ', ' $1ому $2у мосту '], + ['^ (\\d+)-й [Мм]ост ', ' $1-му мосту '], + ['^ (\\d+)-й (\\S+н)ий [Мм]ост ', ' $1-му $2ему мосту '], + ['^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ', ' $1-му $2ому мосту '], + ['^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ', ' $1-му $2у мосту '], + ['^ (\\d+)-й (\\S+[иы]н) [Мм]ост ', ' $1-му $2у мосту '], + ['^ [Мм]ост ', ' мосту '], + + ['^ (\\S+н)ий [Оо]бход ', ' $1ему обходу '], + ['^ (\\S+)[иоы]й [Оо]бход ', ' $1ому обходу '], + ['^ [Оо]бход ', ' обходу '], + + ['^ (\\S+н)ий [Пп]арк ', ' $1ему парку '], + ['^ (\\S+)[иоы]й [Пп]арк ', ' $1ому парку '], + ['^ (\\S+[иы]н) [Пп]арк ', ' $1у парку '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ', ' $1ому $2ему парку '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ', ' $1ему $2ому парку '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ', ' $1ому $2ому парку '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ', ' $1ому $2у парку '], + ['^ (\\d+)-й (\\S+н)ий [Пп]арк ', ' $1-му $2ему парку '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ', ' $1-му $2ому парку '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]арк ', ' $1-му $2у парку '], + ['^ [Пп]арк ', ' парку '], + + ['^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ', ' $1ому-$2ому переулку '], + ['^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ', ' $1-му $2ому-$3ому переулку '], + ['^ (\\S+н)ий [Пп]ереулок ', ' $1ему переулку '], + ['^ (\\S+)[иоы]й [Пп]ереулок ', ' $1ому переулку '], + ['^ (\\S+[еёо]в) [Пп]ереулок ', ' $1у переулку '], + ['^ (\\S+[иы]н) [Пп]ереулок ', ' $1у переулку '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ', ' $1ому $2ему переулку '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ', ' $1ему $2ому переулку '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ', ' $1ому $2ому переулку '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ', ' $1ому $2у переулку '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ', ' $1ому $2у переулку '], + ['^ (\\d+)-й [Пп]ереулок ', ' $1-му переулку '], + ['^ (\\d+)-й (\\S+н)ий [Пп]ереулок ', ' $1-му $2ему переулку '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ', ' $1-му $2ому переулку '], + ['^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ', ' $1-му $2у переулку '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ', ' $1-му $2у переулку '], + ['^ [Пп]ереулок ', ' переулку '], + + ['^ [Пп]одъезд ', ' подъезду '], + + ['^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ', ' $1у-$2ому проезду '], + ['^ (\\S+н)ий [Пп]роезд ', ' $1ему проезду '], + ['^ (\\S+)[иоы]й [Пп]роезд ', ' $1ому проезду '], + ['^ (\\S+[еёо]в) [Пп]роезд ', ' $1у проезду '], + ['^ (\\S+[иы]н) [Пп]роезд ', ' $1у проезду '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ', ' $1ому $2ему проезду '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ', ' $1ему $2ому проезду '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ', ' $1ому $2ому проезду '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ', ' $1ому $2у проезду '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ', ' $1ому $2у проезду '], + ['^ (\\d+)-й [Пп]роезд ', ' $1-му проезду '], + ['^ (\\d+)-й (\\S+н)ий [Пп]роезд ', ' $1-му $2ему проезду '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ', ' $1-му $2ому проезду '], + ['^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ', ' $1-му $2у проезду '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ', ' $1-му $2у проезду '], + ['^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ', ' $1-му $2ему $3ому проезду '], + ['^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ', ' $1-му $2ому $3ому проезду '], + ['^ [Пп]роезд ', ' проезду '], + + ['^ (\\S+н)ий [Пп]роспект ', ' $1ему проспекту '], + ['^ (\\S+)[иоы]й [Пп]роспект ', ' $1ому проспекту '], + ['^ (\\S+[иы]н) [Пп]роспект ', ' $1у проспекту '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ', ' $1ому $2ему проспекту '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ', ' $1ему $2ому проспекту '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ', ' $1ому $2ому проспекту '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ', ' $1ому $2у проспекту '], + ['^ (\\d+)-й (\\S+н)ий [Пп]роспект ', ' $1-му $2ему проспекту '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ', ' $1-му $2ому проспекту '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ', ' $1-му $2у проспекту '], + ['^ [Пп]роспект ', ' проспекту '], + + ['^ (\\S+н)ий [Пп]утепровод ', ' $1ему путепроводу '], + ['^ (\\S+)[иоы]й [Пп]утепровод ', ' $1ому путепроводу '], + ['^ (\\S+[иы]н) [Пп]утепровод ', ' $1у путепроводу '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ', ' $1ому $2ему путепроводу '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ', ' $1ему $2ому путепроводу '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ', ' $1ому $2ому путепроводу '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ', ' $1ому $2у путепроводу '], + ['^ (\\d+)-й (\\S+н)ий [Пп]утепровод ', ' $1-му $2ему путепроводу '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ', ' $1-му $2ому путепроводу '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ', ' $1-му $2у путепроводу '], + ['^ [Пп]утепровод ', ' путепроводу '], + + ['^ (\\S+н)ий [Сс]пуск ', ' $1ему спуску '], + ['^ (\\S+)[иоы]й [Сс]пуск ', ' $1ому спуску '], + ['^ (\\S+[еёо]в) [Сс]пуск ', ' $1у спуску '], + ['^ (\\S+[иы]н) [Сс]пуск ', ' $1у спуску '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ', ' $1ому $2ему спуску '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ', ' $1ему $2ому спуску '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ', ' $1ому $2ому спуску '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ', ' $1ому $2у спуску '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ', ' $1ому $2у спуску '], + ['^ (\\d+)-й (\\S+н)ий [Сс]пуск ', ' $1-му $2ему спуску '], + ['^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ', ' $1-му $2ому спуску '], + ['^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ', ' $1-му $2у спуску '], + ['^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ', ' $1-му $2у спуску '], + ['^ [Сс]пуск ', ' спуску '], + + ['^ (\\S+н)ий [Сс]ъезд ', ' $1ему съезду '], + ['^ (\\S+)[иоы]й [Сс]ъезд ', ' $1ому съезду '], + ['^ (\\S+[иы]н) [Сс]ъезд ', ' $1у съезду '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ', ' $1ому $2ему съезду '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ', ' $1ему $2ому съезду '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ', ' $1ому $2ому съезду '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ', ' $1ому $2у съезду '], + ['^ (\\d+)-й (\\S+н)ий [Сс]ъезд ', ' $1-му $2ему съезду '], + ['^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ', ' $1-му $2ому съезду '], + ['^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ', ' $1-му $2у съезду '], + ['^ [Сс]ъезд ', ' съезду '], + + ['^ (\\S+н)ий [Тт][уо]ннель ', ' $1ему тоннелю '], + ['^ (\\S+)[иоы]й [Тт][уо]ннель ', ' $1ому тоннелю '], + ['^ (\\S+[иы]н) [Тт][уо]ннель ', ' $1у тоннелю '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ', ' $1ому $2ему тоннелю '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ', ' $1ему $2ому тоннелю '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ', ' $1ому $2ому тоннелю '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ', ' $1ому $2у тоннелю '], + ['^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ', ' $1-му $2ему тоннелю '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ', ' $1-му $2ому тоннелю '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ', ' $1-му $2у тоннелю '], + ['^ [Тт][уо]ннель ', ' тоннелю '], + + ['^ (\\S+н)ий [Тт]ракт ', ' $1ему тракту '], + ['^ (\\S+)[иоы]й [Тт]ракт ', ' $1ому тракту '], + ['^ (\\S+[еёо]в) [Тт]ракт ', ' $1у тракту '], + ['^ (\\S+[иы]н) [Тт]ракт ', ' $1у тракту '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ', ' $1ому $2ему тракту '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ', ' $1ему $2ому тракту '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ', ' $1ому $2ому тракту '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ', ' $1ому $2у тракту '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ', ' $1ому $2у тракту '], + ['^ (\\d+)-й (\\S+н)ий [Тт]ракт ', ' $1-му $2ему тракту '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ', ' $1-му $2ому тракту '], + ['^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ', ' $1-му $2у тракту '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ', ' $1-му $2у тракту '], + ['^ [Тт]ракт ', ' тракту '], + + ['^ (\\S+н)ий [Тт]упик ', ' $1ему тупику '], + ['^ (\\S+)[иоы]й [Тт]упик ', ' $1ому тупику '], + ['^ (\\S+[еёо]в) [Тт]упик ', ' $1у тупику '], + ['^ (\\S+[иы]н) [Тт]упик ', ' $1у тупику '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ', ' $1ому $2ему тупику '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ', ' $1ему $2ому тупику '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ', ' $1ому $2ому тупику '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ', ' $1ому $2у тупику '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ', ' $1ому $2у тупику '], + ['^ (\\d+)-й [Тт]упик ', ' $1-му тупику '], + ['^ (\\d+)-й (\\S+н)ий [Тт]упик ', ' $1-му $2ему тупику '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ', ' $1-му $2ому тупику '], + ['^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ', ' $1-му $2у тупику '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт]упик ', ' $1-му $2у тупику '], + ['^ [Тт]упик ', ' тупику '], + + ['^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1му $2кольцу '], + ['^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ', ' $1му $2кольцу '], + ['^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1му $2му $3кольцу '], + ['^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1му $2му $3кольцу '], + ['^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1-му $2му $3кольцу '], + ['^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ', ' $1-му $2му $3кольцу '], + ['^ ([Пп]олу)?[Кк]ольцо ', ' $1кольцу '], + + ['^ (\\S+[ео])е [Шш]оссе ', ' $1му шоссе '], + ['^ (\\S+ье) [Шш]оссе ', ' $1му шоссе '], + ['^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ', ' $1му $2му шоссе '], + ['^ (\\S+ье) (\\S+[ео])е [Шш]оссе ', ' $1му $2му шоссе '], + ['^ (\\d+)-е (\\S+[ео])е [Шш]оссе ', ' $1-му $2му шоссе '], + ['^ (\\d+)-е (\\S+ье) [Шш]оссе ', ' $1-му $2му шоссе '], + + [' ([Тт])ретому ', ' $1ретьему '], + ['([жч])ому ', '$1ьему '], + ['([жч])ой ', '$1ей '], + ], + genitive: [ + ['^ ([«"])', ' трасса $1'], + + ['^ (\\S+)ая [Аа]ллея ', ' $1ой аллеи '], + ['^ (\\S+)ья [Аа]ллея ', ' $1ьей аллеи '], + ['^ (\\S+)яя [Аа]ллея ', ' $1ей аллеи '], + ['^ (\\d+)-я (\\S+)ая [Аа]ллея ', ' $1-й $2ой аллеи '], + ['^ [Аа]ллея ', ' аллеи '], + + ['^ (\\S+)ая-(\\S+)ая [Уу]лица ', ' $1ой-$2ой улицы '], + ['^ (\\S+)ая [Уу]лица ', ' $1ой улицы '], + ['^ (\\S+)ья [Уу]лица ', ' $1ьей улицы '], + ['^ (\\S+)яя [Уу]лица ', ' $1ей улицы '], + ['^ (\\d+)-я [Уу]лица ', ' $1-й улицы '], + ['^ (\\d+)-я (\\S+)ая [Уу]лица ', ' $1-й $2ой улицы '], + ['^ (\\S+)ая (\\S+)ая [Уу]лица ', ' $1ой $2ой улицы '], + ['^ (\\S+[вн])а [Уу]лица ', ' $1ой улицы '], + ['^ (\\S+)ая (\\S+[вн])а [Уу]лица ', ' $1ой $2ой улицы '], + ['^ Даньславля [Уу]лица ', ' Даньславлей улицы '], + ['^ Добрыня [Уу]лица ', ' Добрыней улицы '], + ['^ Людогоща [Уу]лица ', ' Людогощей улицы '], + ['^ [Уу]лица ', ' улицы '], + + ['^ (\\d+)-я [Лл]иния ', ' $1-й линии '], + ['^ (\\d+)-(\\d+)-я [Лл]иния ', ' $1-$2-й линии '], + ['^ (\\S+)ая [Лл]иния ', ' $1ой линии '], + ['^ (\\S+)ья [Лл]иния ', ' $1ьей линии '], + ['^ (\\S+)яя [Лл]иния ', ' $1ей линии '], + ['^ (\\d+)-я (\\S+)ая [Лл]иния ', ' $1-й $2ой линии '], + ['^ [Лл]иния ', ' линии '], + + ['^ (\\d+)-(\\d+)-я [Лл]инии ', ' $1-$2-й линий '], + + ['^ (\\S+)ая [Нн]абережная ', ' $1ой набережной '], + ['^ (\\S+)ья [Нн]абережная ', ' $1ьей набережной '], + ['^ (\\S+)яя [Нн]абережная ', ' $1ей набережной '], + ['^ (\\d+)-я (\\S+)ая [Нн]абережная ', ' $1-й $2ой набережной '], + ['^ [Нн]абережная ', ' набережной '], + + ['^ (\\S+)ая [Пп]лощадь ', ' $1ой площади '], + ['^ (\\S+)ья [Пп]лощадь ', ' $1ьей площади '], + ['^ (\\S+)яя [Пп]лощадь ', ' $1ей площади '], + ['^ (\\S+[вн])а [Пп]лощадь ', ' $1ой площади '], + ['^ (\\d+)-я (\\S+)ая [Пп]лощадь ', ' $1-й $2ой площади '], + ['^ [Пп]лощадь ', ' площади '], + + ['^ (\\S+)ая [Пп]росека ', ' $1ой просеки '], + ['^ (\\S+)ья [Пп]росека ', ' $1ьей просеки '], + ['^ (\\S+)яя [Пп]росека ', ' $1ей просеки '], + ['^ (\\d+)-я [Пп]росека ', ' $1-й просеки '], + ['^ [Пп]росека ', ' просеки '], + + ['^ (\\S+)ая [Ээ]стакада ', ' $1ой эстакады '], + ['^ (\\S+)ья [Ээ]стакада ', ' $1ьей эстакады '], + ['^ (\\S+)яя [Ээ]стакада ', ' $1ей эстакады '], + ['^ (\\d+)-я (\\S+)ая [Ээ]стакада ', ' $1-й $2ой эстакады '], + ['^ [Ээ]стакада ', ' эстакады '], + + ['^ (\\S+)ая [Мм]агистраль ', ' $1ой магистрали '], + ['^ (\\S+)ья [Мм]агистраль ', ' $1ьей магистрали '], + ['^ (\\S+)яя [Мм]агистраль ', ' $1ей магистрали '], + ['^ (\\S+)ая (\\S+)ая [Мм]агистраль ', ' $1ой $2ой магистрали '], + ['^ (\\d+)-я (\\S+)ая [Мм]агистраль ', ' $1-й $2ой магистрали '], + ['^ [Мм]агистраль ', ' магистрали '], + + ['^ (\\S+)ая [Рр]азвязка ', ' $1ой развязки '], + ['^ (\\S+)ья [Рр]азвязка ', ' $1ьей развязки '], + ['^ (\\S+)яя [Рр]азвязка ', ' $1ей развязки '], + ['^ (\\d+)-я (\\S+)ая [Рр]азвязка ', ' $1-й $2ой развязки '], + ['^ [Рр]азвязка ', ' развязки '], + + ['^ (\\S+)ая [Тт]расса ', ' $1ой трассы '], + ['^ (\\S+)ья [Тт]расса ', ' $1ьей трассы '], + ['^ (\\S+)яя [Тт]расса ', ' $1ей трассы '], + ['^ (\\d+)-я (\\S+)ая [Тт]расса ', ' $1-й $2ой трассы '], + ['^ [Тт]расса ', ' трассы '], + + ['^ (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1ой $2дороги '], + ['^ (\\S+)ья ([Аа]вто)?[Дд]орога ', ' $1ьей $2дороги '], + ['^ (\\S+)яя ([Аа]вто)?[Дд]орога ', ' $1ей $2дороги '], + ['^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1ой $2ой $3дороги '], + ['^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1-й $2ой $3дороги '], + ['^ ([Аа]вто)?[Дд]орога ', ' $1дороги '], + + ['^ (\\S+)ая [Дд]орожка ', ' $1ой дорожки '], + ['^ (\\S+)ья [Дд]орожка ', ' $1ьей дорожки '], + ['^ (\\S+)яя [Дд]орожка ', ' $1ей дорожки '], + ['^ (\\d+)-я (\\S+)ая [Дд]орожка ', ' $1-й $2ой дорожки '], + ['^ [Дд]орожка ', ' дорожки '], + + ['^ (\\S+)во [Пп]оле ', ' $1ва поля '], + ['^ (\\S+)ая [Кк]оса ', ' $1ой косы '], + ['^ (\\S+)ая [Хх]орда ', ' $1ой хорды '], + ['^ (\\S+)[иоы]й [Пп]роток ', ' $1ого протока '], + + ['^ (\\S+н)ий [Бб]ульвар ', ' $1его бульвара '], + ['^ (\\S+)[иоы]й [Бб]ульвар ', ' $1ого бульвара '], + ['^ (\\S+[иы]н) [Бб]ульвар ', ' $1ого бульвара '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ', ' $1ого $2его бульвара '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ', ' $1его $2ого бульвара '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ', ' $1ого $2ого бульвара '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ', ' $1ого $2ого бульвара '], + ['^ (\\d+)-й (\\S+н)ий [Бб]ульвар ', ' $1-го $2его бульвара '], + ['^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ', ' $1-го $2ого бульвара '], + ['^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ', ' $1-го $2ого бульвара '], + ['^ [Бб]ульвар ', ' бульвара '], + + ['^ [Дд]убл[её]р ', ' дублёра '], + + ['^ (\\S+н)ий [Зз]аезд ', ' $1его заезда '], + ['^ (\\S+)[иоы]й [Зз]аезд ', ' $1ого заезда '], + ['^ (\\S+[еёо]в) [Зз]аезд ', ' $1а заезда '], + ['^ (\\S+[иы]н) [Зз]аезд ', ' $1а заезда '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ', ' $1ого $2его заезда '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ', ' $1его $2ого заезда '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ', ' $1ого $2ого заезда '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ', ' $1ого $2а заезда '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ', ' $1ого $2а заезда '], + ['^ (\\d+)-й (\\S+н)ий [Зз]аезд ', ' $1-го $2его заезда '], + ['^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ', ' $1-го $2ого заезда '], + ['^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ', ' $1-го $2а заезда '], + ['^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ', ' $1-го $2а заезда '], + ['^ [Зз]аезд ', ' заезда '], + + ['^ (\\S+н)ий [Мм]ост ', ' $1его моста '], + ['^ (\\S+)[иоы]й [Мм]ост ', ' $1ого моста '], + ['^ (\\S+[еёо]в) [Мм]ост ', ' $1а моста '], + ['^ (\\S+[иы]н) [Мм]ост ', ' $1а моста '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ', ' $1ого $2его моста '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ', ' $1его $2ого моста '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ', ' $1ого $2ого моста '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ', ' $1ого $2а моста '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ', ' $1ого $2а моста '], + ['^ (\\d+)-й [Мм]ост ', ' $1-го моста '], + ['^ (\\d+)-й (\\S+н)ий [Мм]ост ', ' $1-го $2его моста '], + ['^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ', ' $1-го $2ого моста '], + ['^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ', ' $1-го $2а моста '], + ['^ (\\d+)-й (\\S+[иы]н) [Мм]ост ', ' $1-го $2а моста '], + ['^ [Мм]ост ', ' моста '], + + ['^ (\\S+н)ий [Оо]бход ', ' $1его обхода '], + ['^ (\\S+)[иоы]й [Оо]бход ', ' $1ого обхода '], + ['^ [Оо]бход ', ' обхода '], + + ['^ (\\S+н)ий [Пп]арк ', ' $1его парка '], + ['^ (\\S+)[иоы]й [Пп]арк ', ' $1ого парка '], + ['^ (\\S+[иы]н) [Пп]арк ', ' $1ого парка '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ', ' $1ого $2его парка '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ', ' $1его $2ого парка '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ', ' $1ого $2ого парка '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ', ' $1ого $2ого парка '], + ['^ (\\d+)-й (\\S+н)ий [Пп]арк ', ' $1-го $2его парка '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ', ' $1-го $2ого парка '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]арк ', ' $1-го $2ого парка '], + ['^ [Пп]арк ', ' парка '], + + ['^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ', ' $1ого-$2ого переулка '], + ['^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ', ' $1-го $2ого-$3ого переулка '], + ['^ (\\S+н)ий [Пп]ереулок ', ' $1его переулка '], + ['^ (\\S+)[иоы]й [Пп]ереулок ', ' $1ого переулка '], + ['^ (\\S+[еёо]в) [Пп]ереулок ', ' $1а переулка '], + ['^ (\\S+[иы]н) [Пп]ереулок ', ' $1а переулка '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ', ' $1ого $2его переулка '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ', ' $1его $2ого переулка '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ', ' $1ого $2ого переулка '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ', ' $1ого $2а переулка '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ', ' $1ого $2а переулка '], + ['^ (\\d+)-й [Пп]ереулок ', ' $1-го переулка '], + ['^ (\\d+)-й (\\S+н)ий [Пп]ереулок ', ' $1-го $2его переулка '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ', ' $1-го $2ого переулка '], + ['^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ', ' $1-го $2а переулка '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ', ' $1-го $2а переулка '], + ['^ [Пп]ереулок ', ' переулка '], + + ['^ [Пп]одъезд ', ' подъезда '], + + ['^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ', ' $1а-$2ого проезда '], + ['^ (\\S+н)ий [Пп]роезд ', ' $1его проезда '], + ['^ (\\S+)[иоы]й [Пп]роезд ', ' $1ого проезда '], + ['^ (\\S+[еёо]в) [Пп]роезд ', ' $1а проезда '], + ['^ (\\S+[иы]н) [Пп]роезд ', ' $1а проезда '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ', ' $1ого $2его проезда '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ', ' $1его $2ого проезда '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ', ' $1ого $2ого проезда '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ', ' $1ого $2а проезда '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ', ' $1ого $2а проезда '], + ['^ (\\d+)-й [Пп]роезд ', ' $1-го проезда '], + ['^ (\\d+)-й (\\S+н)ий [Пп]роезд ', ' $1-го $2его проезда '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ', ' $1-го $2ого проезда '], + ['^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ', ' $1-го $2а проезда '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ', ' $1-го $2а проезда '], + ['^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ', ' $1-го $2его $3ого проезда '], + ['^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ', ' $1-го $2ого $3ого проезда '], + ['^ [Пп]роезд ', ' проезда '], + + ['^ (\\S+н)ий [Пп]роспект ', ' $1его проспекта '], + ['^ (\\S+)[иоы]й [Пп]роспект ', ' $1ого проспекта '], + ['^ (\\S+[иы]н) [Пп]роспект ', ' $1ого проспекта '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ', ' $1ого $2его проспекта '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ', ' $1его $2ого проспекта '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ', ' $1ого $2ого проспекта '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ', ' $1ого $2ого проспекта '], + ['^ (\\d+)-й (\\S+н)ий [Пп]роспект ', ' $1-го $2его проспекта '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ', ' $1-го $2ого проспекта '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ', ' $1-го $2ого проспекта '], + ['^ [Пп]роспект ', ' проспекта '], + + ['^ (\\S+н)ий [Пп]утепровод ', ' $1его путепровода '], + ['^ (\\S+)[иоы]й [Пп]утепровод ', ' $1ого путепровода '], + ['^ (\\S+[иы]н) [Пп]утепровод ', ' $1ого путепровода '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ', ' $1ого $2его путепровода '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ', ' $1его $2ого путепровода '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ', ' $1ого $2ого путепровода '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ', ' $1ого $2ого путепровода '], + ['^ (\\d+)-й (\\S+н)ий [Пп]утепровод ', ' $1-го $2его путепровода '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ', ' $1-го $2ого путепровода '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ', ' $1-го $2ого путепровода '], + ['^ [Пп]утепровод ', ' путепровода '], + + ['^ (\\S+н)ий [Сс]пуск ', ' $1его спуска '], + ['^ (\\S+)[иоы]й [Сс]пуск ', ' $1ого спуска '], + ['^ (\\S+[еёо]в) [Сс]пуск ', ' $1а спуска '], + ['^ (\\S+[иы]н) [Сс]пуск ', ' $1а спуска '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ', ' $1ого $2его спуска '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ', ' $1его $2ого спуска '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ', ' $1ого $2ого спуска '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ', ' $1ого $2а спуска '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ', ' $1ого $2а спуска '], + ['^ (\\d+)-й (\\S+н)ий [Сс]пуск ', ' $1-го $2его спуска '], + ['^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ', ' $1-го $2ого спуска '], + ['^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ', ' $1-го $2а спуска '], + ['^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ', ' $1-го $2а спуска '], + ['^ [Сс]пуск ', ' спуска '], + + ['^ (\\S+н)ий [Сс]ъезд ', ' $1его съезда '], + ['^ (\\S+)[иоы]й [Сс]ъезд ', ' $1ого съезда '], + ['^ (\\S+[иы]н) [Сс]ъезд ', ' $1ого съезда '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ', ' $1ого $2его съезда '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ', ' $1его $2ого съезда '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ', ' $1ого $2ого съезда '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ', ' $1ого $2ого съезда '], + ['^ (\\d+)-й (\\S+н)ий [Сс]ъезд ', ' $1-го $2его съезда '], + ['^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ', ' $1-го $2ого съезда '], + ['^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ', ' $1-го $2ого съезда '], + ['^ [Сс]ъезд ', ' съезда '], + + ['^ (\\S+н)ий [Тт][уо]ннель ', ' $1его тоннеля '], + ['^ (\\S+)[иоы]й [Тт][уо]ннель ', ' $1ого тоннеля '], + ['^ (\\S+[иы]н) [Тт][уо]ннель ', ' $1ого тоннеля '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ', ' $1ого $2его тоннеля '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ', ' $1его $2ого тоннеля '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ', ' $1ого $2ого тоннеля '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ', ' $1ого $2ого тоннеля '], + ['^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ', ' $1-го $2его тоннеля '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ', ' $1-го $2ого тоннеля '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ', ' $1-го $2ого тоннеля '], + ['^ [Тт][уо]ннель ', ' тоннеля '], + + ['^ (\\S+н)ий [Тт]ракт ', ' $1ем тракта '], + ['^ (\\S+)[иоы]й [Тт]ракт ', ' $1ого тракта '], + ['^ (\\S+[еёо]в) [Тт]ракт ', ' $1а тракта '], + ['^ (\\S+[иы]н) [Тт]ракт ', ' $1а тракта '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ', ' $1ого $2его тракта '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ', ' $1его $2ого тракта '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ', ' $1ого $2ого тракта '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ', ' $1ого $2а тракта '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ', ' $1ого $2а тракта '], + ['^ (\\d+)-й (\\S+н)ий [Тт]ракт ', ' $1-го $2его тракта '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ', ' $1-го $2ого тракта '], + ['^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ', ' $1-го $2а тракта '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ', ' $1-го $2а тракта '], + ['^ [Тт]ракт ', ' тракта '], + + ['^ (\\S+н)ий [Тт]упик ', ' $1его тупика '], + ['^ (\\S+)[иоы]й [Тт]упик ', ' $1ого тупика '], + ['^ (\\S+[еёо]в) [Тт]упик ', ' $1а тупика '], + ['^ (\\S+[иы]н) [Тт]упик ', ' $1а тупика '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ', ' $1ого $2его тупика '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ', ' $1его $2ого тупика '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ', ' $1ого $2ого тупика '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ', ' $1ого $2а тупика '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ', ' $1ого $2а тупика '], + ['^ (\\d+)-й [Тт]упик ', ' $1-го тупика '], + ['^ (\\d+)-й (\\S+н)ий [Тт]упик ', ' $1-го $2его тупика '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ', ' $1-го $2ого тупика '], + ['^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ', ' $1-го $2а тупика '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт]упик ', ' $1-го $2а тупика '], + ['^ [Тт]упик ', ' тупика '], + + ['^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1го $2кольца '], + ['^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ', ' $1го $2кольца '], + ['^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1го $2го $3кольца '], + ['^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1го $2го $3кольца '], + ['^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1-го $2го $3кольца '], + ['^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ', ' $1-го $2го $3кольца '], + ['^ ([Пп]олу)?[Кк]ольцо ', ' $1кольца '], + + ['^ (\\S+[ео])е [Шш]оссе ', ' $1го шоссе '], + ['^ (\\S+ье) [Шш]оссе ', ' $1го шоссе '], + ['^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ', ' $1го $2го шоссе '], + ['^ (\\S+ье) (\\S+[ео])е [Шш]оссе ', ' $1го $2го шоссе '], + ['^ (\\d+)-е (\\S+[ео])е [Шш]оссе ', ' $1-го $2го шоссе '], + ['^ (\\d+)-е (\\S+ье) [Шш]оссе ', ' $1-го $2го шоссе '], + + [' ([Тт])ретого ', ' $1ретьего '], + ['([жч])ого ', '$1ьего '], + ], + prepositional: [ + ['^ ([«"])', ' трасса $1'], + + ['^ (\\S+)ая [Аа]ллея ', ' $1ой аллее '], + ['^ (\\S+)ья [Аа]ллея ', ' $1ьей аллее '], + ['^ (\\S+)яя [Аа]ллея ', ' $1ей аллее '], + ['^ (\\d+)-я (\\S+)ая [Аа]ллея ', ' $1-й $2ой аллее '], + ['^ [Аа]ллея ', ' аллее '], + + ['^ (\\S+)ая-(\\S+)ая [Уу]лица ', ' $1ой-$2ой улице '], + ['^ (\\S+)ая [Уу]лица ', ' $1ой улице '], + ['^ (\\S+)ья [Уу]лица ', ' $1ьей улице '], + ['^ (\\S+)яя [Уу]лица ', ' $1ей улице '], + ['^ (\\d+)-я [Уу]лица ', ' $1-й улице '], + ['^ (\\d+)-я (\\S+)ая [Уу]лица ', ' $1-й $2ой улице '], + ['^ (\\S+)ая (\\S+)ая [Уу]лица ', ' $1ой $2ой улице '], + ['^ (\\S+[вн])а [Уу]лица ', ' $1ой улице '], + ['^ (\\S+)ая (\\S+[вн])а [Уу]лица ', ' $1ой $2ой улице '], + ['^ Даньславля [Уу]лица ', ' Даньславлей улице '], + ['^ Добрыня [Уу]лица ', ' Добрыней улице '], + ['^ Людогоща [Уу]лица ', ' Людогощей улице '], + ['^ [Уу]лица ', ' улице '], + + ['^ (\\d+)-я [Лл]иния ', ' $1-й линии '], + ['^ (\\d+)-(\\d+)-я [Лл]иния ', ' $1-$2-й линии '], + ['^ (\\S+)ая [Лл]иния ', ' $1ой линии '], + ['^ (\\S+)ья [Лл]иния ', ' $1ьей линии '], + ['^ (\\S+)яя [Лл]иния ', ' $1ей линии '], + ['^ (\\d+)-я (\\S+)ая [Лл]иния ', ' $1-й $2ой линии '], + ['^ [Лл]иния ', ' линии '], + + ['^ (\\d+)-(\\d+)-я [Лл]инии ', ' $1-$2-й линиях '], + + ['^ (\\S+)ая [Нн]абережная ', ' $1ой набережной '], + ['^ (\\S+)ья [Нн]абережная ', ' $1ьей набережной '], + ['^ (\\S+)яя [Нн]абережная ', ' $1ей набережной '], + ['^ (\\d+)-я (\\S+)ая [Нн]абережная ', ' $1-й $2ой набережной '], + ['^ [Нн]абережная ', ' набережной '], + + ['^ (\\S+)ая [Пп]лощадь ', ' $1ой площади '], + ['^ (\\S+)ья [Пп]лощадь ', ' $1ьей площади '], + ['^ (\\S+)яя [Пп]лощадь ', ' $1ей площади '], + ['^ (\\S+[вн])а [Пп]лощадь ', ' $1ой площади '], + ['^ (\\d+)-я (\\S+)ая [Пп]лощадь ', ' $1-й $2ой площади '], + ['^ [Пп]лощадь ', ' площади '], + + ['^ (\\S+)ая [Пп]росека ', ' $1ой просеке '], + ['^ (\\S+)ья [Пп]росека ', ' $1ьей просеке '], + ['^ (\\S+)яя [Пп]росека ', ' $1ей просеке '], + ['^ (\\d+)-я [Пп]росека ', ' $1-й просеке '], + ['^ [Пп]росека ', ' просеке '], + + ['^ (\\S+)ая [Ээ]стакада ', ' $1ой эстакаде '], + ['^ (\\S+)ья [Ээ]стакада ', ' $1ьей эстакаде '], + ['^ (\\S+)яя [Ээ]стакада ', ' $1ей эстакаде '], + ['^ (\\d+)-я (\\S+)ая [Ээ]стакада ', ' $1-й $2ой эстакаде '], + ['^ [Ээ]стакада ', ' эстакаде '], + + ['^ (\\S+)ая [Мм]агистраль ', ' $1ой магистрали '], + ['^ (\\S+)ья [Мм]агистраль ', ' $1ьей магистрали '], + ['^ (\\S+)яя [Мм]агистраль ', ' $1ей магистрали '], + ['^ (\\S+)ая (\\S+)ая [Мм]агистраль ', ' $1ой $2ой магистрали '], + ['^ (\\d+)-я (\\S+)ая [Мм]агистраль ', ' $1-й $2ой магистрали '], + ['^ [Мм]агистраль ', ' магистрали '], + + ['^ (\\S+)ая [Рр]азвязка ', ' $1ой развязке '], + ['^ (\\S+)ья [Рр]азвязка ', ' $1ьей развязке '], + ['^ (\\S+)яя [Рр]азвязка ', ' $1ей развязке '], + ['^ (\\d+)-я (\\S+)ая [Рр]азвязка ', ' $1-й $2ой развязке '], + ['^ [Рр]азвязка ', ' развязке '], + + ['^ (\\S+)ая [Тт]расса ', ' $1ой трассе '], + ['^ (\\S+)ья [Тт]расса ', ' $1ьей трассе '], + ['^ (\\S+)яя [Тт]расса ', ' $1ей трассе '], + ['^ (\\d+)-я (\\S+)ая [Тт]расса ', ' $1-й $2ой трассе '], + ['^ [Тт]расса ', ' трассе '], + + ['^ (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1ой $2дороге '], + ['^ (\\S+)ья ([Аа]вто)?[Дд]орога ', ' $1ьей $2дороге '], + ['^ (\\S+)яя ([Аа]вто)?[Дд]орога ', ' $1ей $2дороге '], + ['^ (\\S+)ая (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1ой $2ой $3дороге '], + ['^ (\\d+)-я (\\S+)ая ([Аа]вто)?[Дд]орога ', ' $1-й $2ой $3дороге '], + ['^ ([Аа]вто)?[Дд]орога ', ' $1дороге '], + + ['^ (\\S+)ая [Дд]орожка ', ' $1ой дорожке '], + ['^ (\\S+)ья [Дд]орожка ', ' $1ьей дорожке '], + ['^ (\\S+)яя [Дд]орожка ', ' $1ей дорожке '], + ['^ (\\d+)-я (\\S+)ая [Дд]орожка ', ' $1-й $2ой дорожке '], + ['^ [Дд]орожка ', ' дорожке '], + + ['^ (\\S+)во [Пп]оле ', ' $1вом поле '], + ['^ (\\S+)ая [Кк]оса ', ' $1ой косе '], + ['^ (\\S+)ая [Хх]орда ', ' $1ой хорде '], + ['^ (\\S+)[иоы]й [Пп]роток ', ' $1ом протоке '], + + ['^ (\\S+н)ий [Бб]ульвар ', ' $1ем бульваре '], + ['^ (\\S+)[иоы]й [Бб]ульвар ', ' $1ом бульваре '], + ['^ (\\S+[иы]н) [Бб]ульвар ', ' $1ом бульваре '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Бб]ульвар ', ' $1ом $2ем бульваре '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Бб]ульвар ', ' $1ем $2ом бульваре '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Бб]ульвар ', ' $1ом $2ом бульваре '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Бб]ульвар ', ' $1ом $2ом бульваре '], + ['^ (\\d+)-й (\\S+н)ий [Бб]ульвар ', ' $1-м $2ем бульваре '], + ['^ (\\d+)-й (\\S+)[иоы]й [Бб]ульвар ', ' $1-м $2ом бульваре '], + ['^ (\\d+)-й (\\S+[иы]н) [Бб]ульвар ', ' $1-м $2ом бульваре '], + ['^ [Бб]ульвар ', ' бульваре '], + + ['^ [Дд]убл[её]р ', ' дублёре '], + + ['^ (\\S+н)ий [Зз]аезд ', ' $1ем заезде '], + ['^ (\\S+)[иоы]й [Зз]аезд ', ' $1ом заезде '], + ['^ (\\S+[еёо]в) [Зз]аезд ', ' $1ом заезде '], + ['^ (\\S+[иы]н) [Зз]аезд ', ' $1ом заезде '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Зз]аезд ', ' $1ом $2ем заезде '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Зз]аезд ', ' $1ем $2ом заезде '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Зз]аезд ', ' $1ом $2ом заезде '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Зз]аезд ', ' $1ом $2ом заезде '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Зз]аезд ', ' $1ом $2ом заезде '], + ['^ (\\d+)-й (\\S+н)ий [Зз]аезд ', ' $1-м $2ем заезде '], + ['^ (\\d+)-й (\\S+)[иоы]й [Зз]аезд ', ' $1-м $2ом заезде '], + ['^ (\\d+)-й (\\S+[еёо]в) [Зз]аезд ', ' $1-м $2ом заезде '], + ['^ (\\d+)-й (\\S+[иы]н) [Зз]аезд ', ' $1-м $2ом заезде '], + ['^ [Зз]аезд ', ' заезде '], + + ['^ (\\S+н)ий [Мм]ост ', ' $1ем мосту '], + ['^ (\\S+)[иоы]й [Мм]ост ', ' $1ом мосту '], + ['^ (\\S+[еёо]в) [Мм]ост ', ' $1ом мосту '], + ['^ (\\S+[иы]н) [Мм]ост ', ' $1ом мосту '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Мм]ост ', ' $1ом $2ем мосту '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Мм]ост ', ' $1ем $2ом мосту '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Мм]ост ', ' $1ом $2ом мосту '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Мм]ост ', ' $1ом $2ом мосту '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Мм]ост ', ' $1ом $2ом мосту '], + ['^ (\\d+)-й [Мм]ост ', ' $1-м мосту '], + ['^ (\\d+)-й (\\S+н)ий [Мм]ост ', ' $1-м $2ем мосту '], + ['^ (\\d+)-й (\\S+)[иоы]й [Мм]ост ', ' $1-м $2ом мосту '], + ['^ (\\d+)-й (\\S+[еёо]в) [Мм]ост ', ' $1-м $2ом мосту '], + ['^ (\\d+)-й (\\S+[иы]н) [Мм]ост ', ' $1-м $2ом мосту '], + ['^ [Мм]ост ', ' мосту '], + + ['^ (\\S+н)ий [Оо]бход ', ' $1ем обходе '], + ['^ (\\S+)[иоы]й [Оо]бход ', ' $1ом обходе '], + ['^ [Оо]бход ', ' обходе '], + + ['^ (\\S+н)ий [Пп]арк ', ' $1ем парке '], + ['^ (\\S+)[иоы]й [Пп]арк ', ' $1ом парке '], + ['^ (\\S+[иы]н) [Пп]арк ', ' $1ом парке '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]арк ', ' $1ом $2ем парке '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]арк ', ' $1ем $2ом парке '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]арк ', ' $1ом $2ом парке '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]арк ', ' $1ом $2ом парке '], + ['^ (\\d+)-й (\\S+н)ий [Пп]арк ', ' $1-м $2ем парке '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]арк ', ' $1-м $2ом парке '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]арк ', ' $1-м $2ом парке '], + ['^ [Пп]арк ', ' парке '], + + ['^ (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ', ' $1ом-$2ом переулке '], + ['^ (\\d+)-й (\\S+)[иоы]й-(\\S+)[иоы]й [Пп]ереулок ', ' $1-м $2ом-$3ом переулке '], + ['^ (\\S+н)ий [Пп]ереулок ', ' $1ем переулке '], + ['^ (\\S+)[иоы]й [Пп]ереулок ', ' $1ом переулке '], + ['^ (\\S+[еёо]в) [Пп]ереулок ', ' $1ом переулке '], + ['^ (\\S+[иы]н) [Пп]ереулок ', ' $1ом переулке '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]ереулок ', ' $1ом $2ем переулке '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]ереулок ', ' $1ем $2ом переулке '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]ереулок ', ' $1ом $2ом переулке '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]ереулок ', ' $1ом $2ом переулке '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]ереулок ', ' $1ом $2ом переулке '], + ['^ (\\d+)-й [Пп]ереулок ', ' $1-м переулке '], + ['^ (\\d+)-й (\\S+н)ий [Пп]ереулок ', ' $1-м $2ем переулке '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]ереулок ', ' $1-м $2ом переулке '], + ['^ (\\d+)-й (\\S+[еёо]в) [Пп]ереулок ', ' $1-м $2ом переулке '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]ереулок ', ' $1-м $2ом переулке '], + ['^ [Пп]ереулок ', ' переулке '], + + ['^ [Пп]одъезд ', ' подъезде '], + + ['^ (\\S+[еёо]в)-(\\S+)[иоы]й [Пп]роезд ', ' $1ом-$2ом проезде '], + ['^ (\\S+н)ий [Пп]роезд ', ' $1ем проезде '], + ['^ (\\S+)[иоы]й [Пп]роезд ', ' $1ом проезде '], + ['^ (\\S+[еёо]в) [Пп]роезд ', ' $1ом проезде '], + ['^ (\\S+[иы]н) [Пп]роезд ', ' $1ом проезде '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]роезд ', ' $1ом $2ем проезде '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ', ' $1ем $2ом проезде '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ', ' $1ом $2ом проезде '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Пп]роезд ', ' $1ом $2ом проезде '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роезд ', ' $1ом $2ом проезде '], + ['^ (\\d+)-й [Пп]роезд ', ' $1-м проезде '], + ['^ (\\d+)-й (\\S+н)ий [Пп]роезд ', ' $1-м $2ем проезде '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]роезд ', ' $1-м $2ом проезде '], + ['^ (\\d+)-й (\\S+[еёо]в) [Пп]роезд ', ' $1-м $2ом проезде '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]роезд ', ' $1-м $2ом проезде '], + ['^ (\\d+)-й (\\S+н)ий (\\S+)[иоы]й [Пп]роезд ', ' $1-м $2ем $3ом проезде '], + ['^ (\\d+)-й (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роезд ', ' $1-м $2ом $3ом проезде '], + ['^ [Пп]роезд ', ' проезде '], + + ['^ (\\S+н)ий [Пп]роспект ', ' $1ем проспекте '], + ['^ (\\S+)[иоы]й [Пп]роспект ', ' $1ом проспекте '], + ['^ (\\S+[иы]н) [Пп]роспект ', ' $1ом проспекте '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]роспект ', ' $1ом $2ем проспекте '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]роспект ', ' $1ем $2ом проспекте '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]роспект ', ' $1ом $2ом проспекте '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]роспект ', ' $1ом $2ом проспекте '], + ['^ (\\d+)-й (\\S+н)ий [Пп]роспект ', ' $1-м $2ем проспекте '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]роспект ', ' $1-м $2ом проспекте '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]роспект ', ' $1-м $2ом проспекте '], + ['^ [Пп]роспект ', ' проспекте '], + + ['^ (\\S+н)ий [Пп]утепровод ', ' $1ем путепроводе '], + ['^ (\\S+)[иоы]й [Пп]утепровод ', ' $1ом путепроводе '], + ['^ (\\S+[иы]н) [Пп]утепровод ', ' $1ом путепроводе '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Пп]утепровод ', ' $1ом $2ем путепроводе '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Пп]утепровод ', ' $1ем $2ом путепроводе '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Пп]утепровод ', ' $1ом $2ом путепроводе '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Пп]утепровод ', ' $1ом $2ом путепроводе '], + ['^ (\\d+)-й (\\S+н)ий [Пп]утепровод ', ' $1-м $2ем путепроводе '], + ['^ (\\d+)-й (\\S+)[иоы]й [Пп]утепровод ', ' $1-м $2ом путепроводе '], + ['^ (\\d+)-й (\\S+[иы]н) [Пп]утепровод ', ' $1-м $2ом путепроводе '], + ['^ [Пп]утепровод ', ' путепроводе '], + + ['^ (\\S+н)ий [Сс]пуск ', ' $1ем спуске '], + ['^ (\\S+)[иоы]й [Сс]пуск ', ' $1ом спуске '], + ['^ (\\S+[еёо]в) [Сс]пуск ', ' $1ом спуске '], + ['^ (\\S+[иы]н) [Сс]пуск ', ' $1ом спуске '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Сс]пуск ', ' $1ом $2ем спуске '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Сс]пуск ', ' $1ем $2ом спуске '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]пуск ', ' $1ом $2ом спуске '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Сс]пуск ', ' $1ом $2ом спуске '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]пуск ', ' $1ом $2ом спуске '], + ['^ (\\d+)-й (\\S+н)ий [Сс]пуск ', ' $1-м $2ем спуске '], + ['^ (\\d+)-й (\\S+)[иоы]й [Сс]пуск ', ' $1-м $2ом спуске '], + ['^ (\\d+)-й (\\S+[еёо]в) [Сс]пуск ', ' $1-м $2ом спуске '], + ['^ (\\d+)-й (\\S+[иы]н) [Сс]пуск ', ' $1-м $2ом спуске '], + ['^ [Сс]пуск ', ' спуске '], + + ['^ (\\S+н)ий [Сс]ъезд ', ' $1ем съезде '], + ['^ (\\S+)[иоы]й [Сс]ъезд ', ' $1ом съезде '], + ['^ (\\S+[иы]н) [Сс]ъезд ', ' $1ом съезде '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Сс]ъезд ', ' $1ом $2ем съезде '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Сс]ъезд ', ' $1ем $2ом съезде '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Сс]ъезд ', ' $1ом $2ом съезде '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Сс]ъезд ', ' $1ом $2ом съезде '], + ['^ (\\d+)-й (\\S+н)ий [Сс]ъезд ', ' $1-м $2ем съезде '], + ['^ (\\d+)-й (\\S+)[иоы]й [Сс]ъезд ', ' $1-м $2ом съезде '], + ['^ (\\d+)-й (\\S+[иы]н) [Сс]ъезд ', ' $1-м $2ом съезде '], + ['^ [Сс]ъезд ', ' съезде '], + + ['^ (\\S+н)ий [Тт][уо]ннель ', ' $1ем тоннеле '], + ['^ (\\S+)[иоы]й [Тт][уо]ннель ', ' $1ом тоннеле '], + ['^ (\\S+[иы]н) [Тт][уо]ннель ', ' $1ом тоннеле '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт][уо]ннель ', ' $1ом $2ем тоннеле '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт][уо]ннель ', ' $1ем $2ом тоннеле '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт][уо]ннель ', ' $1ом $2ом тоннеле '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт][уо]ннель ', ' $1ом $2ом тоннеле '], + ['^ (\\d+)-й (\\S+н)ий [Тт][уо]ннель ', ' $1-м $2ем тоннеле '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт][уо]ннель ', ' $1-м $2ом тоннеле '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт][уо]ннель ', ' $1-м $2ом тоннеле '], + ['^ [Тт][уо]ннель ', ' тоннеле '], + + ['^ (\\S+н)ий [Тт]ракт ', ' $1ем тракте '], + ['^ (\\S+)[иоы]й [Тт]ракт ', ' $1ом тракте '], + ['^ (\\S+[еёо]в) [Тт]ракт ', ' $1ом тракте '], + ['^ (\\S+[иы]н) [Тт]ракт ', ' $1ом тракте '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт]ракт ', ' $1ом $2ем тракте '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт]ракт ', ' $1ем $2ом тракте '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]ракт ', ' $1ом $2ом тракте '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]ракт ', ' $1ом $2ом тракте '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]ракт ', ' $1ом $2ом тракте '], + ['^ (\\d+)-й (\\S+н)ий [Тт]ракт ', ' $1-м $2ем тракте '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт]ракт ', ' $1-м $2ом тракте '], + ['^ (\\d+)-й (\\S+[еёо]в) [Тт]ракт ', ' $1-м $2ом тракте '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт]ракт ', ' $1-м $2ом тракте '], + ['^ [Тт]ракт ', ' тракте '], + + ['^ (\\S+н)ий [Тт]упик ', ' $1ем тупике '], + ['^ (\\S+)[иоы]й [Тт]упик ', ' $1ом тупике '], + ['^ (\\S+[еёо]в) [Тт]упик ', ' $1ом тупике '], + ['^ (\\S+[иы]н) [Тт]упик ', ' $1ом тупике '], + ['^ (\\S+)[иоы]й (\\S+н)ий [Тт]упик ', ' $1ом $2ем тупике '], + ['^ (\\S+н)ий (\\S+)[иоы]й [Тт]упик ', ' $1ем $2ом тупике '], + ['^ (\\S+)[иоы]й (\\S+)[иоы]й [Тт]упик ', ' $1ом $2ом тупике '], + ['^ (\\S+)[иоы]й (\\S+[еёо]в) [Тт]упик ', ' $1ом $2ом тупике '], + ['^ (\\S+)[иоы]й (\\S+[иы]н) [Тт]упик ', ' $1ом $2ом тупике '], + ['^ (\\d+)-й [Тт]упик ', ' $1-м тупике '], + ['^ (\\d+)-й (\\S+н)ий [Тт]упик ', ' $1-м $2ем тупике '], + ['^ (\\d+)-й (\\S+)[иоы]й [Тт]упик ', ' $1-м $2ом тупике '], + ['^ (\\d+)-й (\\S+[еёо]в) [Тт]упик ', ' $1-м $2ом тупике '], + ['^ (\\d+)-й (\\S+[иы]н) [Тт]упик ', ' $1-м $2ом тупике '], + ['^ [Тт]упик ', ' тупике '], + + ['^ (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1м $2кольце '], + ['^ (\\S+ье) ([Пп]олу)?[Кк]ольцо ', ' $1м $2кольце '], + ['^ (\\S+[ео])е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1м $2м $3кольце '], + ['^ (\\S+ье) (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1м $2м $3кольце '], + ['^ (\\d+)-е (\\S+[ео])е ([Пп]олу)?[Кк]ольцо ', ' $1-м $2м $3кольце '], + ['^ (\\d+)-е (\\S+ье) ([Пп]олу)?[Кк]ольцо ', ' $1-м $2м $3кольце '], + ['^ ([Пп]олу)?[Кк]ольцо ', ' $1кольце '], + + ['^ (\\S+[ео])е [Шш]оссе ', ' $1м шоссе '], + ['^ (\\S+ье) [Шш]оссе ', ' $1м шоссе '], + ['^ (\\S+[ео])е (\\S+[ео])е [Шш]оссе ', ' $1м $2м шоссе '], + ['^ (\\S+ье) (\\S+[ео])е [Шш]оссе ', ' $1м $2м шоссе '], + ['^ (\\d+)-е (\\S+[ео])е [Шш]оссе ', ' $1-м $2м шоссе '], + ['^ (\\d+)-е (\\S+ье) [Шш]оссе ', ' $1-м $2м шоссе '], + + [' ([Тт])ретом ', ' $1ретьем '], + ['([жч])ом ', '$1ьем '], + ], + }, + }; + }, + {}, + ], + 23: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: 'første', + 2: 'anden', + 3: 'tredje', + 4: 'fjerde', + 5: 'femte', + 6: 'sjette', + 7: 'syvende', + 8: 'ottende', + 9: 'niende', + 10: 'tiende', + }, + direction: { + north: 'Nord', + northeast: 'Nordøst', + east: 'Øst', + southeast: 'Sydøst', + south: 'Syd', + southwest: 'Sydvest', + west: 'Vest', + northwest: 'Nordvest', + }, + modifier: { + left: 'venstresving', + right: 'højresving', + 'sharp left': 'skarpt venstresving', + 'sharp right': 'skarpt højresving', + 'slight left': 'svagt venstresving', + 'slight right': 'svagt højresving', + straight: 'ligeud', + uturn: 'U-vending', + }, + lanes: { + xo: 'Hold til højre', + ox: 'Hold til venstre', + xox: 'Benyt midterste spor', + oxo: 'Hold til højre eller venstre', + }, + }, + modes: { + ferry: { + default: 'Tag færgen', + name: 'Tag færgen {way_name}', + destination: 'Tag færgen i retning {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one} derefter, efter {distance}, {instruction_two}', + 'two linked': '{instruction_one}, derefter {instruction_two}', + 'one in distance': 'Efter {distance} {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'afkørsel {exit}', + }, + arrive: { + default: { + default: 'Du er ankommet til din {nth} destination', + upcoming: 'Du vil ankomme til din {nth} destination', + short: 'Du er ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du er ankommet til {waypoint_name}', + }, + left: { + default: 'Du er ankommet til din {nth} destination, som befinder sig til venstre', + upcoming: 'Du vil ankomme til din {nth} destination på venstre hånd', + short: 'Du er ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du er ankommet til {waypoint_name}, som befinder sig til venstre', + }, + right: { + default: 'Du er ankommet til din {nth} destination, som befinder sig til højre', + upcoming: 'Du vil ankomme til din {nth} destination på højre hånd', + short: 'Du er ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du er ankommet til {waypoint_name}, som befinder sig til højre', + }, + 'sharp left': { + default: 'Du er ankommet til din {nth} destination, som befinder sig til venstre', + upcoming: 'Du vil ankomme til din {nth} destination på venstre hånd', + short: 'Du er ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du er ankommet til {waypoint_name}, som befinder sig til venstre', + }, + 'sharp right': { + default: 'Du er ankommet til din {nth} destination, som befinder sig til højre', + upcoming: 'Du vil ankomme til din {nth} destination på højre hånd', + short: 'Du er ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du er ankommet til {waypoint_name}, som befinder sig til højre', + }, + 'slight right': { + default: 'Du er ankommet til din {nth} destination, som befinder sig til højre', + upcoming: 'Du vil ankomme til din {nth} destination på højre hånd', + short: 'Du er ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du er ankommet til {waypoint_name}, som befinder sig til højre', + }, + 'slight left': { + default: 'Du er ankommet til din {nth} destination, som befinder sig til venstre', + upcoming: 'Du vil ankomme til din {nth} destination på venstre hånd', + short: 'Du er ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du er ankommet til {waypoint_name}, som befinder sig til venstre', + }, + straight: { + default: 'Du er ankommet til din {nth} destination, der befinder sig lige frem', + upcoming: 'Du vil ankomme til din {nth} destination foran dig', + short: 'Du er ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du er ankommet til {waypoint_name}, der befinder sig lige frem', + }, + }, + continue: { + default: { + default: 'Drej til {modifier}', + name: 'Drej til {modifier} videre ad {way_name}', + destination: 'Drej til {modifier} mod {destination}', + exit: 'Drej til {modifier} ad {way_name}', + }, + straight: { + default: 'Fortsæt ligeud', + name: 'Fortsæt ligeud ad {way_name}', + destination: 'Fortsæt mod {destination}', + distance: 'Fortsæt {distance} ligeud', + namedistance: 'Fortsæt {distance} ad {way_name}', + }, + 'sharp left': { + default: 'Drej skarpt til venstre', + name: 'Drej skarpt til venstre videre ad {way_name}', + destination: 'Drej skarpt til venstre mod {destination}', + }, + 'sharp right': { + default: 'Drej skarpt til højre', + name: 'Drej skarpt til højre videre ad {way_name}', + destination: 'Drej skarpt til højre mod {destination}', + }, + 'slight left': { + default: 'Drej left til venstre', + name: 'Drej let til venstre videre ad {way_name}', + destination: 'Drej let til venstre mod {destination}', + }, + 'slight right': { + default: 'Drej let til højre', + name: 'Drej let til højre videre ad {way_name}', + destination: 'Drej let til højre mod {destination}', + }, + uturn: { + default: 'Foretag en U-vending', + name: 'Foretag en U-vending tilbage ad {way_name}', + destination: 'Foretag en U-vending mod {destination}', + }, + }, + depart: { + default: { + default: 'Kør mod {direction}', + name: 'Kør mod {direction} ad {way_name}', + namedistance: 'Fortsæt {distance} ad {way_name}mod {direction}', + }, + }, + 'end of road': { + default: { + default: 'Drej til {modifier}', + name: 'Drej til {modifier} ad {way_name}', + destination: 'Drej til {modifier} mof {destination}', + }, + straight: { + default: 'Fortsæt ligeud', + name: 'Fortsæt ligeud ad {way_name}', + destination: 'Fortsæt ligeud mod {destination}', + }, + uturn: { + default: 'Foretag en U-vending for enden af vejen', + name: 'Foretag en U-vending ad {way_name} for enden af vejen', + destination: 'Foretag en U-vending mod {destination} for enden af vejen', + }, + }, + fork: { + default: { + default: 'Hold til {modifier} ved udfletningen', + name: 'Hold mod {modifier} på {way_name}', + destination: 'Hold mod {modifier} mod {destination}', + }, + 'slight left': { + default: 'Hold til venstre ved udfletningen', + name: 'Hold til venstre på {way_name}', + destination: 'Hold til venstre mod {destination}', + }, + 'slight right': { + default: 'Hold til højre ved udfletningen', + name: 'Hold til højre på {way_name}', + destination: 'Hold til højre mod {destination}', + }, + 'sharp left': { + default: 'Drej skarpt til venstre ved udfletningen', + name: 'Drej skarpt til venstre ad {way_name}', + destination: 'Drej skarpt til venstre mod {destination}', + }, + 'sharp right': { + default: 'Drej skarpt til højre ved udfletningen', + name: 'Drej skarpt til højre ad {way_name}', + destination: 'Drej skarpt til højre mod {destination}', + }, + uturn: { + default: 'Foretag en U-vending', + name: 'Foretag en U-vending ad {way_name}', + destination: 'Foretag en U-vending mod {destination}', + }, + }, + merge: { + default: { + default: 'Flet til {modifier}', + name: 'Flet til {modifier} ad {way_name}', + destination: 'Flet til {modifier} mod {destination}', + }, + straight: { + default: 'Flet', + name: 'Flet ind på {way_name}', + destination: 'Flet ind mod {destination}', + }, + 'slight left': { + default: 'Flet til venstre', + name: 'Flet til venstre ad {way_name}', + destination: 'Flet til venstre mod {destination}', + }, + 'slight right': { + default: 'Flet til højre', + name: 'Flet til højre ad {way_name}', + destination: 'Flet til højre mod {destination}', + }, + 'sharp left': { + default: 'Flet til venstre', + name: 'Flet til venstre ad {way_name}', + destination: 'Flet til venstre mod {destination}', + }, + 'sharp right': { + default: 'Flet til højre', + name: 'Flet til højre ad {way_name}', + destination: 'Flet til højre mod {destination}', + }, + uturn: { + default: 'Foretag en U-vending', + name: 'Foretag en U-vending ad {way_name}', + destination: 'Foretag en U-vending mod {destination}', + }, + }, + 'new name': { + default: { + default: 'Fortsæt {modifier}', + name: 'Fortsæt {modifier} ad {way_name}', + destination: 'Fortsæt {modifier} mod {destination}', + }, + straight: { + default: 'Fortsæt ligeud', + name: 'Fortsæt ad {way_name}', + destination: 'Fortsæt mod {destination}', + }, + 'sharp left': { + default: 'Drej skarpt til venstre', + name: 'Drej skarpt til venstre ad {way_name}', + destination: 'Drej skarpt til venstre mod {destination}', + }, + 'sharp right': { + default: 'Drej skarpt til højre', + name: 'Drej skarpt til højre ad {way_name}', + destination: 'Drej skarpt til højre mod {destination}', + }, + 'slight left': { + default: 'Fortsæt til venstre', + name: 'Fortsæt til venstre ad {way_name}', + destination: 'Fortsæt til venstre mod {destination}', + }, + 'slight right': { + default: 'Fortsæt til højre', + name: 'Fortsæt til højre ad {way_name}', + destination: 'Fortsæt til højre mod {destination}', + }, + uturn: { + default: 'Foretag en U-vending', + name: 'Foretag en U-vending ad {way_name}', + destination: 'Foretag en U-vending mod {destination}', + }, + }, + notification: { + default: { + default: 'Fortsæt {modifier}', + name: 'Fortsæt {modifier} ad {way_name}', + destination: 'Fortsæt {modifier} mod {destination}', + }, + uturn: { + default: 'Foretag en U-vending', + name: 'Foretag en U-vending ad {way_name}', + destination: 'Foretag en U-vending mod {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Tag afkørslen', + name: 'Tag afkørslen ad {way_name}', + destination: 'Tag afkørslen mod {destination}', + exit: 'Vælg afkørsel {exit}', + exit_destination: 'Vælg afkørsel {exit} mod {destination}', + }, + left: { + default: 'Tag afkørslen til venstre', + name: 'Tag afkørslen til venstre ad {way_name}', + destination: 'Tag afkørslen til venstre mod {destination}', + exit: 'Vælg afkørsel {exit} til venstre', + exit_destination: 'Vælg afkørsel {exit} til venstre mod {destination}\n', + }, + right: { + default: 'Tag afkørslen til højre', + name: 'Tag afkørslen til højre ad {way_name}', + destination: 'Tag afkørslen til højre mod {destination}', + exit: 'Vælg afkørsel {exit} til højre', + exit_destination: 'Vælg afkørsel {exit} til højre mod {destination}', + }, + 'sharp left': { + default: 'Tag afkørslen til venstre', + name: 'Tag afkørslen til venstre ad {way_name}', + destination: 'Tag afkørslen til venstre mod {destination}', + exit: 'Vælg afkørsel {exit} til venstre', + exit_destination: 'Vælg afkørsel {exit} til venstre mod {destination}\n', + }, + 'sharp right': { + default: 'Tag afkørslen til højre', + name: 'Tag afkørslen til højre ad {way_name}', + destination: 'Tag afkørslen til højre mod {destination}', + exit: 'Vælg afkørsel {exit} til højre', + exit_destination: 'Vælg afkørsel {exit} til højre mod {destination}', + }, + 'slight left': { + default: 'Tag afkørslen til venstre', + name: 'Tag afkørslen til venstre ad {way_name}', + destination: 'Tag afkørslen til venstre mod {destination}', + exit: 'Vælg afkørsel {exit} til venstre', + exit_destination: 'Vælg afkørsel {exit} til venstre mod {destination}\n', + }, + 'slight right': { + default: 'Tag afkørslen til højre', + name: 'Tag afkørslen til højre ad {way_name}', + destination: 'Tag afkørslen til højre mod {destination}', + exit: 'Vælg afkørsel {exit} til højre', + exit_destination: 'Vælg afkørsel {exit} til højre mod {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Tag afkørslen', + name: 'Tag afkørslen ad {way_name}', + destination: 'Tag afkørslen mod {destination}', + }, + left: { + default: 'Tag afkørslen til venstre', + name: 'Tag afkørslen til venstre ad {way_name}', + destination: 'Tag afkørslen til venstre mod {destination}', + }, + right: { + default: 'Tag afkørslen til højre', + name: 'Tag afkørslen til højre ad {way_name}', + destination: 'Tag afkørslen til højre mod {destination}', + }, + 'sharp left': { + default: 'Tag afkørslen til venstre', + name: 'Tag afkørslen til venstre ad {way_name}', + destination: 'Tag afkørslen til venstre mod {destination}', + }, + 'sharp right': { + default: 'Tag afkørslen til højre', + name: 'Tag afkørslen til højre ad {way_name}', + destination: 'Tag afkørslen til højre mod {destination}', + }, + 'slight left': { + default: 'Tag afkørslen til venstre', + name: 'Tag afkørslen til venstre ad {way_name}', + destination: 'Tag afkørslen til venstre mod {destination}', + }, + 'slight right': { + default: 'Tag afkørslen til højre', + name: 'Tag afkørslen til højre ad {way_name}', + destination: 'Tag afkørslen til højre mod {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Kør ind i rundkørslen', + name: 'Tag rundkørslen og kør fra ad {way_name}', + destination: 'Tag rundkørslen og kør mod {destination}', + }, + name: { + default: 'Kør ind i {rotary_name}', + name: 'Kør ind i {rotary_name} og kør ad {way_name} ', + destination: 'Kør ind i {rotary_name} og kør mod {destination}', + }, + exit: { + default: 'Tag rundkørslen og forlad ved {exit_number} afkørsel', + name: 'Tag rundkørslen og forlad ved {exit_number} afkørsel ad {way_name}', + destination: + 'Tag rundkørslen og forlad ved {exit_number} afkørsel mod {destination}', + }, + name_exit: { + default: 'Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel', + name: 'Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel ad {way_name}', + destination: + 'Kør ind i {rotary_name} og forlad ved {exit_number} afkørsel mod {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Tag rundkørslen og forlad ved {exit_number} afkørsel', + name: 'Tag rundkørslen og forlad ved {exit_number} afkørsel ad {way_name}', + destination: + 'Tag rundkørslen og forlad ved {exit_number} afkørsel mod {destination}', + }, + default: { + default: 'Kør ind i rundkørslen', + name: 'Tag rundkørslen og kør fra ad {way_name}', + destination: 'Tag rundkørslen og kør mod {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Foretag et {modifier}', + name: 'Foretag et {modifier} ad {way_name}', + destination: 'Foretag et {modifier} mod {destination}', + }, + left: { + default: 'Drej til venstre', + name: 'Drej til venstre ad {way_name}', + destination: 'Drej til venstre mod {destination}', + }, + right: { + default: 'Drej til højre', + name: 'Drej til højre ad {way_name}', + destination: 'Drej til højre mod {destination}', + }, + straight: { + default: 'Fortsæt ligeud', + name: 'Fortsæt ligeud ad {way_name}', + destination: 'Fortsæt ligeud mod {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Forlad rundkørslen', + name: 'Forlad rundkørslen ad {way_name}', + destination: 'Forlad rundkørslen mod {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Forlad rundkørslen', + name: 'Forlad rundkørslen ad {way_name}', + destination: 'Forlad rundkørslen mod {destination}', + }, + }, + turn: { + default: { + default: 'Foretag et {modifier}', + name: 'Foretag et {modifier} ad {way_name}', + destination: 'Foretag et {modifier} mod {destination}', + }, + left: { + default: 'Drej til venstre', + name: 'Drej til venstre ad {way_name}', + destination: 'Drej til venstre mod {destination}', + }, + right: { + default: 'Drej til højre', + name: 'Drej til højre ad {way_name}', + destination: 'Drej til højre mod {destination}', + }, + straight: { + default: 'Fortsæt ligeud', + name: 'Kør ligeud ad {way_name}', + destination: 'Kør ligeud mod {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Fortsæt ligeud', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 24: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: 'erste', + 2: 'zweite', + 3: 'dritte', + 4: 'vierte', + 5: 'fünfte', + 6: 'sechste', + 7: 'siebente', + 8: 'achte', + 9: 'neunte', + 10: 'zehnte', + }, + direction: { + north: 'Norden', + northeast: 'Nordosten', + east: 'Osten', + southeast: 'Südosten', + south: 'Süden', + southwest: 'Südwesten', + west: 'Westen', + northwest: 'Nordwesten', + }, + modifier: { + left: 'links', + right: 'rechts', + 'sharp left': 'scharf links', + 'sharp right': 'scharf rechts', + 'slight left': 'leicht links', + 'slight right': 'leicht rechts', + straight: 'geradeaus', + uturn: '180°-Wendung', + }, + lanes: { + xo: 'Rechts halten', + ox: 'Links halten', + xox: 'Mittlere Spur nutzen', + oxo: 'Rechts oder links halten', + }, + }, + modes: { + ferry: { + default: 'Fähre nehmen', + name: 'Fähre nehmen {way_name}', + destination: 'Fähre nehmen Richtung {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one} danach in {distance} {instruction_two}', + 'two linked': '{instruction_one} danach {instruction_two}', + 'one in distance': 'In {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'exit {exit}', + }, + arrive: { + default: { + default: 'Sie haben Ihr {nth} Ziel erreicht', + upcoming: 'Sie haben Ihr {nth} Ziel erreicht', + short: 'Sie haben Ihr {nth} Ziel erreicht', + 'short-upcoming': 'Sie haben Ihr {nth} Ziel erreicht', + named: 'Sie haben Ihr {waypoint_name}', + }, + left: { + default: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich links', + upcoming: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich links', + short: 'Sie haben Ihr {nth} Ziel erreicht', + 'short-upcoming': 'Sie haben Ihr {nth} Ziel erreicht', + named: 'Sie haben Ihr {waypoint_name}, es befindet sich links', + }, + right: { + default: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts', + upcoming: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts', + short: 'Sie haben Ihr {nth} Ziel erreicht', + 'short-upcoming': 'Sie haben Ihr {nth} Ziel erreicht', + named: 'Sie haben Ihr {waypoint_name}, es befindet sich rechts', + }, + 'sharp left': { + default: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich links', + upcoming: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich links', + short: 'Sie haben Ihr {nth} Ziel erreicht', + 'short-upcoming': 'Sie haben Ihr {nth} Ziel erreicht', + named: 'Sie haben Ihr {waypoint_name}, es befindet sich links', + }, + 'sharp right': { + default: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts', + upcoming: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts', + short: 'Sie haben Ihr {nth} Ziel erreicht', + 'short-upcoming': 'Sie haben Ihr {nth} Ziel erreicht', + named: 'Sie haben Ihr {waypoint_name}, es befindet sich rechts', + }, + 'slight right': { + default: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts', + upcoming: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich rechts', + short: 'Sie haben Ihr {nth} Ziel erreicht', + 'short-upcoming': 'Sie haben Ihr {nth} Ziel erreicht', + named: 'Sie haben Ihr {waypoint_name}, es befindet sich rechts', + }, + 'slight left': { + default: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich links', + upcoming: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich links', + short: 'Sie haben Ihr {nth} Ziel erreicht', + 'short-upcoming': 'Sie haben Ihr {nth} Ziel erreicht', + named: 'Sie haben Ihr {waypoint_name}, es befindet sich links', + }, + straight: { + default: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich geradeaus', + upcoming: 'Sie haben Ihr {nth} Ziel erreicht, es befindet sich geradeaus', + short: 'Sie haben Ihr {nth} Ziel erreicht', + 'short-upcoming': 'Sie haben Ihr {nth} Ziel erreicht', + named: 'Sie haben Ihr {waypoint_name}, es befindet sich geradeaus', + }, + }, + continue: { + default: { + default: '{modifier} abbiegen', + name: '{modifier} weiterfahren auf {way_name}', + destination: '{modifier} abbiegen Richtung {destination}', + exit: '{modifier} abbiegen auf {way_name}', + }, + straight: { + default: 'Geradeaus weiterfahren', + name: 'Geradeaus weiterfahren auf {way_name}', + destination: 'Weiterfahren in Richtung {destination}', + distance: 'Geradeaus weiterfahren für {distance}', + namedistance: 'Geradeaus weiterfahren auf {way_name} für {distance}', + }, + 'sharp left': { + default: 'Scharf links', + name: 'Scharf links weiterfahren auf {way_name}', + destination: 'Scharf links Richtung {destination}', + }, + 'sharp right': { + default: 'Scharf rechts', + name: 'Scharf rechts weiterfahren auf {way_name}', + destination: 'Scharf rechts Richtung {destination}', + }, + 'slight left': { + default: 'Leicht links', + name: 'Leicht links weiter auf {way_name}', + destination: 'Leicht links weiter Richtung {destination}', + }, + 'slight right': { + default: 'Leicht rechts weiter', + name: 'Leicht rechts weiter auf {way_name}', + destination: 'Leicht rechts weiter Richtung {destination}', + }, + uturn: { + default: '180°-Wendung', + name: '180°-Wendung auf {way_name}', + destination: '180°-Wendung Richtung {destination}', + }, + }, + depart: { + default: { + default: 'Fahren Sie Richtung {direction}', + name: 'Fahren Sie Richtung {direction} auf {way_name}', + namedistance: 'Fahren Sie Richtung {direction} auf {way_name} für {distance}', + }, + }, + 'end of road': { + default: { + default: '{modifier} abbiegen', + name: '{modifier} abbiegen auf {way_name}', + destination: '{modifier} abbiegen Richtung {destination}', + }, + straight: { + default: 'Geradeaus weiterfahren', + name: 'Geradeaus weiterfahren auf {way_name}', + destination: 'Geradeaus weiterfahren Richtung {destination}', + }, + uturn: { + default: '180°-Wendung am Ende der Straße', + name: '180°-Wendung auf {way_name} am Ende der Straße', + destination: '180°-Wendung Richtung {destination} am Ende der Straße', + }, + }, + fork: { + default: { + default: '{modifier} halten an der Gabelung', + name: '{modifier} halten an der Gabelung auf {way_name}', + destination: '{modifier} halten an der Gabelung Richtung {destination}', + }, + 'slight left': { + default: 'Links halten an der Gabelung', + name: 'Links halten an der Gabelung auf {way_name}', + destination: 'Links halten an der Gabelung Richtung {destination}', + }, + 'slight right': { + default: 'Rechts halten an der Gabelung', + name: 'Rechts halten an der Gabelung auf {way_name}', + destination: 'Rechts halten an der Gabelung Richtung {destination}', + }, + 'sharp left': { + default: 'Scharf links abbiegen an der Gabelung', + name: 'Scharf links auf {way_name}', + destination: 'Scharf links Richtung {destination}', + }, + 'sharp right': { + default: 'Scharf rechts abbiegen an der Gabelung', + name: 'Scharf rechts auf {way_name}', + destination: 'Scharf rechts Richtung {destination}', + }, + uturn: { + default: '180°-Wendung', + name: '180°-Wendung auf {way_name}', + destination: '180°-Wendung Richtung {destination}', + }, + }, + merge: { + default: { + default: '{modifier} auffahren', + name: '{modifier} auffahren auf {way_name}', + destination: '{modifier} auffahren Richtung {destination}', + }, + straight: { + default: 'geradeaus auffahren', + name: 'geradeaus auffahren auf {way_name}', + destination: 'geradeaus auffahren Richtung {destination}', + }, + 'slight left': { + default: 'Leicht links auffahren', + name: 'Leicht links auffahren auf {way_name}', + destination: 'Leicht links auffahren Richtung {destination}', + }, + 'slight right': { + default: 'Leicht rechts auffahren', + name: 'Leicht rechts auffahren auf {way_name}', + destination: 'Leicht rechts auffahren Richtung {destination}', + }, + 'sharp left': { + default: 'Scharf links auffahren', + name: 'Scharf links auffahren auf {way_name}', + destination: 'Scharf links auffahren Richtung {destination}', + }, + 'sharp right': { + default: 'Scharf rechts auffahren', + name: 'Scharf rechts auffahren auf {way_name}', + destination: 'Scharf rechts auffahren Richtung {destination}', + }, + uturn: { + default: '180°-Wendung', + name: '180°-Wendung auf {way_name}', + destination: '180°-Wendung Richtung {destination}', + }, + }, + 'new name': { + default: { + default: '{modifier} weiterfahren', + name: '{modifier} weiterfahren auf {way_name}', + destination: '{modifier} weiterfahren Richtung {destination}', + }, + straight: { + default: 'Geradeaus weiterfahren', + name: 'Weiterfahren auf {way_name}', + destination: 'Weiterfahren in Richtung {destination}', + }, + 'sharp left': { + default: 'Scharf links', + name: 'Scharf links auf {way_name}', + destination: 'Scharf links Richtung {destination}', + }, + 'sharp right': { + default: 'Scharf rechts', + name: 'Scharf rechts auf {way_name}', + destination: 'Scharf rechts Richtung {destination}', + }, + 'slight left': { + default: 'Leicht links weiter', + name: 'Leicht links weiter auf {way_name}', + destination: 'Leicht links weiter Richtung {destination}', + }, + 'slight right': { + default: 'Leicht rechts weiter', + name: 'Leicht rechts weiter auf {way_name}', + destination: 'Leicht rechts weiter Richtung {destination}', + }, + uturn: { + default: '180°-Wendung', + name: '180°-Wendung auf {way_name}', + destination: '180°-Wendung Richtung {destination}', + }, + }, + notification: { + default: { + default: '{modifier} weiterfahren', + name: '{modifier} weiterfahren auf {way_name}', + destination: '{modifier} weiterfahren Richtung {destination}', + }, + uturn: { + default: '180°-Wendung', + name: '180°-Wendung auf {way_name}', + destination: '180°-Wendung Richtung {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Ausfahrt nehmen', + name: 'Ausfahrt nehmen auf {way_name}', + destination: 'Ausfahrt nehmen Richtung {destination}', + exit: 'Ausfahrt {exit} nehmen', + exit_destination: 'Ausfahrt {exit} nehmen Richtung {destination}', + }, + left: { + default: 'Ausfahrt links nehmen', + name: 'Ausfahrt links nehmen auf {way_name}', + destination: 'Ausfahrt links nehmen Richtung {destination}', + exit: 'Ausfahrt {exit} links nehmen', + exit_destination: 'Ausfahrt {exit} links nehmen Richtung {destination}', + }, + right: { + default: 'Ausfahrt rechts nehmen', + name: 'Ausfahrt rechts nehmen Richtung {way_name}', + destination: 'Ausfahrt rechts nehmen Richtung {destination}', + exit: 'Ausfahrt {exit} rechts nehmen', + exit_destination: 'Ausfahrt {exit} nehmen Richtung {destination}', + }, + 'sharp left': { + default: 'Ausfahrt links nehmen', + name: 'Ausfahrt links Seite nehmen auf {way_name}', + destination: 'Ausfahrt links nehmen Richtung {destination}', + exit: 'Ausfahrt {exit} links nehmen', + exit_destination: 'Ausfahrt{exit} links nehmen Richtung {destination}', + }, + 'sharp right': { + default: 'Ausfahrt rechts nehmen', + name: 'Ausfahrt rechts nehmen auf {way_name}', + destination: 'Ausfahrt rechts nehmen Richtung {destination}', + exit: 'Ausfahrt {exit} rechts nehmen', + exit_destination: 'Ausfahrt {exit} nehmen Richtung {destination}', + }, + 'slight left': { + default: 'Ausfahrt links nehmen', + name: 'Ausfahrt links nehmen auf {way_name}', + destination: 'Ausfahrt links nehmen Richtung {destination}', + exit: 'Ausfahrt {exit} nehmen', + exit_destination: 'Ausfahrt {exit} links nehmen Richtung {destination}', + }, + 'slight right': { + default: 'Ausfahrt rechts nehmen', + name: 'Ausfahrt rechts nehmen auf {way_name}', + destination: 'Ausfahrt rechts nehmen Richtung {destination}', + exit: 'Ausfahrt {exit} rechts nehmen', + exit_destination: 'Ausfahrt {exit} nehmen Richtung {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Auffahrt nehmen', + name: 'Auffahrt nehmen auf {way_name}', + destination: 'Auffahrt nehmen Richtung {destination}', + }, + left: { + default: 'Auffahrt links nehmen', + name: 'Auffahrt links nehmen auf {way_name}', + destination: 'Auffahrt links nehmen Richtung {destination}', + }, + right: { + default: 'Auffahrt rechts nehmen', + name: 'Auffahrt rechts nehmen auf {way_name}', + destination: 'Auffahrt rechts nehmen Richtung {destination}', + }, + 'sharp left': { + default: 'Auffahrt links nehmen', + name: 'Auffahrt links nehmen auf {way_name}', + destination: 'Auffahrt links nehmen Richtung {destination}', + }, + 'sharp right': { + default: 'Auffahrt rechts nehmen', + name: 'Auffahrt rechts nehmen auf {way_name}', + destination: 'Auffahrt rechts nehmen Richtung {destination}', + }, + 'slight left': { + default: 'Auffahrt links Seite nehmen', + name: 'Auffahrt links nehmen auf {way_name}', + destination: 'Auffahrt links nehmen Richtung {destination}', + }, + 'slight right': { + default: 'Auffahrt rechts nehmen', + name: 'Auffahrt rechts nehmen auf {way_name}', + destination: 'Auffahrt rechts nehmen Richtung {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'In den Kreisverkehr fahren', + name: 'Im Kreisverkehr die Ausfahrt auf {way_name} nehmen', + destination: 'Im Kreisverkehr die Ausfahrt Richtung {destination} nehmen', + }, + name: { + default: 'In {rotary_name} fahren', + name: 'In {rotary_name} die Ausfahrt auf {way_name} nehmen', + destination: 'In {rotary_name} die Ausfahrt Richtung {destination} nehmen', + }, + exit: { + default: 'Im Kreisverkehr die {exit_number} Ausfahrt nehmen', + name: 'Im Kreisverkehr die {exit_number} Ausfahrt nehmen auf {way_name}', + destination: + 'Im Kreisverkehr die {exit_number} Ausfahrt nehmen Richtung {destination}', + }, + name_exit: { + default: 'In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen', + name: 'In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen auf {way_name}', + destination: + 'In den Kreisverkehr fahren und {exit_number} Ausfahrt nehmen Richtung {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Im Kreisverkehr die {exit_number} Ausfahrt nehmen', + name: 'Im Kreisverkehr die {exit_number} Ausfahrt nehmen auf {way_name}', + destination: + 'Im Kreisverkehr die {exit_number} Ausfahrt nehmen Richtung {destination}', + }, + default: { + default: 'In den Kreisverkehr fahren', + name: 'Im Kreisverkehr die Ausfahrt auf {way_name} nehmen', + destination: 'Im Kreisverkehr die Ausfahrt Richtung {destination} nehmen', + }, + }, + }, + 'roundabout turn': { + default: { + default: '{modifier} abbiegen', + name: '{modifier} abbiegen auf {way_name}', + destination: '{modifier} abbiegen Richtung {destination}', + }, + left: { + default: 'Links abbiegen', + name: 'Links abbiegen auf {way_name}', + destination: 'Links abbiegen Richtung {destination}', + }, + right: { + default: 'Rechts abbiegen', + name: 'Rechts abbiegen auf {way_name}', + destination: 'Rechts abbiegen Richtung {destination}', + }, + straight: { + default: 'Geradeaus weiterfahren', + name: 'Geradeaus weiterfahren auf {way_name}', + destination: 'Geradeaus weiterfahren Richtung {destination}', + }, + }, + 'exit roundabout': { + default: { + default: '{modifier} abbiegen', + name: '{modifier} abbiegen auf {way_name}', + destination: '{modifier} abbiegen Richtung {destination}', + }, + left: { + default: 'Links abbiegen', + name: 'Links abbiegen auf {way_name}', + destination: 'Links abbiegen Richtung {destination}', + }, + right: { + default: 'Rechts abbiegen', + name: 'Rechts abbiegen auf {way_name}', + destination: 'Rechts abbiegen Richtung {destination}', + }, + straight: { + default: 'Geradeaus weiterfahren', + name: 'Geradeaus weiterfahren auf {way_name}', + destination: 'Geradeaus weiterfahren Richtung {destination}', + }, + }, + 'exit rotary': { + default: { + default: '{modifier} abbiegen', + name: '{modifier} abbiegen auf {way_name}', + destination: '{modifier} abbiegen Richtung {destination}', + }, + left: { + default: 'Links abbiegen', + name: 'Links abbiegen auf {way_name}', + destination: 'Links abbiegen Richtung {destination}', + }, + right: { + default: 'Rechts abbiegen', + name: 'Rechts abbiegen auf {way_name}', + destination: 'Rechts abbiegen Richtung {destination}', + }, + straight: { + default: 'Geradeaus weiterfahren', + name: 'Geradeaus weiterfahren auf {way_name}', + destination: 'Geradeaus weiterfahren Richtung {destination}', + }, + }, + turn: { + default: { + default: '{modifier} abbiegen', + name: '{modifier} abbiegen auf {way_name}', + destination: '{modifier} abbiegen Richtung {destination}', + }, + left: { + default: 'Links abbiegen', + name: 'Links abbiegen auf {way_name}', + destination: 'Links abbiegen Richtung {destination}', + }, + right: { + default: 'Rechts abbiegen', + name: 'Rechts abbiegen auf {way_name}', + destination: 'Rechts abbiegen Richtung {destination}', + }, + straight: { + default: 'Geradeaus weiterfahren', + name: 'Geradeaus weiterfahren auf {way_name}', + destination: 'Geradeaus weiterfahren Richtung {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Geradeaus weiterfahren', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 25: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1st', + 2: '2nd', + 3: '3rd', + 4: '4th', + 5: '5th', + 6: '6th', + 7: '7th', + 8: '8th', + 9: '9th', + 10: '10th', + }, + direction: { + north: 'north', + northeast: 'northeast', + east: 'east', + southeast: 'southeast', + south: 'south', + southwest: 'southwest', + west: 'west', + northwest: 'northwest', + }, + modifier: { + left: 'left', + right: 'right', + 'sharp left': 'sharp left', + 'sharp right': 'sharp right', + 'slight left': 'slight left', + 'slight right': 'slight right', + straight: 'straight', + uturn: 'U-turn', + }, + lanes: { + xo: 'Keep right', + ox: 'Keep left', + xox: 'Keep in the middle', + oxo: 'Keep left or right', + }, + }, + modes: { + ferry: { + default: 'Take the ferry', + name: 'Take the ferry {way_name}', + destination: 'Take the ferry towards {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, then, in {distance}, {instruction_two}', + 'two linked': '{instruction_one}, then {instruction_two}', + 'one in distance': 'In {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'exit {exit}', + }, + arrive: { + default: { + default: 'You have arrived at your {nth} destination', + upcoming: 'You will arrive at your {nth} destination', + short: 'You have arrived', + 'short-upcoming': 'You will arrive', + named: 'You have arrived at {waypoint_name}', + }, + left: { + default: 'You have arrived at your {nth} destination, on the left', + upcoming: 'You will arrive at your {nth} destination, on the left', + short: 'You have arrived', + 'short-upcoming': 'You will arrive', + named: 'You have arrived at {waypoint_name}, on the left', + }, + right: { + default: 'You have arrived at your {nth} destination, on the right', + upcoming: 'You will arrive at your {nth} destination, on the right', + short: 'You have arrived', + 'short-upcoming': 'You will arrive', + named: 'You have arrived at {waypoint_name}, on the right', + }, + 'sharp left': { + default: 'You have arrived at your {nth} destination, on the left', + upcoming: 'You will arrive at your {nth} destination, on the left', + short: 'You have arrived', + 'short-upcoming': 'You will arrive', + named: 'You have arrived at {waypoint_name}, on the left', + }, + 'sharp right': { + default: 'You have arrived at your {nth} destination, on the right', + upcoming: 'You will arrive at your {nth} destination, on the right', + short: 'You have arrived', + 'short-upcoming': 'You will arrive', + named: 'You have arrived at {waypoint_name}, on the right', + }, + 'slight right': { + default: 'You have arrived at your {nth} destination, on the right', + upcoming: 'You will arrive at your {nth} destination, on the right', + short: 'You have arrived', + 'short-upcoming': 'You will arrive', + named: 'You have arrived at {waypoint_name}, on the right', + }, + 'slight left': { + default: 'You have arrived at your {nth} destination, on the left', + upcoming: 'You will arrive at your {nth} destination, on the left', + short: 'You have arrived', + 'short-upcoming': 'You will arrive', + named: 'You have arrived at {waypoint_name}, on the left', + }, + straight: { + default: 'You have arrived at your {nth} destination, straight ahead', + upcoming: 'You will arrive at your {nth} destination, straight ahead', + short: 'You have arrived', + 'short-upcoming': 'You will arrive', + named: 'You have arrived at {waypoint_name}, straight ahead', + }, + }, + continue: { + default: { + default: 'Turn {modifier}', + name: 'Turn {modifier} to stay on {way_name}', + destination: 'Turn {modifier} towards {destination}', + exit: 'Turn {modifier} onto {way_name}', + }, + straight: { + default: 'Continue straight', + name: 'Continue straight to stay on {way_name}', + destination: 'Continue towards {destination}', + distance: 'Continue straight for {distance}', + namedistance: 'Continue on {way_name} for {distance}', + }, + 'sharp left': { + default: 'Make a sharp left', + name: 'Make a sharp left to stay on {way_name}', + destination: 'Make a sharp left towards {destination}', + }, + 'sharp right': { + default: 'Make a sharp right', + name: 'Make a sharp right to stay on {way_name}', + destination: 'Make a sharp right towards {destination}', + }, + 'slight left': { + default: 'Make a slight left', + name: 'Make a slight left to stay on {way_name}', + destination: 'Make a slight left towards {destination}', + }, + 'slight right': { + default: 'Make a slight right', + name: 'Make a slight right to stay on {way_name}', + destination: 'Make a slight right towards {destination}', + }, + uturn: { + default: 'Make a U-turn', + name: 'Make a U-turn and continue on {way_name}', + destination: 'Make a U-turn towards {destination}', + }, + }, + depart: { + default: { + default: 'Head {direction}', + name: 'Head {direction} on {way_name}', + namedistance: 'Head {direction} on {way_name} for {distance}', + }, + }, + 'end of road': { + default: { + default: 'Turn {modifier}', + name: 'Turn {modifier} onto {way_name}', + destination: 'Turn {modifier} towards {destination}', + }, + straight: { + default: 'Continue straight', + name: 'Continue straight onto {way_name}', + destination: 'Continue straight towards {destination}', + }, + uturn: { + default: 'Make a U-turn at the end of the road', + name: 'Make a U-turn onto {way_name} at the end of the road', + destination: 'Make a U-turn towards {destination} at the end of the road', + }, + }, + fork: { + default: { + default: 'Keep {modifier} at the fork', + name: 'Keep {modifier} onto {way_name}', + destination: 'Keep {modifier} towards {destination}', + }, + 'slight left': { + default: 'Keep left at the fork', + name: 'Keep left onto {way_name}', + destination: 'Keep left towards {destination}', + }, + 'slight right': { + default: 'Keep right at the fork', + name: 'Keep right onto {way_name}', + destination: 'Keep right towards {destination}', + }, + 'sharp left': { + default: 'Take a sharp left at the fork', + name: 'Take a sharp left onto {way_name}', + destination: 'Take a sharp left towards {destination}', + }, + 'sharp right': { + default: 'Take a sharp right at the fork', + name: 'Take a sharp right onto {way_name}', + destination: 'Take a sharp right towards {destination}', + }, + uturn: { + default: 'Make a U-turn', + name: 'Make a U-turn onto {way_name}', + destination: 'Make a U-turn towards {destination}', + }, + }, + merge: { + default: { + default: 'Merge {modifier}', + name: 'Merge {modifier} onto {way_name}', + destination: 'Merge {modifier} towards {destination}', + }, + straight: { + default: 'Merge', + name: 'Merge onto {way_name}', + destination: 'Merge towards {destination}', + }, + 'slight left': { + default: 'Merge left', + name: 'Merge left onto {way_name}', + destination: 'Merge left towards {destination}', + }, + 'slight right': { + default: 'Merge right', + name: 'Merge right onto {way_name}', + destination: 'Merge right towards {destination}', + }, + 'sharp left': { + default: 'Merge left', + name: 'Merge left onto {way_name}', + destination: 'Merge left towards {destination}', + }, + 'sharp right': { + default: 'Merge right', + name: 'Merge right onto {way_name}', + destination: 'Merge right towards {destination}', + }, + uturn: { + default: 'Make a U-turn', + name: 'Make a U-turn onto {way_name}', + destination: 'Make a U-turn towards {destination}', + }, + }, + 'new name': { + default: { + default: 'Continue {modifier}', + name: 'Continue {modifier} onto {way_name}', + destination: 'Continue {modifier} towards {destination}', + }, + straight: { + default: 'Continue straight', + name: 'Continue onto {way_name}', + destination: 'Continue towards {destination}', + }, + 'sharp left': { + default: 'Take a sharp left', + name: 'Take a sharp left onto {way_name}', + destination: 'Take a sharp left towards {destination}', + }, + 'sharp right': { + default: 'Take a sharp right', + name: 'Take a sharp right onto {way_name}', + destination: 'Take a sharp right towards {destination}', + }, + 'slight left': { + default: 'Continue slightly left', + name: 'Continue slightly left onto {way_name}', + destination: 'Continue slightly left towards {destination}', + }, + 'slight right': { + default: 'Continue slightly right', + name: 'Continue slightly right onto {way_name}', + destination: 'Continue slightly right towards {destination}', + }, + uturn: { + default: 'Make a U-turn', + name: 'Make a U-turn onto {way_name}', + destination: 'Make a U-turn towards {destination}', + }, + }, + notification: { + default: { + default: 'Continue {modifier}', + name: 'Continue {modifier} onto {way_name}', + destination: 'Continue {modifier} towards {destination}', + }, + uturn: { + default: 'Make a U-turn', + name: 'Make a U-turn onto {way_name}', + destination: 'Make a U-turn towards {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Take the ramp', + name: 'Take the ramp onto {way_name}', + destination: 'Take the ramp towards {destination}', + exit: 'Take exit {exit}', + exit_destination: 'Take exit {exit} towards {destination}', + }, + left: { + default: 'Take the ramp on the left', + name: 'Take the ramp on the left onto {way_name}', + destination: 'Take the ramp on the left towards {destination}', + exit: 'Take exit {exit} on the left', + exit_destination: 'Take exit {exit} on the left towards {destination}', + }, + right: { + default: 'Take the ramp on the right', + name: 'Take the ramp on the right onto {way_name}', + destination: 'Take the ramp on the right towards {destination}', + exit: 'Take exit {exit} on the right', + exit_destination: 'Take exit {exit} on the right towards {destination}', + }, + 'sharp left': { + default: 'Take the ramp on the left', + name: 'Take the ramp on the left onto {way_name}', + destination: 'Take the ramp on the left towards {destination}', + exit: 'Take exit {exit} on the left', + exit_destination: 'Take exit {exit} on the left towards {destination}', + }, + 'sharp right': { + default: 'Take the ramp on the right', + name: 'Take the ramp on the right onto {way_name}', + destination: 'Take the ramp on the right towards {destination}', + exit: 'Take exit {exit} on the right', + exit_destination: 'Take exit {exit} on the right towards {destination}', + }, + 'slight left': { + default: 'Take the ramp on the left', + name: 'Take the ramp on the left onto {way_name}', + destination: 'Take the ramp on the left towards {destination}', + exit: 'Take exit {exit} on the left', + exit_destination: 'Take exit {exit} on the left towards {destination}', + }, + 'slight right': { + default: 'Take the ramp on the right', + name: 'Take the ramp on the right onto {way_name}', + destination: 'Take the ramp on the right towards {destination}', + exit: 'Take exit {exit} on the right', + exit_destination: 'Take exit {exit} on the right towards {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Take the ramp', + name: 'Take the ramp onto {way_name}', + destination: 'Take the ramp towards {destination}', + }, + left: { + default: 'Take the ramp on the left', + name: 'Take the ramp on the left onto {way_name}', + destination: 'Take the ramp on the left towards {destination}', + }, + right: { + default: 'Take the ramp on the right', + name: 'Take the ramp on the right onto {way_name}', + destination: 'Take the ramp on the right towards {destination}', + }, + 'sharp left': { + default: 'Take the ramp on the left', + name: 'Take the ramp on the left onto {way_name}', + destination: 'Take the ramp on the left towards {destination}', + }, + 'sharp right': { + default: 'Take the ramp on the right', + name: 'Take the ramp on the right onto {way_name}', + destination: 'Take the ramp on the right towards {destination}', + }, + 'slight left': { + default: 'Take the ramp on the left', + name: 'Take the ramp on the left onto {way_name}', + destination: 'Take the ramp on the left towards {destination}', + }, + 'slight right': { + default: 'Take the ramp on the right', + name: 'Take the ramp on the right onto {way_name}', + destination: 'Take the ramp on the right towards {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Enter the traffic circle', + name: 'Enter the traffic circle and exit onto {way_name}', + destination: 'Enter the traffic circle and exit towards {destination}', + }, + name: { + default: 'Enter {rotary_name}', + name: 'Enter {rotary_name} and exit onto {way_name}', + destination: 'Enter {rotary_name} and exit towards {destination}', + }, + exit: { + default: 'Enter the traffic circle and take the {exit_number} exit', + name: 'Enter the traffic circle and take the {exit_number} exit onto {way_name}', + destination: + 'Enter the traffic circle and take the {exit_number} exit towards {destination}', + }, + name_exit: { + default: 'Enter {rotary_name} and take the {exit_number} exit', + name: 'Enter {rotary_name} and take the {exit_number} exit onto {way_name}', + destination: + 'Enter {rotary_name} and take the {exit_number} exit towards {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Enter the traffic circle and take the {exit_number} exit', + name: 'Enter the traffic circle and take the {exit_number} exit onto {way_name}', + destination: + 'Enter the traffic circle and take the {exit_number} exit towards {destination}', + }, + default: { + default: 'Enter the traffic circle', + name: 'Enter the traffic circle and exit onto {way_name}', + destination: 'Enter the traffic circle and exit towards {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Make a {modifier}', + name: 'Make a {modifier} onto {way_name}', + destination: 'Make a {modifier} towards {destination}', + }, + left: { + default: 'Turn left', + name: 'Turn left onto {way_name}', + destination: 'Turn left towards {destination}', + }, + right: { + default: 'Turn right', + name: 'Turn right onto {way_name}', + destination: 'Turn right towards {destination}', + }, + straight: { + default: 'Continue straight', + name: 'Continue straight onto {way_name}', + destination: 'Continue straight towards {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Exit the traffic circle', + name: 'Exit the traffic circle onto {way_name}', + destination: 'Exit the traffic circle towards {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Exit the traffic circle', + name: 'Exit the traffic circle onto {way_name}', + destination: 'Exit the traffic circle towards {destination}', + }, + }, + turn: { + default: { + default: 'Make a {modifier}', + name: 'Make a {modifier} onto {way_name}', + destination: 'Make a {modifier} towards {destination}', + }, + left: { + default: 'Turn left', + name: 'Turn left onto {way_name}', + destination: 'Turn left towards {destination}', + }, + right: { + default: 'Turn right', + name: 'Turn right onto {way_name}', + destination: 'Turn right towards {destination}', + }, + straight: { + default: 'Go straight', + name: 'Go straight onto {way_name}', + destination: 'Go straight towards {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Continue straight', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 26: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1.', + 2: '2.', + 3: '3.', + 4: '4.', + 5: '5.', + 6: '6.', + 7: '7.', + 8: '8.', + 9: '9.', + 10: '10.', + }, + direction: { + north: 'norden', + northeast: 'nord-orienten', + east: 'orienten', + southeast: 'sud-orienten', + south: 'suden', + southwest: 'sud-okcidenten', + west: 'okcidenten', + northwest: 'nord-okcidenten', + }, + modifier: { + left: 'maldekstren', + right: 'dekstren', + 'sharp left': 'maldekstregen', + 'sharp right': 'dekstregen', + 'slight left': 'maldekstreten', + 'slight right': 'dekstreten', + straight: 'rekten', + uturn: 'turniĝu malantaŭen', + }, + lanes: { + xo: 'Veturu dekstre', + ox: 'Veturu maldekstre', + xox: 'Veturu meze', + oxo: 'Veturu dekstre aŭ maldekstre', + }, + }, + modes: { + ferry: { + default: 'Enpramiĝu', + name: 'Enpramiĝu {way_name}', + destination: 'Enpramiĝu direkte al {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one} kaj post {distance} {instruction_two}', + 'two linked': '{instruction_one} kaj sekve {instruction_two}', + 'one in distance': 'Post {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'elveturejo {exit}', + }, + arrive: { + default: { + default: 'Vi atingis vian {nth} celon', + upcoming: 'Vi atingos vian {nth} celon', + short: 'Vi atingis', + 'short-upcoming': 'Vi atingos', + named: 'Vi atingis {waypoint_name}', + }, + left: { + default: 'Vi atingis vian {nth} celon ĉe maldekstre', + upcoming: 'Vi atingos vian {nth} celon ĉe maldekstre', + short: 'Vi atingis', + 'short-upcoming': 'Vi atingos', + named: 'Vi atingis {waypoint_name}, ĉe maldekstre', + }, + right: { + default: 'Vi atingis vian {nth} celon ĉe dekstre', + upcoming: 'Vi atingos vian {nth} celon ĉe dekstre', + short: 'Vi atingis', + 'short-upcoming': 'Vi atingos', + named: 'Vi atingis {waypoint_name}, ĉe dekstre', + }, + 'sharp left': { + default: 'Vi atingis vian {nth} celon ĉe maldekstre', + upcoming: 'Vi atingos vian {nth} celon ĉe maldekstre', + short: 'Vi atingis', + 'short-upcoming': 'Vi atingos', + named: 'Vi atingis {waypoint_name}, ĉe maldekstre', + }, + 'sharp right': { + default: 'Vi atingis vian {nth} celon ĉe dekstre', + upcoming: 'Vi atingos vian {nth} celon ĉe dekstre', + short: 'Vi atingis', + 'short-upcoming': 'Vi atingos', + named: 'Vi atingis {waypoint_name}, ĉe dekstre', + }, + 'slight right': { + default: 'Vi atingis vian {nth} celon ĉe dekstre', + upcoming: 'Vi atingos vian {nth} celon ĉe dekstre', + short: 'Vi atingis', + 'short-upcoming': 'Vi atingos', + named: 'Vi atingis {waypoint_name}, ĉe dekstre', + }, + 'slight left': { + default: 'Vi atingis vian {nth} celon ĉe maldekstre', + upcoming: 'Vi atingos vian {nth} celon ĉe maldekstre', + short: 'Vi atingis', + 'short-upcoming': 'Vi atingos', + named: 'Vi atingis {waypoint_name}, ĉe maldekstre', + }, + straight: { + default: 'Vi atingis vian {nth} celon', + upcoming: 'Vi atingos vian {nth} celon rekte', + short: 'Vi atingis', + 'short-upcoming': 'Vi atingos', + named: 'Vi atingis {waypoint_name} antaŭe', + }, + }, + continue: { + default: { + default: 'Veturu {modifier}', + name: 'Veturu {modifier} al {way_name}', + destination: 'Veturu {modifier} direkte al {destination}', + exit: 'Veturu {modifier} direkte al {way_name}', + }, + straight: { + default: 'Veturu rekten', + name: 'Veturu rekten al {way_name}', + destination: 'Veturu rekten direkte al {destination}', + distance: 'Veturu rekten dum {distance}', + namedistance: 'Veturu rekten al {way_name} dum {distance}', + }, + 'sharp left': { + default: 'Turniĝu ege maldekstren', + name: 'Turniĝu ege maldekstren al {way_name}', + destination: 'Turniĝu ege maldekstren direkte al {destination}', + }, + 'sharp right': { + default: 'Turniĝu ege dekstren', + name: 'Turniĝu ege dekstren al {way_name}', + destination: 'Turniĝu ege dekstren direkte al {destination}', + }, + 'slight left': { + default: 'Turniĝu ete maldekstren', + name: 'Turniĝu ete maldekstren al {way_name}', + destination: 'Turniĝu ete maldekstren direkte al {destination}', + }, + 'slight right': { + default: 'Turniĝu ete dekstren', + name: 'Turniĝu ete dekstren al {way_name}', + destination: 'Turniĝu ete dekstren direkte al {destination}', + }, + uturn: { + default: 'Turniĝu malantaŭen', + name: 'Turniĝu malantaŭen al {way_name}', + destination: 'Turniĝu malantaŭen direkte al {destination}', + }, + }, + depart: { + default: { + default: 'Direktiĝu {direction}', + name: 'Direktiĝu {direction} al {way_name}', + namedistance: 'Direktiĝu {direction} al {way_name} tra {distance}', + }, + }, + 'end of road': { + default: { + default: 'Veturu {modifier}', + name: 'Veturu {modifier} direkte al {way_name}', + destination: 'Veturu {modifier} direkte al {destination}', + }, + straight: { + default: 'Veturu rekten', + name: 'Veturu rekten al {way_name}', + destination: 'Veturu rekten direkte al {destination}', + }, + uturn: { + default: 'Turniĝu malantaŭen ĉe fino de la vojo', + name: 'Turniĝu malantaŭen al {way_name} ĉe fino de la vojo', + destination: 'Turniĝu malantaŭen direkte al {destination} ĉe fino de la vojo', + }, + }, + fork: { + default: { + default: 'Daŭru {modifier} ĉe la vojforko', + name: 'Pluu {modifier} al {way_name}', + destination: 'Pluu {modifier} direkte al {destination}', + }, + 'slight left': { + default: 'Maldekstren ĉe la vojforko', + name: 'Pluu maldekstren al {way_name}', + destination: 'Pluu maldekstren direkte al {destination}', + }, + 'slight right': { + default: 'Dekstren ĉe la vojforko', + name: 'Pluu dekstren al {way_name}', + destination: 'Pluu dekstren direkte al {destination}', + }, + 'sharp left': { + default: 'Ege maldekstren ĉe la vojforko', + name: 'Turniĝu ege maldekstren al {way_name}', + destination: 'Turniĝu ege maldekstren direkte al {destination}', + }, + 'sharp right': { + default: 'Ege dekstren ĉe la vojforko', + name: 'Turniĝu ege dekstren al {way_name}', + destination: 'Turniĝu ege dekstren direkte al {destination}', + }, + uturn: { + default: 'Turniĝu malantaŭen', + name: 'Turniĝu malantaŭen al {way_name}', + destination: 'Turniĝu malantaŭen direkte al {destination}', + }, + }, + merge: { + default: { + default: 'Enveturu {modifier}', + name: 'Enveturu {modifier} al {way_name}', + destination: 'Enveturu {modifier} direkte al {destination}', + }, + straight: { + default: 'Enveturu', + name: 'Enveturu al {way_name}', + destination: 'Enveturu direkte al {destination}', + }, + 'slight left': { + default: 'Enveturu de maldekstre', + name: 'Enveturu de maldekstre al {way_name}', + destination: 'Enveturu de maldekstre direkte al {destination}', + }, + 'slight right': { + default: 'Enveturu de dekstre', + name: 'Enveturu de dekstre al {way_name}', + destination: 'Enveturu de dekstre direkte al {destination}', + }, + 'sharp left': { + default: 'Enveturu de maldekstre', + name: 'Enveture de maldekstre al {way_name}', + destination: 'Enveturu de maldekstre direkte al {destination}', + }, + 'sharp right': { + default: 'Enveturu de dekstre', + name: 'Enveturu de dekstre al {way_name}', + destination: 'Enveturu de dekstre direkte al {destination}', + }, + uturn: { + default: 'Turniĝu malantaŭen', + name: 'Turniĝu malantaŭen al {way_name}', + destination: 'Turniĝu malantaŭen direkte al {destination}', + }, + }, + 'new name': { + default: { + default: 'Pluu {modifier}', + name: 'Pluu {modifier} al {way_name}', + destination: 'Pluu {modifier} direkte al {destination}', + }, + straight: { + default: 'Veturu rekten', + name: 'Veturu rekten al {way_name}', + destination: 'Veturu rekten direkte al {destination}', + }, + 'sharp left': { + default: 'Turniĝu ege maldekstren', + name: 'Turniĝu ege maldekstren al {way_name}', + destination: 'Turniĝu ege maldekstren direkte al {destination}', + }, + 'sharp right': { + default: 'Turniĝu ege dekstren', + name: 'Turniĝu ege dekstren al {way_name}', + destination: 'Turniĝu ege dekstren direkte al {destination}', + }, + 'slight left': { + default: 'Pluu ete maldekstren', + name: 'Pluu ete maldekstren al {way_name}', + destination: 'Pluu ete maldekstren direkte al {destination}', + }, + 'slight right': { + default: 'Pluu ete dekstren', + name: 'Pluu ete dekstren al {way_name}', + destination: 'Pluu ete dekstren direkte al {destination}', + }, + uturn: { + default: 'Turniĝu malantaŭen', + name: 'Turniĝu malantaŭen al {way_name}', + destination: 'Turniĝu malantaŭen direkte al {destination}', + }, + }, + notification: { + default: { + default: 'Pluu {modifier}', + name: 'Pluu {modifier} al {way_name}', + destination: 'Pluu {modifier} direkte al {destination}', + }, + uturn: { + default: 'Turniĝu malantaŭen', + name: 'Turniĝu malantaŭen al {way_name}', + destination: 'Turniĝu malantaŭen direkte al {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Direktiĝu al enveturejo', + name: 'Direktiĝu al enveturejo al {way_name}', + destination: 'Direktiĝu al enveturejo direkte al {destination}', + exit: 'Direktiĝu al elveturejo {exit}', + exit_destination: 'Direktiĝu al elveturejo {exit} direkte al {destination}', + }, + left: { + default: 'Direktiĝu al enveturejo ĉe maldekstre', + name: 'Direktiĝu al enveturejo ĉe maldekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe maldekstre al {destination}', + exit: 'Direktiĝu al elveturejo {exit} ĉe maldekstre', + exit_destination: + 'Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}', + }, + right: { + default: 'Direktiĝu al enveturejo ĉe dekstre', + name: 'Direktiĝu al enveturejo ĉe dekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe dekstre al {destination}', + exit: 'Direktiĝu al {exit} elveturejo ĉe ldekstre', + exit_destination: 'Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}', + }, + 'sharp left': { + default: 'Direktiĝu al enveturejo ĉe maldekstre', + name: 'Direktiĝu al enveturejo ĉe maldekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe maldekstre al {destination}', + exit: 'Direktiĝu al {exit} elveturejo ĉe maldekstre', + exit_destination: + 'Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}', + }, + 'sharp right': { + default: 'Direktiĝu al enveturejo ĉe dekstre', + name: 'Direktiĝu al enveturejo ĉe dekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe dekstre al {destination}', + exit: 'Direktiĝu al elveturejo {exit} ĉe dekstre', + exit_destination: 'Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}', + }, + 'slight left': { + default: 'Direktiĝu al enveturejo ĉe maldekstre', + name: 'Direktiĝu al enveturejo ĉe maldekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe maldekstre al {destination}', + exit: 'Direktiĝu al {exit} elveturejo ĉe maldekstre', + exit_destination: + 'Direktiĝu al elveturejo {exit} ĉe maldekstre direkte al {destination}', + }, + 'slight right': { + default: 'Direktiĝu al enveturejo ĉe dekstre', + name: 'Direktiĝu al enveturejo ĉe dekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe dekstre al {destination}', + exit: 'Direktiĝu al {exit} elveturejo ĉe ldekstre', + exit_destination: 'Direktiĝu al elveturejo {exit} ĉe dekstre direkte al {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Direktiĝu al enveturejo', + name: 'Direktiĝu al enveturejo al {way_name}', + destination: 'Direktiĝu al enveturejo direkte al {destination}', + }, + left: { + default: 'Direktiĝu al enveturejo ĉe maldekstre', + name: 'Direktiĝu al enveturejo ĉe maldekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe maldekstre al {destination}', + }, + right: { + default: 'Direktiĝu al enveturejo ĉe dekstre', + name: 'Direktiĝu al enveturejo ĉe dekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe dekstre al {destination}', + }, + 'sharp left': { + default: 'Direktiĝu al enveturejo ĉe maldekstre', + name: 'Direktiĝu al enveturejo ĉe maldekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe maldekstre al {destination}', + }, + 'sharp right': { + default: 'Direktiĝu al enveturejo ĉe dekstre', + name: 'Direktiĝu al enveturejo ĉe dekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe dekstre al {destination}', + }, + 'slight left': { + default: 'Direktiĝu al enveturejo ĉe maldekstre', + name: 'Direktiĝu al enveturejo ĉe maldekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe maldekstre al {destination}', + }, + 'slight right': { + default: 'Direktiĝu al enveturejo ĉe dekstre', + name: 'Direktiĝu al enveturejo ĉe dekstre al {way_name}', + destination: 'Direktiĝu al enveturejo ĉe dekstre al {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Enveturu trafikcirklegon', + name: 'Enveturu trafikcirklegon kaj elveturu al {way_name}', + destination: 'Enveturu trafikcirklegon kaj elveturu direkte al {destination}', + }, + name: { + default: 'Enveturu {rotary_name}', + name: 'Enveturu {rotary_name} kaj elveturu al {way_name}', + destination: 'Enveturu {rotary_name} kaj elveturu direkte al {destination}', + }, + exit: { + default: 'Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo', + name: 'Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo al {way_name}', + destination: + 'Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo direkte al {destination}', + }, + name_exit: { + default: 'Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo', + name: 'Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo al {way_name}', + destination: + 'Enveturu {rotary_name} kaj sekve al {exit_number} elveturejo direkte al {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo', + name: 'Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo al {way_name}', + destination: + 'Enveturu trafikcirklegon kaj sekve al {exit_number} elveturejo direkte al {destination}', + }, + default: { + default: 'Enveturu trafikcirklegon', + name: 'Enveturu trafikcirklegon kaj elveturu al {way_name}', + destination: 'Enveturu trafikcirklegon kaj elveturu direkte al {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Veturu {modifier}', + name: 'Veturu {modifier} al {way_name}', + destination: 'Veturu {modifier} direkte al {destination}', + }, + left: { + default: 'Turniĝu maldekstren', + name: 'Turniĝu maldekstren al {way_name}', + destination: 'Turniĝu maldekstren direkte al {destination}', + }, + right: { + default: 'Turniĝu dekstren', + name: 'Turniĝu dekstren al {way_name}', + destination: 'Turniĝu dekstren direkte al {destination}', + }, + straight: { + default: 'Pluu rekten', + name: 'Veturu rekten al {way_name}', + destination: 'Veturu rekten direkte al {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Elveturu trafikcirklegon', + name: 'Elveturu trafikcirklegon al {way_name}', + destination: 'Elveturu trafikcirklegon direkte al {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Eliru trafikcirklegon', + name: 'Elveturu trafikcirklegon al {way_name}', + destination: 'Elveturu trafikcirklegon direkte al {destination}', + }, + }, + turn: { + default: { + default: 'Veturu {modifier}', + name: 'Veturu {modifier} al {way_name}', + destination: 'Veturu {modifier} direkte al {destination}', + }, + left: { + default: 'Turniĝu maldekstren', + name: 'Turniĝu maldekstren al {way_name}', + destination: 'Turniĝu maldekstren direkte al {destination}', + }, + right: { + default: 'Turniĝu dekstren', + name: 'Turniĝu dekstren al {way_name}', + destination: 'Turniĝu dekstren direkte al {destination}', + }, + straight: { + default: 'Veturu rekten', + name: 'Veturu rekten al {way_name}', + destination: 'Veturu rekten direkte al {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Pluu rekten', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 27: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1ª', + 2: '2ª', + 3: '3ª', + 4: '4ª', + 5: '5ª', + 6: '6ª', + 7: '7ª', + 8: '8ª', + 9: '9ª', + 10: '10ª', + }, + direction: { + north: 'norte', + northeast: 'noreste', + east: 'este', + southeast: 'sureste', + south: 'sur', + southwest: 'suroeste', + west: 'oeste', + northwest: 'noroeste', + }, + modifier: { + left: 'a la izquierda', + right: 'a la derecha', + 'sharp left': 'cerrada a la izquierda', + 'sharp right': 'cerrada a la derecha', + 'slight left': 'ligeramente a la izquierda', + 'slight right': 'ligeramente a la derecha', + straight: 'recto', + uturn: 'cambio de sentido', + }, + lanes: { + xo: 'Mantente a la derecha', + ox: 'Mantente a la izquierda', + xox: 'Mantente en el medio', + oxo: 'Mantente a la izquierda o a la derecha', + }, + }, + modes: { + ferry: { + default: 'Coge el ferry', + name: 'Coge el ferry {way_name}', + destination: 'Coge el ferry hacia {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one} y luego en {distance}, {instruction_two}', + 'two linked': '{instruction_one} y luego {instruction_two}', + 'one in distance': 'A {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'salida {exit}', + }, + arrive: { + default: { + default: 'Has llegado a tu {nth} destino', + upcoming: 'Vas a llegar a tu {nth} destino', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}', + }, + left: { + default: 'Has llegado a tu {nth} destino, a la izquierda', + upcoming: 'Vas a llegar a tu {nth} destino, a la izquierda', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la izquierda', + }, + right: { + default: 'Has llegado a tu {nth} destino, a la derecha', + upcoming: 'Vas a llegar a tu {nth} destino, a la derecha', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la derecha', + }, + 'sharp left': { + default: 'Has llegado a tu {nth} destino, a la izquierda', + upcoming: 'Vas a llegar a tu {nth} destino, a la izquierda', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la izquierda', + }, + 'sharp right': { + default: 'Has llegado a tu {nth} destino, a la derecha', + upcoming: 'Vas a llegar a tu {nth} destino, a la derecha', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la derecha', + }, + 'slight right': { + default: 'Has llegado a tu {nth} destino, a la derecha', + upcoming: 'Vas a llegar a tu {nth} destino, a la derecha', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la derecha', + }, + 'slight left': { + default: 'Has llegado a tu {nth} destino, a la izquierda', + upcoming: 'Vas a llegar a tu {nth} destino, a la izquierda', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la izquierda', + }, + straight: { + default: 'Has llegado a tu {nth} destino, en frente', + upcoming: 'Vas a llegar a tu {nth} destino, en frente', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, en frente', + }, + }, + continue: { + default: { + default: 'Gire {modifier}', + name: 'Cruce {modifier} en {way_name}', + destination: 'Gire {modifier} hacia {destination}', + exit: 'Gire {modifier} en {way_name}', + }, + straight: { + default: 'Continúa recto', + name: 'Continúa en {way_name}', + destination: 'Continúa hacia {destination}', + distance: 'Continúa recto por {distance}', + namedistance: 'Continúa recto en {way_name} por {distance}', + }, + 'sharp left': { + default: 'Gire a la izquierda', + name: 'Gire a la izquierda en {way_name}', + destination: 'Gire a la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Gire a la derecha', + name: 'Gire a la derecha en {way_name}', + destination: 'Gire a la derecha hacia {destination}', + }, + 'slight left': { + default: 'Gire a la izquierda', + name: 'Doble levemente a la izquierda en {way_name}', + destination: 'Gire a la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Gire a la izquierda', + name: 'Doble levemente a la derecha en {way_name}', + destination: 'Gire a la izquierda hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido y continúa en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + depart: { + default: { + default: 'Dirígete al {direction}', + name: 'Dirígete al {direction} por {way_name}', + namedistance: 'Dirígete al {direction} en {way_name} por {distance}', + }, + }, + 'end of road': { + default: { + default: 'Al final de la calle gira {modifier}', + name: 'Al final de la calle gira {modifier} por {way_name}', + destination: 'Al final de la calle gira {modifier} hacia {destination}', + }, + straight: { + default: 'Al final de la calle continúa recto', + name: 'Al final de la calle continúa recto por {way_name}', + destination: 'Al final de la calle continúa recto hacia {destination}', + }, + uturn: { + default: 'Al final de la calle haz un cambio de sentido', + name: 'Al final de la calle haz un cambio de sentido en {way_name}', + destination: 'Al final de la calle haz un cambio de sentido hacia {destination}', + }, + }, + fork: { + default: { + default: 'Mantente {modifier} en el cruce', + name: 'Mantente {modifier} por {way_name}', + destination: 'Mantente {modifier} hacia {destination}', + }, + 'slight left': { + default: 'Mantente a la izquierda en el cruce', + name: 'Mantente a la izquierda por {way_name}', + destination: 'Mantente a la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Mantente a la derecha en el cruce', + name: 'Mantente a la derecha por {way_name}', + destination: 'Mantente a la derecha hacia {destination}', + }, + 'sharp left': { + default: 'Gira la izquierda en el cruce', + name: 'Gira a la izquierda por {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Gira a la derecha en el cruce', + name: 'Gira a la derecha por {way_name}', + destination: 'Gira a la derecha hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + merge: { + default: { + default: 'Incorpórate {modifier}', + name: 'Incorpórate {modifier} por {way_name}', + destination: 'Incorpórate {modifier} hacia {destination}', + }, + straight: { + default: 'Incorpórate', + name: 'Incorpórate por {way_name}', + destination: 'Incorpórate hacia {destination}', + }, + 'slight left': { + default: 'Incorpórate a la izquierda', + name: 'Incorpórate a la izquierda por {way_name}', + destination: 'Incorpórate a la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Incorpórate a la derecha', + name: 'Incorpórate a la derecha por {way_name}', + destination: 'Incorpórate a la derecha hacia {destination}', + }, + 'sharp left': { + default: 'Incorpórate a la izquierda', + name: 'Incorpórate a la izquierda por {way_name}', + destination: 'Incorpórate a la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Incorpórate a la derecha', + name: 'Incorpórate a la derecha por {way_name}', + destination: 'Incorpórate a la derecha hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + 'new name': { + default: { + default: 'Continúa {modifier}', + name: 'Continúa {modifier} por {way_name}', + destination: 'Continúa {modifier} hacia {destination}', + }, + straight: { + default: 'Continúa recto', + name: 'Continúa por {way_name}', + destination: 'Continúa hacia {destination}', + }, + 'sharp left': { + default: 'Gira a la izquierda', + name: 'Gira a la izquierda por {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Gira a la derecha', + name: 'Gira a la derecha por {way_name}', + destination: 'Gira a la derecha hacia {destination}', + }, + 'slight left': { + default: 'Continúa ligeramente por la izquierda', + name: 'Continúa ligeramente por la izquierda por {way_name}', + destination: 'Continúa ligeramente por la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Continúa ligeramente por la derecha', + name: 'Continúa ligeramente por la derecha por {way_name}', + destination: 'Continúa ligeramente por la derecha hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + notification: { + default: { + default: 'Continúa {modifier}', + name: 'Continúa {modifier} por {way_name}', + destination: 'Continúa {modifier} hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Coge la cuesta abajo', + name: 'Coge la cuesta abajo por {way_name}', + destination: 'Coge la cuesta abajo hacia {destination}', + exit: 'Coge la cuesta abajo {exit}', + exit_destination: 'Coge la cuesta abajo {exit} hacia {destination}', + }, + left: { + default: 'Coge la cuesta abajo de la izquierda', + name: 'Coge la cuesta abajo de la izquierda por {way_name}', + destination: 'Coge la cuesta abajo de la izquierda hacia {destination}', + exit: 'Coge la cuesta abajo {exit} a tu izquierda', + exit_destination: 'Coge la cuesta abajo {exit} a tu izquierda hacia {destination}', + }, + right: { + default: 'Coge la cuesta abajo de la derecha', + name: 'Coge la cuesta abajo de la derecha por {way_name}', + destination: 'Coge la cuesta abajo de la derecha hacia {destination}', + exit: 'Coge la cuesta abajo {exit}', + exit_destination: 'Coge la cuesta abajo {exit} hacia {destination}', + }, + 'sharp left': { + default: 'Coge la cuesta abajo de la izquierda', + name: 'Coge la cuesta abajo de la izquierda por {way_name}', + destination: 'Coge la cuesta abajo de la izquierda hacia {destination}', + exit: 'Coge la cuesta abajo {exit} a tu izquierda', + exit_destination: 'Coge la cuesta abajo {exit} a tu izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Coge la cuesta abajo de la derecha', + name: 'Coge la cuesta abajo de la derecha por {way_name}', + destination: 'Coge la cuesta abajo de la derecha hacia {destination}', + exit: 'Coge la cuesta abajo {exit}', + exit_destination: 'Coge la cuesta abajo {exit} hacia {destination}', + }, + 'slight left': { + default: 'Coge la cuesta abajo de la izquierda', + name: 'Coge la cuesta abajo de la izquierda por {way_name}', + destination: 'Coge la cuesta abajo de la izquierda hacia {destination}', + exit: 'Coge la cuesta abajo {exit} a tu izquierda', + exit_destination: 'Coge la cuesta abajo {exit} a tu izquierda hacia {destination}', + }, + 'slight right': { + default: 'Coge la cuesta abajo de la derecha', + name: 'Coge la cuesta abajo de la derecha por {way_name}', + destination: 'Coge la cuesta abajo de la derecha hacia {destination}', + exit: 'Coge la cuesta abajo {exit}', + exit_destination: 'Coge la cuesta abajo {exit} hacia {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Coge la cuesta', + name: 'Coge la cuesta por {way_name}', + destination: 'Coge la cuesta hacia {destination}', + }, + left: { + default: 'Coge la cuesta de la izquierda', + name: 'Coge la cuesta de la izquierda por {way_name}', + destination: 'Coge la cuesta de la izquierda hacia {destination}', + }, + right: { + default: 'Coge la cuesta de la derecha', + name: 'Coge la cuesta de la derecha por {way_name}', + destination: 'Coge la cuesta de la derecha hacia {destination}', + }, + 'sharp left': { + default: 'Coge la cuesta de la izquierda', + name: 'Coge la cuesta de la izquierda por {way_name}', + destination: 'Coge la cuesta de la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Coge la cuesta de la derecha', + name: 'Coge la cuesta de la derecha por {way_name}', + destination: 'Coge la cuesta de la derecha hacia {destination}', + }, + 'slight left': { + default: 'Coge la cuesta de la izquierda', + name: 'Coge la cuesta de la izquierda por {way_name}', + destination: 'Coge la cuesta de la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Coge la cuesta de la derecha', + name: 'Coge la cuesta de la derecha por {way_name}', + destination: 'Coge la cuesta de la derecha hacia {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Incorpórate en la rotonda', + name: 'En la rotonda sal por {way_name}', + destination: 'En la rotonda sal hacia {destination}', + }, + name: { + default: 'En {rotary_name}', + name: 'En {rotary_name} sal por {way_name}', + destination: 'En {rotary_name} sal hacia {destination}', + }, + exit: { + default: 'En la rotonda toma la {exit_number} salida', + name: 'En la rotonda toma la {exit_number} salida por {way_name}', + destination: 'En la rotonda toma la {exit_number} salida hacia {destination}', + }, + name_exit: { + default: 'En {rotary_name} toma la {exit_number} salida', + name: 'En {rotary_name} toma la {exit_number} salida por {way_name}', + destination: 'En {rotary_name} toma la {exit_number} salida hacia {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'En la rotonda toma la {exit_number} salida', + name: 'En la rotonda toma la {exit_number} salida por {way_name}', + destination: 'En la rotonda toma la {exit_number} salida hacia {destination}', + }, + default: { + default: 'Incorpórate en la rotonda', + name: 'Incorpórate en la rotonda y sal en {way_name}', + destination: 'Incorpórate en la rotonda y sal hacia {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Siga {modifier}', + name: 'Siga {modifier} en {way_name}', + destination: 'Siga {modifier} hacia {destination}', + }, + left: { + default: 'Gire a la izquierda', + name: 'Gire a la izquierda en {way_name}', + destination: 'Gire a la izquierda hacia {destination}', + }, + right: { + default: 'Gire a la derecha', + name: 'Gire a la derecha en {way_name}', + destination: 'Gire a la derecha hacia {destination}', + }, + straight: { + default: 'Continúa recto', + name: 'Continúa recto por {way_name}', + destination: 'Continúa recto hacia {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Sal la rotonda', + name: 'Toma la salida por {way_name}', + destination: 'Toma la salida hacia {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Sal la rotonda', + name: 'Toma la salida por {way_name}', + destination: 'Toma la salida hacia {destination}', + }, + }, + turn: { + default: { + default: 'Gira {modifier}', + name: 'Gira {modifier} por {way_name}', + destination: 'Gira {modifier} hacia {destination}', + }, + left: { + default: 'Gira a la izquierda', + name: 'Gira a la izquierda por {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + right: { + default: 'Gira a la derecha', + name: 'Gira a la derecha por {way_name}', + destination: 'Gira a la derecha hacia {destination}', + }, + straight: { + default: 'Continúa recto', + name: 'Continúa recto por {way_name}', + destination: 'Continúa recto hacia {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Continúa recto', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 28: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1ª', + 2: '2ª', + 3: '3ª', + 4: '4ª', + 5: '5ª', + 6: '6ª', + 7: '7ª', + 8: '8ª', + 9: '9ª', + 10: '10ª', + }, + direction: { + north: 'norte', + northeast: 'noreste', + east: 'este', + southeast: 'sureste', + south: 'sur', + southwest: 'suroeste', + west: 'oeste', + northwest: 'noroeste', + }, + modifier: { + left: 'izquierda', + right: 'derecha', + 'sharp left': 'cerrada a la izquierda', + 'sharp right': 'cerrada a la derecha', + 'slight left': 'levemente a la izquierda', + 'slight right': 'levemente a la derecha', + straight: 'recto', + uturn: 'cambio de sentido', + }, + lanes: { + xo: 'Mantente a la derecha', + ox: 'Mantente a la izquierda', + xox: 'Mantente en el medio', + oxo: 'Mantente a la izquierda o derecha', + }, + }, + modes: { + ferry: { + default: 'Coge el ferry', + name: 'Coge el ferry {way_name}', + destination: 'Coge el ferry a {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one} y luego a {distance}, {instruction_two}', + 'two linked': '{instruction_one} y luego {instruction_two}', + 'one in distance': 'A {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'salida {exit}', + }, + arrive: { + default: { + default: 'Has llegado a tu {nth} destino', + upcoming: 'Vas a llegar a tu {nth} destino', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}', + }, + left: { + default: 'Has llegado a tu {nth} destino, a la izquierda', + upcoming: 'Vas a llegar a tu {nth} destino, a la izquierda', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la izquierda', + }, + right: { + default: 'Has llegado a tu {nth} destino, a la derecha', + upcoming: 'Vas a llegar a tu {nth} destino, a la derecha', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la derecha', + }, + 'sharp left': { + default: 'Has llegado a tu {nth} destino, a la izquierda', + upcoming: 'Vas a llegar a tu {nth} destino, a la izquierda', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la izquierda', + }, + 'sharp right': { + default: 'Has llegado a tu {nth} destino, a la derecha', + upcoming: 'Vas a llegar a tu {nth} destino, a la derecha', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la derecha', + }, + 'slight right': { + default: 'Has llegado a tu {nth} destino, a la derecha', + upcoming: 'Vas a llegar a tu {nth} destino, a la derecha', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la derecha', + }, + 'slight left': { + default: 'Has llegado a tu {nth} destino, a la izquierda', + upcoming: 'Vas a llegar a tu {nth} destino, a la izquierda', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, a la izquierda', + }, + straight: { + default: 'Has llegado a tu {nth} destino, en frente', + upcoming: 'Vas a llegar a tu {nth} destino, en frente', + short: 'Has llegado', + 'short-upcoming': 'Vas a llegar', + named: 'Has llegado a {waypoint_name}, en frente', + }, + }, + continue: { + default: { + default: 'Gira a {modifier}', + name: 'Cruza a la{modifier} en {way_name}', + destination: 'Gira a {modifier} hacia {destination}', + exit: 'Gira a {modifier} en {way_name}', + }, + straight: { + default: 'Continúa recto', + name: 'Continúa en {way_name}', + destination: 'Continúa hacia {destination}', + distance: 'Continúa recto por {distance}', + namedistance: 'Continúa recto en {way_name} por {distance}', + }, + 'sharp left': { + default: 'Gira a la izquierda', + name: 'Gira a la izquierda en {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Gira a la derecha', + name: 'Gira a la derecha en {way_name}', + destination: 'Gira a la derecha hacia {destination}', + }, + 'slight left': { + default: 'Gira a la izquierda', + name: 'Dobla levemente a la izquierda en {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Gira a la izquierda', + name: 'Dobla levemente a la derecha en {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido y continúa en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + depart: { + default: { + default: 'Ve a {direction}', + name: 'Ve a {direction} en {way_name}', + namedistance: 'Ve a {direction} en {way_name} por {distance}', + }, + }, + 'end of road': { + default: { + default: 'Gira a {modifier}', + name: 'Gira a {modifier} en {way_name}', + destination: 'Gira a {modifier} hacia {destination}', + }, + straight: { + default: 'Continúa recto', + name: 'Continúa recto en {way_name}', + destination: 'Continúa recto hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido al final de la via', + name: 'Haz un cambio de sentido en {way_name} al final de la via', + destination: 'Haz un cambio de sentido hacia {destination} al final de la via', + }, + }, + fork: { + default: { + default: 'Mantente {modifier} en el cruza', + name: 'Mantente {modifier} en {way_name}', + destination: 'Mantente {modifier} hacia {destination}', + }, + 'slight left': { + default: 'Mantente a la izquierda en el cruza', + name: 'Mantente a la izquierda en {way_name}', + destination: 'Mantente a la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Mantente a la derecha en el cruza', + name: 'Mantente a la derecha en {way_name}', + destination: 'Mantente a la derecha hacia {destination}', + }, + 'sharp left': { + default: 'Gira a la izquierda en el cruza', + name: 'Gira a la izquierda en {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Gira a la derecha en el cruza', + name: 'Gira a la derecha en {way_name}', + destination: 'Gira a la derecha hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + merge: { + default: { + default: 'Incorpórate a {modifier}', + name: 'Incorpórate a {modifier} en {way_name}', + destination: 'Incorpórate a {modifier} hacia {destination}', + }, + straight: { + default: 'Incorpórate', + name: 'Incorpórate a {way_name}', + destination: 'Incorpórate hacia {destination}', + }, + 'slight left': { + default: 'Incorpórate a la izquierda', + name: 'Incorpórate a la izquierda en {way_name}', + destination: 'Incorpórate a la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Incorpórate a la derecha', + name: 'Incorpórate a la derecha en {way_name}', + destination: 'Incorpórate a la derecha hacia {destination}', + }, + 'sharp left': { + default: 'Incorpórate a la izquierda', + name: 'Incorpórate a la izquierda en {way_name}', + destination: 'Incorpórate a la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Incorpórate a la derecha', + name: 'Incorpórate a la derecha en {way_name}', + destination: 'Incorpórate a la derecha hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + 'new name': { + default: { + default: 'Continúa {modifier}', + name: 'Continúa {modifier} en {way_name}', + destination: 'Continúa {modifier} hacia {destination}', + }, + straight: { + default: 'Continúa recto', + name: 'Continúa en {way_name}', + destination: 'Continúa hacia {destination}', + }, + 'sharp left': { + default: 'Gira a la izquierda', + name: 'Gira a la izquierda en {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Gira a la derecha', + name: 'Gira a la derecha en {way_name}', + destination: 'Gira a la derecha hacia {destination}', + }, + 'slight left': { + default: 'Continúa levemente a la izquierda', + name: 'Continúa levemente a la izquierda en {way_name}', + destination: 'Continúa levemente a la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Continúa levemente a la derecha', + name: 'Continúa levemente a la derecha en {way_name}', + destination: 'Continúa levemente a la derecha hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + notification: { + default: { + default: 'Continúa {modifier}', + name: 'Continúa {modifier} en {way_name}', + destination: 'Continúa {modifier} hacia {destination}', + }, + uturn: { + default: 'Haz un cambio de sentido', + name: 'Haz un cambio de sentido en {way_name}', + destination: 'Haz un cambio de sentido hacia {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Toma la salida', + name: 'Toma la salida en {way_name}', + destination: 'Toma la salida hacia {destination}', + exit: 'Toma la salida {exit}', + exit_destination: 'Toma la salida {exit} hacia {destination}', + }, + left: { + default: 'Toma la salida en la izquierda', + name: 'Toma la salida en la izquierda en {way_name}', + destination: 'Toma la salida en la izquierda en {destination}', + exit: 'Toma la salida {exit} en la izquierda', + exit_destination: 'Toma la salida {exit} en la izquierda hacia {destination}', + }, + right: { + default: 'Toma la salida en la derecha', + name: 'Toma la salida en la derecha en {way_name}', + destination: 'Toma la salida en la derecha hacia {destination}', + exit: 'Toma la salida {exit} en la derecha', + exit_destination: 'Toma la salida {exit} en la derecha hacia {destination}', + }, + 'sharp left': { + default: 'Ve cuesta abajo en la izquierda', + name: 'Ve cuesta abajo en la izquierda en {way_name}', + destination: 'Ve cuesta abajo en la izquierda hacia {destination}', + exit: 'Toma la salida {exit} en la izquierda', + exit_destination: 'Toma la salida {exit} en la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Ve cuesta abajo en la derecha', + name: 'Ve cuesta abajo en la derecha en {way_name}', + destination: 'Ve cuesta abajo en la derecha hacia {destination}', + exit: 'Toma la salida {exit} en la derecha', + exit_destination: 'Toma la salida {exit} en la derecha hacia {destination}', + }, + 'slight left': { + default: 'Ve cuesta abajo en la izquierda', + name: 'Ve cuesta abajo en la izquierda en {way_name}', + destination: 'Ve cuesta abajo en la izquierda hacia {destination}', + exit: 'Toma la salida {exit} en la izquierda', + exit_destination: 'Toma la salida {exit} en la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Toma la salida en la derecha', + name: 'Toma la salida en la derecha en {way_name}', + destination: 'Toma la salida en la derecha hacia {destination}', + exit: 'Toma la salida {exit} en la derecha', + exit_destination: 'Toma la salida {exit} en la derecha hacia {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Toma la rampa', + name: 'Toma la rampa en {way_name}', + destination: 'Toma la rampa hacia {destination}', + }, + left: { + default: 'Toma la rampa en la izquierda', + name: 'Toma la rampa en la izquierda en {way_name}', + destination: 'Toma la rampa en la izquierda hacia {destination}', + }, + right: { + default: 'Toma la rampa en la derecha', + name: 'Toma la rampa en la derecha en {way_name}', + destination: 'Toma la rampa en la derecha hacia {destination}', + }, + 'sharp left': { + default: 'Toma la rampa en la izquierda', + name: 'Toma la rampa en la izquierda en {way_name}', + destination: 'Toma la rampa en la izquierda hacia {destination}', + }, + 'sharp right': { + default: 'Toma la rampa en la derecha', + name: 'Toma la rampa en la derecha en {way_name}', + destination: 'Toma la rampa en la derecha hacia {destination}', + }, + 'slight left': { + default: 'Toma la rampa en la izquierda', + name: 'Toma la rampa en la izquierda en {way_name}', + destination: 'Toma la rampa en la izquierda hacia {destination}', + }, + 'slight right': { + default: 'Toma la rampa en la derecha', + name: 'Toma la rampa en la derecha en {way_name}', + destination: 'Toma la rampa en la derecha hacia {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Entra en la rotonda', + name: 'Entra en la rotonda y sal en {way_name}', + destination: 'Entra en la rotonda y sal hacia {destination}', + }, + name: { + default: 'Entra en {rotary_name}', + name: 'Entra en {rotary_name} y sal en {way_name}', + destination: 'Entra en {rotary_name} y sal hacia {destination}', + }, + exit: { + default: 'Entra en la rotonda y toma la {exit_number} salida', + name: 'Entra en la rotonda y toma la {exit_number} salida a {way_name}', + destination: + 'Entra en la rotonda y toma la {exit_number} salida hacia {destination}', + }, + name_exit: { + default: 'Entra en {rotary_name} y coge la {exit_number} salida', + name: 'Entra en {rotary_name} y coge la {exit_number} salida en {way_name}', + destination: + 'Entra en {rotary_name} y coge la {exit_number} salida hacia {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Entra en la rotonda y toma la {exit_number} salida', + name: 'Entra en la rotonda y toma la {exit_number} salida a {way_name}', + destination: + 'Entra en la rotonda y toma la {exit_number} salida hacia {destination}', + }, + default: { + default: 'Entra en la rotonda', + name: 'Entra en la rotonda y sal en {way_name}', + destination: 'Entra en la rotonda y sal hacia {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Sigue {modifier}', + name: 'Sigue {modifier} en {way_name}', + destination: 'Sigue {modifier} hacia {destination}', + }, + left: { + default: 'Gira a la izquierda', + name: 'Gira a la izquierda en {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + right: { + default: 'Gira a la derecha', + name: 'Gira a la derecha en {way_name}', + destination: 'Gira a la derecha hacia {destination}', + }, + straight: { + default: 'Continúa recto', + name: 'Continúa recto en {way_name}', + destination: 'Continúa recto hacia {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Sal la rotonda', + name: 'Sal la rotonda en {way_name}', + destination: 'Sal la rotonda hacia {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Sal la rotonda', + name: 'Sal la rotonda en {way_name}', + destination: 'Sal la rotonda hacia {destination}', + }, + }, + turn: { + default: { + default: 'Sigue {modifier}', + name: 'Sigue {modifier} en {way_name}', + destination: 'Sigue {modifier} hacia {destination}', + }, + left: { + default: 'Gira a la izquierda', + name: 'Gira a la izquierda en {way_name}', + destination: 'Gira a la izquierda hacia {destination}', + }, + right: { + default: 'Gira a la derecha', + name: 'Gira a la derecha en {way_name}', + destination: 'Gira a la derecha hacia {destination}', + }, + straight: { + default: 'Ve recto', + name: 'Ve recto en {way_name}', + destination: 'Ve recto hacia {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Continúa recto', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 29: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1.', + 2: '2.', + 3: '3.', + 4: '4.', + 5: '5.', + 6: '6.', + 7: '7.', + 8: '8.', + 9: '9.', + 10: '10.', + }, + direction: { + north: 'pohjoiseen', + northeast: 'koilliseen', + east: 'itään', + southeast: 'kaakkoon', + south: 'etelään', + southwest: 'lounaaseen', + west: 'länteen', + northwest: 'luoteeseen', + }, + modifier: { + left: 'vasemmall(e/a)', + right: 'oikeall(e/a)', + 'sharp left': 'jyrkästi vasempaan', + 'sharp right': 'jyrkästi oikeaan', + 'slight left': 'loivasti vasempaan', + 'slight right': 'loivasti oikeaan', + straight: 'suoraan eteenpäin', + uturn: 'U-käännös', + }, + lanes: { + xo: 'Pysy oikealla', + ox: 'Pysy vasemmalla', + xox: 'Pysy keskellä', + oxo: 'Pysy vasemmalla tai oikealla', + }, + }, + modes: { + ferry: { + default: 'Aja lautalle', + name: 'Aja lautalle {way_name}', + destination: 'Aja lautalle, jonka määränpää on {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, sitten {distance} päästä, {instruction_two}', + 'two linked': '{instruction_one}, sitten {instruction_two}', + 'one in distance': '{distance} päästä, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': '{exit}', + }, + arrive: { + default: { + default: 'Olet saapunut {nth} määränpäähäsi', + upcoming: 'Saavut {nth} määränpäähäsi', + short: 'Olet saapunut', + 'short-upcoming': 'Saavut', + named: 'Olet saapunut määränpäähän {waypoint_name}', + }, + left: { + default: 'Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi', + upcoming: 'Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi', + short: 'Olet saapunut', + 'short-upcoming': 'Saavut', + named: 'Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi', + }, + right: { + default: 'Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi', + upcoming: 'Saavut {nth} määränpäähäsi, joka on oikealla puolellasi', + short: 'Olet saapunut', + 'short-upcoming': 'Saavut', + named: 'Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi', + }, + 'sharp left': { + default: 'Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi', + upcoming: 'Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi', + short: 'Olet saapunut', + 'short-upcoming': 'Saavut', + named: 'Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi', + }, + 'sharp right': { + default: 'Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi', + upcoming: 'Saavut {nth} määränpäähäsi, joka on oikealla puolellasi', + short: 'Olet saapunut', + 'short-upcoming': 'Saavut', + named: 'Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi', + }, + 'slight right': { + default: 'Olet saapunut {nth} määränpäähäsi, joka on oikealla puolellasi', + upcoming: 'Saavut {nth} määränpäähäsi, joka on oikealla puolellasi', + short: 'Olet saapunut', + 'short-upcoming': 'Saavut', + named: 'Olet saapunut määränpäähän {waypoint_name}, joka on oikealla puolellasi', + }, + 'slight left': { + default: 'Olet saapunut {nth} määränpäähäsi, joka on vasemmalla puolellasi', + upcoming: 'Saavut {nth} määränpäähäsi, joka on vasemmalla puolellasi', + short: 'Olet saapunut', + 'short-upcoming': 'Saavut', + named: 'Olet saapunut määränpäähän {waypoint_name}, joka on vasemmalla puolellasi', + }, + straight: { + default: 'Olet saapunut {nth} määränpäähäsi, joka on suoraan edessäsi', + upcoming: 'Saavut {nth} määränpäähäsi, suoraan edessä', + short: 'Olet saapunut', + 'short-upcoming': 'Saavut', + named: 'Olet saapunut määränpäähän {waypoint_name}, joka on suoraan edessäsi', + }, + }, + continue: { + default: { + default: 'Käänny {modifier}', + name: 'Käänny {modifier} pysyäksesi tiellä {way_name}', + destination: 'Käänny {modifier} suuntana {destination}', + exit: 'Käänny {modifier} tielle {way_name}', + }, + straight: { + default: 'Jatka suoraan eteenpäin', + name: 'Jatka suoraan pysyäksesi tiellä {way_name}', + destination: 'Jatka suuntana {destination}', + distance: 'Jatka suoraan {distance}', + namedistance: 'Jatka tiellä {way_name} {distance}', + }, + 'sharp left': { + default: 'Jatka jyrkästi vasempaan', + name: 'Jatka jyrkästi vasempaan pysyäksesi tiellä {way_name}', + destination: 'Jatka jyrkästi vasempaan suuntana {destination}', + }, + 'sharp right': { + default: 'Jatka jyrkästi oikeaan', + name: 'Jatka jyrkästi oikeaan pysyäksesi tiellä {way_name}', + destination: 'Jatka jyrkästi oikeaan suuntana {destination}', + }, + 'slight left': { + default: 'Jatka loivasti vasempaan', + name: 'Jatka loivasti vasempaan pysyäksesi tiellä {way_name}', + destination: 'Jatka loivasti vasempaan suuntana {destination}', + }, + 'slight right': { + default: 'Jatka loivasti oikeaan', + name: 'Jatka loivasti oikeaan pysyäksesi tiellä {way_name}', + destination: 'Jatka loivasti oikeaan suuntana {destination}', + }, + uturn: { + default: 'Tee U-käännös', + name: 'Tee U-käännös ja jatka tietä {way_name}', + destination: 'Tee U-käännös suuntana {destination}', + }, + }, + depart: { + default: { + default: 'Aja {direction}', + name: 'Aja tietä {way_name} {direction}', + namedistance: 'Aja {distance} {direction} tietä {way_name} ', + }, + }, + 'end of road': { + default: { + default: 'Käänny {modifier}', + name: 'Käänny {modifier} tielle {way_name}', + destination: 'Käänny {modifier} suuntana {destination}', + }, + straight: { + default: 'Jatka suoraan eteenpäin', + name: 'Jatka suoraan eteenpäin tielle {way_name}', + destination: 'Jatka suoraan eteenpäin suuntana {destination}', + }, + uturn: { + default: 'Tien päässä tee U-käännös', + name: 'Tien päässä tee U-käännös tielle {way_name}', + destination: 'Tien päässä tee U-käännös suuntana {destination}', + }, + }, + fork: { + default: { + default: 'Jatka tienhaarassa {modifier}', + name: 'Jatka {modifier} tielle {way_name}', + destination: 'Jatka {modifier} suuntana {destination}', + }, + 'slight left': { + default: 'Pysy vasemmalla tienhaarassa', + name: 'Pysy vasemmalla tielle {way_name}', + destination: 'Pysy vasemmalla suuntana {destination}', + }, + 'slight right': { + default: 'Pysy oikealla tienhaarassa', + name: 'Pysy oikealla tielle {way_name}', + destination: 'Pysy oikealla suuntana {destination}', + }, + 'sharp left': { + default: 'Käänny tienhaarassa jyrkästi vasempaan', + name: 'Käänny tienhaarassa jyrkästi vasempaan tielle {way_name}', + destination: 'Käänny tienhaarassa jyrkästi vasempaan suuntana {destination}', + }, + 'sharp right': { + default: 'Käänny tienhaarassa jyrkästi oikeaan', + name: 'Käänny tienhaarassa jyrkästi oikeaan tielle {way_name}', + destination: 'Käänny tienhaarassa jyrkästi oikeaan suuntana {destination}', + }, + uturn: { + default: 'Tee U-käännös', + name: 'Tee U-käännös tielle {way_name}', + destination: 'Tee U-käännös suuntana {destination}', + }, + }, + merge: { + default: { + default: 'Liity {modifier}', + name: 'Liity {modifier}, tielle {way_name}', + destination: 'Liity {modifier}, suuntana {destination}', + }, + straight: { + default: 'Liity', + name: 'Liity tielle {way_name}', + destination: 'Liity suuntana {destination}', + }, + 'slight left': { + default: 'Liity vasemmalle', + name: 'Liity vasemmalle, tielle {way_name}', + destination: 'Liity vasemmalle, suuntana {destination}', + }, + 'slight right': { + default: 'Liity oikealle', + name: 'Liity oikealle, tielle {way_name}', + destination: 'Liity oikealle, suuntana {destination}', + }, + 'sharp left': { + default: 'Liity vasemmalle', + name: 'Liity vasemmalle, tielle {way_name}', + destination: 'Liity vasemmalle, suuntana {destination}', + }, + 'sharp right': { + default: 'Liity oikealle', + name: 'Liity oikealle, tielle {way_name}', + destination: 'Liity oikealle, suuntana {destination}', + }, + uturn: { + default: 'Tee U-käännös', + name: 'Tee U-käännös tielle {way_name}', + destination: 'Tee U-käännös suuntana {destination}', + }, + }, + 'new name': { + default: { + default: 'Jatka {modifier}', + name: 'Jatka {modifier} tielle {way_name}', + destination: 'Jatka {modifier} suuntana {destination}', + }, + straight: { + default: 'Jatka suoraan eteenpäin', + name: 'Jatka tielle {way_name}', + destination: 'Jatka suuntana {destination}', + }, + 'sharp left': { + default: 'Käänny jyrkästi vasempaan', + name: 'Käänny jyrkästi vasempaan tielle {way_name}', + destination: 'Käänny jyrkästi vasempaan suuntana {destination}', + }, + 'sharp right': { + default: 'Käänny jyrkästi oikeaan', + name: 'Käänny jyrkästi oikeaan tielle {way_name}', + destination: 'Käänny jyrkästi oikeaan suuntana {destination}', + }, + 'slight left': { + default: 'Jatka loivasti vasempaan', + name: 'Jatka loivasti vasempaan tielle {way_name}', + destination: 'Jatka loivasti vasempaan suuntana {destination}', + }, + 'slight right': { + default: 'Jatka loivasti oikeaan', + name: 'Jatka loivasti oikeaan tielle {way_name}', + destination: 'Jatka loivasti oikeaan suuntana {destination}', + }, + uturn: { + default: 'Tee U-käännös', + name: 'Tee U-käännös tielle {way_name}', + destination: 'Tee U-käännös suuntana {destination}', + }, + }, + notification: { + default: { + default: 'Jatka {modifier}', + name: 'Jatka {modifier} tielle {way_name}', + destination: 'Jatka {modifier} suuntana {destination}', + }, + uturn: { + default: 'Tee U-käännös', + name: 'Tee U-käännös tielle {way_name}', + destination: 'Tee U-käännös suuntana {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Aja erkanemiskaistalle', + name: 'Aja erkanemiskaistaa tielle {way_name}', + destination: 'Aja erkanemiskaistalle suuntana {destination}', + exit: 'Ota poistuminen {exit}', + exit_destination: 'Ota poistuminen {exit}, suuntana {destination}', + }, + left: { + default: 'Aja vasemmalla olevalle erkanemiskaistalle', + name: 'Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}', + exit: 'Ota poistuminen {exit} vasemmalla', + exit_destination: 'Ota poistuminen {exit} vasemmalla, suuntana {destination}', + }, + right: { + default: 'Aja oikealla olevalle erkanemiskaistalle', + name: 'Aja oikealla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja oikealla olevalle erkanemiskaistalle suuntana {destination}', + exit: 'Ota poistuminen {exit} oikealla', + exit_destination: 'Ota poistuminen {exit} oikealla, suuntana {destination}', + }, + 'sharp left': { + default: 'Aja vasemmalla olevalle erkanemiskaistalle', + name: 'Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}', + exit: 'Ota poistuminen {exit} vasemmalla', + exit_destination: 'Ota poistuminen {exit} vasemmalla, suuntana {destination}', + }, + 'sharp right': { + default: 'Aja oikealla olevalle erkanemiskaistalle', + name: 'Aja oikealla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja oikealla olevalle erkanemiskaistalle suuntana {destination}', + exit: 'Ota poistuminen {exit} oikealla', + exit_destination: 'Ota poistuminen {exit} oikealla, suuntana {destination}', + }, + 'slight left': { + default: 'Aja vasemmalla olevalle erkanemiskaistalle', + name: 'Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}', + exit: 'Ota poistuminen {exit} vasemmalla', + exit_destination: 'Ota poistuminen {exit} vasemmalla, suuntana {destination}', + }, + 'slight right': { + default: 'Aja oikealla olevalle erkanemiskaistalle', + name: 'Aja oikealla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja oikealla olevalle erkanemiskaistalle suuntana {destination}', + exit: 'Ota poistuminen {exit} oikealla', + exit_destination: 'Ota poistuminen {exit} oikealla, suuntana {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Aja erkanemiskaistalle', + name: 'Aja erkanemiskaistaa tielle {way_name}', + destination: 'Aja erkanemiskaistalle suuntana {destination}', + }, + left: { + default: 'Aja vasemmalla olevalle erkanemiskaistalle', + name: 'Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}', + }, + right: { + default: 'Aja oikealla olevalle erkanemiskaistalle', + name: 'Aja oikealla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja oikealla olevalle erkanemiskaistalle suuntana {destination}', + }, + 'sharp left': { + default: 'Aja vasemmalla olevalle erkanemiskaistalle', + name: 'Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}', + }, + 'sharp right': { + default: 'Aja oikealla olevalle erkanemiskaistalle', + name: 'Aja oikealla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja oikealla olevalle erkanemiskaistalle suuntana {destination}', + }, + 'slight left': { + default: 'Aja vasemmalla olevalle erkanemiskaistalle', + name: 'Aja vasemmalla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja vasemmalla olevalle erkanemiskaistalle suuntana {destination}', + }, + 'slight right': { + default: 'Aja oikealla olevalle erkanemiskaistalle', + name: 'Aja oikealla olevaa erkanemiskaistaa tielle {way_name}', + destination: 'Aja oikealla olevalle erkanemiskaistalle suuntana {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Aja liikenneympyrään', + name: 'Aja liikenneympyrään ja valitse erkanemiskaista tielle {way_name}', + destination: + 'Aja liikenneympyrään ja valitse erkanemiskaista suuntana {destination}', + }, + name: { + default: 'Aja liikenneympyrään {rotary_name}', + name: 'Aja liikenneympyrään {rotary_name} ja valitse erkanemiskaista tielle {way_name}', + destination: + 'Aja liikenneympyrään {rotary_name} ja valitse erkanemiskaista suuntana {destination}', + }, + exit: { + default: 'Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista', + name: 'Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista tielle {way_name}', + destination: + 'Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista suuntana {destination}', + }, + name_exit: { + default: + 'Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista', + name: 'Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista tielle {way_name}', + destination: + 'Aja liikenneympyrään {rotary_name} ja valitse {exit_number} erkanemiskaista suuntana {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista', + name: 'Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista tielle {way_name}', + destination: + 'Aja liikenneympyrään ja valitse {exit_number} erkanemiskaista suuntana {destination}', + }, + default: { + default: 'Aja liikenneympyrään', + name: 'Aja liikenneympyrään ja valitse erkanemiskaista tielle {way_name}', + destination: + 'Aja liikenneympyrään ja valitse erkanemiskaista suuntana {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Käänny {modifier}', + name: 'Käänny {modifier} tielle {way_name}', + destination: 'Käänny {modifier} suuntana {destination}', + }, + left: { + default: 'Käänny vasempaan', + name: 'Käänny vasempaan tielle {way_name}', + destination: 'Käänny vasempaan suuntana {destination}', + }, + right: { + default: 'Käänny oikeaan', + name: 'Käänny oikeaan tielle {way_name}', + destination: 'Käänny oikeaan suuntana {destination}', + }, + straight: { + default: 'Jatka suoraan eteenpäin', + name: 'Jatka suoraan eteenpäin tielle {way_name}', + destination: 'Jatka suoraan eteenpäin suuntana {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Poistu liikenneympyrästä', + name: 'Poistu liikenneympyrästä tielle {way_name}', + destination: 'Poistu liikenneympyrästä suuntana {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Poistu liikenneympyrästä', + name: 'Poistu liikenneympyrästä tielle {way_name}', + destination: 'Poistu liikenneympyrästä suuntana {destination}', + }, + }, + turn: { + default: { + default: 'Käänny {modifier}', + name: 'Käänny {modifier} tielle {way_name}', + destination: 'Käänny {modifier} suuntana {destination}', + }, + left: { + default: 'Käänny vasempaan', + name: 'Käänny vasempaan tielle {way_name}', + destination: 'Käänny vasempaan suuntana {destination}', + }, + right: { + default: 'Käänny oikeaan', + name: 'Käänny oikeaan tielle {way_name}', + destination: 'Käänny oikeaan suuntana {destination}', + }, + straight: { + default: 'Aja suoraan eteenpäin', + name: 'Aja suoraan eteenpäin tielle {way_name}', + destination: 'Aja suoraan eteenpäin suuntana {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Jatka suoraan eteenpäin', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 30: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: 'première', + 2: 'seconde', + 3: 'troisième', + 4: 'quatrième', + 5: 'cinquième', + 6: 'sixième', + 7: 'septième', + 8: 'huitième', + 9: 'neuvième', + 10: 'dixième', + }, + direction: { + north: 'le nord', + northeast: 'le nord-est', + east: 'l’est', + southeast: 'le sud-est', + south: 'le sud', + southwest: 'le sud-ouest', + west: 'l’ouest', + northwest: 'le nord-ouest', + }, + modifier: { + left: 'à gauche', + right: 'à droite', + 'sharp left': 'franchement à gauche', + 'sharp right': 'franchement à droite', + 'slight left': 'légèrement à gauche', + 'slight right': 'légèrement à droite', + straight: 'tout droit', + uturn: 'demi-tour', + }, + lanes: { + xo: 'Tenir la droite', + ox: 'Tenir la gauche', + xox: 'Rester au milieu', + oxo: 'Tenir la gauche ou la droite', + }, + }, + modes: { + ferry: { + default: 'Prendre le ferry', + name: 'Prendre le ferry {way_name:article}', + destination: 'Prendre le ferry en direction {destination:preposition}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, puis, dans {distance}, {instruction_two}', + 'two linked': '{instruction_one}, puis {instruction_two}', + 'one in distance': 'Dans {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'sortie n°{exit}', + }, + arrive: { + default: { + default: 'Vous êtes arrivé à votre {nth} destination', + upcoming: 'Vous arriverez à votre {nth} destination', + short: 'Vous êtes arrivé', + 'short-upcoming': 'Vous arriverez', + named: 'Vous êtes arrivé {waypoint_name:arrival}', + }, + left: { + default: 'Vous êtes arrivé à votre {nth} destination, sur la gauche', + upcoming: 'Vous arriverez à votre {nth} destination, sur la gauche', + short: 'Vous êtes arrivé', + 'short-upcoming': 'Vous arriverez', + named: 'Vous êtes arrivé {waypoint_name:arrival}, sur la gauche', + }, + right: { + default: 'Vous êtes arrivé à votre {nth} destination, sur la droite', + upcoming: 'Vous arriverez à votre {nth} destination, sur la droite', + short: 'Vous êtes arrivé', + 'short-upcoming': 'Vous arriverez', + named: 'Vous êtes arrivé à {waypoint_name:arrival}, sur la droite', + }, + 'sharp left': { + default: 'Vous êtes arrivé à votre {nth} destination, sur la gauche', + upcoming: 'Vous arriverez à votre {nth} destination, sur la gauche', + short: 'Vous êtes arrivé', + 'short-upcoming': 'Vous arriverez', + named: 'Vous êtes arrivé {waypoint_name:arrival}, sur la gauche', + }, + 'sharp right': { + default: 'Vous êtes arrivé à votre {nth} destination, sur la droite', + upcoming: 'Vous arriverez à votre {nth} destination, sur la droite', + short: 'Vous êtes arrivé', + 'short-upcoming': 'Vous arriverez', + named: 'Vous êtes arrivé {waypoint_name:arrival}, sur la droite', + }, + 'slight right': { + default: 'Vous êtes arrivé à votre {nth} destination, sur la droite', + upcoming: 'Vous arriverez à votre {nth} destination, sur la droite', + short: 'Vous êtes arrivé', + 'short-upcoming': 'Vous arriverez', + named: 'Vous êtes arrivé {waypoint_name:arrival}, sur la droite', + }, + 'slight left': { + default: 'Vous êtes arrivé à votre {nth} destination, sur la gauche', + upcoming: 'Vous arriverez à votre {nth} destination, sur la gauche', + short: 'Vous êtes arrivé', + 'short-upcoming': 'Vous êtes arrivé', + named: 'Vous êtes arrivé {waypoint_name:arrival}, sur la gauche', + }, + straight: { + default: 'Vous êtes arrivé à votre {nth} destination, droit devant', + upcoming: 'Vous arriverez à votre {nth} destination, droit devant', + short: 'Vous êtes arrivé', + 'short-upcoming': 'Vous êtes arrivé', + named: 'Vous êtes arrivé {waypoint_name:arrival}, droit devant', + }, + }, + continue: { + default: { + default: 'Tourner {modifier}', + name: 'Tourner {modifier} pour rester sur {way_name:article}', + destination: 'Tourner {modifier} en direction {destination:preposition}', + exit: 'Tourner {modifier} sur {way_name:article}', + }, + straight: { + default: 'Continuer tout droit', + name: 'Continuer tout droit pour rester sur {way_name:article}', + destination: 'Continuer tout droit en direction {destination:preposition}', + distance: 'Continuer tout droit sur {distance}', + namedistance: 'Continuer sur {way_name:article} sur {distance}', + }, + 'sharp left': { + default: 'Tourner franchement à gauche', + name: 'Tourner franchement à gauche pour rester sur {way_name:article}', + destination: 'Tourner franchement à gauche en direction {destination:preposition}', + }, + 'sharp right': { + default: 'Tourner franchement à droite', + name: 'Tourner franchement à droite pour rester sur {way_name:article}', + destination: 'Tourner franchement à droite en direction {destination:preposition}', + }, + 'slight left': { + default: 'Tourner légèrement à gauche', + name: 'Tourner légèrement à gauche pour rester sur {way_name:article}', + destination: 'Tourner légèrement à gauche en direction {destination:preposition}', + }, + 'slight right': { + default: 'Tourner légèrement à droite', + name: 'Tourner légèrement à droite pour rester sur {way_name:article}', + destination: 'Tourner légèrement à droite en direction {destination:preposition}', + }, + uturn: { + default: 'Faire demi-tour', + name: 'Faire demi-tour et continuer sur {way_name:article}', + destination: 'Faire demi-tour en direction {destination:preposition}', + }, + }, + depart: { + default: { + default: 'Se diriger vers {direction}', + name: 'Se diriger vers {direction} sur {way_name:article}', + namedistance: 'Se diriger vers {direction} sur {way_name:article} sur {distance}', + }, + }, + 'end of road': { + default: { + default: 'Tourner {modifier}', + name: 'Tourner {modifier} sur {way_name:article}', + destination: 'Tourner {modifier} en direction {destination:preposition}', + }, + straight: { + default: 'Continuer tout droit', + name: 'Continuer tout droit sur {way_name:article}', + destination: 'Continuer tout droit en direction {destination:preposition}', + }, + uturn: { + default: 'Faire demi-tour à la fin de la route', + name: 'Faire demi-tour à la fin {way_name:preposition}', + destination: + 'Faire demi-tour à la fin de la route en direction {destination:preposition}', + }, + }, + fork: { + default: { + default: 'Tenir {modifier} à l’embranchement', + name: 'Tenir {modifier} sur {way_name:article}', + destination: 'Tenir {modifier} en direction {destination:preposition}', + }, + 'slight left': { + default: 'Tenir la gauche à l’embranchement', + name: 'Tenir la gauche sur {way_name:article}', + destination: 'Tenir la gauche en direction {destination:preposition}', + }, + 'slight right': { + default: 'Tenir la droite à l’embranchement', + name: 'Tenir la droite sur {way_name:article}', + destination: 'Tenir la droite en direction {destination:preposition}', + }, + 'sharp left': { + default: 'Tourner franchement à gauche à l’embranchement', + name: 'Tourner franchement à gauche sur {way_name:article}', + destination: 'Tourner franchement à gauche en direction {destination:preposition}', + }, + 'sharp right': { + default: 'Tourner franchement à droite à l’embranchement', + name: 'Tourner franchement à droite sur {way_name:article}', + destination: 'Tourner franchement à droite en direction {destination:preposition}', + }, + uturn: { + default: 'Faire demi-tour', + name: 'Faire demi-tour sur {way_name:article}', + destination: 'Faire demi-tour en direction {destination:preposition}', + }, + }, + merge: { + default: { + default: 'S’insérer {modifier}', + name: 'S’insérer {modifier} sur {way_name:article}', + destination: 'S’insérer {modifier} en direction {destination:preposition}', + }, + straight: { + default: 'S’insérer', + name: 'S’insérer sur {way_name:article}', + destination: 'S’insérer en direction {destination:preposition}', + }, + 'slight left': { + default: 'S’insérer légèrement à gauche', + name: 'S’insérer légèrement à gauche sur {way_name:article}', + destination: 'S’insérer légèrement à gauche en direction {destination:preposition}', + }, + 'slight right': { + default: 'S’insérer légèrement à droite', + name: 'S’insérer légèrement à droite sur {way_name:article}', + destination: 'S’insérer à droite en direction {destination:preposition}', + }, + 'sharp left': { + default: 'S’insérer à gauche', + name: 'S’insérer à gauche sur {way_name:article}', + destination: 'S’insérer à gauche en direction {destination:preposition}', + }, + 'sharp right': { + default: 'S’insérer à droite', + name: 'S’insérer à droite sur {way_name:article}', + destination: 'S’insérer à droite en direction {destination:preposition}', + }, + uturn: { + default: 'Faire demi-tour', + name: 'Faire demi-tour sur {way_name:article}', + destination: 'Faire demi-tour en direction {destination:preposition}', + }, + }, + 'new name': { + default: { + default: 'Continuer {modifier}', + name: 'Continuer {modifier} sur {way_name:article}', + destination: 'Continuer {modifier} en direction {destination:preposition}', + }, + straight: { + default: 'Continuer tout droit', + name: 'Continuer tout droit sur {way_name:article}', + destination: 'Continuer tout droit en direction {destination:preposition}', + }, + 'sharp left': { + default: 'Tourner franchement à gauche', + name: 'Tourner franchement à gauche sur {way_name:article}', + destination: 'Tourner franchement à gauche en direction {destination:preposition}', + }, + 'sharp right': { + default: 'Tourner franchement à droite', + name: 'Tourner franchement à droite sur {way_name:article}', + destination: 'Tourner franchement à droite en direction {destination:preposition}', + }, + 'slight left': { + default: 'Continuer légèrement à gauche', + name: 'Continuer légèrement à gauche sur {way_name:article}', + destination: 'Continuer légèrement à gauche en direction {destination:preposition}', + }, + 'slight right': { + default: 'Continuer légèrement à droite', + name: 'Continuer légèrement à droite sur {way_name:article}', + destination: 'Continuer légèrement à droite en direction {destination:preposition}', + }, + uturn: { + default: 'Faire demi-tour', + name: 'Faire demi-tour sur {way_name:article}', + destination: 'Faire demi-tour en direction {destination:preposition}', + }, + }, + notification: { + default: { + default: 'Continuer {modifier}', + name: 'Continuer {modifier} sur {way_name:article}', + destination: 'Continuer {modifier} en direction {destination:preposition}', + }, + uturn: { + default: 'Faire demi-tour', + name: 'Faire demi-tour sur {way_name:article}', + destination: 'Faire demi-tour en direction {destination:preposition}', + }, + }, + 'off ramp': { + default: { + default: 'Prendre la sortie', + name: 'Prendre la sortie sur {way_name:article}', + destination: 'Prendre la sortie en direction {destination:preposition}', + exit: 'Prendre la sortie {exit}', + exit_destination: 'Prendre la sortie {exit} en direction {destination:preposition}', + }, + left: { + default: 'Prendre la sortie à gauche', + name: 'Prendre la sortie à gauche sur {way_name:article}', + destination: 'Prendre la sortie à gauche en direction {destination:preposition}', + exit: 'Prendre la sortie {exit} sur la gauche', + exit_destination: + 'Prendre la sortie {exit} sur la gauche en direction {destination:preposition}', + }, + right: { + default: 'Prendre la sortie à droite', + name: 'Prendre la sortie à droite sur {way_name:article}', + destination: 'Prendre la sortie à droite en direction {destination:preposition}', + exit: 'Prendre la sortie {exit} sur la droite', + exit_destination: + 'Prendre la sortie {exit} sur la droite en direction {destination:preposition}', + }, + 'sharp left': { + default: 'Prendre la sortie à gauche', + name: 'Prendre la sortie à gauche sur {way_name:article}', + destination: 'Prendre la sortie à gauche en direction {destination:preposition}', + exit: 'Prendre la sortie {exit} sur la gauche', + exit_destination: + 'Prendre la sortie {exit} sur la gauche en direction {destination:preposition}', + }, + 'sharp right': { + default: 'Prendre la sortie à droite', + name: 'Prendre la sortie à droite sur {way_name:article}', + destination: 'Prendre la sortie à droite en direction {destination:preposition}', + exit: 'Prendre la sortie {exit} sur la droite', + exit_destination: + 'Prendre la sortie {exit} sur la droite en direction {destination:preposition}', + }, + 'slight left': { + default: 'Prendre la sortie à gauche', + name: 'Prendre la sortie à gauche sur {way_name:article}', + destination: 'Prendre la sortie à gauche en direction {destination:preposition}', + exit: 'Prendre la sortie {exit} sur la gauche', + exit_destination: + 'Prendre la sortie {exit} sur la gauche en direction {destination:preposition}', + }, + 'slight right': { + default: 'Prendre la sortie à droite', + name: 'Prendre la sortie à droite sur {way_name:article}', + destination: 'Prendre la sortie à droite en direction {destination:preposition}', + exit: 'Prendre la sortie {exit} sur la droite', + exit_destination: + 'Prendre la sortie {exit} sur la droite en direction {destination:preposition}', + }, + }, + 'on ramp': { + default: { + default: 'Prendre la sortie', + name: 'Prendre la sortie sur {way_name:article}', + destination: 'Prendre la sortie en direction {destination:preposition}', + }, + left: { + default: 'Prendre la sortie à gauche', + name: 'Prendre la sortie à gauche sur {way_name:article}', + destination: 'Prendre la sortie à gauche en direction {destination:preposition}', + }, + right: { + default: 'Prendre la sortie à droite', + name: 'Prendre la sortie à droite sur {way_name:article}', + destination: 'Prendre la sortie à droite en direction {destination:preposition}', + }, + 'sharp left': { + default: 'Prendre la sortie à gauche', + name: 'Prendre la sortie à gauche sur {way_name:article}', + destination: 'Prendre la sortie à gauche en direction {destination:preposition}', + }, + 'sharp right': { + default: 'Prendre la sortie à droite', + name: 'Prendre la sortie à droite sur {way_name:article}', + destination: 'Prendre la sortie à droite en direction {destination:preposition}', + }, + 'slight left': { + default: 'Prendre la sortie à gauche', + name: 'Prendre la sortie à gauche sur {way_name:article}', + destination: 'Prendre la sortie à gauche en direction {destination:preposition}', + }, + 'slight right': { + default: 'Prendre la sortie à droite', + name: 'Prendre la sortie à droite sur {way_name:article}', + destination: 'Prendre la sortie à droite en direction {destination:preposition}', + }, + }, + rotary: { + default: { + default: { + default: 'Prendre le rond-point', + name: 'Prendre le rond-point, puis sortir sur {way_name:article}', + destination: + 'Prendre le rond-point, puis sortir en direction {destination:preposition}', + }, + name: { + default: 'Prendre {rotary_name:rotary}', + name: 'Prendre {rotary_name:rotary}, puis sortir par {way_name:article}', + destination: + 'Prendre {rotary_name:rotary}, puis sortir en direction {destination:preposition}', + }, + exit: { + default: 'Prendre le rond-point, puis la {exit_number} sortie', + name: 'Prendre le rond-point, puis la {exit_number} sortie sur {way_name:article}', + destination: + 'Prendre le rond-point, puis la {exit_number} sortie en direction {destination:preposition}', + }, + name_exit: { + default: 'Prendre {rotary_name:rotary}, puis la {exit_number} sortie', + name: 'Prendre {rotary_name:rotary}, puis la {exit_number} sortie sur {way_name:article}', + destination: + 'Prendre {rotary_name:rotary}, puis la {exit_number} sortie en direction {destination:preposition}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Prendre le rond-point, puis la {exit_number} sortie', + name: 'Prendre le rond-point, puis la {exit_number} sortie sur {way_name:article}', + destination: + 'Prendre le rond-point, puis la {exit_number} sortie en direction {destination:preposition}', + }, + default: { + default: 'Prendre le rond-point', + name: 'Prendre le rond-point, puis sortir sur {way_name:article}', + destination: + 'Prendre le rond-point, puis sortir en direction {destination:preposition}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Tourner {modifier}', + name: 'Tourner {modifier} sur {way_name:article}', + destination: 'Tourner {modifier} en direction {destination:preposition}', + }, + left: { + default: 'Tourner à gauche', + name: 'Tourner à gauche sur {way_name:article}', + destination: 'Tourner à gauche en direction {destination:preposition}', + }, + right: { + default: 'Tourner à droite', + name: 'Tourner à droite sur {way_name:article}', + destination: 'Tourner à droite en direction {destination:preposition}', + }, + straight: { + default: 'Continuer tout droit', + name: 'Continuer tout droit sur {way_name:article}', + destination: 'Continuer tout droit en direction {destination:preposition}', + }, + }, + 'exit roundabout': { + default: { + default: 'Sortir du rond-point', + name: 'Sortir du rond-point sur {way_name:article}', + destination: 'Sortir du rond-point en direction {destination:preposition}', + }, + }, + 'exit rotary': { + default: { + default: 'Sortir du rond-point', + name: 'Sortir du rond-point sur {way_name:article}', + destination: 'Sortir du rond-point en direction {destination:preposition}', + }, + }, + turn: { + default: { + default: 'Tourner {modifier}', + name: 'Tourner {modifier} sur {way_name:article}', + destination: 'Tourner {modifier} en direction {destination:preposition}', + }, + left: { + default: 'Tourner à gauche', + name: 'Tourner à gauche sur {way_name:article}', + destination: 'Tourner à gauche en direction {destination:preposition}', + }, + right: { + default: 'Tourner à droite', + name: 'Tourner à droite sur {way_name:article}', + destination: 'Tourner à droite en direction {destination:preposition}', + }, + straight: { + default: 'Aller tout droit', + name: 'Aller tout droit sur {way_name:article}', + destination: 'Aller tout droit en direction {destination:preposition}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Continuer tout droit', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 31: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: 'ראשונה', + 2: 'שניה', + 3: 'שלישית', + 4: 'רביעית', + 5: 'חמישית', + 6: 'שישית', + 7: 'שביעית', + 8: 'שמינית', + 9: 'תשיעית', + 10: 'עשירית', + }, + direction: { + north: 'צפון', + northeast: 'צפון מזרח', + east: 'מזרח', + southeast: 'דרום מזרח', + south: 'דרום', + southwest: 'דרום מערב', + west: 'מערב', + northwest: 'צפון מערב', + }, + modifier: { + left: 'שמאלה', + right: 'ימינה', + 'sharp left': 'חדה שמאלה', + 'sharp right': 'חדה ימינה', + 'slight left': 'קלה שמאלה', + 'slight right': 'קלה ימינה', + straight: 'ישר', + uturn: 'פניית פרסה', + }, + lanes: { + xo: 'היצמד לימין', + ox: 'היצמד לשמאל', + xox: 'המשך בנתיב האמצעי', + oxo: 'היצמד לימין או לשמאל', + }, + }, + modes: { + ferry: { + default: 'עלה על המעבורת', + name: 'עלה על המעבורת {way_name}', + destination: 'עלה על המעבורת לכיוון {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, ואז, בעוד{distance}, {instruction_two}', + 'two linked': '{instruction_one}, ואז {instruction_two}', + 'one in distance': 'בעוד {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'יציאה {exit}', + }, + arrive: { + default: { + default: 'הגעת אל היעד ה{nth} שלך', + upcoming: 'אתה תגיע אל היעד ה{nth} שלך', + short: 'הגעת', + 'short-upcoming': 'תגיע', + named: 'הגעת אל {waypoint_name}', + }, + left: { + default: 'הגעת אל היעד ה{nth} שלך משמאלך', + upcoming: 'אתה תגיע אל היעד ה{nth} שלך משמאלך', + short: 'הגעת', + 'short-upcoming': 'תגיע', + named: 'הגעת אל {waypoint_name} שלך משמאלך', + }, + right: { + default: 'הגעת אל היעד ה{nth} שלך מימינך', + upcoming: 'אתה תגיע אל היעד ה{nth} שלך מימינך', + short: 'הגעת', + 'short-upcoming': 'תגיע', + named: 'הגעת אל {waypoint_name} שלך מימינך', + }, + 'sharp left': { + default: 'הגעת אל היעד ה{nth} שלך משמאלך', + upcoming: 'אתה תגיע אל היעד ה{nth} שלך משמאלך', + short: 'הגעת', + 'short-upcoming': 'תגיע', + named: 'הגעת אל {waypoint_name} שלך משמאלך', + }, + 'sharp right': { + default: 'הגעת אל היעד ה{nth} שלך מימינך', + upcoming: 'אתה תגיע אל היעד ה{nth} שלך מימינך', + short: 'הגעת', + 'short-upcoming': 'תגיע', + named: 'הגעת אל {waypoint_name} שלך מימינך', + }, + 'slight right': { + default: 'הגעת אל היעד ה{nth} שלך מימינך', + upcoming: 'אתה תגיע אל היעד ה{nth} שלך מימינך', + short: 'הגעת', + 'short-upcoming': 'תגיע', + named: 'הגעת אל {waypoint_name} שלך מימינך', + }, + 'slight left': { + default: 'הגעת אל היעד ה{nth} שלך משמאלך', + upcoming: 'אתה תגיע אל היעד ה{nth} שלך משמאלך', + short: 'הגעת', + 'short-upcoming': 'תגיע', + named: 'הגעת אל {waypoint_name} שלך משמאלך', + }, + straight: { + default: 'הגעת אל היעד ה{nth} שלך, בהמשך', + upcoming: 'אתה תגיע אל היעד ה{nth} שלך, בהמשך', + short: 'הגעת', + 'short-upcoming': 'תגיע', + named: 'הגעת אל {waypoint_name}, בהמשך', + }, + }, + continue: { + default: { + default: 'פנה {modifier}', + name: 'פנה {modifier} כדי להישאר ב{way_name}', + destination: 'פנה {modifier} לכיוון {destination}', + exit: 'פנה {modifier} על {way_name}', + }, + straight: { + default: 'המשך ישר', + name: 'המשך ישר כדי להישאר על {way_name}', + destination: 'המשך לכיוון {destination}', + distance: 'המשך ישר לאורך {distance}', + namedistance: 'המשך על {way_name} לאורך {distance}', + }, + 'sharp left': { + default: 'פנה בחדות שמאלה', + name: 'פנה בחדות שמאלה כדי להישאר על {way_name}', + destination: 'פנה בחדות שמאלה לכיוון {destination}', + }, + 'sharp right': { + default: 'פנה בחדות ימינה', + name: 'פנה בחדות ימינה כדי להישאר על {way_name}', + destination: 'פנה בחדות ימינה לכיוון {destination}', + }, + 'slight left': { + default: 'פנה קלות שמאלה', + name: 'פנה קלות שמאלה כדי להישאר על {way_name}', + destination: 'פנה קלות שמאלה לכיוון {destination}', + }, + 'slight right': { + default: 'פנה קלות ימינה', + name: 'פנה קלות ימינה כדי להישאר על {way_name}', + destination: 'פנה קלות ימינה לכיוון {destination}', + }, + uturn: { + default: 'פנה פניית פרסה', + name: 'פנה פניית פרסה והמשך על {way_name}', + destination: 'פנה פניית פרסה לכיוון {destination}', + }, + }, + depart: { + default: { + default: 'התכוונן {direction}', + name: 'התכוונן {direction} על {way_name}', + namedistance: 'התכוונן {direction} על {way_name} לאורך {distance}', + }, + }, + 'end of road': { + default: { + default: 'פנה {modifier}', + name: 'פנה {modifier} על {way_name}', + destination: 'פנה {modifier} לכיוון {destination}', + }, + straight: { + default: 'המשך ישר', + name: 'המשך ישר על {way_name}', + destination: 'המשך ישר לכיוון {destination}', + }, + uturn: { + default: 'פנה פניית פרסה בסוף הדרך', + name: 'פנה פניית פרסה על {way_name} בסוף הדרך', + destination: 'פנה פניית פרסה לכיוון {destination} בסוף הדרך', + }, + }, + fork: { + default: { + default: 'היצמד {modifier} בהתפצלות', + name: 'היצמד {modifier} על {way_name}', + destination: 'היצמד {modifier} לכיוון {destination}', + }, + 'slight left': { + default: 'היצמד לשמאל בהתפצלות', + name: 'היצמד לשמאל על {way_name}', + destination: 'היצמד לשמאל לכיוון {destination}', + }, + 'slight right': { + default: 'היצמד ימינה בהתפצלות', + name: 'היצמד לימין על {way_name}', + destination: 'היצמד לימין לכיוון {destination}', + }, + 'sharp left': { + default: 'פנה בחדות שמאלה בהתפצלות', + name: 'פנה בחדות שמאלה על {way_name}', + destination: 'פנה בחדות שמאלה לכיוון {destination}', + }, + 'sharp right': { + default: 'פנה בחדות ימינה בהתפצלות', + name: 'פנה בחדות ימינה על {way_name}', + destination: 'פנה בחדות ימינה לכיוון {destination}', + }, + uturn: { + default: 'פנה פניית פרסה', + name: 'פנה פניית פרסה על {way_name}', + destination: 'פנה פניית פרסה לכיוון {destination}', + }, + }, + merge: { + default: { + default: 'השתלב {modifier}', + name: 'השתלב {modifier} על {way_name}', + destination: 'השתלב {modifier} לכיוון {destination}', + }, + straight: { + default: 'השתלב', + name: 'השתלב על {way_name}', + destination: 'השתלב לכיוון {destination}', + }, + 'slight left': { + default: 'השתלב שמאלה', + name: 'השתלב שמאלה על {way_name}', + destination: 'השתלב שמאלה לכיוון {destination}', + }, + 'slight right': { + default: 'השתלב ימינה', + name: 'השתלב ימינה על {way_name}', + destination: 'השתלב ימינה לכיוון {destination}', + }, + 'sharp left': { + default: 'השתלב שמאלה', + name: 'השתלב שמאלה על {way_name}', + destination: 'השתלב שמאלה לכיוון {destination}', + }, + 'sharp right': { + default: 'השתלב ימינה', + name: 'השתלב ימינה על {way_name}', + destination: 'השתלב ימינה לכיוון {destination}', + }, + uturn: { + default: 'פנה פניית פרסה', + name: 'פנה פניית פרסה על {way_name}', + destination: 'פנה פניית פרסה לכיוון {destination}', + }, + }, + 'new name': { + default: { + default: 'המשך {modifier}', + name: 'המשך {modifier} על {way_name}', + destination: 'המשך {modifier} לכיוון {destination}', + }, + straight: { + default: 'המשך ישר', + name: 'המשך על {way_name}', + destination: 'המשך לכיוון {destination}', + }, + 'sharp left': { + default: 'פנה בחדות שמאלה', + name: 'פנה בחדות שמאלה על {way_name}', + destination: 'פנה בחדות שמאלה לכיוון {destination}', + }, + 'sharp right': { + default: 'פנה בחדות ימינה', + name: 'פנה בחדות ימינה על {way_name}', + destination: 'פנה בחדות ימינה לכיוון {destination}', + }, + 'slight left': { + default: 'המשך בנטייה קלה שמאלה', + name: 'המשך בנטייה קלה שמאלה על {way_name}', + destination: 'המשך בנטייה קלה שמאלה לכיוון {destination}', + }, + 'slight right': { + default: 'המשך בנטייה קלה ימינה', + name: 'המשך בנטייה קלה ימינה על {way_name}', + destination: 'המשך בנטייה קלה ימינה לכיוון {destination}', + }, + uturn: { + default: 'פנה פניית פרסה', + name: 'פנה פניית פרסה על {way_name}', + destination: 'פנה פניית פרסה לכיוון {destination}', + }, + }, + notification: { + default: { + default: 'המשך {modifier}', + name: 'המשך {modifier} על {way_name}', + destination: 'המשך {modifier} לכיוון {destination}', + }, + uturn: { + default: 'פנה פניית פרסה', + name: 'פנה פניית פרסה על {way_name}', + destination: 'פנה פניית פרסה לכיוון {destination}', + }, + }, + 'off ramp': { + default: { + default: 'צא ביציאה', + name: 'צא ביציאה על {way_name}', + destination: 'צא ביציאה לכיוון {destination}', + exit: 'צא ביציאה {exit}', + exit_destination: 'צא ביציאה {exit} לכיוון {destination}', + }, + left: { + default: 'צא ביציאה שמשמאלך', + name: 'צא ביציאה שמשמאלך על {way_name}', + destination: 'צא ביציאה שמשמאלך לכיוון {destination}', + exit: 'צא ביציאה {exit} משמאלך', + exit_destination: 'צא ביציאה {exit} משמאלך לכיוון {destination}', + }, + right: { + default: 'צא ביציאה שמימינך', + name: 'צא ביציאה שמימינך על {way_name}', + destination: 'צא ביציאה שמימינך לכיוון {destination}', + exit: 'צא ביציאה {exit} מימינך', + exit_destination: 'צא ביציאה {exit} מימינך לכיוון {destination}', + }, + 'sharp left': { + default: 'צא ביציאה שבשמאלך', + name: 'צא ביציאה שמשמאלך על {way_name}', + destination: 'צא ביציאה שמשמאלך לכיוון {destination}', + exit: 'צא ביציאה {exit} משמאלך', + exit_destination: 'צא ביציאה {exit} משמאלך לכיוון {destination}', + }, + 'sharp right': { + default: 'צא ביציאה שמימינך', + name: 'צא ביציאה שמימינך על {way_name}', + destination: 'צא ביציאה שמימינך לכיוון {destination}', + exit: 'צא ביציאה {exit} מימינך', + exit_destination: 'צא ביציאה {exit} מימינך לכיוון {destination}', + }, + 'slight left': { + default: 'צא ביציאה שבשמאלך', + name: 'צא ביציאה שמשמאלך על {way_name}', + destination: 'צא ביציאה שמשמאלך לכיוון {destination}', + exit: 'צא ביציאה {exit} משמאלך', + exit_destination: 'צא ביציאה {exit} משמאלך לכיוון {destination}', + }, + 'slight right': { + default: 'צא ביציאה שמימינך', + name: 'צא ביציאה שמימינך על {way_name}', + destination: 'צא ביציאה שמימינך לכיוון {destination}', + exit: 'צא ביציאה {exit} מימינך', + exit_destination: 'צא ביציאה {exit} מימינך לכיוון {destination}', + }, + }, + 'on ramp': { + default: { + default: 'צא ביציאה', + name: 'צא ביציאה על {way_name}', + destination: 'צא ביציאה לכיוון {destination}', + }, + left: { + default: 'צא ביציאה שבשמאלך', + name: 'צא ביציאה שמשמאלך על {way_name}', + destination: 'צא ביציאה שמשמאלך לכיוון {destination}', + }, + right: { + default: 'צא ביציאה שמימינך', + name: 'צא ביציאה שמימינך על {way_name}', + destination: 'צא ביציאה שמימינך לכיוון {destination}', + }, + 'sharp left': { + default: 'צא ביציאה שבשמאלך', + name: 'צא ביציאה שמשמאלך על {way_name}', + destination: 'צא ביציאה שמשמאלך לכיוון {destination}', + }, + 'sharp right': { + default: 'צא ביציאה שמימינך', + name: 'צא ביציאה שמימינך על {way_name}', + destination: 'צא ביציאה שמימינך לכיוון {destination}', + }, + 'slight left': { + default: 'צא ביציאה שבשמאלך', + name: 'צא ביציאה שמשמאלך על {way_name}', + destination: 'צא ביציאה שמשמאלך לכיוון {destination}', + }, + 'slight right': { + default: 'צא ביציאה שמימינך', + name: 'צא ביציאה שמימינך על {way_name}', + destination: 'צא ביציאה שמימינך לכיוון {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'השתלב במעגל התנועה', + name: 'השתלב במעגל התנועה וצא על {way_name}', + destination: 'השתלב במעגל התנועה וצא לכיוון {destination}', + }, + name: { + default: 'היכנס ל{rotary_name}', + name: 'היכנס ל{rotary_name} וצא על {way_name}', + destination: 'היכנס ל{rotary_name} וצא לכיוון {destination}', + }, + exit: { + default: 'השתלב במעגל התנועה וצא ביציאה {exit_number}', + name: 'השתלב במעגל התנועה וצא ביציאה {exit_number} ל{way_name}', + destination: 'השתלב במעגל התנועה וצא ביציאה {exit_number} לכיוון {destination}', + }, + name_exit: { + default: 'היכנס ל{rotary_name} וצא ביציאה ה{exit_number}', + name: 'היכנס ל{rotary_name} וצא ביציאה ה{exit_number} ל{way_name}', + destination: 'היכנס ל{rotary_name} וצא ביציאה ה{exit_number} לכיוון {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'השתלב במעגל התנועה וצא ביציאה {exit_number}', + name: 'השתלב במעגל התנועה וצא ביציאה {exit_number} ל{way_name}', + destination: 'השתלב במעגל התנועה וצא ביציאה {exit_number} לכיוון {destination}', + }, + default: { + default: 'השתלב במעגל התנועה', + name: 'השתלב במעגל התנועה וצא על {way_name}', + destination: 'השתלב במעגל התנועה וצא לכיוון {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'פנה {modifier}', + name: 'פנה {modifier} על {way_name}', + destination: 'פנה {modifier} לכיוון {destination}', + }, + left: { + default: 'פנה שמאלה', + name: 'פנה שמאלה ל{way_name}', + destination: 'פנה שמאלה לכיוון {destination}', + }, + right: { + default: 'פנה ימינה', + name: 'פנה ימינה ל{way_name}', + destination: 'פנה ימינה לכיוון {destination}', + }, + straight: { + default: 'המשך ישר', + name: 'המשך ישר על {way_name}', + destination: 'המשך ישר לכיוון {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'צא ממעגל התנועה', + name: 'צא ממעגל התנועה ל{way_name}', + destination: 'צא ממעגל התנועה לכיוון {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'צא ממעגל התנועה', + name: 'צא ממעגל התנועה ל{way_name}', + destination: 'צא ממעגל התנועה לכיוון {destination}', + }, + }, + turn: { + default: { + default: 'פנה {modifier}', + name: 'פנה {modifier} על {way_name}', + destination: 'פנה {modifier} לכיוון {destination}', + }, + left: { + default: 'פנה שמאלה', + name: 'פנה שמאלה ל{way_name}', + destination: 'פנה שמאלה לכיוון {destination}', + }, + right: { + default: 'פנה ימינה', + name: 'פנה ימינה ל{way_name}', + destination: 'פנה ימינה לכיוון {destination}', + }, + straight: { + default: 'המשך ישר', + name: 'המשך ישר ל{way_name}', + destination: 'המשך ישר לכיוון {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'המשך ישר', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 32: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1', + 2: '2', + 3: '3', + 4: '4', + 5: '5', + 6: '6', + 7: '7', + 8: '8', + 9: '9', + 10: '10', + }, + direction: { + north: 'utara', + northeast: 'timur laut', + east: 'timur', + southeast: 'tenggara', + south: 'selatan', + southwest: 'barat daya', + west: 'barat', + northwest: 'barat laut', + }, + modifier: { + left: 'kiri', + right: 'kanan', + 'sharp left': 'tajam kiri', + 'sharp right': 'tajam kanan', + 'slight left': 'agak ke kiri', + 'slight right': 'agak ke kanan', + straight: 'lurus', + uturn: 'putar balik', + }, + lanes: { + xo: 'Tetap di kanan', + ox: 'Tetap di kiri', + xox: 'Tetap di tengah', + oxo: 'Tetap di kiri atau kanan', + }, + }, + modes: { + ferry: { + default: 'Naik ferry', + name: 'Naik ferry di {way_name}', + destination: 'Naik ferry menuju {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, then, in {distance}, {instruction_two}', + 'two linked': '{instruction_one}, then {instruction_two}', + 'one in distance': 'In {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'exit {exit}', + }, + arrive: { + default: { + default: 'Anda telah tiba di tujuan ke-{nth}', + upcoming: 'Anda telah tiba di tujuan ke-{nth}', + short: 'Anda telah tiba di tujuan ke-{nth}', + 'short-upcoming': 'Anda telah tiba di tujuan ke-{nth}', + named: 'Anda telah tiba di {waypoint_name}', + }, + left: { + default: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kiri', + upcoming: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kiri', + short: 'Anda telah tiba di tujuan ke-{nth}', + 'short-upcoming': 'Anda telah tiba di tujuan ke-{nth}', + named: 'Anda telah tiba di {waypoint_name}, di sebelah kiri', + }, + right: { + default: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kanan', + upcoming: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kanan', + short: 'Anda telah tiba di tujuan ke-{nth}', + 'short-upcoming': 'Anda telah tiba di tujuan ke-{nth}', + named: 'Anda telah tiba di {waypoint_name}, di sebelah kanan', + }, + 'sharp left': { + default: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kiri', + upcoming: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kiri', + short: 'Anda telah tiba di tujuan ke-{nth}', + 'short-upcoming': 'Anda telah tiba di tujuan ke-{nth}', + named: 'Anda telah tiba di {waypoint_name}, di sebelah kiri', + }, + 'sharp right': { + default: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kanan', + upcoming: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kanan', + short: 'Anda telah tiba di tujuan ke-{nth}', + 'short-upcoming': 'Anda telah tiba di tujuan ke-{nth}', + named: 'Anda telah tiba di {waypoint_name}, di sebelah kanan', + }, + 'slight right': { + default: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kanan', + upcoming: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kanan', + short: 'Anda telah tiba di tujuan ke-{nth}', + 'short-upcoming': 'Anda telah tiba di tujuan ke-{nth}', + named: 'Anda telah tiba di {waypoint_name}, di sebelah kanan', + }, + 'slight left': { + default: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kiri', + upcoming: 'Anda telah tiba di tujuan ke-{nth}, di sebelah kiri', + short: 'Anda telah tiba di tujuan ke-{nth}', + 'short-upcoming': 'Anda telah tiba di tujuan ke-{nth}', + named: 'Anda telah tiba di {waypoint_name}, di sebelah kiri', + }, + straight: { + default: 'Anda telah tiba di tujuan ke-{nth}, lurus saja', + upcoming: 'Anda telah tiba di tujuan ke-{nth}, lurus saja', + short: 'Anda telah tiba di tujuan ke-{nth}', + 'short-upcoming': 'Anda telah tiba di tujuan ke-{nth}', + named: 'Anda telah tiba di {waypoint_name}, lurus saja', + }, + }, + continue: { + default: { + default: 'Belok {modifier}', + name: 'Terus {modifier} ke {way_name}', + destination: 'Belok {modifier} menuju {destination}', + exit: 'Belok {modifier} ke {way_name}', + }, + straight: { + default: 'Lurus terus', + name: 'Terus ke {way_name}', + destination: 'Terus menuju {destination}', + distance: 'Continue straight for {distance}', + namedistance: 'Continue on {way_name} for {distance}', + }, + 'sharp left': { + default: 'Belok kiri tajam', + name: 'Make a sharp left to stay on {way_name}', + destination: 'Belok kiri tajam menuju {destination}', + }, + 'sharp right': { + default: 'Belok kanan tajam', + name: 'Make a sharp right to stay on {way_name}', + destination: 'Belok kanan tajam menuju {destination}', + }, + 'slight left': { + default: 'Tetap agak di kiri', + name: 'Tetap agak di kiri ke {way_name}', + destination: 'Tetap agak di kiri menuju {destination}', + }, + 'slight right': { + default: 'Tetap agak di kanan', + name: 'Tetap agak di kanan ke {way_name}', + destination: 'Tetap agak di kanan menuju {destination}', + }, + uturn: { + default: 'Putar balik', + name: 'Putar balik ke arah {way_name}', + destination: 'Putar balik menuju {destination}', + }, + }, + depart: { + default: { + default: 'Arah {direction}', + name: 'Arah {direction} di {way_name}', + namedistance: 'Head {direction} on {way_name} for {distance}', + }, + }, + 'end of road': { + default: { + default: 'Belok {modifier}', + name: 'Belok {modifier} ke {way_name}', + destination: 'Belok {modifier} menuju {destination}', + }, + straight: { + default: 'Lurus terus', + name: 'Tetap lurus ke {way_name} ', + destination: 'Tetap lurus menuju {destination}', + }, + uturn: { + default: 'Putar balik di akhir jalan', + name: 'Putar balik di {way_name} di akhir jalan', + destination: 'Putar balik menuju {destination} di akhir jalan', + }, + }, + fork: { + default: { + default: 'Tetap {modifier} di pertigaan', + name: 'Tetap {modifier} di pertigaan ke {way_name}', + destination: 'Tetap {modifier} di pertigaan menuju {destination}', + }, + 'slight left': { + default: 'Tetap di kiri pada pertigaan', + name: 'Tetap di kiri pada pertigaan ke arah {way_name}', + destination: 'Tetap di kiri pada pertigaan menuju {destination}', + }, + 'slight right': { + default: 'Tetap di kanan pada pertigaan', + name: 'Tetap di kanan pada pertigaan ke arah {way_name}', + destination: 'Tetap di kanan pada pertigaan menuju {destination}', + }, + 'sharp left': { + default: 'Belok kiri pada pertigaan', + name: 'Belok kiri tajam ke arah {way_name}', + destination: 'Belok kiri tajam menuju {destination}', + }, + 'sharp right': { + default: 'Belok kanan pada pertigaan', + name: 'Belok kanan tajam ke arah {way_name}', + destination: 'Belok kanan tajam menuju {destination}', + }, + uturn: { + default: 'Putar balik', + name: 'Putar balik ke arah {way_name}', + destination: 'Putar balik menuju {destination}', + }, + }, + merge: { + default: { + default: 'Bergabung {modifier}', + name: 'Bergabung {modifier} ke arah {way_name}', + destination: 'Bergabung {modifier} menuju {destination}', + }, + straight: { + default: 'Bergabung lurus', + name: 'Bergabung lurus ke arah {way_name}', + destination: 'Bergabung lurus menuju {destination}', + }, + 'slight left': { + default: 'Bergabung di kiri', + name: 'Bergabung di kiri ke arah {way_name}', + destination: 'Bergabung di kiri menuju {destination}', + }, + 'slight right': { + default: 'Bergabung di kanan', + name: 'Bergabung di kanan ke arah {way_name}', + destination: 'Bergabung di kanan menuju {destination}', + }, + 'sharp left': { + default: 'Bergabung di kiri', + name: 'Bergabung di kiri ke arah {way_name}', + destination: 'Bergabung di kiri menuju {destination}', + }, + 'sharp right': { + default: 'Bergabung di kanan', + name: 'Bergabung di kanan ke arah {way_name}', + destination: 'Bergabung di kanan menuju {destination}', + }, + uturn: { + default: 'Putar balik', + name: 'Putar balik ke arah {way_name}', + destination: 'Putar balik menuju {destination}', + }, + }, + 'new name': { + default: { + default: 'Lanjutkan {modifier}', + name: 'Lanjutkan {modifier} menuju {way_name}', + destination: 'Lanjutkan {modifier} menuju {destination}', + }, + straight: { + default: 'Lurus terus', + name: 'Terus ke {way_name}', + destination: 'Terus menuju {destination}', + }, + 'sharp left': { + default: 'Belok kiri tajam', + name: 'Belok kiri tajam ke arah {way_name}', + destination: 'Belok kiri tajam menuju {destination}', + }, + 'sharp right': { + default: 'Belok kanan tajam', + name: 'Belok kanan tajam ke arah {way_name}', + destination: 'Belok kanan tajam menuju {destination}', + }, + 'slight left': { + default: 'Lanjut dengan agak ke kiri', + name: 'Lanjut dengan agak di kiri ke {way_name}', + destination: 'Tetap agak di kiri menuju {destination}', + }, + 'slight right': { + default: 'Tetap agak di kanan', + name: 'Tetap agak di kanan ke {way_name}', + destination: 'Tetap agak di kanan menuju {destination}', + }, + uturn: { + default: 'Putar balik', + name: 'Putar balik ke arah {way_name}', + destination: 'Putar balik menuju {destination}', + }, + }, + notification: { + default: { + default: 'Lanjutkan {modifier}', + name: 'Lanjutkan {modifier} menuju {way_name}', + destination: 'Lanjutkan {modifier} menuju {destination}', + }, + uturn: { + default: 'Putar balik', + name: 'Putar balik ke arah {way_name}', + destination: 'Putar balik menuju {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Ambil jalan melandai', + name: 'Ambil jalan melandai ke {way_name}', + destination: 'Ambil jalan melandai menuju {destination}', + exit: 'Take exit {exit}', + exit_destination: 'Take exit {exit} towards {destination}', + }, + left: { + default: 'Ambil jalan yang melandai di sebelah kiri', + name: 'Ambil jalan melandai di sebelah kiri ke arah {way_name}', + destination: 'Ambil jalan melandai di sebelah kiri menuju {destination}', + exit: 'Take exit {exit} on the left', + exit_destination: 'Take exit {exit} on the left towards {destination}', + }, + right: { + default: 'Ambil jalan melandai di sebelah kanan', + name: 'Ambil jalan melandai di sebelah kanan ke {way_name}', + destination: 'Ambil jalan melandai di sebelah kanan menuju {destination}', + exit: 'Take exit {exit} on the right', + exit_destination: 'Take exit {exit} on the right towards {destination}', + }, + 'sharp left': { + default: 'Ambil jalan yang melandai di sebelah kiri', + name: 'Ambil jalan melandai di sebelah kiri ke arah {way_name}', + destination: 'Ambil jalan melandai di sebelah kiri menuju {destination}', + exit: 'Take exit {exit} on the left', + exit_destination: 'Take exit {exit} on the left towards {destination}', + }, + 'sharp right': { + default: 'Ambil jalan melandai di sebelah kanan', + name: 'Ambil jalan melandai di sebelah kanan ke {way_name}', + destination: 'Ambil jalan melandai di sebelah kanan menuju {destination}', + exit: 'Take exit {exit} on the right', + exit_destination: 'Take exit {exit} on the right towards {destination}', + }, + 'slight left': { + default: 'Ambil jalan yang melandai di sebelah kiri', + name: 'Ambil jalan melandai di sebelah kiri ke arah {way_name}', + destination: 'Ambil jalan melandai di sebelah kiri menuju {destination}', + exit: 'Take exit {exit} on the left', + exit_destination: 'Take exit {exit} on the left towards {destination}', + }, + 'slight right': { + default: 'Ambil jalan melandai di sebelah kanan', + name: 'Ambil jalan melandai di sebelah kanan ke {way_name}', + destination: 'Ambil jalan melandai di sebelah kanan menuju {destination}', + exit: 'Take exit {exit} on the right', + exit_destination: 'Take exit {exit} on the right towards {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Ambil jalan melandai', + name: 'Ambil jalan melandai ke {way_name}', + destination: 'Ambil jalan melandai menuju {destination}', + }, + left: { + default: 'Ambil jalan yang melandai di sebelah kiri', + name: 'Ambil jalan melandai di sebelah kiri ke arah {way_name}', + destination: 'Ambil jalan melandai di sebelah kiri menuju {destination}', + }, + right: { + default: 'Ambil jalan melandai di sebelah kanan', + name: 'Ambil jalan melandai di sebelah kanan ke {way_name}', + destination: 'Ambil jalan melandai di sebelah kanan menuju {destination}', + }, + 'sharp left': { + default: 'Ambil jalan yang melandai di sebelah kiri', + name: 'Ambil jalan melandai di sebelah kiri ke arah {way_name}', + destination: 'Ambil jalan melandai di sebelah kiri menuju {destination}', + }, + 'sharp right': { + default: 'Ambil jalan melandai di sebelah kanan', + name: 'Ambil jalan melandai di sebelah kanan ke {way_name}', + destination: 'Ambil jalan melandai di sebelah kanan menuju {destination}', + }, + 'slight left': { + default: 'Ambil jalan yang melandai di sebelah kiri', + name: 'Ambil jalan melandai di sebelah kiri ke arah {way_name}', + destination: 'Ambil jalan melandai di sebelah kiri menuju {destination}', + }, + 'slight right': { + default: 'Ambil jalan melandai di sebelah kanan', + name: 'Ambil jalan melandai di sebelah kanan ke {way_name}', + destination: 'Ambil jalan melandai di sebelah kanan menuju {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Masuk bundaran', + name: 'Masuk bundaran dan keluar arah {way_name}', + destination: 'Masuk bundaran dan keluar menuju {destination}', + }, + name: { + default: 'Masuk {rotary_name}', + name: 'Masuk {rotary_name} dan keluar arah {way_name}', + destination: 'Masuk {rotary_name} dan keluar menuju {destination}', + }, + exit: { + default: 'Masuk bundaran dan ambil jalan keluar {exit_number}', + name: 'Masuk bundaran dan ambil jalan keluar {exit_number} arah {way_name}', + destination: + 'Masuk bundaran dan ambil jalan keluar {exit_number} menuju {destination}', + }, + name_exit: { + default: 'Masuk {rotary_name} dan ambil jalan keluar {exit_number}', + name: 'Masuk {rotary_name} dan ambil jalan keluar {exit_number} arah {way_name}', + destination: + 'Masuk {rotary_name} dan ambil jalan keluar {exit_number} menuju {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Masuk bundaran dan ambil jalan keluar {exit_number}', + name: 'Masuk bundaran dan ambil jalan keluar {exit_number} arah {way_name}', + destination: + 'Masuk bundaran dan ambil jalan keluar {exit_number} menuju {destination}', + }, + default: { + default: 'Masuk bundaran', + name: 'Masuk bundaran dan keluar arah {way_name}', + destination: 'Masuk bundaran dan keluar menuju {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Lakukan {modifier}', + name: 'Lakukan {modifier} ke arah {way_name}', + destination: 'Lakukan {modifier} menuju {destination}', + }, + left: { + default: 'Belok kiri', + name: 'Belok kiri ke {way_name}', + destination: 'Belok kiri menuju {destination}', + }, + right: { + default: 'Belok kanan', + name: 'Belok kanan ke {way_name}', + destination: 'Belok kanan menuju {destination}', + }, + straight: { + default: 'Lurus terus', + name: 'Tetap lurus ke {way_name} ', + destination: 'Tetap lurus menuju {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Lakukan {modifier}', + name: 'Lakukan {modifier} ke arah {way_name}', + destination: 'Lakukan {modifier} menuju {destination}', + }, + left: { + default: 'Belok kiri', + name: 'Belok kiri ke {way_name}', + destination: 'Belok kiri menuju {destination}', + }, + right: { + default: 'Belok kanan', + name: 'Belok kanan ke {way_name}', + destination: 'Belok kanan menuju {destination}', + }, + straight: { + default: 'Lurus terus', + name: 'Tetap lurus ke {way_name} ', + destination: 'Tetap lurus menuju {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Lakukan {modifier}', + name: 'Lakukan {modifier} ke arah {way_name}', + destination: 'Lakukan {modifier} menuju {destination}', + }, + left: { + default: 'Belok kiri', + name: 'Belok kiri ke {way_name}', + destination: 'Belok kiri menuju {destination}', + }, + right: { + default: 'Belok kanan', + name: 'Belok kanan ke {way_name}', + destination: 'Belok kanan menuju {destination}', + }, + straight: { + default: 'Lurus', + name: 'Lurus arah {way_name}', + destination: 'Lurus menuju {destination}', + }, + }, + turn: { + default: { + default: 'Lakukan {modifier}', + name: 'Lakukan {modifier} ke arah {way_name}', + destination: 'Lakukan {modifier} menuju {destination}', + }, + left: { + default: 'Belok kiri', + name: 'Belok kiri ke {way_name}', + destination: 'Belok kiri menuju {destination}', + }, + right: { + default: 'Belok kanan', + name: 'Belok kanan ke {way_name}', + destination: 'Belok kanan menuju {destination}', + }, + straight: { + default: 'Lurus', + name: 'Lurus arah {way_name}', + destination: 'Lurus menuju {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Lurus terus', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 33: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1ª', + 2: '2ª', + 3: '3ª', + 4: '4ª', + 5: '5ª', + 6: '6ª', + 7: '7ª', + 8: '8ª', + 9: '9ª', + 10: '10ª', + }, + direction: { + north: 'nord', + northeast: 'nord-est', + east: 'est', + southeast: 'sud-est', + south: 'sud', + southwest: 'sud-ovest', + west: 'ovest', + northwest: 'nord-ovest', + }, + modifier: { + left: 'sinistra', + right: 'destra', + 'sharp left': 'sinistra', + 'sharp right': 'destra', + 'slight left': 'sinistra leggermente', + 'slight right': 'destra leggermente', + straight: 'dritto', + uturn: 'inversione a U', + }, + lanes: { + xo: 'Mantieni la destra', + ox: 'Mantieni la sinistra', + xox: 'Rimani in mezzo', + oxo: 'Mantieni la destra o la sinistra', + }, + }, + modes: { + ferry: { + default: 'Prendi il traghetto', + name: 'Prendi il traghetto {way_name}', + destination: 'Prendi il traghetto verso {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, poi tra {distance},{instruction_two}', + 'two linked': '{instruction_one}, poi {instruction_two}', + 'one in distance': 'tra {distance} {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'exit {exit}', + }, + arrive: { + default: { + default: 'Sei arrivato alla tua {nth} destinazione', + upcoming: 'Sei arrivato alla tua {nth} destinazione', + short: 'Sei arrivato alla tua {nth} destinazione', + 'short-upcoming': 'Sei arrivato alla tua {nth} destinazione', + named: 'Sei arrivato a {waypoint_name}', + }, + left: { + default: 'sei arrivato alla tua {nth} destinazione, sulla sinistra', + upcoming: 'sei arrivato alla tua {nth} destinazione, sulla sinistra', + short: 'Sei arrivato alla tua {nth} destinazione', + 'short-upcoming': 'Sei arrivato alla tua {nth} destinazione', + named: 'sei arrivato a {waypoint_name}, sulla sinistra', + }, + right: { + default: 'sei arrivato alla tua {nth} destinazione, sulla destra', + upcoming: 'sei arrivato alla tua {nth} destinazione, sulla destra', + short: 'Sei arrivato alla tua {nth} destinazione', + 'short-upcoming': 'Sei arrivato alla tua {nth} destinazione', + named: 'sei arrivato a {waypoint_name}, sulla destra', + }, + 'sharp left': { + default: 'sei arrivato alla tua {nth} destinazione, sulla sinistra', + upcoming: 'sei arrivato alla tua {nth} destinazione, sulla sinistra', + short: 'Sei arrivato alla tua {nth} destinazione', + 'short-upcoming': 'Sei arrivato alla tua {nth} destinazione', + named: 'sei arrivato a {waypoint_name}, sulla sinistra', + }, + 'sharp right': { + default: 'sei arrivato alla tua {nth} destinazione, sulla destra', + upcoming: 'sei arrivato alla tua {nth} destinazione, sulla destra', + short: 'Sei arrivato alla tua {nth} destinazione', + 'short-upcoming': 'Sei arrivato alla tua {nth} destinazione', + named: 'sei arrivato a {waypoint_name}, sulla destra', + }, + 'slight right': { + default: 'sei arrivato alla tua {nth} destinazione, sulla destra', + upcoming: 'sei arrivato alla tua {nth} destinazione, sulla destra', + short: 'Sei arrivato alla tua {nth} destinazione', + 'short-upcoming': 'Sei arrivato alla tua {nth} destinazione', + named: 'sei arrivato a {waypoint_name}, sulla destra', + }, + 'slight left': { + default: 'sei arrivato alla tua {nth} destinazione, sulla sinistra', + upcoming: 'sei arrivato alla tua {nth} destinazione, sulla sinistra', + short: 'Sei arrivato alla tua {nth} destinazione', + 'short-upcoming': 'Sei arrivato alla tua {nth} destinazione', + named: 'sei arrivato a {waypoint_name}, sulla sinistra', + }, + straight: { + default: 'sei arrivato alla tua {nth} destinazione, si trova davanti a te', + upcoming: 'sei arrivato alla tua {nth} destinazione, si trova davanti a te', + short: 'Sei arrivato alla tua {nth} destinazione', + 'short-upcoming': 'Sei arrivato alla tua {nth} destinazione', + named: 'sei arrivato a {waypoint_name}, si trova davanti a te', + }, + }, + continue: { + default: { + default: 'Gira a {modifier}', + name: 'Gira a {modifier} per stare su {way_name}', + destination: 'Gira a {modifier} verso {destination}', + exit: 'Gira a {modifier} in {way_name}', + }, + straight: { + default: 'Continua dritto', + name: 'Continua dritto per stare su {way_name}', + destination: 'Continua verso {destination}', + distance: 'Continua dritto per {distance}', + namedistance: 'Continua su {way_name} per {distance}', + }, + 'sharp left': { + default: 'Svolta a sinistra', + name: 'Fai una stretta curva a sinistra per stare su {way_name}', + destination: 'Svolta a sinistra verso {destination}', + }, + 'sharp right': { + default: 'Svolta a destra', + name: 'Fau una stretta curva a destra per stare su {way_name}', + destination: 'Svolta a destra verso {destination}', + }, + 'slight left': { + default: 'Fai una leggera curva a sinistra', + name: 'Fai una leggera curva a sinistra per stare su {way_name}', + destination: 'Fai una leggera curva a sinistra verso {destination}', + }, + 'slight right': { + default: 'Fai una leggera curva a destra', + name: 'Fai una leggera curva a destra per stare su {way_name}', + destination: 'Fai una leggera curva a destra verso {destination}', + }, + uturn: { + default: "Fai un'inversione a U", + name: "Fai un'inversione ad U poi continua su {way_name}", + destination: "Fai un'inversione a U verso {destination}", + }, + }, + depart: { + default: { + default: 'Continua verso {direction}', + name: 'Continua verso {direction} in {way_name}', + namedistance: 'Head {direction} on {way_name} for {distance}', + }, + }, + 'end of road': { + default: { + default: 'Gira a {modifier}', + name: 'Gira a {modifier} in {way_name}', + destination: 'Gira a {modifier} verso {destination}', + }, + straight: { + default: 'Continua dritto', + name: 'Continua dritto in {way_name}', + destination: 'Continua dritto verso {destination}', + }, + uturn: { + default: "Fai un'inversione a U alla fine della strada", + name: "Fai un'inversione a U in {way_name} alla fine della strada", + destination: "Fai un'inversione a U verso {destination} alla fine della strada", + }, + }, + fork: { + default: { + default: 'Mantieni la {modifier} al bivio', + name: 'Mantieni la {modifier} al bivio in {way_name}', + destination: 'Mantieni la {modifier} al bivio verso {destination}', + }, + 'slight left': { + default: 'Mantieni la sinistra al bivio', + name: 'Mantieni la sinistra al bivio in {way_name}', + destination: 'Mantieni la sinistra al bivio verso {destination}', + }, + 'slight right': { + default: 'Mantieni la destra al bivio', + name: 'Mantieni la destra al bivio in {way_name}', + destination: 'Mantieni la destra al bivio verso {destination}', + }, + 'sharp left': { + default: 'Svolta a sinistra al bivio', + name: 'Svolta a sinistra in {way_name}', + destination: 'Svolta a sinistra verso {destination}', + }, + 'sharp right': { + default: 'Svolta a destra al bivio', + name: 'Svolta a destra in {way_name}', + destination: 'Svolta a destra verso {destination}', + }, + uturn: { + default: "Fai un'inversione a U", + name: "Fai un'inversione a U in {way_name}", + destination: "Fai un'inversione a U verso {destination}", + }, + }, + merge: { + default: { + default: 'Immettiti a {modifier}', + name: 'Immettiti {modifier} in {way_name}', + destination: 'Immettiti {modifier} verso {destination}', + }, + straight: { + default: 'Immettiti a dritto', + name: 'Immettiti dritto in {way_name}', + destination: 'Immettiti dritto verso {destination}', + }, + 'slight left': { + default: 'Immettiti a sinistra', + name: 'Immettiti a sinistra in {way_name}', + destination: 'Immettiti a sinistra verso {destination}', + }, + 'slight right': { + default: 'Immettiti a destra', + name: 'Immettiti a destra in {way_name}', + destination: 'Immettiti a destra verso {destination}', + }, + 'sharp left': { + default: 'Immettiti a sinistra', + name: 'Immettiti a sinistra in {way_name}', + destination: 'Immettiti a sinistra verso {destination}', + }, + 'sharp right': { + default: 'Immettiti a destra', + name: 'Immettiti a destra in {way_name}', + destination: 'Immettiti a destra verso {destination}', + }, + uturn: { + default: "Fai un'inversione a U", + name: "Fai un'inversione a U in {way_name}", + destination: "Fai un'inversione a U verso {destination}", + }, + }, + 'new name': { + default: { + default: 'Continua a {modifier}', + name: 'Continua a {modifier} in {way_name}', + destination: 'Continua a {modifier} verso {destination}', + }, + straight: { + default: 'Continua dritto', + name: 'Continua in {way_name}', + destination: 'Continua verso {destination}', + }, + 'sharp left': { + default: 'Svolta a sinistra', + name: 'Svolta a sinistra in {way_name}', + destination: 'Svolta a sinistra verso {destination}', + }, + 'sharp right': { + default: 'Svolta a destra', + name: 'Svolta a destra in {way_name}', + destination: 'Svolta a destra verso {destination}', + }, + 'slight left': { + default: 'Continua leggermente a sinistra', + name: 'Continua leggermente a sinistra in {way_name}', + destination: 'Continua leggermente a sinistra verso {destination}', + }, + 'slight right': { + default: 'Continua leggermente a destra', + name: 'Continua leggermente a destra in {way_name} ', + destination: 'Continua leggermente a destra verso {destination}', + }, + uturn: { + default: "Fai un'inversione a U", + name: "Fai un'inversione a U in {way_name}", + destination: "Fai un'inversione a U verso {destination}", + }, + }, + notification: { + default: { + default: 'Continua a {modifier}', + name: 'Continua a {modifier} in {way_name}', + destination: 'Continua a {modifier} verso {destination}', + }, + uturn: { + default: "Fai un'inversione a U", + name: "Fai un'inversione a U in {way_name}", + destination: "Fai un'inversione a U verso {destination}", + }, + }, + 'off ramp': { + default: { + default: 'Prendi la rampa', + name: 'Prendi la rampa in {way_name}', + destination: 'Prendi la rampa verso {destination}', + exit: "Prendi l'uscita {exit}", + exit_destination: "Prendi l'uscita {exit} verso {destination}", + }, + left: { + default: 'Prendi la rampa a sinistra', + name: 'Prendi la rampa a sinistra in {way_name}', + destination: 'Prendi la rampa a sinistra verso {destination}', + exit: "Prendi l'uscita {exit} a sinistra", + exit_destination: 'Prendi la {exit} uscita a sinistra verso {destination}', + }, + right: { + default: 'Prendi la rampa a destra', + name: 'Prendi la rampa a destra in {way_name}', + destination: 'Prendi la rampa a destra verso {destination}', + exit: 'Prendi la {exit} uscita a destra', + exit_destination: 'Prendi la {exit} uscita a destra verso {destination}', + }, + 'sharp left': { + default: 'Prendi la rampa a sinistra', + name: 'Prendi la rampa a sinistra in {way_name}', + destination: 'Prendi la rampa a sinistra verso {destination}', + exit: "Prendi l'uscita {exit} a sinistra", + exit_destination: 'Prendi la {exit} uscita a sinistra verso {destination}', + }, + 'sharp right': { + default: 'Prendi la rampa a destra', + name: 'Prendi la rampa a destra in {way_name}', + destination: 'Prendi la rampa a destra verso {destination}', + exit: 'Prendi la {exit} uscita a destra', + exit_destination: 'Prendi la {exit} uscita a destra verso {destination}', + }, + 'slight left': { + default: 'Prendi la rampa a sinistra', + name: 'Prendi la rampa a sinistra in {way_name}', + destination: 'Prendi la rampa a sinistra verso {destination}', + exit: "Prendi l'uscita {exit} a sinistra", + exit_destination: 'Prendi la {exit} uscita a sinistra verso {destination}', + }, + 'slight right': { + default: 'Prendi la rampa a destra', + name: 'Prendi la rampa a destra in {way_name}', + destination: 'Prendi la rampa a destra verso {destination}', + exit: 'Prendi la {exit} uscita a destra', + exit_destination: 'Prendi la {exit} uscita a destra verso {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Prendi la rampa', + name: 'Prendi la rampa in {way_name}', + destination: 'Prendi la rampa verso {destination}', + }, + left: { + default: 'Prendi la rampa a sinistra', + name: 'Prendi la rampa a sinistra in {way_name}', + destination: 'Prendi la rampa a sinistra verso {destination}', + }, + right: { + default: 'Prendi la rampa a destra', + name: 'Prendi la rampa a destra in {way_name}', + destination: 'Prendi la rampa a destra verso {destination}', + }, + 'sharp left': { + default: 'Prendi la rampa a sinistra', + name: 'Prendi la rampa a sinistra in {way_name}', + destination: 'Prendi la rampa a sinistra verso {destination}', + }, + 'sharp right': { + default: 'Prendi la rampa a destra', + name: 'Prendi la rampa a destra in {way_name}', + destination: 'Prendi la rampa a destra verso {destination}', + }, + 'slight left': { + default: 'Prendi la rampa a sinistra', + name: 'Prendi la rampa a sinistra in {way_name}', + destination: 'Prendi la rampa a sinistra verso {destination}', + }, + 'slight right': { + default: 'Prendi la rampa a destra', + name: 'Prendi la rampa a destra in {way_name}', + destination: 'Prendi la rampa a destra verso {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Immettiti nella rotonda', + name: 'Immettiti nella ritonda ed esci in {way_name}', + destination: 'Immettiti nella ritonda ed esci verso {destination}', + }, + name: { + default: 'Immettiti in {rotary_name}', + name: 'Immettiti in {rotary_name} ed esci su {way_name}', + destination: 'Immettiti in {rotary_name} ed esci verso {destination}', + }, + exit: { + default: 'Immettiti nella rotonda e prendi la {exit_number} uscita', + name: 'Immettiti nella rotonda e prendi la {exit_number} uscita in {way_name}', + destination: + 'Immettiti nella rotonda e prendi la {exit_number} uscita verso {destination}', + }, + name_exit: { + default: 'Immettiti in {rotary_name} e prendi la {exit_number} uscita', + name: 'Immettiti in {rotary_name} e prendi la {exit_number} uscita in {way_name}', + destination: + 'Immettiti in {rotary_name} e prendi la {exit_number} uscita verso {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Immettiti nella rotonda e prendi la {exit_number} uscita', + name: 'Immettiti nella rotonda e prendi la {exit_number} uscita in {way_name}', + destination: + 'Immettiti nella rotonda e prendi la {exit_number} uscita verso {destination}', + }, + default: { + default: 'Entra nella rotonda', + name: "Entra nella rotonda e prendi l'uscita in {way_name}", + destination: "Entra nella rotonda e prendi l'uscita verso {destination}", + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Fai una {modifier}', + name: 'Fai una {modifier} in {way_name}', + destination: 'Fai una {modifier} verso {destination}', + }, + left: { + default: 'Svolta a sinistra', + name: 'Svolta a sinistra in {way_name}', + destination: 'Svolta a sinistra verso {destination}', + }, + right: { + default: 'Gira a destra', + name: 'Svolta a destra in {way_name}', + destination: 'Svolta a destra verso {destination}', + }, + straight: { + default: 'Continua dritto', + name: 'Continua dritto in {way_name}', + destination: 'Continua dritto verso {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Fai una {modifier}', + name: 'Fai una {modifier} in {way_name}', + destination: 'Fai una {modifier} verso {destination}', + }, + left: { + default: 'Svolta a sinistra', + name: 'Svolta a sinistra in {way_name}', + destination: 'Svolta a sinistra verso {destination}', + }, + right: { + default: 'Gira a destra', + name: 'Svolta a destra in {way_name}', + destination: 'Svolta a destra verso {destination}', + }, + straight: { + default: 'Continua dritto', + name: 'Continua dritto in {way_name}', + destination: 'Continua dritto verso {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Fai una {modifier}', + name: 'Fai una {modifier} in {way_name}', + destination: 'Fai una {modifier} verso {destination}', + }, + left: { + default: 'Svolta a sinistra', + name: 'Svolta a sinistra in {way_name}', + destination: 'Svolta a sinistra verso {destination}', + }, + right: { + default: 'Gira a destra', + name: 'Svolta a destra in {way_name}', + destination: 'Svolta a destra verso {destination}', + }, + straight: { + default: 'Prosegui dritto', + name: 'Continua su {way_name}', + destination: 'Continua verso {destination}', + }, + }, + turn: { + default: { + default: 'Fai una {modifier}', + name: 'Fai una {modifier} in {way_name}', + destination: 'Fai una {modifier} verso {destination}', + }, + left: { + default: 'Svolta a sinistra', + name: 'Svolta a sinistra in {way_name}', + destination: 'Svolta a sinistra verso {destination}', + }, + right: { + default: 'Gira a destra', + name: 'Svolta a destra in {way_name}', + destination: 'Svolta a destra verso {destination}', + }, + straight: { + default: 'Prosegui dritto', + name: 'Continua su {way_name}', + destination: 'Continua verso {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Continua dritto', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 34: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: false, + }, + v5: { + constants: { + ordinalize: { + 1: '첫번쩨', + 2: '두번째', + 3: '세번째', + 4: '네번쩨', + 5: '다섯번째', + 6: '여섯번째', + 7: '일곱번째', + 8: '여덟번째', + 9: '아홉번째', + 10: '열번째', + }, + direction: { + north: '북쪽', + northeast: '북동쪽', + east: '동쪽', + southeast: '남동쪽', + south: '남쪽', + southwest: '남서쪽', + west: '서쪽', + northwest: '북서쪽', + }, + modifier: { + left: '좌회전', + right: '우회전', + 'sharp left': '바로좌회전', + 'sharp right': '바로우회전', + 'slight left': '조금왼쪽', + 'slight right': '조금오른쪽', + straight: '직진', + uturn: '유턴', + }, + lanes: { + xo: '우측차선 유지', + ox: '좌측차선 유지', + xox: '중앙유지', + oxo: '계속 좌측 또는 우측 차선', + }, + }, + modes: { + ferry: { + default: '페리를 타시오', + name: '페리를 타시오 {way_name}', + destination: '페리를 타고 {destination}까지 가세요.', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, 그리고, {distance} 안에, {instruction_two}', + 'two linked': '{instruction_one}, 그리고 {instruction_two}', + 'one in distance': '{distance} 내에, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': '{exit}번으로 나가세요.', + }, + arrive: { + default: { + default: ' {nth}목적지에 도착하였습니다.', + upcoming: '{nth}목적지에 곧 도착할 예정입니다.', + short: '도착하였습니다', + 'short-upcoming': '도착할 예정입니다.', + named: '경유지 {waypoint_name}에 도착하였습니다.', + }, + left: { + default: '좌측에 {nth} 목적지가 있습니다.', + upcoming: '좌측에 {nth} 목적지에 도착할 예정입니다.', + short: '도착하였습니다', + 'short-upcoming': '목적지에 곧 도착할 예정입니다.', + named: '좌측에 경유지 {waypoint_name}에 도착하였습니다.', + }, + right: { + default: '우측에 {nth} 목적지가 있습니다.', + upcoming: '우측에 {nth} 목적지에 도착할 예정입니다.', + short: '도착하였습니다', + 'short-upcoming': '목적지에 곧 도착할 예정입니다.', + named: '우측에 경유지 {waypoint_name}에 도착하였습니다.', + }, + 'sharp left': { + default: '좌측에 {nth} 목적지가 있습니다.', + upcoming: '좌측에 {nth} 목적지에 도착할 예정입니다.', + short: '도착하였습니다', + 'short-upcoming': '목적지에 곧 도착할 예정입니다.', + named: '좌측에 경유지 {waypoint_name}에 도착하였습니다.', + }, + 'sharp right': { + default: '우측에 {nth} 목적지가 있습니다.', + upcoming: '우측에 {nth} 목적지에 도착할 예정입니다.', + short: '도착하였습니다', + 'short-upcoming': '목적지에 곧 도착할 예정입니다.', + named: '우측에 경유지 {waypoint_name}에 도착하였습니다.', + }, + 'slight right': { + default: '우측에 {nth} 목적지가 있습니다.', + upcoming: '우측에 {nth} 목적지에 도착할 예정입니다.', + short: '도착하였습니다', + 'short-upcoming': '목적지에 곧 도착할 예정입니다.', + named: '우측에 경유지 {waypoint_name}에 도착하였습니다.', + }, + 'slight left': { + default: '좌측에 {nth} 목적지가 있습니다.', + upcoming: '좌측에 {nth} 목적지에 도착할 예정입니다.', + short: '도착하였습니다', + 'short-upcoming': '목적지에 곧 도착할 예정입니다.', + named: '좌측에 경유지 {waypoint_name}에 도착하였습니다.', + }, + straight: { + default: '바로 앞에 {nth} 목적지가 있습니다.', + upcoming: '직진하시면 {nth} 목적지에 도착할 예정입니다.', + short: '도착하였습니다', + 'short-upcoming': '목적지에 곧 도착할 예정입니다.', + named: '정면에 경유지 {waypoint_name}에 도착하였습니다.', + }, + }, + continue: { + default: { + default: '{modifier} 회전', + name: '{modifier} 회전하고 {way_name}로 직진해 주세요.', + destination: '{modifier} 회전하고 {destination}까지 가세요.', + exit: '{way_name} 쪽으로 {modifier} 회전 하세요.', + }, + straight: { + default: '계속 직진해 주세요.', + name: '{way_name} 로 계속 직진해 주세요.', + destination: '{destination}까지 직진해 주세요.', + distance: '{distance}까지 직진해 주세요.', + namedistance: '{distance}까지 {way_name}로 가주세요.', + }, + 'sharp left': { + default: '급좌회전 하세요.', + name: '급좌회전 하신 후 {way_name}로 가세요.', + destination: '급좌회전 하신 후 {destination}로 가세요.', + }, + 'sharp right': { + default: '급우회전 하세요.', + name: '급우회전 하고 {way_name}로 가세요.', + destination: '급우회전 하신 후 {destination}로 가세요.', + }, + 'slight left': { + default: '약간 좌회전하세요.', + name: '약간 좌회전 하고 {way_name}로 가세요.', + destination: '약간 좌회전 하신 후 {destination}로 가세요.', + }, + 'slight right': { + default: '약간 우회전하세요.', + name: '약간 우회전 하고 {way_name}로 가세요.', + destination: '약간 우회전 하신 후 {destination}로 가세요.', + }, + uturn: { + default: '유턴 하세요', + name: '유턴해서 {way_name}로 가세요.', + destination: '유턴하신 후 {destination}로 가세요.', + }, + }, + depart: { + default: { + default: '{direction}로 가세요', + name: '{direction} 로 가서 {way_name} 를 이용하세요. ', + namedistance: '{direction}로 가서{way_name} 를 {distance}까지 가세요.', + }, + }, + 'end of road': { + default: { + default: '{modifier} 회전하세요.', + name: '{modifier}회전하고 {way_name}로 가세요.', + destination: '{modifier}회전 하신 후 {destination}로 가세요.', + }, + straight: { + default: '계속 직진해 주세요.', + name: '{way_name}로 계속 직진해 주세요.', + destination: '{destination}까지 직진해 주세요.', + }, + uturn: { + default: '도로 끝까지 가서 유턴해 주세요.', + name: '도로 끝까지 가서 유턴해서 {way_name}로 가세요.', + destination: '도로 끝까지 가서 유턴해서 {destination} 까지 가세요.', + }, + }, + fork: { + default: { + default: '갈림길에서 {modifier} 으로 가세요.', + name: '{modifier}하고 {way_name}로 가세요.', + destination: '{modifier}하고 {destination}까지 가세요.', + }, + 'slight left': { + default: '갈림길에서 좌회전 하세요.', + name: '좌회전 해서 {way_name}로 가세요.', + destination: '좌회전 해서 {destination}까지 가세요.', + }, + 'slight right': { + default: '갈림길에서 우회전 하세요.', + name: '우회전 해서 {way_name}로 가세요.', + destination: '우회전 해서 {destination}까지 가세요.', + }, + 'sharp left': { + default: '갈림길에서 급좌회전 하세요.', + name: '급좌회전 해서 {way_name}로 가세요.', + destination: '급좌회전 해서 {destination}까지 가세요.', + }, + 'sharp right': { + default: '갈림길에서 급우회전 하세요.', + name: '급우회전 해서 {way_name}로 가세요.', + destination: '급우회전 해서 {destination}까지 가세요.', + }, + uturn: { + default: '유턴하세요.', + name: '유턴해서 {way_name}로 가세요.', + destination: '유턴해서 {destination}까지 가세요.', + }, + }, + merge: { + default: { + default: '{modifier} 합류', + name: '{modifier} 합류하여 {way_name}로 가세요.', + destination: '{modifier} 합류하여 {destination}로 가세요.', + }, + straight: { + default: '합류', + name: '{way_name}로 합류하세요.', + destination: '{destination}로 합류하세요.', + }, + 'slight left': { + default: '좌측으로 합류하세요.', + name: '좌측{way_name}로 합류하세요.', + destination: '좌측으로 합류하여 {destination}까지 가세요.', + }, + 'slight right': { + default: '우측으로 합류하세요.', + name: '우측{way_name}로 합류하세요.', + destination: '우측으로 합류하여 {destination}까지 가세요.', + }, + 'sharp left': { + default: '좌측으로 합류하세요.', + name: '좌측{way_name}로 합류하세요.', + destination: '좌측으로 합류하여 {destination}까지 가세요.', + }, + 'sharp right': { + default: '우측으로 합류하세요.', + name: '우측{way_name}로 합류하세요.', + destination: '우측으로 합류하여 {destination}까지 가세요.', + }, + uturn: { + default: '유턴하세요.', + name: '유턴해서 {way_name}로 가세요.', + destination: '유턴해서 {destination}까지 가세요.', + }, + }, + 'new name': { + default: { + default: '{modifier} 유지하세요.', + name: '{modifier} 유지해서 {way_name}로 가세요.', + destination: '{modifier} 유지해서 {destination}까지 가세요.', + }, + straight: { + default: '직진해주세요.', + name: '{way_name}로 계속 가세요.', + destination: '{destination}까지 계속 가세요.', + }, + 'sharp left': { + default: '급좌회전 하세요.', + name: '급좌회전 해서 {way_name}로 가세요.', + destination: '급좌회전 해서 {destination}까지 가세요.', + }, + 'sharp right': { + default: '급우회전 하세요.', + name: '급우회전 해서 {way_name}로 가세요.', + destination: '급우회전 해서 {destination}까지 가세요.', + }, + 'slight left': { + default: '약간 좌회전 해세요.', + name: '약간 좌회전해서 {way_name}로 가세요.', + destination: '약간 좌회전 해서 {destination}까지 가세요.', + }, + 'slight right': { + default: '약간 우회전 해세요.', + name: '약간 우회전해서 {way_name}로 가세요.', + destination: '약간 우회전 해서 {destination}까지 가세요.', + }, + uturn: { + default: '유턴해주세요.', + name: '유턴해서 {way_name}로 가세요.', + destination: '유턴해서 {destination}까지 가세요.', + }, + }, + notification: { + default: { + default: '{modifier} 하세요.', + name: '{modifier}해서 {way_name}로 가세요.', + destination: '{modifier}해서 {destination}까지 가세요.', + }, + uturn: { + default: '유턴하세요.', + name: '유턴해서 {way_name}로 가세요.', + destination: '유턴해서 {destination}까지 가세요.', + }, + }, + 'off ramp': { + default: { + default: '램프로 진출해 주세요..', + name: '램프로 진출해서 {way_name}로 가세요.', + destination: '램프로 진출해서 {destination}까지 가세요.', + exit: '{exit} 출구로 나가세요.', + exit_destination: '{exit} 출구로 나가서 {destination}까지 가세요.', + }, + left: { + default: '왼쪽의 램프로 진출해 주세요.', + name: '왼쪽의 램프로 진출해서 {way_name}로 가세요.', + destination: '왼쪽의 램프로 진출해서 {destination}까지 가세요.', + exit: '{exit} 왼쪽의 출구로 나가세요.', + exit_destination: '{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요.', + }, + right: { + default: '오른쪽의 램프로 진출해 주세요.', + name: '오른쪽의 램프로 진출해서 {way_name}로 가세요.', + destination: '오른쪽의 램프로 진출해서 {destination}까지 가세요.', + exit: '{exit} 오른쪽의 출구로 나가세요.', + exit_destination: '{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요.', + }, + 'sharp left': { + default: '왼쪽의 램프로 진출해 주세요.', + name: '왼쪽의 램프로 진출해서 {way_name}로 가세요.', + destination: '왼쪽의 램프로 진출해서 {destination}까지 가세요.', + exit: '{exit} 왼쪽의 출구로 나가세요.', + exit_destination: '{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요.', + }, + 'sharp right': { + default: '오른쪽의 램프로 진출해 주세요.', + name: '오른쪽의 램프로 진출해서 {way_name}로 가세요.', + destination: '오른쪽의 램프로 진출해서 {destination}까지 가세요.', + exit: '{exit} 오른쪽의 출구로 나가세요.', + exit_destination: '{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요.', + }, + 'slight left': { + default: '왼쪽의 램프로 진출해 주세요.', + name: '왼쪽의 램프로 진출해서 {way_name}로 가세요.', + destination: '왼쪽의 램프로 진출해서 {destination}까지 가세요.', + exit: '{exit} 왼쪽의 출구로 나가세요.', + exit_destination: '{exit} 왼쪽의 출구로 가나서 {destination}까지 가세요.', + }, + 'slight right': { + default: '오른쪽의 램프로 진출해 주세요.', + name: '오른쪽의 램프로 진출해서 {way_name}로 가세요.', + destination: '오른쪽의 램프로 진출해서 {destination}까지 가세요.', + exit: '{exit} 오른쪽의 출구로 나가세요.', + exit_destination: '{exit} 오른쪽의 출구로 가나서 {destination}까지 가세요.', + }, + }, + 'on ramp': { + default: { + default: '램프로 진입해 주세요..', + name: '램프로 진입해서 {way_name}로 가세요.', + destination: '램프로 진입해서 {destination}까지 가세요.', + }, + left: { + default: '왼쪽의 램프로 진입해 주세요.', + name: '왼쪽의 램프로 진입해서 {way_name}로 가세요.', + destination: '왼쪽의 램프로 진입해서 {destination}까지 가세요.', + }, + right: { + default: '오른쪽의 램프로 진입해 주세요.', + name: '오른쪽의 램프로 진입해서 {way_name}로 가세요.', + destination: '오른쪽의 램프로 진입해서 {destination}까지 가세요.', + }, + 'sharp left': { + default: '왼쪽의 램프로 진입해 주세요.', + name: '왼쪽의 램프로 진입해서 {way_name}로 가세요.', + destination: '왼쪽의 램프로 진입해서 {destination}까지 가세요.', + }, + 'sharp right': { + default: '오른쪽의 램프로 진입해 주세요.', + name: '오른쪽의 램프로 진입해서 {way_name}로 가세요.', + destination: '오른쪽의 램프로 진입해서 {destination}까지 가세요.', + }, + 'slight left': { + default: '왼쪽의 램프로 진입해 주세요.', + name: '왼쪽의 램프로 진입해서 {way_name}로 가세요.', + destination: '왼쪽의 램프로 진입해서 {destination}까지 가세요.', + }, + 'slight right': { + default: '오른쪽의 램프로 진입해 주세요.', + name: '오른쪽의 램프로 진입해서 {way_name}로 가세요.', + destination: '오른쪽의 램프로 진입해서 {destination}까지 가세요.', + }, + }, + rotary: { + default: { + default: { + default: '로터리로 진입하세요.', + name: '로터리로 진입해서 {way_name} 나가세요.', + destination: '로터리로 진입해서 {destination}로 나가세요.', + }, + name: { + default: '{rotary_name}로 진입하세요.', + name: '{rotary_name}로 진입해서 {way_name}로 나가세요.', + destination: '{rotary_name}로 진입해서 {destination}로 나가세요.', + }, + exit: { + default: '로터리로 진입해서 {exit_number} 출구로 나가세요.', + name: '로터리로 진입해서 {exit_number} 출구로 나가 {way_name}로 가세요.', + destination: '로터리로 진입해서 {exit_number} 출구로 나가 {destination}로 가세요.', + }, + name_exit: { + default: '{rotary_name}로 진입해서 {exit_number}번 출구로 나가세요.', + name: '{rotary_name}로 진입해서 {exit_number}번 출구로 나가 {way_name}로 가세요.', + destination: + '{rotary_name}로 진입해서 {exit_number}번 출구로 나가 {destination}로 가세요.', + }, + }, + }, + roundabout: { + default: { + exit: { + default: '로터리로 진입해서 {exit_number}로 나가세요.', + name: '로터리로 진입해서 {exit_number}로 나가서 {way_name}로 가세요.', + destination: '로터리로 진입해서 {exit_number}로 나가서 {destination}로 가세요.', + }, + default: { + default: '로터리로 진입하세요.', + name: '로터리로 진입해서 {way_name} 나가세요.', + destination: '로터리로 진입해서 {destination}로 나가세요.', + }, + }, + }, + 'roundabout turn': { + default: { + default: '{modifier} 하세요.', + name: '{modifier} 하시고 {way_name}로 가세요.', + destination: '{modifier} 하시고 {destination}까지 가세요.', + }, + left: { + default: '좌회전 하세요.', + name: '좌회전 하시고 {way_name}로 가세요.', + destination: '좌회전 하시고 {destination}까지 가세요.', + }, + right: { + default: '우회전 하세요.', + name: '우회전 하시고 {way_name}로 가세요.', + destination: '우회전 하시고 {destination}까지 가세요.', + }, + straight: { + default: '직진 하세요.', + name: '직진하시고 {way_name}로 가세요.', + destination: '직진하시고 {destination}까지 가세요.', + }, + }, + 'exit roundabout': { + default: { + default: '로타리에서 진출하세요.', + name: '로타리에서 진출해서 {way_name}로 가세요.', + destination: '로타리에서 진출해서 {destination}까지 가세요.', + }, + }, + 'exit rotary': { + default: { + default: '로타리에서 진출하세요.', + name: '로타리에서 진출해서 {way_name}로 가세요.', + destination: '로타리에서 진출해서 {destination}까지 가세요.', + }, + }, + turn: { + default: { + default: '{modifier} 하세요.', + name: '{modifier} 하시고 {way_name}로 가세요.', + destination: '{modifier} 하시고 {destination}까지 가세요.', + }, + left: { + default: '좌회전 하세요.', + name: '좌회전 하시고 {way_name}로 가세요.', + destination: '좌회전 하시고 {destination}까지 가세요.', + }, + right: { + default: '우회전 하세요.', + name: '우회전 하시고 {way_name}로 가세요.', + destination: '우회전 하시고 {destination}까지 가세요.', + }, + straight: { + default: '직진 하세요.', + name: '직진하시고 {way_name}로 가세요.', + destination: '직진하시고 {destination}까지 가세요.', + }, + }, + 'use lane': { + no_lanes: { + default: '직진하세요.', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 35: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: false, + }, + v5: { + constants: { + ordinalize: { + 1: 'ပထမ', + 2: 'ဒုတိယ', + 3: 'တတိယ', + 4: 'စတုတၳ', + 5: 'ပဥၥမ', + 6: 'ဆဌမ', + 7: 'သတၱမ', + 8: 'အဌမ', + 9: 'နဝမ', + 10: 'ဒသမ', + }, + direction: { + north: 'ေျမာက္အရပ္', + northeast: 'အေရွ႕ေျမာက္အရပ္', + east: 'အေရွ႕အရပ္', + southeast: 'အေရွ႕ေတာင္အရပ္', + south: 'ေတာင္အရပ္', + southwest: 'အေနာက္ေတာင္အရပ္', + west: 'အေနာက္အရပ္', + northwest: 'အေနာက္ေျမာက္အရပ္', + }, + modifier: { + left: 'ဘယ္ဘက္', + right: 'ညာဘက္', + 'sharp left': 'ဘယ္ဘက္ ေထာင့္ခ်ိဳး', + 'sharp right': 'ညာဘက္ ေထာင္႔ခ်ိဳး', + 'slight left': 'ဘယ္ဘက္ အနည္းငယ္', + 'slight right': 'ညာဘက္ အနည္းငယ္', + straight: 'ေျဖာင္႔ေျဖာင္႔တန္းတန္း', + uturn: 'ဂ-ေကြ႔', + }, + lanes: { + xo: 'ညာဘက္သို႕ဆက္သြားပါ', + ox: 'ဘယ္ဘက္သို႕ဆက္သြားပါ', + xox: 'အလယ္တြင္ဆက္ေနပါ', + oxo: 'ဘယ္ သို႕မဟုတ္ ညာဘက္သို႕ ဆက္သြားပါ', + }, + }, + modes: { + ferry: { + default: 'ဖယ္ရီ စီးသြားပါ', + name: '{way_name}ကို ဖယ္ရီစီးသြားပါ', + destination: '{destination}ဆီသို႕ ဖယ္ရီစီးသြားပါ', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}ျပီးေနာက္ {distance}အတြင္း {instruction_two}', + 'two linked': '{instruction_one}ျပီးေနာက္ {instruction_two}', + 'one in distance': '{distance}အတြင္း {instruction_one}', + 'name and ref': '{name}( {ref})', + 'exit with number': '{exit}မွထြက္ပါ', + }, + arrive: { + default: { + default: '{nth}သင္ သြားလိုေသာ ခရီးပန္းတိုင္သို႕ေရာက္ရွိျပီ', + upcoming: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ေရာက္လိမ့္မည္', + short: 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ', + 'short-upcoming': 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္', + named: 'သင္ သည္ {waypoint_name} မွာ ေရာက္ရွိျပီ', + }, + left: { + default: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ', + upcoming: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္လိမ့္မည္', + short: 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ', + 'short-upcoming': 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္', + named: 'သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + }, + right: { + default: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + upcoming: 'သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္', + short: 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ', + 'short-upcoming': 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္', + named: 'သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + }, + 'sharp left': { + default: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ', + upcoming: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ', + short: 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ', + 'short-upcoming': 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္', + named: 'သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + }, + 'sharp right': { + default: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + upcoming: 'သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္', + short: 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ', + 'short-upcoming': 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္', + named: 'သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + }, + 'slight right': { + default: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + upcoming: 'သင္ သြားလိုေသာ{nth} ခရီးပန္းတိုင္သို႕ ညာဘက္ေကြ႕ကာ ေရာက္လိမ့္မည္', + short: 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရိွၿပီ', + 'short-upcoming': 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္', + named: 'သင္ သည္ {waypoint_name} မွာညာဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + }, + 'slight left': { + default: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ', + upcoming: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕ဘယ္ဘက္တြင္ေရာက္ရွိျပီ', + short: 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရွိျပီ', + 'short-upcoming': 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္', + named: 'သင္ သည္ {waypoint_name}မွာဘယ္ဘက္ေကြ႕ကာ ေရာက္ရွိျပီ', + }, + straight: { + default: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕တည့္တည့္သြားကာရာက္ရွိျပီ', + upcoming: 'သင္ သြားလိုေသာ {nth}ခရီးပန္းတိုင္သို႕တည့္တည့္သြားကာရာက္ရွိမည္', + short: 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္ရွိျပီ', + 'short-upcoming': 'သင္သြားလိုေသာ ေနရာသို႔ ေရာက္လိမ့္မည္', + named: 'သင္ သည္ {waypoint_name}မွာတည့္တည့္သြားကာ ေရာက္ရွိျပီ', + }, + }, + continue: { + default: { + default: '{modifier}ကိုလွည့္ပါ', + name: '{way_name}​​ေပၚတြင္ေနရန္ {modifier}ကိုလွည့္ပါ', + destination: '{destination}ဆီသို႕ {modifier}ကို လွည္႕ပါ', + exit: '{way_name}​​ေပၚသို႕ {modifier}ကိုလွည့္ပါ', + }, + straight: { + default: 'ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ', + name: '{way_name}​​ေပၚတြင္ေနရန္တည္တည့္ဆက္သြာပါ', + destination: '{destination}ဆီသို႕ဆက္သြားပါ', + distance: '{distance}ေလာက္ တည့္တည့္ ဆက္သြားပါ', + namedistance: '{way_name}​​ေပၚတြင္{distance}ေလာက္ဆက္သြားပါ', + }, + 'sharp left': { + default: 'ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ', + name: '{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ', + destination: '{destination}ဆီသို႕ ဘယ္ဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ', + }, + 'sharp right': { + default: 'ညာဘက္ ေထာင္႔ခ်ိဳးေကြ႕ပါ', + name: '{way_name}​ေပၚတြင္ေနရန္ ညာဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ', + destination: '{destination}ဆီသို႕ ညာဘက္ေထာင့္ခ်ိဳးေကြ႕ပါ', + }, + 'slight left': { + default: 'ဘယ္ဘက္ အနည္းငယ္ေကြ႕ပါ', + name: '{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္အနည္းငယ္ေကြ႕ပါ', + destination: '{destination}ဆီသို႕ ဘယ္ဘက္အနည္းငယ္ခ်ိဳးေကြ႕ပါ', + }, + 'slight right': { + default: 'ညာဘက္ အနည္းငယ္ခ်ိဳးေကြ႕ပါ', + name: '{way_name}​ေပၚတြင္ေနရန္ ညာဘက္အနည္းငယ္ေကြ႕ပါ', + destination: '{destination}ဆီသို႕ ညာဘက္အနည္းငယ္ခ်ိဳးေကြ႕ပါ', + }, + uturn: { + default: 'ဂ-ေကြ႔ ေကြ႔ပါ', + name: '{way_name}လမ္းဘက္သို႕ ဂ-ေကြ႕ေကြ႕ျပီးဆက္သြားပါ', + destination: '{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ', + }, + }, + depart: { + default: { + default: '{direction}သို႕ ဦးတည္ပါ', + name: '{direction}ကို {way_name}အေပၚတြင္ ဦးတည္ပါ', + namedistance: '{direction}ကို {way_name}အေပၚတြင္{distance}ေလာက္ ဦးတည္ဆက္သြားပါ', + }, + }, + 'end of road': { + default: { + default: '{modifier}သို႕လွည့္ပါ', + name: '{way_name}​​ေပၚသို႕ {modifier}ကိုလွည့္ပါ', + destination: '{destination}ဆီသို႕ {modifier}ကို လွည္႕ပါ', + }, + straight: { + default: 'ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕တည့္တည့္ဆက္သြားပါ', + destination: '{destination}ဆီသို႕တည့္တည့္ဆက္သြားပါ', + }, + uturn: { + default: 'လမ္းအဆံုးတြင္ ဂ-ေကြ႕ေကြ႕ပါ', + name: 'လမ္းအဆံုးတြင္ {way_name}​​ေပၚသို႕ဂ-ေကြ႕ေကြ႕ပါ', + destination: 'လမ္းအဆံုးတြင္{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ', + }, + }, + fork: { + default: { + default: 'လမ္းဆံုလမ္းခြတြင္ {modifier}ကိုဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ', + destination: '{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ', + }, + 'slight left': { + default: 'လမ္းဆံုလမ္းခြတြင္ဘယ္ဘက္ကိုဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ', + destination: '{destination}ဆီသို႕ဘယ္ဘက္ကို ဆက္သြားပါ', + }, + 'slight right': { + default: 'လမ္းဆံုလမ္းခြတြင္ညာဘက္ကိုဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕ညာဘက္ကိုဆက္သြားပါ', + destination: '{destination}ဆီသို႕ညာဘက္ကို ဆက္သြားပါ', + }, + 'sharp left': { + default: 'လမ္းဆံုလမ္းခြတြင္ဘယ္ဘက္ေထာင့္ခ်ိဳးကိုသြားပါ', + name: '{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ', + destination: '{destination}ဆီသို႕ဘယ္ဘက္ေထာင့္ခ်ိဳး သြားပါ', + }, + 'sharp right': { + default: 'လမ္းဆံုလမ္းခြတြင္ညာဘက္ေထာင့္ခ်ိဳးကိုသြားပါ', + name: '{way_name}​ေပၚသို႕ ညာဘက္ေထာင့္ခ်ိဳးယူပါ', + destination: '{destination}ဆီသို႕ညာဘက္ေထာင့္ခ်ိဳး သြားပါ', + }, + uturn: { + default: 'ဂ-ေကြ႔ ေကြ႔ပါ', + name: '{way_name}သို႕ဂ-ေကြ႕ေကြ႕ပါ', + destination: '{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ', + }, + }, + merge: { + default: { + default: '{modifier}ကိုလာေရာက္ေပါင္းဆံုပါ', + name: '{way_name}​​ေပၚသို႕ {modifier}ကိုလာေရာက္ေပါင္းဆံုပါ', + destination: '{destination}ဆီသို႕ {modifier}ကို လာေရာက္ေပါင္းဆံုပါ', + }, + straight: { + default: 'လာေရာက္ေပါင္းဆံုပါ', + name: '{way_name}​​ေပၚသို႕လာေရာက္ေပါင္းဆံုပါ', + destination: '{destination}ဆီသို႕ လာေရာက္ေပါင္းဆံုပါ', + }, + 'slight left': { + default: 'ဘယ္ဘက္သို႕လာေရာက္ေပါင္းဆံုပါ', + name: '{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုလာေရာက္ေပါင္းဆံုပါ', + destination: '{destination}ဆီသို႕ဘယ္ဘက္ကို လာေရာက္ေပါင္းဆံုပါ', + }, + 'slight right': { + default: 'ညာဘက္သို႕လာေရာက္ေပါင္းဆံုပါ', + name: '{way_name}​​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ', + destination: '{destination}ဆီသို႕ညာဘက္ကို လာေရာက္ေပါင္းဆံုပါ', + }, + 'sharp left': { + default: 'ဘယ္ဘက္သို႕လာေရာက္ေပါင္းဆံုပါ', + name: '{way_name}​​ေပၚသို႕ဘယ္ဘက္ကိုလာေရာက္ေပါင္းဆံုပါ', + destination: '{destination}ဆီသို႕ဘယ္ဘက္ကို လာေရာက္ေပါင္းဆံုပါ', + }, + 'sharp right': { + default: 'ညာဘက္သို႕လာေရာက္ေပါင္းဆံုပါ', + name: '{way_name}​​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ', + destination: '{destination}ဆီသို႕ညာဘက္ကို လာေရာက္ေပါင္းဆံုပါ', + }, + uturn: { + default: 'ဂ-ေကြ႔ ေကြ႕ပါ', + name: '{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ ', + destination: '{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ', + }, + }, + 'new name': { + default: { + default: '{modifier}ကိုဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ', + destination: '{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ', + }, + straight: { + default: 'ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕ဆက္သြားပါ', + destination: '{destination}ဆီသို႕ဆက္သြားပါ', + }, + 'sharp left': { + default: 'ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ', + name: '{way_name}​ေပၚတြင္ေနရန္ ဘယ္ဘက္ေထာင့္ခ်ိဳးယူပါ', + destination: '{destination}ဆီသို႕ဘယ္ဘက္ေထာင့္ခ်ိဳး သြားပါ', + }, + 'sharp right': { + default: 'ညာဘက္ ေထာင္႔ခ်ိဳးယူပါ', + name: '{way_name}​ေပၚသို႕ ညာဘက္ေထာင့္ခ်ိဳးယူပါ', + destination: '{destination}ဆီသို႕ညာဘက္ေထာင့္ခ်ိဳး သြားပါ', + }, + 'slight left': { + default: 'ဘယ္ဘက္ အနည္းငယ္ဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕ဘယ္ဘက္ အနည္းငယ္ဆက္သြားပါ', + destination: '{destination}ဆီသို႕ဘယ္ဘက္အနည္းငယ္ဆက္သြားပါ', + }, + 'slight right': { + default: 'ညာဘက္ အနည္းငယ္ဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕ညာဘက္ အနည္းငယ္ဆက္သြားပါ', + destination: '{destination}ဆီသို႕ညာဘက္အနည္းငယ္ဆက္သြားပါ', + }, + uturn: { + default: 'ဂ-ေကြ႔ ေကြ႔ပါ', + name: '{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ', + destination: '{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ', + }, + }, + notification: { + default: { + default: '{modifier}ကိုဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕ {modifier}ကိုဆက္သြားပါ', + destination: '{destination}ဆီသို႕ {modifier}ကို ဆက္သြားပါ', + }, + uturn: { + default: 'ဂ-ေကြ႔ ေကြ႔ပါ', + name: '{way_name}လမ္းဘက္သို႔ ဂ-ေကြ႔ ေကြ႔ပါ', + destination: '{destination}ဆီသို႕ ဂေကြ႕ခ်ိဳးေကြ႕ပါ', + }, + }, + 'off ramp': { + default: { + default: 'ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ခ်ဥ္းကပ္လမ္းကိုယူပါ', + exit: '{exit}ကို ယူပါ', + exit_destination: '{destination}ဆီသို႕ {exit} ကိုယူပါ', + }, + left: { + default: 'ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + exit: 'ဘယ္ဘက္တြင္{exit}ကို ယူပါ', + exit_destination: '{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ', + }, + right: { + default: 'ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + exit: 'ညာဘက္တြင္{exit}ကို ယူပါ', + exit_destination: '{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ', + }, + 'sharp left': { + default: 'ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + exit: 'ဘယ္ဘက္တြင္{exit}ကို ယူပါ', + exit_destination: '{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ', + }, + 'sharp right': { + default: 'ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + exit: 'ညာဘက္တြင္{exit}ကို ယူပါ', + exit_destination: '{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ', + }, + 'slight left': { + default: 'ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + exit: 'ဘယ္ဘက္တြင္{exit}ကို ယူပါ', + exit_destination: '{destination}ဆီသို႕ဘယ္ဘက္မွ {exit} ကိုယူပါ', + }, + 'slight right': { + default: 'ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + exit: 'ညာဘက္တြင္{exit}ကို ယူပါ', + exit_destination: '{destination}ဆီသို႕ညာဘက္မွ {exit} ကိုယူပါ', + }, + }, + 'on ramp': { + default: { + default: 'ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ခ်ဥ္းကပ္လမ္းကိုယူပါ', + }, + left: { + default: 'ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + }, + right: { + default: 'ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + }, + 'sharp left': { + default: 'ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + }, + 'sharp right': { + default: 'ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + }, + 'slight left': { + default: 'ဘယ္ဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ဘယ္ဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ဘယ္ဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + }, + 'slight right': { + default: 'ညာဘက္သို႕ခ်ဥ္းကပ္လမ္းကိုယူပါ', + name: '{way_name}​ေပၚသို႕ညာဘက္ ​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + destination: '{destination}ဆီသို႕ ညာဘက္​ေပၚတြင္ခ်ဥ္းကပ္လမ္းကိုယူပါ', + }, + }, + rotary: { + default: { + default: { + default: 'အဝိုင္းပတ္သို႕ဝင္ပါ', + name: '{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ ', + destination: '{destination}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ', + }, + name: { + default: '{rotary_name}သို႕ဝင္ပါ', + name: '{rotary_name}အဝိုင္းပတ္ဝင္ျပီး{way_name}ေပၚသို႕ထြက္ပါ', + destination: '{rotary_name}အဝိုင္းပတ္ဝင္ျပီး{destination}ဆီသို႕ထြက္ပါ', + }, + exit: { + default: 'အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာျပန္ထြက္ပါ', + name: 'အဝိုင္းပတ္သို႕ဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ', + destination: 'အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ', + }, + name_exit: { + default: '{rotary_name}ကိုဝင္ျပီး {exit_number}ကိုယူကာထြက္ပါ', + name: '{rotary_name}ကိုဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ', + destination: '{rotary_name}ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ', + }, + }, + }, + roundabout: { + default: { + exit: { + default: '{exit_number}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ', + name: 'အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{way_name}ေပၚသို႕ထြက္ပါ', + destination: 'အဝိုင္းပတ္ဝင္ျပီး{exit_number}ကိုယူကာ{destination}ဆီသို႕ထြက္ပါ', + }, + default: { + default: 'အဝိုင္းပတ္ဝင္ပါ', + name: '{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ', + destination: '{destination}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ', + }, + }, + }, + 'roundabout turn': { + default: { + default: '{modifier}ကိုလွည့္ပါ ', + name: '{modifier}​ေပၚသို{way_name}ကိုဆက္သြားပါ ', + destination: '{modifier}ဆီသို႕{destination}ကို ဆက္သြားပါ ', + }, + left: { + default: 'ဘယ္ဘက္သို႕ျပန္လွည္႔ပါ', + name: '{way_name}​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ ', + destination: '{destination}ဆီသို႕ဘယ္ဘက္မွ ေကြ႔ပါ', + }, + right: { + default: 'ညာဘက္သို႔ျပန္လွည္႔ပါ', + name: '{way_name}​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ ', + destination: '{destination}ညာဘက္သို႔ ေကြ႔ပါ', + }, + straight: { + default: 'ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ', + name: '{way_name}​​ေပၚသို႕တည့္တည့္ဆက္သြားပါ', + destination: '{destination}ဆီသို႕တည့္တည့္ဆက္သြားပါ', + }, + }, + 'exit roundabout': { + default: { + default: 'အဝိုင္းပတ္လမ္းမွထြက္ပါ', + name: '{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ', + destination: 'ဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ{destination}', + }, + }, + 'exit rotary': { + default: { + default: 'အဝိုင္းပတ္လမ္းမွထြက္ပါဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ', + name: '{way_name}ေပၚသို႔အဝိုင္းပတ္လမ္းမွထြက္ပါ', + destination: 'ဦးတည္အဝိုင္းပတ္လမ္းမွထြက္ပါ{destination}', + }, + }, + turn: { + default: { + default: '{modifier}ကိုလွည့္ပါ ', + name: '{modifier}​ေပၚသို{way_name}ကိုဆက္သြားပါ ', + destination: '{modifier}ဆီသို႕{destination}ကို ဆက္သြားပါ ', + }, + left: { + default: 'ဘယ္ဘက္သို႕ျပန္လွည္႔ပါ', + name: '{way_name}​ေပၚသို႕ဘယ္ဘက္ကိုဆက္သြားပါ ', + destination: '{destination}ဘယ္ဘက္သို႔ ေကြ႔ပါ', + }, + right: { + default: 'ညာဘက္သို႔ျပန္လွည္႔ပါ', + name: '{way_name}​ေပၚသို႕ညာဘက္ကိုလာေရာက္ေပါင္းဆံုပါ ', + destination: '{destination}ညာဘက္သို႔ ေကြ႔ပါ', + }, + straight: { + default: 'တည္႔တည္႔သြားပါ', + name: '{way_name}', + destination: '{destination}ဆီသို႕တည့္တည့္သြားပါ', + }, + }, + 'use lane': { + no_lanes: { + default: 'ေျဖာင္႔ေျဖာင္႔တန္းတန္း ဆက္သြားပါ', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 36: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1e', + 2: '2e', + 3: '3e', + 4: '4e', + 5: '5e', + 6: '6e', + 7: '7e', + 8: '8e', + 9: '9e', + 10: '10e', + }, + direction: { + north: 'noord', + northeast: 'noordoost', + east: 'oost', + southeast: 'zuidoost', + south: 'zuid', + southwest: 'zuidwest', + west: 'west', + northwest: 'noordwest', + }, + modifier: { + left: 'links', + right: 'rechts', + 'sharp left': 'scherpe bocht naar links', + 'sharp right': 'scherpe bocht naar rechts', + 'slight left': 'iets naar links', + 'slight right': 'iets naar rechts', + straight: 'rechtdoor', + uturn: 'omkeren', + }, + lanes: { + xo: 'Rechts aanhouden', + ox: 'Links aanhouden', + xox: 'In het midden blijven', + oxo: 'Links of rechts blijven', + }, + }, + modes: { + ferry: { + default: 'Neem de veerpont', + name: 'Neem de veerpont {way_name}', + destination: 'Neem de veerpont richting {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, dan na {distance}, {instruction_two}', + 'two linked': '{instruction_one}, daarna {instruction_two}', + 'one in distance': 'Over {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'afslag {exit}', + }, + arrive: { + default: { + default: 'Je bent gearriveerd op de {nth} bestemming.', + upcoming: 'U arriveert op de {nth} bestemming', + short: 'U bent gearriveerd', + 'short-upcoming': 'U zult aankomen', + named: 'U bent gearriveerd bij {waypoint_name}', + }, + left: { + default: 'Je bent gearriveerd. De {nth} bestemming bevindt zich links.', + upcoming: 'Uw {nth} bestemming bevindt zich aan de linkerkant', + short: 'U bent gearriveerd', + 'short-upcoming': 'U zult aankomen', + named: 'U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant', + }, + right: { + default: 'Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.', + upcoming: 'Uw {nth} bestemming bevindt zich aan de rechterkant', + short: 'U bent gearriveerd', + 'short-upcoming': 'U zult aankomen', + named: 'U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant', + }, + 'sharp left': { + default: 'Je bent gearriveerd. De {nth} bestemming bevindt zich links.', + upcoming: 'Uw {nth} bestemming bevindt zich aan de linkerkant', + short: 'U bent gearriveerd', + 'short-upcoming': 'U zult aankomen', + named: 'U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant', + }, + 'sharp right': { + default: 'Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.', + upcoming: 'Uw {nth} bestemming bevindt zich aan de rechterkant', + short: 'U bent gearriveerd', + 'short-upcoming': 'U zult aankomen', + named: 'U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant', + }, + 'slight right': { + default: 'Je bent gearriveerd. De {nth} bestemming bevindt zich rechts.', + upcoming: 'Uw {nth} bestemming bevindt zich aan de rechterkant', + short: 'U bent gearriveerd', + 'short-upcoming': 'U zult aankomen', + named: 'U bent gearriveerd bij {waypoint_name}, de bestemming is aan de rechterkant', + }, + 'slight left': { + default: 'Je bent gearriveerd. De {nth} bestemming bevindt zich links.', + upcoming: 'Uw {nth} bestemming bevindt zich aan de linkerkant', + short: 'U bent gearriveerd', + 'short-upcoming': 'U zult aankomen', + named: 'U bent gearriveerd bij {waypoint_name}, de bestemming is aan de linkerkant', + }, + straight: { + default: 'Je bent gearriveerd. De {nth} bestemming bevindt zich voor je.', + upcoming: 'Uw {nth} bestemming is recht voor u', + short: 'U bent gearriveerd', + 'short-upcoming': 'U zult aankomen', + named: 'U bent gearriveerd bij {waypoint_name}, de bestemming is recht voor u', + }, + }, + continue: { + default: { + default: 'Ga {modifier}', + name: 'Sla {modifier} om op {way_name} te blijven', + destination: 'Ga {modifier} richting {destination}', + exit: 'Ga {modifier} naar {way_name}', + }, + straight: { + default: 'Ga rechtdoor', + name: 'Blijf rechtdoor gaan op {way_name}', + destination: 'Ga rechtdoor richting {destination}', + distance: 'Ga rechtdoor voor {distance}', + namedistance: 'Ga verder op {way_name} voor {distance}', + }, + 'sharp left': { + default: 'Linksaf', + name: 'Sla scherp links af om op {way_name} te blijven', + destination: 'Linksaf richting {destination}', + }, + 'sharp right': { + default: 'Rechtsaf', + name: 'Sla scherp rechts af om op {way_name} te blijven', + destination: 'Rechtsaf richting {destination}', + }, + 'slight left': { + default: 'Ga links', + name: 'Links afbuigen om op {way_name} te blijven', + destination: 'Rechts afbuigen om op {destination} te blijven', + }, + 'slight right': { + default: 'Rechts afbuigen', + name: 'Rechts afbuigen om op {way_name} te blijven', + destination: 'Rechts afbuigen richting {destination}', + }, + uturn: { + default: 'Keer om', + name: 'Draai om en ga verder op {way_name}', + destination: 'Keer om richting {destination}', + }, + }, + depart: { + default: { + default: 'Vertrek in {direction}elijke richting', + name: 'Neem {way_name} in {direction}elijke richting', + namedistance: 'Ga richting {direction} op {way_name} voor {distance}', + }, + }, + 'end of road': { + default: { + default: 'Ga {modifier}', + name: 'Ga {modifier} naar {way_name}', + destination: 'Ga {modifier} richting {destination}', + }, + straight: { + default: 'Ga in de aangegeven richting', + name: 'Ga naar {way_name}', + destination: 'Ga richting {destination}', + }, + uturn: { + default: 'Keer om', + name: 'Keer om naar {way_name}', + destination: 'Keer om richting {destination}', + }, + }, + fork: { + default: { + default: 'Ga {modifier} op de splitsing', + name: 'Houd {modifier} aan, tot {way_name}', + destination: 'Houd {modifier}, in de richting van {destination}', + }, + 'slight left': { + default: 'Links aanhouden op de splitsing', + name: 'Houd links aan, tot {way_name}', + destination: 'Houd links aan, richting {destination}', + }, + 'slight right': { + default: 'Rechts aanhouden op de splitsing', + name: 'Houd rechts aan, tot {way_name}', + destination: 'Houd rechts aan, richting {destination}', + }, + 'sharp left': { + default: 'Neem bij de splitsing, een scherpe bocht, naar links ', + name: 'Neem een scherpe bocht naar links, tot aan {way_name}', + destination: 'Neem een scherpe bocht naar links, richting {destination}', + }, + 'sharp right': { + default: 'Neem op de splitsing, een scherpe bocht, naar rechts', + name: 'Neem een scherpe bocht naar rechts, tot aan {way_name}', + destination: 'Neem een scherpe bocht naar rechts, richting {destination}', + }, + uturn: { + default: 'Keer om', + name: 'Keer om naar {way_name}', + destination: 'Keer om richting {destination}', + }, + }, + merge: { + default: { + default: 'Bij de splitsing {modifier}', + name: 'Bij de splitsing {modifier} naar {way_name}', + destination: 'Bij de splitsing {modifier} richting {destination}', + }, + straight: { + default: 'Samenvoegen', + name: 'Ga verder op {way_name}', + destination: 'Ga verder richting {destination}', + }, + 'slight left': { + default: 'Bij de splitsing links aanhouden', + name: 'Bij de splitsing links aanhouden naar {way_name}', + destination: 'Bij de splitsing links aanhouden richting {destination}', + }, + 'slight right': { + default: 'Bij de splitsing rechts aanhouden', + name: 'Bij de splitsing rechts aanhouden naar {way_name}', + destination: 'Bij de splitsing rechts aanhouden richting {destination}', + }, + 'sharp left': { + default: 'Bij de splitsing linksaf', + name: 'Bij de splitsing linksaf naar {way_name}', + destination: 'Bij de splitsing linksaf richting {destination}', + }, + 'sharp right': { + default: 'Bij de splitsing rechtsaf', + name: 'Bij de splitsing rechtsaf naar {way_name}', + destination: 'Bij de splitsing rechtsaf richting {destination}', + }, + uturn: { + default: 'Keer om', + name: 'Keer om naar {way_name}', + destination: 'Keer om richting {destination}', + }, + }, + 'new name': { + default: { + default: 'Ga {modifier}', + name: 'Ga {modifier} naar {way_name}', + destination: 'Ga {modifier} richting {destination}', + }, + straight: { + default: 'Ga in de aangegeven richting', + name: 'Ga rechtdoor naar {way_name}', + destination: 'Ga rechtdoor richting {destination}', + }, + 'sharp left': { + default: 'Neem een scherpe bocht, naar links', + name: 'Linksaf naar {way_name}', + destination: 'Linksaf richting {destination}', + }, + 'sharp right': { + default: 'Neem een scherpe bocht, naar rechts', + name: 'Rechtsaf naar {way_name}', + destination: 'Rechtsaf richting {destination}', + }, + 'slight left': { + default: 'Links aanhouden', + name: 'Links aanhouden naar {way_name}', + destination: 'Links aanhouden richting {destination}', + }, + 'slight right': { + default: 'Rechts aanhouden', + name: 'Rechts aanhouden naar {way_name}', + destination: 'Rechts aanhouden richting {destination}', + }, + uturn: { + default: 'Keer om', + name: 'Keer om naar {way_name}', + destination: 'Keer om richting {destination}', + }, + }, + notification: { + default: { + default: 'Ga {modifier}', + name: 'Ga {modifier} naar {way_name}', + destination: 'Ga {modifier} richting {destination}', + }, + uturn: { + default: 'Keer om', + name: 'Keer om naar {way_name}', + destination: 'Keer om richting {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Neem de afrit', + name: 'Neem de afrit naar {way_name}', + destination: 'Neem de afrit richting {destination}', + exit: 'Neem afslag {exit}', + exit_destination: 'Neem afslag {exit} richting {destination}', + }, + left: { + default: 'Neem de afrit links', + name: 'Neem de afrit links naar {way_name}', + destination: 'Neem de afrit links richting {destination}', + exit: 'Neem afslag {exit} aan de linkerkant', + exit_destination: 'Neem afslag {exit} aan de linkerkant richting {destination}', + }, + right: { + default: 'Neem de afrit rechts', + name: 'Neem de afrit rechts naar {way_name}', + destination: 'Neem de afrit rechts richting {destination}', + exit: 'Neem afslag {exit} aan de rechterkant', + exit_destination: 'Neem afslag {exit} aan de rechterkant richting {destination}', + }, + 'sharp left': { + default: 'Neem de afrit links', + name: 'Neem de afrit links naar {way_name}', + destination: 'Neem de afrit links richting {destination}', + exit: 'Neem afslag {exit} aan de linkerkant', + exit_destination: 'Neem afslag {exit} aan de linkerkant richting {destination}', + }, + 'sharp right': { + default: 'Neem de afrit rechts', + name: 'Neem de afrit rechts naar {way_name}', + destination: 'Neem de afrit rechts richting {destination}', + exit: 'Neem afslag {exit} aan de rechterkant', + exit_destination: 'Neem afslag {exit} aan de rechterkant richting {destination}', + }, + 'slight left': { + default: 'Neem de afrit links', + name: 'Neem de afrit links naar {way_name}', + destination: 'Neem de afrit links richting {destination}', + exit: 'Neem afslag {exit} aan de linkerkant', + exit_destination: 'Neem afslag {exit} aan de linkerkant richting {destination}', + }, + 'slight right': { + default: 'Neem de afrit rechts', + name: 'Neem de afrit rechts naar {way_name}', + destination: 'Neem de afrit rechts richting {destination}', + exit: 'Neem afslag {exit} aan de rechterkant', + exit_destination: 'Neem afslag {exit} aan de rechterkant richting {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Neem de oprit', + name: 'Neem de oprit naar {way_name}', + destination: 'Neem de oprit richting {destination}', + }, + left: { + default: 'Neem de oprit links', + name: 'Neem de oprit links naar {way_name}', + destination: 'Neem de oprit links richting {destination}', + }, + right: { + default: 'Neem de oprit rechts', + name: 'Neem de oprit rechts naar {way_name}', + destination: 'Neem de oprit rechts richting {destination}', + }, + 'sharp left': { + default: 'Neem de oprit links', + name: 'Neem de oprit links naar {way_name}', + destination: 'Neem de oprit links richting {destination}', + }, + 'sharp right': { + default: 'Neem de oprit rechts', + name: 'Neem de oprit rechts naar {way_name}', + destination: 'Neem de oprit rechts richting {destination}', + }, + 'slight left': { + default: 'Neem de oprit links', + name: 'Neem de oprit links naar {way_name}', + destination: 'Neem de oprit links richting {destination}', + }, + 'slight right': { + default: 'Neem de oprit rechts', + name: 'Neem de oprit rechts naar {way_name}', + destination: 'Neem de oprit rechts richting {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Betreedt de rotonde', + name: 'Betreedt rotonde en sla af op {way_name}', + destination: 'Betreedt rotonde en sla af richting {destination}', + }, + name: { + default: 'Ga het knooppunt {rotary_name} op', + name: 'Verlaat het knooppunt {rotary_name} naar {way_name}', + destination: 'Verlaat het knooppunt {rotary_name} richting {destination}', + }, + exit: { + default: 'Betreedt rotonde en neem afslag {exit_number}', + name: 'Betreedt rotonde en neem afslag {exit_number} naar {way_name}', + destination: 'Betreedt rotonde en neem afslag {exit_number} richting {destination}', + }, + name_exit: { + default: 'Ga het knooppunt {rotary_name} op en neem afslag {exit_number}', + name: 'Ga het knooppunt {rotary_name} op en neem afslag {exit_number} naar {way_name}', + destination: + 'Ga het knooppunt {rotary_name} op en neem afslag {exit_number} richting {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Betreedt rotonde en neem afslag {exit_number}', + name: 'Betreedt rotonde en neem afslag {exit_number} naar {way_name}', + destination: 'Betreedt rotonde en neem afslag {exit_number} richting {destination}', + }, + default: { + default: 'Betreedt de rotonde', + name: 'Betreedt rotonde en sla af op {way_name}', + destination: 'Betreedt rotonde en sla af richting {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Ga {modifier}', + name: 'Ga {modifier} naar {way_name}', + destination: 'Ga {modifier} richting {destination}', + }, + left: { + default: 'Ga linksaf', + name: 'Ga linksaf naar {way_name}', + destination: 'Ga linksaf richting {destination}', + }, + right: { + default: 'Ga rechtsaf', + name: 'Ga rechtsaf naar {way_name}', + destination: 'Ga rechtsaf richting {destination}', + }, + straight: { + default: 'Ga in de aangegeven richting', + name: 'Ga naar {way_name}', + destination: 'Ga richting {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Verlaat de rotonde', + name: 'Verlaat de rotonde en ga verder op {way_name}', + destination: 'Verlaat de rotonde richting {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Verlaat de rotonde', + name: 'Verlaat de rotonde en ga verder op {way_name}', + destination: 'Verlaat de rotonde richting {destination}', + }, + }, + turn: { + default: { + default: 'Ga {modifier}', + name: 'Ga {modifier} naar {way_name}', + destination: 'Ga {modifier} richting {destination}', + }, + left: { + default: 'Ga linksaf', + name: 'Ga linksaf naar {way_name}', + destination: 'Ga linksaf richting {destination}', + }, + right: { + default: 'Ga rechtsaf', + name: 'Ga rechtsaf naar {way_name}', + destination: 'Ga rechtsaf richting {destination}', + }, + straight: { + default: 'Ga rechtdoor', + name: 'Ga rechtdoor naar {way_name}', + destination: 'Ga rechtdoor richting {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Rechtdoor', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 37: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1.', + 2: '2.', + 3: '3.', + 4: '4.', + 5: '5.', + 6: '6.', + 7: '7.', + 8: '8.', + 9: '9.', + 10: '10.', + }, + direction: { + north: 'nord', + northeast: 'nordøst', + east: 'øst', + southeast: 'sørøst', + south: 'sør', + southwest: 'sørvest', + west: 'vest', + northwest: 'nordvest', + }, + modifier: { + left: 'venstre', + right: 'høyre', + 'sharp left': 'skarp venstre', + 'sharp right': 'skarp høyre', + 'slight left': 'litt til venstre', + 'slight right': 'litt til høyre', + straight: 'rett frem', + uturn: 'U-sving', + }, + lanes: { + xo: 'Hold til høyre', + ox: 'Hold til venstre', + xox: 'Hold deg i midten', + oxo: 'Hold til venstre eller høyre', + }, + }, + modes: { + ferry: { + default: 'Ta ferja', + name: 'Ta ferja {way_name}', + destination: 'Ta ferja til {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, deretter {instruction_two} om {distance}', + 'two linked': '{instruction_one}, deretter {instruction_two}', + 'one in distance': 'Om {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'avkjørsel {exit}', + }, + arrive: { + default: { + default: 'Du har ankommet din {nth} destinasjon', + upcoming: 'Du vil ankomme din {nth} destinasjon', + short: 'Du har ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du har ankommet {waypoint_name}', + }, + left: { + default: 'Du har ankommet din {nth} destinasjon, på din venstre side', + upcoming: 'Du vil ankomme din {nth} destinasjon, på din venstre side', + short: 'Du har ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du har ankommet {waypoint_name}, på din venstre side', + }, + right: { + default: 'Du har ankommet din {nth} destinasjon, på din høyre side', + upcoming: 'Du vil ankomme din {nth} destinasjon, på din høyre side', + short: 'Du har ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du har ankommet {waypoint_name}, på din høyre side', + }, + 'sharp left': { + default: 'Du har ankommet din {nth} destinasjon, på din venstre side', + upcoming: 'Du vil ankomme din {nth} destinasjon, på din venstre side', + short: 'Du har ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du har ankommet {waypoint_name}, på din venstre side', + }, + 'sharp right': { + default: 'Du har ankommet din {nth} destinasjon, på din høyre side', + upcoming: 'Du vil ankomme din {nth} destinasjon, på din høyre side', + short: 'Du har ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du har ankommet {waypoint_name}, på din høyre side', + }, + 'slight right': { + default: 'Du har ankommet din {nth} destinasjon, på din høyre side', + upcoming: 'Du vil ankomme din {nth} destinasjon, på din høyre side', + short: 'Du har ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du har ankommet {waypoint_name}, på din høyre side', + }, + 'slight left': { + default: 'Du har ankommet din {nth} destinasjon, på din venstre side', + upcoming: 'Du vil ankomme din {nth} destinasjon, på din venstre side', + short: 'Du har ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du har ankommet {waypoint_name}, på din venstre side', + }, + straight: { + default: 'Du har ankommet din {nth} destinasjon, rett forut', + upcoming: 'Du vil ankomme din {nth} destinasjon, rett forut', + short: 'Du har ankommet', + 'short-upcoming': 'Du vil ankomme', + named: 'Du har ankommet {waypoint_name}, rett forut', + }, + }, + continue: { + default: { + default: 'Ta til {modifier}', + name: 'Ta til {modifier} for å bli værende på {way_name}', + destination: 'Ta til {modifier} mot {destination}', + exit: 'Ta til {modifier} inn på {way_name}', + }, + straight: { + default: 'Fortsett rett frem', + name: 'Fortsett rett frem for å bli værende på {way_name}', + destination: 'Fortsett mot {destination}', + distance: 'Fortsett rett frem, {distance} ', + namedistance: 'Fortsett på {way_name}, {distance}', + }, + 'sharp left': { + default: 'Sving skarpt til venstre', + name: 'Sving skarpt til venstre for å bli værende på {way_name}', + destination: 'Sving skarpt til venstre mot {destination}', + }, + 'sharp right': { + default: 'Sving skarpt til høyre', + name: 'Sving skarpt til høyre for å bli værende på {way_name}', + destination: 'Sving skarpt mot {destination}', + }, + 'slight left': { + default: 'Sving svakt til venstre', + name: 'Sving svakt til venstre for å bli værende på {way_name}', + destination: 'Sving svakt til venstre mot {destination}', + }, + 'slight right': { + default: 'Sving svakt til høyre', + name: 'Sving svakt til høyre for å bli værende på {way_name}', + destination: 'Sving svakt til høyre mot {destination}', + }, + uturn: { + default: 'Ta en U-sving', + name: 'Ta en U-sving og fortsett på {way_name}', + destination: 'Ta en U-sving mot {destination}', + }, + }, + depart: { + default: { + default: 'Kjør i retning {direction}', + name: 'Kjør i retning {direction} på {way_name}', + namedistance: 'Kjør i retning {direction} på {way_name}, {distance}', + }, + }, + 'end of road': { + default: { + default: 'Sving {modifier}', + name: 'Ta til {modifier} inn på {way_name}', + destination: 'Sving {modifier} mot {destination}', + }, + straight: { + default: 'Fortsett rett frem', + name: 'Fortsett rett frem til {way_name}', + destination: 'Fortsett rett frem mot {destination}', + }, + uturn: { + default: 'Ta en U-sving i enden av veien', + name: 'Ta en U-sving til {way_name} i enden av veien', + destination: 'Ta en U-sving mot {destination} i enden av veien', + }, + }, + fork: { + default: { + default: 'Hold til {modifier} i veikrysset', + name: 'Hold til {modifier} inn på {way_name}', + destination: 'Hold til {modifier} mot {destination}', + }, + 'slight left': { + default: 'Hold til venstre i veikrysset', + name: 'Hold til venstre inn på {way_name}', + destination: 'Hold til venstre mot {destination}', + }, + 'slight right': { + default: 'Hold til høyre i veikrysset', + name: 'Hold til høyre inn på {way_name}', + destination: 'Hold til høyre mot {destination}', + }, + 'sharp left': { + default: 'Sving skarpt til venstre i veikrysset', + name: 'Sving skarpt til venstre inn på {way_name}', + destination: 'Sving skarpt til venstre mot {destination}', + }, + 'sharp right': { + default: 'Sving skarpt til høyre i veikrysset', + name: 'Sving skarpt til høyre inn på {way_name}', + destination: 'Svings skarpt til høyre mot {destination}', + }, + uturn: { + default: 'Ta en U-sving', + name: 'Ta en U-sving til {way_name}', + destination: 'Ta en U-sving mot {destination}', + }, + }, + merge: { + default: { + default: 'Hold {modifier} kjørefelt', + name: 'Hold {modifier} kjørefelt inn på {way_name}', + destination: 'Hold {modifier} kjørefelt mot {destination}', + }, + straight: { + default: 'Hold kjørefelt', + name: 'Hold kjørefelt inn på {way_name}', + destination: 'Hold kjørefelt mot {destination}', + }, + 'slight left': { + default: 'Hold venstre kjørefelt', + name: 'Hold venstre kjørefelt inn på {way_name}', + destination: 'Hold venstre kjørefelt mot {destination}', + }, + 'slight right': { + default: 'Hold høyre kjørefelt', + name: 'Hold høyre kjørefelt inn på {way_name}', + destination: 'Hold høyre kjørefelt mot {destination}', + }, + 'sharp left': { + default: 'Hold venstre kjørefelt', + name: 'Hold venstre kjørefelt inn på {way_name}', + destination: 'Hold venstre kjørefelt mot {destination}', + }, + 'sharp right': { + default: 'Hold høyre kjørefelt', + name: 'Hold høyre kjørefelt inn på {way_name}', + destination: 'Hold høyre kjørefelt mot {destination}', + }, + uturn: { + default: 'Ta en U-sving', + name: 'Ta en U-sving til {way_name}', + destination: 'Ta en U-sving mot {destination}', + }, + }, + 'new name': { + default: { + default: 'Fortsett {modifier}', + name: 'Fortsett {modifier} til {way_name}', + destination: 'Fortsett {modifier} mot {destination}', + }, + straight: { + default: 'Fortsett rett frem', + name: 'Fortsett inn på {way_name}', + destination: 'Fortsett mot {destination}', + }, + 'sharp left': { + default: 'Sving skarpt til venstre', + name: 'Sving skarpt til venstre inn på {way_name}', + destination: 'Sving skarpt til venstre mot {destination}', + }, + 'sharp right': { + default: 'Sving skarpt til høyre', + name: 'Sving skarpt til høyre inn på {way_name}', + destination: 'Svings skarpt til høyre mot {destination}', + }, + 'slight left': { + default: 'Fortsett litt mot venstre', + name: 'Fortsett litt mot venstre til {way_name}', + destination: 'Fortsett litt mot venstre mot {destination}', + }, + 'slight right': { + default: 'Fortsett litt mot høyre', + name: 'Fortsett litt mot høyre til {way_name}', + destination: 'Fortsett litt mot høyre mot {destination}', + }, + uturn: { + default: 'Ta en U-sving', + name: 'Ta en U-sving til {way_name}', + destination: 'Ta en U-sving mot {destination}', + }, + }, + notification: { + default: { + default: 'Fortsett {modifier}', + name: 'Fortsett {modifier} til {way_name}', + destination: 'Fortsett {modifier} mot {destination}', + }, + uturn: { + default: 'Ta en U-sving', + name: 'Ta en U-sving til {way_name}', + destination: 'Ta en U-sving mot {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Ta avkjørselen', + name: 'Ta avkjørselen inn på {way_name}', + destination: 'Ta avkjørselen mot {destination}', + exit: 'Ta avkjørsel {exit}', + exit_destination: 'Ta avkjørsel {exit} mot {destination}', + }, + left: { + default: 'Ta avkjørselen på venstre side', + name: 'Ta avkjørselen på venstre side inn på {way_name}', + destination: 'Ta avkjørselen på venstre side mot {destination}', + exit: 'Ta avkjørsel {exit} på venstre side', + exit_destination: 'Ta avkjørsel {exit} på venstre side mot {destination}', + }, + right: { + default: 'Ta avkjørselen på høyre side', + name: 'Ta avkjørselen på høyre side inn på {way_name}', + destination: 'Ta avkjørselen på høyre side mot {destination}', + exit: 'Ta avkjørsel {exit} på høyre side', + exit_destination: 'Ta avkjørsel {exit} på høyre side mot {destination}', + }, + 'sharp left': { + default: 'Ta avkjørselen på venstre side', + name: 'Ta avkjørselen på venstre side inn på {way_name}', + destination: 'Ta avkjørselen på venstre side mot {destination}', + exit: 'Ta avkjørsel {exit} på venstre side', + exit_destination: 'Ta avkjørsel {exit} på venstre side mot {destination}', + }, + 'sharp right': { + default: 'Ta avkjørselen på høyre side', + name: 'Ta avkjørselen på høyre side inn på {way_name}', + destination: 'Ta avkjørselen på høyre side mot {destination}', + exit: 'Ta avkjørsel {exit} på høyre side', + exit_destination: 'Ta avkjørsel {exit} på høyre side mot {destination}', + }, + 'slight left': { + default: 'Ta avkjørselen på venstre side', + name: 'Ta avkjørselen på venstre side inn på {way_name}', + destination: 'Ta avkjørselen på venstre side mot {destination}', + exit: 'Ta avkjørsel {exit} på venstre side', + exit_destination: 'Ta avkjørsel {exit} på venstre side mot {destination}', + }, + 'slight right': { + default: 'Ta avkjørselen på høyre side', + name: 'Ta avkjørselen på høyre side inn på {way_name}', + destination: 'Ta avkjørselen på høyre side mot {destination}', + exit: 'Ta avkjørsel {exit} på høyre side', + exit_destination: 'Ta avkjørsel {exit} på høyre side mot {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Ta avkjørselen', + name: 'Ta avkjørselen inn på {way_name}', + destination: 'Ta avkjørselen mot {destination}', + }, + left: { + default: 'Ta avkjørselen på venstre side', + name: 'Ta avkjørselen på venstre side inn på {way_name}', + destination: 'Ta avkjørselen på venstre side mot {destination}', + }, + right: { + default: 'Ta avkjørselen på høyre side', + name: 'Ta avkjørselen på høyre side inn på {way_name}', + destination: 'Ta avkjørselen på høyre side mot {destination}', + }, + 'sharp left': { + default: 'Ta avkjørselen på venstre side', + name: 'Ta avkjørselen på venstre side inn på {way_name}', + destination: 'Ta avkjørselen på venstre side mot {destination}', + }, + 'sharp right': { + default: 'Ta avkjørselen på høyre side', + name: 'Ta avkjørselen på høyre side inn på {way_name}', + destination: 'Ta avkjørselen på høyre side mot {destination}', + }, + 'slight left': { + default: 'Ta avkjørselen på venstre side', + name: 'Ta avkjørselen på venstre side inn på {way_name}', + destination: 'Ta avkjørselen på venstre side mot {destination}', + }, + 'slight right': { + default: 'Ta avkjørselen på høyre side', + name: 'Ta avkjørselen på høyre side inn på {way_name}', + destination: 'Ta avkjørselen på høyre side mot {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Kjør inn i rundkjøringen', + name: 'Kjør inn i rundkjøringen og deretter ut på {way_name}', + destination: 'Kjør inn i rundkjøringen og deretter ut mot {destination}', + }, + name: { + default: 'Kjør inn i {rotary_name}', + name: 'Kjør inn i {rotary_name} og deretter ut på {way_name}', + destination: 'Kjør inn i {rotary_name} og deretter ut mot {destination}', + }, + exit: { + default: 'Kjør inn i rundkjøringen og ta {exit_number} avkjørsel', + name: 'Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut på {way_name}', + destination: + 'Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut mot {destination} ', + }, + name_exit: { + default: 'Kjør inn i {rotary_name} og ta {exit_number} avkjørsel', + name: 'Kjør inn i {rotary_name} og ta {exit_number} avkjørsel inn på {way_name}', + destination: + 'Kjør inn i {rotary_name} og ta {exit_number} avkjørsel mot {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Kjør inn i rundkjøringen og ta {exit_number} avkjørsel', + name: 'Kjør inn i rundkjøringen og ta {exit_number} avkjørsel inn på {way_name}', + destination: + 'Kjør inn i rundkjøringen og ta {exit_number} avkjørsel ut mot {destination} ', + }, + default: { + default: 'Kjør inn i rundkjøringen', + name: 'Kjør inn i rundkjøringen og deretter ut på {way_name}', + destination: 'Kjør inn i rundkjøringen og deretter ut mot {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Ta en {modifier}', + name: 'Ta en {modifier} inn på {way_name}', + destination: 'Ta en {modifier} mot {destination}', + }, + left: { + default: 'Sving til venstre', + name: 'Sving til venstre inn på {way_name}', + destination: 'Sving til venstre mot {destination}', + }, + right: { + default: 'Sving til høyre', + name: 'Sving til høyre inn på {way_name}', + destination: 'Sving til høyre mot {destination}', + }, + straight: { + default: 'Fortsett rett frem', + name: 'Fortsett rett frem til {way_name}', + destination: 'Fortsett rett frem mot {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Kjør ut av rundkjøringen', + name: 'Kjør ut av rundkjøringen og inn på {way_name}', + destination: 'Kjør ut av rundkjøringen mot {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Kjør ut av rundkjøringen', + name: 'Kjør ut av rundkjøringen og inn på {way_name}', + destination: 'Kjør ut av rundkjøringen mot {destination}', + }, + }, + turn: { + default: { + default: 'Ta en {modifier}', + name: 'Ta en {modifier} inn på {way_name}', + destination: 'Ta en {modifier} mot {destination}', + }, + left: { + default: 'Sving til venstre', + name: 'Sving til venstre inn på {way_name}', + destination: 'Sving til venstre mot {destination}', + }, + right: { + default: 'Sving til høyre', + name: 'Sving til høyre inn på {way_name}', + destination: 'Sving til høyre mot {destination}', + }, + straight: { + default: 'Kjør rett frem', + name: 'Kjør rett frem og inn på {way_name}', + destination: 'Kjør rett frem mot {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Fortsett rett frem', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 38: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1.', + 2: '2.', + 3: '3.', + 4: '4.', + 5: '5.', + 6: '6.', + 7: '7.', + 8: '8.', + 9: '9.', + 10: '10.', + }, + direction: { + north: 'północ', + northeast: 'północny wschód', + east: 'wschód', + southeast: 'południowy wschód', + south: 'południe', + southwest: 'południowy zachód', + west: 'zachód', + northwest: 'północny zachód', + }, + modifier: { + left: 'lewo', + right: 'prawo', + 'sharp left': 'ostro w lewo', + 'sharp right': 'ostro w prawo', + 'slight left': 'łagodnie w lewo', + 'slight right': 'łagodnie w prawo', + straight: 'prosto', + uturn: 'zawróć', + }, + lanes: { + xo: 'Trzymaj się prawej strony', + ox: 'Trzymaj się lewej strony', + xox: 'Trzymaj się środka', + oxo: 'Trzymaj się lewej lub prawej strony', + }, + }, + modes: { + ferry: { + default: 'Weź prom', + name: 'Weź prom {way_name}', + destination: 'Weź prom w kierunku {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, następnie za {distance} {instruction_two}', + 'two linked': '{instruction_one}, następnie {instruction_two}', + 'one in distance': 'Za {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'exit {exit}', + }, + arrive: { + default: { + default: 'Dojechano do miejsca docelowego {nth}', + upcoming: 'Dojechano do miejsca docelowego {nth}', + short: 'Dojechano do miejsca docelowego {nth}', + 'short-upcoming': 'Dojechano do miejsca docelowego {nth}', + named: 'Dojechano do {waypoint_name}', + }, + left: { + default: 'Dojechano do miejsca docelowego {nth}, po lewej stronie', + upcoming: 'Dojechano do miejsca docelowego {nth}, po lewej stronie', + short: 'Dojechano do miejsca docelowego {nth}', + 'short-upcoming': 'Dojechano do miejsca docelowego {nth}', + named: 'Dojechano do {waypoint_name}, po lewej stronie', + }, + right: { + default: 'Dojechano do miejsca docelowego {nth}, po prawej stronie', + upcoming: 'Dojechano do miejsca docelowego {nth}, po prawej stronie', + short: 'Dojechano do miejsca docelowego {nth}', + 'short-upcoming': 'Dojechano do miejsca docelowego {nth}', + named: 'Dojechano do {waypoint_name}, po prawej stronie', + }, + 'sharp left': { + default: 'Dojechano do miejsca docelowego {nth}, po lewej stronie', + upcoming: 'Dojechano do miejsca docelowego {nth}, po lewej stronie', + short: 'Dojechano do miejsca docelowego {nth}', + 'short-upcoming': 'Dojechano do miejsca docelowego {nth}', + named: 'Dojechano do {waypoint_name}, po lewej stronie', + }, + 'sharp right': { + default: 'Dojechano do miejsca docelowego {nth}, po prawej stronie', + upcoming: 'Dojechano do miejsca docelowego {nth}, po prawej stronie', + short: 'Dojechano do miejsca docelowego {nth}', + 'short-upcoming': 'Dojechano do miejsca docelowego {nth}', + named: 'Dojechano do {waypoint_name}, po prawej stronie', + }, + 'slight right': { + default: 'Dojechano do miejsca docelowego {nth}, po prawej stronie', + upcoming: 'Dojechano do miejsca docelowego {nth}, po prawej stronie', + short: 'Dojechano do miejsca docelowego {nth}', + 'short-upcoming': 'Dojechano do miejsca docelowego {nth}', + named: 'Dojechano do {waypoint_name}, po prawej stronie', + }, + 'slight left': { + default: 'Dojechano do miejsca docelowego {nth}, po lewej stronie', + upcoming: 'Dojechano do miejsca docelowego {nth}, po lewej stronie', + short: 'Dojechano do miejsca docelowego {nth}', + 'short-upcoming': 'Dojechano do miejsca docelowego {nth}', + named: 'Dojechano do {waypoint_name}, po lewej stronie', + }, + straight: { + default: 'Dojechano do miejsca docelowego {nth} , prosto', + upcoming: 'Dojechano do miejsca docelowego {nth} , prosto', + short: 'Dojechano do miejsca docelowego {nth}', + 'short-upcoming': 'Dojechano do miejsca docelowego {nth}', + named: 'Dojechano do {waypoint_name}, prosto', + }, + }, + continue: { + default: { + default: 'Skręć {modifier}', + name: 'Skręć w {modifier}, aby pozostać na {way_name}', + destination: 'Skręć {modifier} w kierunku {destination}', + exit: 'Skręć {modifier} na {way_name}', + }, + straight: { + default: 'Kontynuuj prosto', + name: 'Jedź dalej prosto, aby pozostać na {way_name}', + destination: 'Kontynuuj w kierunku {destination}', + distance: 'Jedź dalej prosto przez {distance}', + namedistance: 'Jedź dalej {way_name} przez {distance}', + }, + 'sharp left': { + default: 'Skręć ostro w lewo', + name: 'Skręć w lewo w ostry zakręt, aby pozostać na {way_name}', + destination: 'Skręć ostro w lewo w kierunku {destination}', + }, + 'sharp right': { + default: 'Skręć ostro w prawo', + name: 'Skręć w prawo w ostry zakręt, aby pozostać na {way_name}', + destination: 'Skręć ostro w prawo w kierunku {destination}', + }, + 'slight left': { + default: 'Skręć w lewo w łagodny zakręt', + name: 'Skręć w lewo w łagodny zakręt, aby pozostać na {way_name}', + destination: 'Skręć w lewo w łagodny zakręt na {destination}', + }, + 'slight right': { + default: 'Skręć w prawo w łagodny zakręt', + name: 'Skręć w prawo w łagodny zakręt, aby pozostać na {way_name}', + destination: 'Skręć w prawo w łagodny zakręt na {destination}', + }, + uturn: { + default: 'Zawróć', + name: 'Zawróć i jedź dalej {way_name}', + destination: 'Zawróć w kierunku {destination}', + }, + }, + depart: { + default: { + default: 'Kieruj się {direction}', + name: 'Kieruj się {direction} na {way_name}', + namedistance: 'Head {direction} on {way_name} for {distance}', + }, + }, + 'end of road': { + default: { + default: 'Skręć {modifier}', + name: 'Skręć {modifier} na {way_name}', + destination: 'Skręć {modifier} w kierunku {destination}', + }, + straight: { + default: 'Kontynuuj prosto', + name: 'Kontynuuj prosto na {way_name}', + destination: 'Kontynuuj prosto w kierunku {destination}', + }, + uturn: { + default: 'Zawróć na końcu ulicy', + name: 'Zawróć na końcu ulicy na {way_name}', + destination: 'Zawróć na końcu ulicy w kierunku {destination}', + }, + }, + fork: { + default: { + default: 'Na rozwidleniu trzymaj się {modifier}', + name: 'Na rozwidleniu trzymaj się {modifier} na {way_name}', + destination: 'Na rozwidleniu trzymaj się {modifier} w kierunku {destination}', + }, + 'slight left': { + default: 'Na rozwidleniu trzymaj się lewej strony', + name: 'Na rozwidleniu trzymaj się lewej strony w {way_name}', + destination: 'Na rozwidleniu trzymaj się lewej strony w kierunku {destination}', + }, + 'slight right': { + default: 'Na rozwidleniu trzymaj się prawej strony', + name: 'Na rozwidleniu trzymaj się prawej strony na {way_name}', + destination: 'Na rozwidleniu trzymaj się prawej strony w kierunku {destination}', + }, + 'sharp left': { + default: 'Na rozwidleniu skręć ostro w lewo', + name: 'Skręć ostro w lewo w {way_name}', + destination: 'Skręć ostro w lewo w kierunku {destination}', + }, + 'sharp right': { + default: 'Na rozwidleniu skręć ostro w prawo', + name: 'Skręć ostro w prawo na {way_name}', + destination: 'Skręć ostro w prawo w kierunku {destination}', + }, + uturn: { + default: 'Zawróć', + name: 'Zawróć na {way_name}', + destination: 'Zawróć w kierunku {destination}', + }, + }, + merge: { + default: { + default: 'Włącz się {modifier}', + name: 'Włącz się {modifier} na {way_name}', + destination: 'Włącz się {modifier} w kierunku {destination}', + }, + straight: { + default: 'Włącz się prosto', + name: 'Włącz się prosto na {way_name}', + destination: 'Włącz się prosto w kierunku {destination}', + }, + 'slight left': { + default: 'Włącz się z lewej strony', + name: 'Włącz się z lewej strony na {way_name}', + destination: 'Włącz się z lewej strony w kierunku {destination}', + }, + 'slight right': { + default: 'Włącz się z prawej strony', + name: 'Włącz się z prawej strony na {way_name}', + destination: 'Włącz się z prawej strony w kierunku {destination}', + }, + 'sharp left': { + default: 'Włącz się z lewej strony', + name: 'Włącz się z lewej strony na {way_name}', + destination: 'Włącz się z lewej strony w kierunku {destination}', + }, + 'sharp right': { + default: 'Włącz się z prawej strony', + name: 'Włącz się z prawej strony na {way_name}', + destination: 'Włącz się z prawej strony w kierunku {destination}', + }, + uturn: { + default: 'Zawróć', + name: 'Zawróć na {way_name}', + destination: 'Zawróć w kierunku {destination}', + }, + }, + 'new name': { + default: { + default: 'Kontynuuj {modifier}', + name: 'Kontynuuj {modifier} na {way_name}', + destination: 'Kontynuuj {modifier} w kierunku {destination}', + }, + straight: { + default: 'Kontynuuj prosto', + name: 'Kontynuuj na {way_name}', + destination: 'Kontynuuj w kierunku {destination}', + }, + 'sharp left': { + default: 'Skręć ostro w lewo', + name: 'Skręć ostro w lewo w {way_name}', + destination: 'Skręć ostro w lewo w kierunku {destination}', + }, + 'sharp right': { + default: 'Skręć ostro w prawo', + name: 'Skręć ostro w prawo na {way_name}', + destination: 'Skręć ostro w prawo w kierunku {destination}', + }, + 'slight left': { + default: 'Kontynuuj łagodnie w lewo', + name: 'Kontynuuj łagodnie w lewo na {way_name}', + destination: 'Kontynuuj łagodnie w lewo w kierunku {destination}', + }, + 'slight right': { + default: 'Kontynuuj łagodnie w prawo', + name: 'Kontynuuj łagodnie w prawo na {way_name}', + destination: 'Kontynuuj łagodnie w prawo w kierunku {destination}', + }, + uturn: { + default: 'Zawróć', + name: 'Zawróć na {way_name}', + destination: 'Zawróć w kierunku {destination}', + }, + }, + notification: { + default: { + default: 'Kontynuuj {modifier}', + name: 'Kontynuuj {modifier} na {way_name}', + destination: 'Kontynuuj {modifier} w kierunku {destination}', + }, + uturn: { + default: 'Zawróć', + name: 'Zawróć na {way_name}', + destination: 'Zawróć w kierunku {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Zjedź', + name: 'Weź zjazd na {way_name}', + destination: 'Weź zjazd w kierunku {destination}', + exit: 'Zjedź zjazdem {exit}', + exit_destination: 'Zjedź zjazdem {exit} na {destination}', + }, + left: { + default: 'Weź zjazd po lewej', + name: 'Weź zjazd po lewej na {way_name}', + destination: 'Weź zjazd po lewej w kierunku {destination}', + exit: 'Zjedź zjazdem {exit} po lewej stronie', + exit_destination: 'Zjedź zjazdem {exit} po lewej stronie na {destination}', + }, + right: { + default: 'Weź zjazd po prawej', + name: 'Weź zjazd po prawej na {way_name}', + destination: 'Weź zjazd po prawej w kierunku {destination}', + exit: 'Zjedź zjazdem {exit} po prawej stronie', + exit_destination: 'Zjedź zjazdem {exit} po prawej stronie na {destination}', + }, + 'sharp left': { + default: 'Weź zjazd po lewej', + name: 'Weź zjazd po lewej na {way_name}', + destination: 'Weź zjazd po lewej w kierunku {destination}', + exit: 'Zjedź zjazdem {exit} po lewej stronie', + exit_destination: 'Zjedź zjazdem {exit} po lewej stronie na {destination}', + }, + 'sharp right': { + default: 'Weź zjazd po prawej', + name: 'Weź zjazd po prawej na {way_name}', + destination: 'Weź zjazd po prawej w kierunku {destination}', + exit: 'Zjedź zjazdem {exit} po prawej stronie', + exit_destination: 'Zjedź zjazdem {exit} po prawej stronie na {destination}', + }, + 'slight left': { + default: 'Weź zjazd po lewej', + name: 'Weź zjazd po lewej na {way_name}', + destination: 'Weź zjazd po lewej w kierunku {destination}', + exit: 'Zjedź zjazdem {exit} po lewej stronie', + exit_destination: 'Zjedź zjazdem {exit} po lewej stronie na {destination}', + }, + 'slight right': { + default: 'Weź zjazd po prawej', + name: 'Weź zjazd po prawej na {way_name}', + destination: 'Weź zjazd po prawej w kierunku {destination}', + exit: 'Zjedź zjazdem {exit} po prawej stronie', + exit_destination: 'Zjedź zjazdem {exit} po prawej stronie na {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Weź zjazd', + name: 'Weź zjazd na {way_name}', + destination: 'Weź zjazd w kierunku {destination}', + }, + left: { + default: 'Weź zjazd po lewej', + name: 'Weź zjazd po lewej na {way_name}', + destination: 'Weź zjazd po lewej w kierunku {destination}', + }, + right: { + default: 'Weź zjazd po prawej', + name: 'Weź zjazd po prawej na {way_name}', + destination: 'Weź zjazd po prawej w kierunku {destination}', + }, + 'sharp left': { + default: 'Weź zjazd po lewej', + name: 'Weź zjazd po lewej na {way_name}', + destination: 'Weź zjazd po lewej w kierunku {destination}', + }, + 'sharp right': { + default: 'Weź zjazd po prawej', + name: 'Weź zjazd po prawej na {way_name}', + destination: 'Weź zjazd po prawej w kierunku {destination}', + }, + 'slight left': { + default: 'Weź zjazd po lewej', + name: 'Weź zjazd po lewej na {way_name}', + destination: 'Weź zjazd po lewej w kierunku {destination}', + }, + 'slight right': { + default: 'Weź zjazd po prawej', + name: 'Weź zjazd po prawej na {way_name}', + destination: 'Weź zjazd po prawej w kierunku {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Wjedź na rondo', + name: 'Wjedź na rondo i skręć na {way_name}', + destination: 'Wjedź na rondo i skręć w kierunku {destination}', + }, + name: { + default: 'Wjedź na {rotary_name}', + name: 'Wjedź na {rotary_name} i skręć na {way_name}', + destination: 'Wjedź na {rotary_name} i skręć w kierunku {destination}', + }, + exit: { + default: 'Wjedź na rondo i wyjedź {exit_number} zjazdem', + name: 'Wjedź na rondo i wyjedź {exit_number} zjazdem na {way_name}', + destination: + 'Wjedź na rondo i wyjedź {exit_number} zjazdem w kierunku {destination}', + }, + name_exit: { + default: 'Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem', + name: 'Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem na {way_name}', + destination: + 'Wjedź na {rotary_name} i wyjedź {exit_number} zjazdem w kierunku {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Wjedź na rondo i wyjedź {exit_number} zjazdem', + name: 'Wjedź na rondo i wyjedź {exit_number} zjazdem na {way_name}', + destination: + 'Wjedź na rondo i wyjedź {exit_number} zjazdem w kierunku {destination}', + }, + default: { + default: 'Wjedź na rondo', + name: 'Wjedź na rondo i wyjedź na {way_name}', + destination: 'Wjedź na rondo i wyjedź w kierunku {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: '{modifier}', + name: '{modifier} na {way_name}', + destination: '{modifier} w kierunku {destination}', + }, + left: { + default: 'Skręć w lewo', + name: 'Skręć w lewo na {way_name}', + destination: 'Skręć w lewo w kierunku {destination}', + }, + right: { + default: 'Skręć w prawo', + name: 'Skręć w prawo na {way_name}', + destination: 'Skręć w prawo w kierunku {destination}', + }, + straight: { + default: 'Kontynuuj prosto', + name: 'Kontynuuj prosto na {way_name}', + destination: 'Kontynuuj prosto w kierunku {destination}', + }, + }, + 'exit roundabout': { + default: { + default: '{modifier}', + name: '{modifier} na {way_name}', + destination: '{modifier} w kierunku {destination}', + }, + left: { + default: 'Skręć w lewo', + name: 'Skręć w lewo na {way_name}', + destination: 'Skręć w lewo w kierunku {destination}', + }, + right: { + default: 'Skręć w prawo', + name: 'Skręć w prawo na {way_name}', + destination: 'Skręć w prawo w kierunku {destination}', + }, + straight: { + default: 'Kontynuuj prosto', + name: 'Kontynuuj prosto na {way_name}', + destination: 'Kontynuuj prosto w kierunku {destination}', + }, + }, + 'exit rotary': { + default: { + default: '{modifier}', + name: '{modifier} na {way_name}', + destination: '{modifier} w kierunku {destination}', + }, + left: { + default: 'Skręć w lewo', + name: 'Skręć w lewo na {way_name}', + destination: 'Skręć w lewo w kierunku {destination}', + }, + right: { + default: 'Skręć w prawo', + name: 'Skręć w prawo na {way_name}', + destination: 'Skręć w prawo w kierunku {destination}', + }, + straight: { + default: 'Jedź prosto', + name: 'Jedź prosto na {way_name}', + destination: 'Jedź prosto w kierunku {destination}', + }, + }, + turn: { + default: { + default: '{modifier}', + name: '{modifier} na {way_name}', + destination: '{modifier} w kierunku {destination}', + }, + left: { + default: 'Skręć w lewo', + name: 'Skręć w lewo na {way_name}', + destination: 'Skręć w lewo w kierunku {destination}', + }, + right: { + default: 'Skręć w prawo', + name: 'Skręć w prawo na {way_name}', + destination: 'Skręć w prawo w kierunku {destination}', + }, + straight: { + default: 'Jedź prosto', + name: 'Jedź prosto na {way_name}', + destination: 'Jedź prosto w kierunku {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Kontynuuj prosto', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 39: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1º', + 2: '2º', + 3: '3º', + 4: '4º', + 5: '5º', + 6: '6º', + 7: '7º', + 8: '8º', + 9: '9º', + 10: '10º', + }, + direction: { + north: 'norte', + northeast: 'nordeste', + east: 'leste', + southeast: 'sudeste', + south: 'sul', + southwest: 'sudoeste', + west: 'oeste', + northwest: 'noroeste', + }, + modifier: { + left: 'à esquerda', + right: 'à direita', + 'sharp left': 'fechada à esquerda', + 'sharp right': 'fechada à direita', + 'slight left': 'suave à esquerda', + 'slight right': 'suave à direita', + straight: 'em frente', + uturn: 'retorno', + }, + lanes: { + xo: 'Mantenha-se à direita', + ox: 'Mantenha-se à esquerda', + xox: 'Mantenha-se ao centro', + oxo: 'Mantenha-se à esquerda ou direita', + }, + }, + modes: { + ferry: { + default: 'Pegue a balsa', + name: 'Pegue a balsa {way_name}', + destination: 'Pegue a balsa sentido {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, então, em {distance}, {instruction_two}', + 'two linked': '{instruction_one}, então {instruction_two}', + 'one in distance': 'Em {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'saída {exit}', + }, + arrive: { + default: { + default: 'Você chegou ao seu {nth} destino', + upcoming: 'Você chegará ao seu {nth} destino', + short: 'Você chegou', + 'short-upcoming': 'Você vai chegar', + named: 'Você chegou a {waypoint_name}', + }, + left: { + default: 'Você chegou ao seu {nth} destino, à esquerda', + upcoming: 'Você chegará ao seu {nth} destino, à esquerda', + short: 'Você chegou', + 'short-upcoming': 'Você vai chegar', + named: 'Você chegou {waypoint_name}, à esquerda', + }, + right: { + default: 'Você chegou ao seu {nth} destino, à direita', + upcoming: 'Você chegará ao seu {nth} destino, à direita', + short: 'Você chegou', + 'short-upcoming': 'Você vai chegar', + named: 'Você chegou {waypoint_name}, à direita', + }, + 'sharp left': { + default: 'Você chegou ao seu {nth} destino, à esquerda', + upcoming: 'Você chegará ao seu {nth} destino, à esquerda', + short: 'Você chegou', + 'short-upcoming': 'Você vai chegar', + named: 'Você chegou {waypoint_name}, à esquerda', + }, + 'sharp right': { + default: 'Você chegou ao seu {nth} destino, à direita', + upcoming: 'Você chegará ao seu {nth} destino, à direita', + short: 'Você chegou', + 'short-upcoming': 'Você vai chegar', + named: 'Você chegou {waypoint_name}, à direita', + }, + 'slight right': { + default: 'Você chegou ao seu {nth} destino, à direita', + upcoming: 'Você chegará ao seu {nth} destino, à direita', + short: 'Você chegou', + 'short-upcoming': 'Você vai chegar', + named: 'Você chegou {waypoint_name}, à direita', + }, + 'slight left': { + default: 'Você chegou ao seu {nth} destino, à esquerda', + upcoming: 'Você chegará ao seu {nth} destino, à esquerda', + short: 'Você chegou', + 'short-upcoming': 'Você vai chegar', + named: 'Você chegou {waypoint_name}, à esquerda', + }, + straight: { + default: 'Você chegou ao seu {nth} destino, em frente', + upcoming: 'Você vai chegar ao seu {nth} destino, em frente', + short: 'Você chegou', + 'short-upcoming': 'Você vai chegar', + named: 'You have arrived at {waypoint_name}, straight ahead', + }, + }, + continue: { + default: { + default: 'Vire {modifier}', + name: 'Vire {modifier} para manter-se na {way_name}', + destination: 'Vire {modifier} sentido {destination}', + exit: 'Vire {modifier} em {way_name}', + }, + straight: { + default: 'Continue em frente', + name: 'Continue em frente para manter-se na {way_name}', + destination: 'Continue em direção à {destination}', + distance: 'Continue em frente por {distance}', + namedistance: 'Continue na {way_name} por {distance}', + }, + 'sharp left': { + default: 'Faça uma curva fechada a esquerda', + name: 'Faça uma curva fechada a esquerda para manter-se na {way_name}', + destination: 'Faça uma curva fechada a esquerda sentido {destination}', + }, + 'sharp right': { + default: 'Faça uma curva fechada a direita', + name: 'Faça uma curva fechada a direita para manter-se na {way_name}', + destination: 'Faça uma curva fechada a direita sentido {destination}', + }, + 'slight left': { + default: 'Faça uma curva suave a esquerda', + name: 'Faça uma curva suave a esquerda para manter-se na {way_name}', + destination: 'Faça uma curva suave a esquerda em direção a {destination}', + }, + 'slight right': { + default: 'Faça uma curva suave a direita', + name: 'Faça uma curva suave a direita para manter-se na {way_name}', + destination: 'Faça uma curva suave a direita em direção a {destination}', + }, + uturn: { + default: 'Faça o retorno', + name: 'Faça o retorno e continue em {way_name}', + destination: 'Faça o retorno sentido {destination}', + }, + }, + depart: { + default: { + default: 'Siga {direction}', + name: 'Siga {direction} em {way_name}', + namedistance: 'Siga {direction} na {way_name} por {distance}', + }, + }, + 'end of road': { + default: { + default: 'Vire {modifier}', + name: 'Vire {modifier} em {way_name}', + destination: 'Vire {modifier} sentido {destination}', + }, + straight: { + default: 'Continue em frente', + name: 'Continue em frente em {way_name}', + destination: 'Continue em frente sentido {destination}', + }, + uturn: { + default: 'Faça o retorno no fim da rua', + name: 'Faça o retorno em {way_name} no fim da rua', + destination: 'Faça o retorno sentido {destination} no fim da rua', + }, + }, + fork: { + default: { + default: 'Mantenha-se {modifier} na bifurcação', + name: 'Mantenha-se {modifier} na bifurcação em {way_name}', + destination: 'Mantenha-se {modifier} na bifurcação sentido {destination}', + }, + 'slight left': { + default: 'Mantenha-se à esquerda na bifurcação', + name: 'Mantenha-se à esquerda na bifurcação em {way_name}', + destination: 'Mantenha-se à esquerda na bifurcação sentido {destination}', + }, + 'slight right': { + default: 'Mantenha-se à direita na bifurcação', + name: 'Mantenha-se à direita na bifurcação em {way_name}', + destination: 'Mantenha-se à direita na bifurcação sentido {destination}', + }, + 'sharp left': { + default: 'Faça uma curva fechada à esquerda na bifurcação', + name: 'Faça uma curva fechada à esquerda em {way_name}', + destination: 'Faça uma curva fechada à esquerda sentido {destination}', + }, + 'sharp right': { + default: 'Faça uma curva fechada à direita na bifurcação', + name: 'Faça uma curva fechada à direita em {way_name}', + destination: 'Faça uma curva fechada à direita sentido {destination}', + }, + uturn: { + default: 'Faça o retorno', + name: 'Faça o retorno em {way_name}', + destination: 'Faça o retorno sentido {destination}', + }, + }, + merge: { + default: { + default: 'Entre {modifier}', + name: 'Entre {modifier} na {way_name}', + destination: 'Entre {modifier} em direção à {destination}', + }, + straight: { + default: 'Mesclar', + name: 'Entre reto na {way_name}', + destination: 'Entre reto em direção à {destination}', + }, + 'slight left': { + default: 'Entre à esquerda', + name: 'Entre à esquerda na {way_name}', + destination: 'Entre à esquerda em direção à {destination}', + }, + 'slight right': { + default: 'Entre à direita', + name: 'Entre à direita na {way_name}', + destination: 'Entre à direita em direção à {destination}', + }, + 'sharp left': { + default: 'Entre à esquerda', + name: 'Entre à esquerda na {way_name}', + destination: 'Entre à esquerda em direção à {destination}', + }, + 'sharp right': { + default: 'Entre à direita', + name: 'Entre à direita na {way_name}', + destination: 'Entre à direita em direção à {destination}', + }, + uturn: { + default: 'Faça o retorno', + name: 'Faça o retorno em {way_name}', + destination: 'Faça o retorno sentido {destination}', + }, + }, + 'new name': { + default: { + default: 'Continue {modifier}', + name: 'Continue {modifier} em {way_name}', + destination: 'Continue {modifier} sentido {destination}', + }, + straight: { + default: 'Continue em frente', + name: 'Continue em {way_name}', + destination: 'Continue em direção à {destination}', + }, + 'sharp left': { + default: 'Faça uma curva fechada à esquerda', + name: 'Faça uma curva fechada à esquerda em {way_name}', + destination: 'Faça uma curva fechada à esquerda sentido {destination}', + }, + 'sharp right': { + default: 'Faça uma curva fechada à direita', + name: 'Faça uma curva fechada à direita em {way_name}', + destination: 'Faça uma curva fechada à direita sentido {destination}', + }, + 'slight left': { + default: 'Continue ligeiramente à esquerda', + name: 'Continue ligeiramente à esquerda em {way_name}', + destination: 'Continue ligeiramente à esquerda sentido {destination}', + }, + 'slight right': { + default: 'Continue ligeiramente à direita', + name: 'Continue ligeiramente à direita em {way_name}', + destination: 'Continue ligeiramente à direita sentido {destination}', + }, + uturn: { + default: 'Faça o retorno', + name: 'Faça o retorno em {way_name}', + destination: 'Faça o retorno sentido {destination}', + }, + }, + notification: { + default: { + default: 'Continue {modifier}', + name: 'Continue {modifier} em {way_name}', + destination: 'Continue {modifier} sentido {destination}', + }, + uturn: { + default: 'Faça o retorno', + name: 'Faça o retorno em {way_name}', + destination: 'Faça o retorno sentido {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Pegue a rampa', + name: 'Pegue a rampa em {way_name}', + destination: 'Pegue a rampa sentido {destination}', + exit: 'Pegue a saída {exit}', + exit_destination: 'Pegue a saída {exit} em direção à {destination}', + }, + left: { + default: 'Pegue a rampa à esquerda', + name: 'Pegue a rampa à esquerda em {way_name}', + destination: 'Pegue a rampa à esquerda sentido {destination}', + exit: 'Pegue a saída {exit} à esquerda', + exit_destination: 'Pegue a saída {exit} à esquerda em direção à {destination}', + }, + right: { + default: 'Pegue a rampa à direita', + name: 'Pegue a rampa à direita em {way_name}', + destination: 'Pegue a rampa à direita sentido {destination}', + exit: 'Pegue a saída {exit} à direita', + exit_destination: 'Pegue a saída {exit} à direita em direção à {destination}', + }, + 'sharp left': { + default: 'Pegue a rampa à esquerda', + name: 'Pegue a rampa à esquerda em {way_name}', + destination: 'Pegue a rampa à esquerda sentido {destination}', + exit: 'Pegue a saída {exit} à esquerda', + exit_destination: 'Pegue a saída {exit} à esquerda em direção à {destination}', + }, + 'sharp right': { + default: 'Pegue a rampa à direita', + name: 'Pegue a rampa à direita em {way_name}', + destination: 'Pegue a rampa à direita sentido {destination}', + exit: 'Pegue a saída {exit} à direita', + exit_destination: 'Pegue a saída {exit} à direita em direção à {destination}', + }, + 'slight left': { + default: 'Pegue a rampa à esquerda', + name: 'Pegue a rampa à esquerda em {way_name}', + destination: 'Pegue a rampa à esquerda sentido {destination}', + exit: 'Pegue a saída {exit} à esquerda', + exit_destination: 'Pegue a saída {exit} à esquerda em direção à {destination}', + }, + 'slight right': { + default: 'Pegue a rampa à direita', + name: 'Pegue a rampa à direita em {way_name}', + destination: 'Pegue a rampa à direita sentido {destination}', + exit: 'Pegue a saída {exit} à direita', + exit_destination: 'Pegue a saída {exit} à direita em direção à {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Pegue a rampa', + name: 'Pegue a rampa em {way_name}', + destination: 'Pegue a rampa sentido {destination}', + }, + left: { + default: 'Pegue a rampa à esquerda', + name: 'Pegue a rampa à esquerda em {way_name}', + destination: 'Pegue a rampa à esquerda sentido {destination}', + }, + right: { + default: 'Pegue a rampa à direita', + name: 'Pegue a rampa à direita em {way_name}', + destination: 'Pegue a rampa à direita sentid {destination}', + }, + 'sharp left': { + default: 'Pegue a rampa à esquerda', + name: 'Pegue a rampa à esquerda em {way_name}', + destination: 'Pegue a rampa à esquerda sentido {destination}', + }, + 'sharp right': { + default: 'Pegue a rampa à direita', + name: 'Pegue a rampa à direita em {way_name}', + destination: 'Pegue a rampa à direita sentido {destination}', + }, + 'slight left': { + default: 'Pegue a rampa à esquerda', + name: 'Pegue a rampa à esquerda em {way_name}', + destination: 'Pegue a rampa à esquerda sentido {destination}', + }, + 'slight right': { + default: 'Pegue a rampa à direita', + name: 'Pegue a rampa à direita em {way_name}', + destination: 'Pegue a rampa à direita sentido {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Entre na rotatória', + name: 'Entre na rotatória e saia na {way_name}', + destination: 'Entre na rotatória e saia sentido {destination}', + }, + name: { + default: 'Entre em {rotary_name}', + name: 'Entre em {rotary_name} e saia em {way_name}', + destination: 'Entre em {rotary_name} e saia sentido {destination}', + }, + exit: { + default: 'Entre na rotatória e pegue a {exit_number} saída', + name: 'Entre na rotatória e pegue a {exit_number} saída na {way_name}', + destination: + 'Entre na rotatória e pegue a {exit_number} saída sentido {destination}', + }, + name_exit: { + default: 'Entre em {rotary_name} e saia na {exit_number} saída', + name: 'Entre em {rotary_name} e saia na {exit_number} saída em {way_name}', + destination: + 'Entre em {rotary_name} e saia na {exit_number} saída sentido {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Entre na rotatória e pegue a {exit_number} saída', + name: 'Entre na rotatória e pegue a {exit_number} saída na {way_name}', + destination: + 'Entre na rotatória e pegue a {exit_number} saída sentido {destination}', + }, + default: { + default: 'Entre na rotatória', + name: 'Entre na rotatória e saia na {way_name}', + destination: 'Entre na rotatória e saia sentido {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Siga {modifier}', + name: 'Siga {modifier} em {way_name}', + destination: 'Siga {modifier} sentido {destination}', + }, + left: { + default: 'Vire à esquerda', + name: 'Vire à esquerda em {way_name}', + destination: 'Vire à esquerda sentido {destination}', + }, + right: { + default: 'Vire à direita', + name: 'Vire à direita em {way_name}', + destination: 'Vire à direita sentido {destination}', + }, + straight: { + default: 'Continue em frente', + name: 'Continue em frente em {way_name}', + destination: 'Continue em frente sentido {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Saia da rotatória', + name: 'Exit the traffic circle onto {way_name}', + destination: 'Exit the traffic circle towards {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Saia da rotatória', + name: 'Exit the traffic circle onto {way_name}', + destination: 'Exit the traffic circle towards {destination}', + }, + }, + turn: { + default: { + default: 'Siga {modifier}', + name: 'Siga {modifier} em {way_name}', + destination: 'Siga {modifier} sentido {destination}', + }, + left: { + default: 'Vire à esquerda', + name: 'Vire à esquerda em {way_name}', + destination: 'Vire à esquerda sentido {destination}', + }, + right: { + default: 'Vire à direita', + name: 'Vire à direita em {way_name}', + destination: 'Vire à direita sentido {destination}', + }, + straight: { + default: 'Siga em frente', + name: 'Siga em frente em {way_name}', + destination: 'Siga em frente sentido {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Continue em frente', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 40: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1º', + 2: '2º', + 3: '3º', + 4: '4º', + 5: '5º', + 6: '6º', + 7: '7º', + 8: '8º', + 9: '9º', + 10: '10º', + }, + direction: { + north: 'norte', + northeast: 'nordeste', + east: 'este', + southeast: 'sudeste', + south: 'sul', + southwest: 'sudoeste', + west: 'oeste', + northwest: 'noroeste', + }, + modifier: { + left: 'à esquerda', + right: 'à direita', + 'sharp left': 'acentuadamente à esquerda', + 'sharp right': 'acentuadamente à direita', + 'slight left': 'ligeiramente à esquerda', + 'slight right': 'ligeiramente à direita', + straight: 'em frente', + uturn: 'inversão de marcha', + }, + lanes: { + xo: 'Mantenha-se à direita', + ox: 'Mantenha-se à esquerda', + xox: 'Mantenha-se ao meio', + oxo: 'Mantenha-se à esquerda ou à direita', + }, + }, + modes: { + ferry: { + default: 'Apanhe o ferry', + name: 'Apanhe o ferry {way_name}', + destination: 'Apanhe o ferry para {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, depois, a {distance}, {instruction_two}', + 'two linked': '{instruction_one}, depois {instruction_two}', + 'one in distance': 'A {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'saída {exit}', + }, + arrive: { + default: { + default: 'Chegou ao seu {nth} destino', + upcoming: 'Está a chegar ao seu {nth} destino', + short: 'Chegou', + 'short-upcoming': 'Está a chegar', + named: 'Chegou a {waypoint_name}', + }, + left: { + default: 'Chegou ao seu {nth} destino, à esquerda', + upcoming: 'Está a chegar ao seu {nth} destino, à esquerda', + short: 'Chegou', + 'short-upcoming': 'Está a chegar', + named: 'Chegou a {waypoint_name}, à esquerda', + }, + right: { + default: 'Chegou ao seu {nth} destino, à direita', + upcoming: 'Está a chegar ao seu {nth} destino, à direita', + short: 'Chegou', + 'short-upcoming': 'Está a chegar', + named: 'Chegou a {waypoint_name}, à direita', + }, + 'sharp left': { + default: 'Chegou ao seu {nth} destino, à esquerda', + upcoming: 'Está a chegar ao seu {nth} destino, à esquerda', + short: 'Chegou', + 'short-upcoming': 'Está a chegar', + named: 'Chegou a {waypoint_name}, à esquerda', + }, + 'sharp right': { + default: 'Chegou ao seu {nth} destino, à direita', + upcoming: 'Está a chegar ao seu {nth} destino, à direita', + short: 'Chegou', + 'short-upcoming': 'Está a chegar', + named: 'Chegou a {waypoint_name}, à direita', + }, + 'slight right': { + default: 'Chegou ao seu {nth} destino, à direita', + upcoming: 'Está a chegar ao seu {nth} destino, à direita', + short: 'Chegou', + 'short-upcoming': 'Está a chegar', + named: 'Chegou a {waypoint_name}, à direita', + }, + 'slight left': { + default: 'Chegou ao seu {nth} destino, à esquerda', + upcoming: 'Está a chegar ao seu {nth} destino, à esquerda', + short: 'Chegou', + 'short-upcoming': 'Está a chegar', + named: 'Chegou a {waypoint_name}, à esquerda', + }, + straight: { + default: 'Chegou ao seu {nth} destino, em frente', + upcoming: 'Está a chegar ao seu {nth} destino, em frente', + short: 'Chegou', + 'short-upcoming': 'Está a chegar', + named: 'Chegou a {waypoint_name}, em frente', + }, + }, + continue: { + default: { + default: 'Vire {modifier}', + name: 'Vire {modifier} para se manter em {way_name}', + destination: 'Vire {modifier} em direção a {destination}', + exit: 'Vire {modifier} para {way_name}', + }, + straight: { + default: 'Continue em frente', + name: 'Continue em frente para se manter em {way_name}', + destination: 'Continue em direção a {destination}', + distance: 'Continue em frente por {distance}', + namedistance: 'Continue em {way_name} por {distance}', + }, + 'sharp left': { + default: 'Vire acentuadamente à esquerda', + name: 'Vire acentuadamente à esquerda para se manter em {way_name}', + destination: 'Vire acentuadamente à esquerda em direção a {destination}', + }, + 'sharp right': { + default: 'Vire acentuadamente à direita', + name: 'Vire acentuadamente à direita para se manter em {way_name}', + destination: 'Vire acentuadamente à direita em direção a {destination}', + }, + 'slight left': { + default: 'Vire ligeiramente à esquerda', + name: 'Vire ligeiramente à esquerda para se manter em {way_name}', + destination: 'Vire ligeiramente à esquerda em direção a {destination}', + }, + 'slight right': { + default: 'Vire ligeiramente à direita', + name: 'Vire ligeiramente à direita para se manter em {way_name}', + destination: 'Vire ligeiramente à direita em direção a {destination}', + }, + uturn: { + default: 'Faça inversão de marcha', + name: 'Faça inversão de marcha e continue em {way_name}', + destination: 'Faça inversão de marcha em direção a {destination}', + }, + }, + depart: { + default: { + default: 'Dirija-se para {direction}', + name: 'Dirija-se para {direction} em {way_name}', + namedistance: 'Dirija-se para {direction} em {way_name} por {distance}', + }, + }, + 'end of road': { + default: { + default: 'Vire {modifier}', + name: 'Vire {modifier} para {way_name}', + destination: 'Vire {modifier} em direção a {destination}', + }, + straight: { + default: 'Continue em frente', + name: 'Continue em frente para {way_name}', + destination: 'Continue em frente em direção a {destination}', + }, + uturn: { + default: 'No final da estrada faça uma inversão de marcha', + name: 'No final da estrada faça uma inversão de marcha para {way_name} ', + destination: + 'No final da estrada faça uma inversão de marcha em direção a {destination}', + }, + }, + fork: { + default: { + default: 'Na bifurcação mantenha-se {modifier}', + name: 'Mantenha-se {modifier} para {way_name}', + destination: 'Mantenha-se {modifier} em direção a {destination}', + }, + 'slight left': { + default: 'Na bifurcação mantenha-se à esquerda', + name: 'Mantenha-se à esquerda para {way_name}', + destination: 'Mantenha-se à esquerda em direção a {destination}', + }, + 'slight right': { + default: 'Na bifurcação mantenha-se à direita', + name: 'Mantenha-se à direita para {way_name}', + destination: 'Mantenha-se à direita em direção a {destination}', + }, + 'sharp left': { + default: 'Na bifurcação vire acentuadamente à esquerda', + name: 'Vire acentuadamente à esquerda para {way_name}', + destination: 'Vire acentuadamente à esquerda em direção a {destination}', + }, + 'sharp right': { + default: 'Na bifurcação vire acentuadamente à direita', + name: 'Vire acentuadamente à direita para {way_name}', + destination: 'Vire acentuadamente à direita em direção a {destination}', + }, + uturn: { + default: 'Faça inversão de marcha', + name: 'Faça inversão de marcha para {way_name}', + destination: 'Faça inversão de marcha em direção a {destination}', + }, + }, + merge: { + default: { + default: 'Una-se ao tráfego {modifier}', + name: 'Una-se ao tráfego {modifier} para {way_name}', + destination: 'Una-se ao tráfego {modifier} em direção a {destination}', + }, + straight: { + default: 'Una-se ao tráfego', + name: ' Una-se ao tráfego para {way_name}', + destination: 'Una-se ao tráfego em direção a {destination}', + }, + 'slight left': { + default: 'Una-se ao tráfego à esquerda', + name: 'Una-se ao tráfego à esquerda para {way_name}', + destination: 'Una-se ao tráfego à esquerda em direção a {destination}', + }, + 'slight right': { + default: 'Una-se ao tráfego à direita', + name: 'Una-se ao tráfego à direita para {way_name}', + destination: 'Una-se ao tráfego à direita em direção a {destination}', + }, + 'sharp left': { + default: 'Una-se ao tráfego à esquerda', + name: 'Una-se ao tráfego à esquerda para {way_name}', + destination: 'Una-se ao tráfego à esquerda em direção a {destination}', + }, + 'sharp right': { + default: 'Una-se ao tráfego à direita', + name: 'Una-se ao tráfego à direita para {way_name}', + destination: 'Una-se ao tráfego à direita em direção a {destination}', + }, + uturn: { + default: 'Faça inversão de marcha', + name: 'Faça inversão de marcha para {way_name}', + destination: 'Faça inversão de marcha em direção a {destination}', + }, + }, + 'new name': { + default: { + default: 'Continue {modifier}', + name: 'Continue {modifier} para {way_name}', + destination: 'Continue {modifier} em direção a {destination}', + }, + straight: { + default: 'Continue em frente', + name: 'Continue para {way_name}', + destination: 'Continue em direção a {destination}', + }, + 'sharp left': { + default: 'Vire acentuadamente à esquerda', + name: 'Vire acentuadamente à esquerda para {way_name}', + destination: 'Vire acentuadamente à esquerda em direção a{destination}', + }, + 'sharp right': { + default: 'Vire acentuadamente à direita', + name: 'Vire acentuadamente à direita para {way_name}', + destination: 'Vire acentuadamente à direita em direção a {destination}', + }, + 'slight left': { + default: 'Continue ligeiramente à esquerda', + name: 'Continue ligeiramente à esquerda para {way_name}', + destination: 'Continue ligeiramente à esquerda em direção a {destination}', + }, + 'slight right': { + default: 'Continue ligeiramente à direita', + name: 'Continue ligeiramente à direita para {way_name}', + destination: 'Continue ligeiramente à direita em direção a {destination}', + }, + uturn: { + default: 'Faça inversão de marcha', + name: 'Faça inversão de marcha para {way_name}', + destination: 'Faça inversão de marcha em direção a {destination}', + }, + }, + notification: { + default: { + default: 'Continue {modifier}', + name: 'Continue {modifier} para {way_name}', + destination: 'Continue {modifier} em direção a {destination}', + }, + uturn: { + default: 'Faça inversão de marcha', + name: 'Faça inversão de marcha para {way_name}', + destination: 'Faça inversão de marcha em direção a {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Saia na saída', + name: 'Saia na saída para {way_name}', + destination: 'Saia na saída em direção a {destination}', + exit: 'Saia na saída {exit}', + exit_destination: 'Saia na saída {exit} em direção a {destination}', + }, + left: { + default: 'Saia na saída à esquerda', + name: 'Saia na saída à esquerda para {way_name}', + destination: 'Saia na saída à esquerda em direção a {destination}', + exit: 'Saia na saída {exit} à esquerda', + exit_destination: 'Saia na saída {exit} à esquerda em direção a {destination}', + }, + right: { + default: 'Saia na saída à direita', + name: 'Saia na saída à direita para {way_name}', + destination: 'Saia na saída à direita em direção a {destination}', + exit: 'Saia na saída {exit} à direita', + exit_destination: 'Saia na saída {exit} à direita em direção a {destination}', + }, + 'sharp left': { + default: 'Saia na saída à esquerda', + name: 'Saia na saída à esquerda para {way_name}', + destination: 'Saia na saída à esquerda em direção a {destination}', + exit: 'Saia na saída {exit} à esquerda', + exit_destination: 'Saia na saída {exit} à esquerda em direção a {destination}', + }, + 'sharp right': { + default: 'Saia na saída à direita', + name: 'Saia na saída à direita para {way_name}', + destination: 'Saia na saída à direita em direção a {destination}', + exit: 'Saia na saída {exit} à direita', + exit_destination: 'Saia na saída {exit} à direita em direção a {destination}', + }, + 'slight left': { + default: 'Saia na saída à esquerda', + name: 'Saia na saída à esquerda para {way_name}', + destination: 'Saia na saída à esquerda em direção a {destination}', + exit: 'Saia na saída {exit} à esquerda', + exit_destination: 'Saia na saída {exit} à esquerda em direção a {destination}', + }, + 'slight right': { + default: 'Saia na saída à direita', + name: 'Saia na saída à direita para {way_name}', + destination: 'Saia na saída à direita em direção a {destination}', + exit: 'Saia na saída {exit} à direita', + exit_destination: 'Saia na saída {exit} à direita em direção a {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Saia na saída', + name: 'Saia na saída para {way_name}', + destination: 'Saia na saída em direção a {destination}', + }, + left: { + default: 'Saia na saída à esquerda', + name: 'Saia na saída à esquerda para {way_name}', + destination: 'Saia na saída à esquerda em direção a {destination}', + }, + right: { + default: 'Saia na saída à direita', + name: 'Saia na saída à direita para {way_name}', + destination: 'Saia na saída à direita em direção a {destination}', + }, + 'sharp left': { + default: 'Saia na saída à esquerda', + name: 'Saia na saída à esquerda para {way_name}', + destination: 'Saia na saída à esquerda em direção a {destination}', + }, + 'sharp right': { + default: 'Saia na saída à direita', + name: 'Saia na saída à direita para {way_name}', + destination: 'Saia na saída à direita em direção a {destination}', + }, + 'slight left': { + default: 'Saia na saída à esquerda', + name: 'Saia na saída à esquerda para {way_name}', + destination: 'Saia na saída à esquerda em direção a {destination}', + }, + 'slight right': { + default: 'Saia na saída à direita', + name: 'Saia na saída à direita para {way_name}', + destination: 'Saia na saída à direita em direção a {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Entre na rotunda', + name: 'Entre na rotunda e saia para {way_name}', + destination: 'Entre na rotunda e saia em direção a {destination}', + }, + name: { + default: 'Entre em {rotary_name}', + name: 'Entre em {rotary_name} e saia para {way_name}', + destination: 'Entre em {rotary_name} e saia em direção a {destination}', + }, + exit: { + default: 'Entre na rotunda e saia na saída {exit_number}', + name: 'Entre na rotunda e saia na saída {exit_number} para {way_name}', + destination: + 'Entre na rotunda e saia na saída {exit_number} em direção a {destination}', + }, + name_exit: { + default: 'Entre em {rotary_name} e saia na saída {exit_number}', + name: 'Entre em {rotary_name} e saia na saída {exit_number} para {way_name}', + destination: + 'Entre em{rotary_name} e saia na saída {exit_number} em direção a {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Entre na rotunda e saia na saída {exit_number}', + name: 'Entre na rotunda e saia na saída {exit_number} para {way_name}', + destination: + 'Entre na rotunda e saia na saída {exit_number} em direção a {destination}', + }, + default: { + default: 'Entre na rotunda', + name: 'Entre na rotunda e saia para {way_name}', + destination: 'Entre na rotunda e saia em direção a {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Siga {modifier}', + name: 'Siga {modifier} para {way_name}', + destination: 'Siga {modifier} em direção a {destination}', + }, + left: { + default: 'Vire à esquerda', + name: 'Vire à esquerda para {way_name}', + destination: 'Vire à esquerda em direção a {destination}', + }, + right: { + default: 'Vire à direita', + name: 'Vire à direita para {way_name}', + destination: 'Vire à direita em direção a {destination}', + }, + straight: { + default: 'Continue em frente', + name: 'Continue em frente para {way_name}', + destination: 'Continue em frente em direção a {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Saia da rotunda', + name: 'Saia da rotunda para {way_name}', + destination: 'Saia da rotunda em direção a {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Saia da rotunda', + name: 'Saia da rotunda para {way_name}', + destination: 'Saia da rotunda em direção a {destination}', + }, + }, + turn: { + default: { + default: 'Siga {modifier}', + name: 'Siga {modifier} para{way_name}', + destination: 'Siga {modifier} em direção a {destination}', + }, + left: { + default: 'Vire à esquerda', + name: 'Vire à esquerda para {way_name}', + destination: 'Vire à esquerda em direção a {destination}', + }, + right: { + default: 'Vire à direita', + name: 'Vire à direita para {way_name}', + destination: 'Vire à direita em direção a {destination}', + }, + straight: { + default: 'Vá em frente', + name: 'Vá em frente para {way_name}', + destination: 'Vá em frente em direção a {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Continue em frente', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 41: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: 'prima', + 2: 'a doua', + 3: 'a treia', + 4: 'a patra', + 5: 'a cincea', + 6: 'a șasea', + 7: 'a șaptea', + 8: 'a opta', + 9: 'a noua', + 10: 'a zecea', + }, + direction: { + north: 'nord', + northeast: 'nord-est', + east: 'est', + southeast: 'sud-est', + south: 'sud', + southwest: 'sud-vest', + west: 'vest', + northwest: 'nord-vest', + }, + modifier: { + left: 'stânga', + right: 'dreapta', + 'sharp left': 'puternic stânga', + 'sharp right': 'puternic dreapta', + 'slight left': 'ușor stânga', + 'slight right': 'ușor dreapta', + straight: 'înainte', + uturn: 'întoarcere', + }, + lanes: { + xo: 'Țineți stânga', + ox: 'Țineți dreapta', + xox: 'Țineți pe mijloc', + oxo: 'Țineți pe laterale', + }, + }, + modes: { + ferry: { + default: 'Luați feribotul', + name: 'Luați feribotul {way_name}', + destination: 'Luați feribotul spre {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, apoi în {distance}, {instruction_two}', + 'two linked': '{instruction_one} apoi {instruction_two}', + 'one in distance': 'În {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'ieșirea {exit}', + }, + arrive: { + default: { + default: 'Ați ajuns la {nth} destinație', + upcoming: 'Ați ajuns la {nth} destinație', + short: 'Ați ajuns', + 'short-upcoming': 'Veți ajunge', + named: 'Ați ajuns {waypoint_name}', + }, + left: { + default: 'Ați ajuns la {nth} destinație, pe stânga', + upcoming: 'Ați ajuns la {nth} destinație, pe stânga', + short: 'Ați ajuns', + 'short-upcoming': 'Veți ajunge', + named: 'Ați ajuns {waypoint_name}, pe stânga', + }, + right: { + default: 'Ați ajuns la {nth} destinație, pe dreapta', + upcoming: 'Ați ajuns la {nth} destinație, pe dreapta', + short: 'Ați ajuns', + 'short-upcoming': 'Veți ajunge', + named: 'Ați ajuns {waypoint_name}, pe dreapta', + }, + 'sharp left': { + default: 'Ați ajuns la {nth} destinație, pe stânga', + upcoming: 'Ați ajuns la {nth} destinație, pe stânga', + short: 'Ați ajuns', + 'short-upcoming': 'Veți ajunge', + named: 'Ați ajuns {waypoint_name}, pe stânga', + }, + 'sharp right': { + default: 'Ați ajuns la {nth} destinație, pe dreapta', + upcoming: 'Ați ajuns la {nth} destinație, pe dreapta', + short: 'Ați ajuns', + 'short-upcoming': 'Veți ajunge', + named: 'Ați ajuns {waypoint_name}, pe dreapta', + }, + 'slight right': { + default: 'Ați ajuns la {nth} destinație, pe dreapta', + upcoming: 'Ați ajuns la {nth} destinație, pe dreapta', + short: 'Ați ajuns', + 'short-upcoming': 'Veți ajunge', + named: 'Ați ajuns {waypoint_name}, pe dreapta', + }, + 'slight left': { + default: 'Ați ajuns la {nth} destinație, pe stânga', + upcoming: 'Ați ajuns la {nth} destinație, pe stânga', + short: 'Ați ajuns', + 'short-upcoming': 'Veți ajunge', + named: 'Ați ajuns {waypoint_name}, pe stânga', + }, + straight: { + default: 'Ați ajuns la {nth} destinație, în față', + upcoming: 'Ați ajuns la {nth} destinație, în față', + short: 'Ați ajuns', + 'short-upcoming': 'Veți ajunge', + named: 'Ați ajuns {waypoint_name}, în față', + }, + }, + continue: { + default: { + default: 'Virați {modifier}', + name: 'Virați {modifier} pe {way_name}', + destination: 'Virați {modifier} spre {destination}', + exit: 'Virați {modifier} pe {way_name}', + }, + straight: { + default: 'Mergeți înainte', + name: 'Mergeți înainte pe {way_name}', + destination: 'Continuați spre {destination}', + distance: 'Mergeți înainte pentru {distance}', + namedistance: 'Continuați pe {way_name} pentru {distance}', + }, + 'sharp left': { + default: 'Virați puternic la stânga', + name: 'Virați puternic la stânga pe {way_name}', + destination: 'Virați puternic la stânga spre {destination}', + }, + 'sharp right': { + default: 'Virați puternic la dreapta', + name: 'Virați puternic la dreapta pe {way_name}', + destination: 'Virați puternic la dreapta spre {destination}', + }, + 'slight left': { + default: 'Virați ușor la stânga', + name: 'Virați ușor la stânga pe {way_name}', + destination: 'Virați ușor la stânga spre {destination}', + }, + 'slight right': { + default: 'Virați ușor la dreapta', + name: 'Virați ușor la dreapta pe {way_name}', + destination: 'Virați ușor la dreapta spre {destination}', + }, + uturn: { + default: 'Întoarceți-vă', + name: 'Întoarceți-vă și continuați pe {way_name}', + destination: 'Întoarceți-vă spre {destination}', + }, + }, + depart: { + default: { + default: 'Mergeți spre {direction}', + name: 'Mergeți spre {direction} pe {way_name}', + namedistance: 'Mergeți spre {direction} pe {way_name} pentru {distance}', + }, + }, + 'end of road': { + default: { + default: 'Virați {modifier}', + name: 'Virați {modifier} pe {way_name}', + destination: 'Virați {modifier} spre {destination}', + }, + straight: { + default: 'Continuați înainte', + name: 'Continuați înainte pe {way_name}', + destination: 'Continuați înainte spre {destination}', + }, + uturn: { + default: 'Întoarceți-vă la sfârșitul drumului', + name: 'Întoarceți-vă pe {way_name} la sfârșitul drumului', + destination: 'Întoarceți-vă spre {destination} la sfârșitul drumului', + }, + }, + fork: { + default: { + default: 'Țineți {modifier} la bifurcație', + name: 'Țineți {modifier} la bifurcație pe {way_name}', + destination: 'Țineți {modifier} la bifurcație spre {destination}', + }, + 'slight left': { + default: 'Țineți pe stânga la bifurcație', + name: 'Țineți pe stânga la bifurcație pe {way_name}', + destination: 'Țineți pe stânga la bifurcație spre {destination}', + }, + 'slight right': { + default: 'Țineți pe dreapta la bifurcație', + name: 'Țineți pe dreapta la bifurcație pe {way_name}', + destination: 'Țineți pe dreapta la bifurcație spre {destination}', + }, + 'sharp left': { + default: 'Virați puternic stânga la bifurcație', + name: 'Virați puternic stânga la bifurcație pe {way_name}', + destination: 'Virați puternic stânga la bifurcație spre {destination}', + }, + 'sharp right': { + default: 'Virați puternic dreapta la bifurcație', + name: 'Virați puternic dreapta la bifurcație pe {way_name}', + destination: 'Virați puternic dreapta la bifurcație spre {destination}', + }, + uturn: { + default: 'Întoarceți-vă', + name: 'Întoarceți-vă pe {way_name}', + destination: 'Întoarceți-vă spre {destination}', + }, + }, + merge: { + default: { + default: 'Intrați în {modifier}', + name: 'Intrați în {modifier} pe {way_name}', + destination: 'Intrați în {modifier} spre {destination}', + }, + straight: { + default: 'Intrați', + name: 'Intrați pe {way_name}', + destination: 'Intrați spre {destination}', + }, + 'slight left': { + default: 'Intrați în stânga', + name: 'Intrați în stânga pe {way_name}', + destination: 'Intrați în stânga spre {destination}', + }, + 'slight right': { + default: 'Intrați în dreapta', + name: 'Intrați în dreapta pe {way_name}', + destination: 'Intrați în dreapta spre {destination}', + }, + 'sharp left': { + default: 'Intrați în stânga', + name: 'Intrați în stânga pe {way_name}', + destination: 'Intrați în stânga spre {destination}', + }, + 'sharp right': { + default: 'Intrați în dreapta', + name: 'Intrați în dreapta pe {way_name}', + destination: 'Intrați în dreapta spre {destination}', + }, + uturn: { + default: 'Întoarceți-vă', + name: 'Întoarceți-vă pe {way_name}', + destination: 'Întoarceți-vă spre {destination}', + }, + }, + 'new name': { + default: { + default: 'Continuați {modifier}', + name: 'Continuați {modifier} pe {way_name}', + destination: 'Continuați {modifier} spre {destination}', + }, + straight: { + default: 'Continuați înainte', + name: 'Continuați pe {way_name}', + destination: 'Continuați spre {destination}', + }, + 'sharp left': { + default: 'Virați puternic la stânga', + name: 'Virați puternic la stânga pe {way_name}', + destination: 'Virați puternic la stânga spre {destination}', + }, + 'sharp right': { + default: 'Virați puternic la dreapta', + name: 'Virați puternic la dreapta pe {way_name}', + destination: 'Virați puternic la dreapta spre {destination}', + }, + 'slight left': { + default: 'Continuați ușor la stânga', + name: 'Continuați ușor la stânga pe {way_name}', + destination: 'Continuați ușor la stânga spre {destination}', + }, + 'slight right': { + default: 'Continuați ușor la dreapta', + name: 'Continuați ușor la dreapta pe {way_name}', + destination: 'Continuați ușor la dreapta spre {destination}', + }, + uturn: { + default: 'Întoarceți-vă', + name: 'Întoarceți-vă pe {way_name}', + destination: 'Întoarceți-vă spre {destination}', + }, + }, + notification: { + default: { + default: 'Continuați {modifier}', + name: 'Continuați {modifier} pe {way_name}', + destination: 'Continuați {modifier} spre {destination}', + }, + uturn: { + default: 'Întoarceți-vă', + name: 'Întoarceți-vă pe {way_name}', + destination: 'Întoarceți-vă spre {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Urmați breteaua', + name: 'Urmați breteaua pe {way_name}', + destination: 'Urmați breteaua spre {destination}', + exit: 'Urmați ieșirea {exit}', + exit_destination: 'Urmați ieșirea {exit} spre {destination}', + }, + left: { + default: 'Urmați breteaua din stânga', + name: 'Urmați breteaua din stânga pe {way_name}', + destination: 'Urmați breteaua din stânga spre {destination}', + exit: 'Urmați ieșirea {exit} pe stânga', + exit_destination: 'Urmați ieșirea {exit} pe stânga spre {destination}', + }, + right: { + default: 'Urmați breteaua din dreapta', + name: 'Urmați breteaua din dreapta pe {way_name}', + destination: 'Urmați breteaua din dreapta spre {destination}', + exit: 'Urmați ieșirea {exit} pe dreapta', + exit_destination: 'Urmați ieșirea {exit} pe dreapta spre {destination}', + }, + 'sharp left': { + default: 'Urmați breteaua din stânga', + name: 'Urmați breteaua din stânga pe {way_name}', + destination: 'Urmați breteaua din stânga spre {destination}', + exit: 'Urmați ieșirea {exit} pe stânga', + exit_destination: 'Urmați ieșirea {exit} pe stânga spre {destination}', + }, + 'sharp right': { + default: 'Urmați breteaua din dreapta', + name: 'Urmați breteaua din dreapta pe {way_name}', + destination: 'Urmați breteaua din dreapta spre {destination}', + exit: 'Urmați ieșirea {exit} pe dreapta', + exit_destination: 'Urmați ieșirea {exit} pe dreapta spre {destination}', + }, + 'slight left': { + default: 'Urmați breteaua din stânga', + name: 'Urmați breteaua din stânga pe {way_name}', + destination: 'Urmați breteaua din stânga spre {destination}', + exit: 'Urmați ieșirea {exit} pe stânga', + exit_destination: 'Urmați ieșirea {exit} pe stânga spre {destination}', + }, + 'slight right': { + default: 'Urmați breteaua din dreapta', + name: 'Urmați breteaua din dreapta pe {way_name}', + destination: 'Urmați breteaua din dreapta spre {destination}', + exit: 'Urmați ieșirea {exit} pe dreapta', + exit_destination: 'Urmați ieșirea {exit} pe dreapta spre {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Urmați breteaua de intrare', + name: 'Urmați breteaua pe {way_name}', + destination: 'Urmați breteaua spre {destination}', + }, + left: { + default: 'Urmați breteaua din stânga', + name: 'Urmați breteaua din stânga pe {way_name}', + destination: 'Urmați breteaua din stânga spre {destination}', + }, + right: { + default: 'Urmați breteaua din dreapta', + name: 'Urmați breteaua din dreapta pe {way_name}', + destination: 'Urmați breteaua din dreapta spre {destination}', + }, + 'sharp left': { + default: 'Urmați breteaua din stânga', + name: 'Urmați breteaua din stânga pe {way_name}', + destination: 'Urmați breteaua din stânga spre {destination}', + }, + 'sharp right': { + default: 'Urmați breteaua din dreapta', + name: 'Urmați breteaua din dreapta pe {way_name}', + destination: 'Urmați breteaua din dreapta spre {destination}', + }, + 'slight left': { + default: 'Urmați breteaua din stânga', + name: 'Urmați breteaua din stânga pe {way_name}', + destination: 'Urmați breteaua din stânga spre {destination}', + }, + 'slight right': { + default: 'Urmați breteaua din dreapta', + name: 'Urmați breteaua din dreapta pe {way_name}', + destination: 'Urmați breteaua din dreapta spre {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Intrați în sensul giratoriu', + name: 'Intrați în sensul giratoriu și ieșiți pe {way_name}', + destination: 'Intrați în sensul giratoriu și ieșiți spre {destination}', + }, + name: { + default: 'Intrați în {rotary_name}', + name: 'Intrați în {rotary_name} și ieșiți pe {way_name}', + destination: 'Intrați în {rotary_name} și ieșiți spre {destination}', + }, + exit: { + default: 'Intrați în sensul giratoriu și urmați {exit_number} ieșire', + name: 'Intrați în sensul giratoriu și urmați {exit_number} ieșire pe {way_name}', + destination: + 'Intrați în sensul giratoriu și urmați {exit_number} ieșire spre {destination}', + }, + name_exit: { + default: 'Intrați în {rotary_name} și urmați {exit_number} ieșire', + name: 'Intrați în {rotary_name} și urmați {exit_number} ieșire pe {way_name}', + destination: + 'Intrați în {rotary_name} și urmați {exit_number} ieșire spre {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Intrați în sensul giratoriu și urmați {exit_number} ieșire', + name: 'Intrați în sensul giratoriu și urmați {exit_number} ieșire pe {way_name}', + destination: + 'Intrați în sensul giratoriu și urmați {exit_number} ieșire spre {destination}', + }, + default: { + default: 'Intrați în sensul giratoriu', + name: 'Intrați în sensul giratoriu și ieșiți pe {way_name}', + destination: 'Intrați în sensul giratoriu și ieșiți spre {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'La sensul giratoriu virați {modifier}', + name: 'La sensul giratoriu virați {modifier} pe {way_name}', + destination: 'La sensul giratoriu virați {modifier} spre {destination}', + }, + left: { + default: 'La sensul giratoriu virați la stânga', + name: 'La sensul giratoriu virați la stânga pe {way_name}', + destination: 'La sensul giratoriu virați la stânga spre {destination}', + }, + right: { + default: 'La sensul giratoriu virați la dreapta', + name: 'La sensul giratoriu virați la dreapta pe {way_name}', + destination: 'La sensul giratoriu virați la dreapta spre {destination}', + }, + straight: { + default: 'La sensul giratoriu continuați înainte', + name: 'La sensul giratoriu continuați înainte pe {way_name}', + destination: 'La sensul giratoriu continuați înainte spre {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Ieșiți din sensul giratoriu', + name: 'Ieșiți din sensul giratoriu pe {way_name}', + destination: 'Ieșiți din sensul giratoriu spre {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Ieșiți din sensul giratoriu', + name: 'Ieșiți din sensul giratoriu pe {way_name}', + destination: 'Ieșiți din sensul giratoriu spre {destination}', + }, + }, + turn: { + default: { + default: 'Virați {modifier}', + name: 'Virați {modifier} pe {way_name}', + destination: 'Virați {modifier} spre {destination}', + }, + left: { + default: 'Virați la stânga', + name: 'Virați la stânga pe {way_name}', + destination: 'Virați la stânga spre {destination}', + }, + right: { + default: 'Virați la dreapta', + name: 'Virați la dreapta pe {way_name}', + destination: 'Virați la dreapta spre {destination}', + }, + straight: { + default: 'Mergeți înainte', + name: 'Mergeți înainte pe {way_name}', + destination: 'Mergeți înainte spre {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Mergeți înainte', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 42: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: 'первый', + 2: 'второй', + 3: 'третий', + 4: 'четвёртый', + 5: 'пятый', + 6: 'шестой', + 7: 'седьмой', + 8: 'восьмой', + 9: 'девятый', + 10: 'десятый', + }, + direction: { + north: 'северном', + northeast: 'северо-восточном', + east: 'восточном', + southeast: 'юго-восточном', + south: 'южном', + southwest: 'юго-западном', + west: 'западном', + northwest: 'северо-западном', + }, + modifier: { + left: 'налево', + right: 'направо', + 'sharp left': 'налево', + 'sharp right': 'направо', + 'slight left': 'левее', + 'slight right': 'правее', + straight: 'прямо', + uturn: 'на разворот', + }, + lanes: { + xo: 'Держитесь правее', + ox: 'Держитесь левее', + xox: 'Держитесь посередине', + oxo: 'Держитесь слева или справа', + }, + }, + modes: { + ferry: { + default: 'Погрузитесь на паром', + name: 'Погрузитесь на паром {way_name}', + destination: 'Погрузитесь на паром в направлении {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, затем через {distance} {instruction_two}', + 'two linked': '{instruction_one}, затем {instruction_two}', + 'one in distance': 'Через {distance} {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'съезд {exit}', + }, + arrive: { + default: { + default: 'Вы прибыли в {nth} пункт назначения', + upcoming: 'Вы прибудете в {nth} пункт назначения', + short: 'Вы прибыли', + 'short-upcoming': 'Вы скоро прибудете', + named: 'Вы прибыли в пункт назначения, {waypoint_name}', + }, + left: { + default: 'Вы прибыли в {nth} пункт назначения, он находится слева', + upcoming: 'Вы прибудете в {nth} пункт назначения, он будет слева', + short: 'Вы прибыли', + 'short-upcoming': 'Вы скоро прибудете', + named: 'Вы прибыли в пункт назначения, {waypoint_name}, он находится слева', + }, + right: { + default: 'Вы прибыли в {nth} пункт назначения, он находится справа', + upcoming: 'Вы прибудете в {nth} пункт назначения, он будет справа', + short: 'Вы прибыли', + 'short-upcoming': 'Вы скоро прибудете', + named: 'Вы прибыли в пункт назначения, {waypoint_name}, он находится справа', + }, + 'sharp left': { + default: 'Вы прибыли в {nth} пункт назначения, он находится слева сзади', + upcoming: 'Вы прибудете в {nth} пункт назначения, он будет слева сзади', + short: 'Вы прибыли', + 'short-upcoming': 'Вы скоро прибудете', + named: 'Вы прибыли в пункт назначения, {waypoint_name}, он находится слева сзади', + }, + 'sharp right': { + default: 'Вы прибыли в {nth} пункт назначения, он находится справа сзади', + upcoming: 'Вы прибудете в {nth} пункт назначения, он будет справа сзади', + short: 'Вы прибыли', + 'short-upcoming': 'Вы скоро прибудете', + named: 'Вы прибыли в пункт назначения, {waypoint_name}, он находится справа сзади', + }, + 'slight right': { + default: 'Вы прибыли в {nth} пункт назначения, он находится справа впереди', + upcoming: 'Вы прибудете в {nth} пункт назначения, он будет справа впереди', + short: 'Вы прибыли', + 'short-upcoming': 'Вы скоро прибудете', + named: 'Вы прибыли в пункт назначения, {waypoint_name}, он находится справа впереди', + }, + 'slight left': { + default: 'Вы прибыли в {nth} пункт назначения, он находится слева впереди', + upcoming: 'Вы прибудете в {nth} пункт назначения, он будет слева впереди', + short: 'Вы прибыли', + 'short-upcoming': 'Вы скоро прибудете', + named: 'Вы прибыли в пункт назначения, {waypoint_name}, он находится слева впереди', + }, + straight: { + default: 'Вы прибыли в {nth} пункт назначения, он находится перед Вами', + upcoming: 'Вы прибудете в {nth} пункт назначения, он будет перед Вами', + short: 'Вы прибыли', + 'short-upcoming': 'Вы скоро прибудете', + named: 'Вы прибыли в пункт назначения, {waypoint_name}, он находится перед Вами', + }, + }, + continue: { + default: { + default: 'Двигайтесь {modifier}', + name: 'Двигайтесь {modifier} по {way_name:dative}', + destination: 'Двигайтесь {modifier} в направлении {destination}', + exit: 'Двигайтесь {modifier} на {way_name:accusative}', + }, + straight: { + default: 'Двигайтесь прямо', + name: 'Продолжите движение по {way_name:dative}', + destination: 'Продолжите движение в направлении {destination}', + distance: 'Двигайтесь прямо {distance}', + namedistance: 'Двигайтесь прямо {distance} по {way_name:dative}', + }, + 'sharp left': { + default: 'Резко поверните налево', + name: 'Резко поверните налево на {way_name:accusative}', + destination: 'Резко поверните налево в направлении {destination}', + }, + 'sharp right': { + default: 'Резко поверните направо', + name: 'Резко поверните направо на {way_name:accusative}', + destination: 'Резко поверните направо в направлении {destination}', + }, + 'slight left': { + default: 'Плавно поверните налево', + name: 'Плавно поверните налево на {way_name:accusative}', + destination: 'Плавно поверните налево в направлении {destination}', + }, + 'slight right': { + default: 'Плавно поверните направо', + name: 'Плавно поверните направо на {way_name:accusative}', + destination: 'Плавно поверните направо в направлении {destination}', + }, + uturn: { + default: 'Развернитесь', + name: 'Развернитесь и продолжите движение по {way_name:dative}', + destination: 'Развернитесь в направлении {destination}', + }, + }, + depart: { + default: { + default: 'Двигайтесь в {direction} направлении', + name: 'Двигайтесь в {direction} направлении по {way_name:dative}', + namedistance: 'Двигайтесь {distance} в {direction} направлении по {way_name:dative}', + }, + }, + 'end of road': { + default: { + default: 'Поверните {modifier}', + name: 'Поверните {modifier} на {way_name:accusative}', + destination: 'Поверните {modifier} в направлении {destination}', + }, + straight: { + default: 'Двигайтесь прямо', + name: 'Двигайтесь прямо по {way_name:dative}', + destination: 'Двигайтесь прямо в направлении {destination}', + }, + uturn: { + default: 'В конце дороги развернитесь', + name: 'Развернитесь в конце {way_name:genitive}', + destination: 'В конце дороги развернитесь в направлении {destination}', + }, + }, + fork: { + default: { + default: 'На развилке двигайтесь {modifier}', + name: 'На развилке двигайтесь {modifier} на {way_name:accusative}', + destination: 'На развилке двигайтесь {modifier} в направлении {destination}', + }, + 'slight left': { + default: 'На развилке держитесь левее', + name: 'На развилке держитесь левее на {way_name:accusative}', + destination: + 'На развилке держитесь левее и продолжите движение в направлении {destination}', + }, + 'slight right': { + default: 'На развилке держитесь правее', + name: 'На развилке держитесь правее на {way_name:accusative}', + destination: + 'На развилке держитесь правее и продолжите движение в направлении {destination}', + }, + 'sharp left': { + default: 'На развилке резко поверните налево', + name: 'Резко поверните налево на {way_name:accusative}', + destination: 'Резко поверните налево и продолжите движение в направлении {destination}', + }, + 'sharp right': { + default: 'На развилке резко поверните направо', + name: 'Резко поверните направо на {way_name:accusative}', + destination: + 'Резко поверните направо и продолжите движение в направлении {destination}', + }, + uturn: { + default: 'На развилке развернитесь', + name: 'На развилке развернитесь на {way_name:prepositional}', + destination: + 'На развилке развернитесь и продолжите движение в направлении {destination}', + }, + }, + merge: { + default: { + default: 'Перестройтесь {modifier}', + name: 'Перестройтесь {modifier} на {way_name:accusative}', + destination: 'Перестройтесь {modifier} в направлении {destination}', + }, + straight: { + default: 'Двигайтесь прямо', + name: 'Продолжите движение по {way_name:dative}', + destination: 'Продолжите движение в направлении {destination}', + }, + 'slight left': { + default: 'Перестройтесь левее', + name: 'Перестройтесь левее на {way_name:accusative}', + destination: 'Перестройтесь левее в направлении {destination}', + }, + 'slight right': { + default: 'Перестройтесь правее', + name: 'Перестройтесь правее на {way_name:accusative}', + destination: 'Перестройтесь правее в направлении {destination}', + }, + 'sharp left': { + default: 'Перестраивайтесь левее', + name: 'Перестраивайтесь левее на {way_name:accusative}', + destination: 'Перестраивайтесь левее в направлении {destination}', + }, + 'sharp right': { + default: 'Перестраивайтесь правее', + name: 'Перестраивайтесь правее на {way_name:accusative}', + destination: 'Перестраивайтесь правее в направлении {destination}', + }, + uturn: { + default: 'Развернитесь', + name: 'Развернитесь на {way_name:prepositional}', + destination: 'Развернитесь в направлении {destination}', + }, + }, + 'new name': { + default: { + default: 'Двигайтесь {modifier}', + name: 'Двигайтесь {modifier} на {way_name:accusative}', + destination: 'Двигайтесь {modifier} в направлении {destination}', + }, + straight: { + default: 'Двигайтесь прямо', + name: 'Продолжите движение по {way_name:dative}', + destination: 'Продолжите движение в направлении {destination}', + }, + 'sharp left': { + default: 'Резко поверните налево', + name: 'Резко поверните налево на {way_name:accusative}', + destination: 'Резко поверните налево и продолжите движение в направлении {destination}', + }, + 'sharp right': { + default: 'Резко поверните направо', + name: 'Резко поверните направо на {way_name:accusative}', + destination: + 'Резко поверните направо и продолжите движение в направлении {destination}', + }, + 'slight left': { + default: 'Плавно поверните налево', + name: 'Плавно поверните налево на {way_name:accusative}', + destination: 'Плавно поверните налево в направлении {destination}', + }, + 'slight right': { + default: 'Плавно поверните направо', + name: 'Плавно поверните направо на {way_name:accusative}', + destination: 'Плавно поверните направо в направлении {destination}', + }, + uturn: { + default: 'Развернитесь', + name: 'Развернитесь на {way_name:prepositional}', + destination: 'Развернитесь и продолжите движение в направлении {destination}', + }, + }, + notification: { + default: { + default: 'Двигайтесь {modifier}', + name: 'Двигайтесь {modifier} по {way_name:dative}', + destination: 'Двигайтесь {modifier} в направлении {destination}', + }, + uturn: { + default: 'Развернитесь', + name: 'Развернитесь на {way_name:prepositional}', + destination: 'Развернитесь и продолжите движение в направлении {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Сверните на съезд', + name: 'Сверните на съезд на {way_name:accusative}', + destination: 'Сверните на съезд в направлении {destination}', + exit: 'Сверните на съезд {exit}', + exit_destination: 'Сверните на съезд {exit} в направлении {destination}', + }, + left: { + default: 'Сверните на левый съезд', + name: 'Сверните на левый съезд на {way_name:accusative}', + destination: 'Сверните на левый съезд в направлении {destination}', + exit: 'Сверните на съезд {exit} слева', + exit_destination: 'Сверните на съезд {exit} слева в направлении {destination}', + }, + right: { + default: 'Сверните на правый съезд', + name: 'Сверните на правый съезд на {way_name:accusative}', + destination: 'Сверните на правый съезд в направлении {destination}', + exit: 'Сверните на съезд {exit} справа', + exit_destination: 'Сверните на съезд {exit} справа в направлении {destination}', + }, + 'sharp left': { + default: 'Поверните налево на съезд', + name: 'Поверните налево на съезд на {way_name:accusative}', + destination: 'Поверните налево на съезд в направлении {destination}', + exit: 'Поверните налево на съезд {exit}', + exit_destination: 'Поверните налево на съезд {exit} в направлении {destination}', + }, + 'sharp right': { + default: 'Поверните направо на съезд', + name: 'Поверните направо на съезд на {way_name:accusative}', + destination: 'Поверните направо на съезд в направлении {destination}', + exit: 'Поверните направо на съезд {exit}', + exit_destination: 'Поверните направо на съезд {exit} в направлении {destination}', + }, + 'slight left': { + default: 'Перестройтесь левее на съезд', + name: 'Перестройтесь левее на съезд на {way_name:accusative}', + destination: 'Перестройтесь левее на съезд в направлении {destination}', + exit: 'Перестройтесь левее на {exit}', + exit_destination: 'Перестройтесь левее на съезд {exit} в направлении {destination}', + }, + 'slight right': { + default: 'Перестройтесь правее на съезд', + name: 'Перестройтесь правее на съезд на {way_name:accusative}', + destination: 'Перестройтесь правее на съезд в направлении {destination}', + exit: 'Перестройтесь правее на съезд {exit}', + exit_destination: 'Перестройтесь правее на съезд {exit} в направлении {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Сверните на автомагистраль', + name: 'Сверните на въезд на {way_name:accusative}', + destination: 'Сверните на въезд на автомагистраль в направлении {destination}', + }, + left: { + default: 'Сверните на левый въезд на автомагистраль', + name: 'Сверните на левый въезд на {way_name:accusative}', + destination: 'Сверните на левый въезд на автомагистраль в направлении {destination}', + }, + right: { + default: 'Сверните на правый въезд на автомагистраль', + name: 'Сверните на правый въезд на {way_name:accusative}', + destination: 'Сверните на правый въезд на автомагистраль в направлении {destination}', + }, + 'sharp left': { + default: 'Поверните на левый въезд на автомагистраль', + name: 'Поверните на левый въезд на {way_name:accusative}', + destination: 'Поверните на левый въезд на автомагистраль в направлении {destination}', + }, + 'sharp right': { + default: 'Поверните на правый въезд на автомагистраль', + name: 'Поверните на правый въезд на {way_name:accusative}', + destination: 'Поверните на правый въезд на автомагистраль в направлении {destination}', + }, + 'slight left': { + default: 'Перестройтесь левее на въезд на автомагистраль', + name: 'Перестройтесь левее на {way_name:accusative}', + destination: 'Перестройтесь левее на автомагистраль в направлении {destination}', + }, + 'slight right': { + default: 'Перестройтесь правее на въезд на автомагистраль', + name: 'Перестройтесь правее на {way_name:accusative}', + destination: 'Перестройтесь правее на автомагистраль в направлении {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Продолжите движение по круговой развязке', + name: 'На круговой развязке сверните на {way_name:accusative}', + destination: 'На круговой развязке сверните в направлении {destination}', + }, + name: { + default: 'Продолжите движение по {rotary_name:dative}', + name: 'На {rotary_name:prepositional} сверните на {way_name:accusative}', + destination: 'На {rotary_name:prepositional} сверните в направлении {destination}', + }, + exit: { + default: 'На круговой развязке сверните на {exit_number} съезд', + name: 'На круговой развязке сверните на {exit_number} съезд на {way_name:accusative}', + destination: + 'На круговой развязке сверните на {exit_number} съезд в направлении {destination}', + }, + name_exit: { + default: 'На {rotary_name:prepositional} сверните на {exit_number} съезд', + name: 'На {rotary_name:prepositional} сверните на {exit_number} съезд на {way_name:accusative}', + destination: + 'На {rotary_name:prepositional} сверните на {exit_number} съезд в направлении {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'На круговой развязке сверните на {exit_number} съезд', + name: 'На круговой развязке сверните на {exit_number} съезд на {way_name:accusative}', + destination: + 'На круговой развязке сверните на {exit_number} съезд в направлении {destination}', + }, + default: { + default: 'Продолжите движение по круговой развязке', + name: 'На круговой развязке сверните на {way_name:accusative}', + destination: 'На круговой развязке сверните в направлении {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Двигайтесь {modifier}', + name: 'Двигайтесь {modifier} на {way_name:accusative}', + destination: 'Двигайтесь {modifier} в направлении {destination}', + }, + left: { + default: 'Сверните налево', + name: 'Сверните налево на {way_name:accusative}', + destination: 'Сверните налево в направлении {destination}', + }, + right: { + default: 'Сверните направо', + name: 'Сверните направо на {way_name:accusative}', + destination: 'Сверните направо в направлении {destination}', + }, + straight: { + default: 'Двигайтесь прямо', + name: 'Двигайтесь прямо по {way_name:dative}', + destination: 'Двигайтесь прямо в направлении {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Сверните с круговой развязки', + name: 'Сверните с круговой развязки на {way_name:accusative}', + destination: 'Сверните с круговой развязки в направлении {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Сверните с круговой развязки', + name: 'Сверните с круговой развязки на {way_name:accusative}', + destination: 'Сверните с круговой развязки в направлении {destination}', + }, + }, + turn: { + default: { + default: 'Двигайтесь {modifier}', + name: 'Двигайтесь {modifier} на {way_name:accusative}', + destination: 'Двигайтесь {modifier} в направлении {destination}', + }, + left: { + default: 'Поверните налево', + name: 'Поверните налево на {way_name:accusative}', + destination: 'Поверните налево в направлении {destination}', + }, + right: { + default: 'Поверните направо', + name: 'Поверните направо на {way_name:accusative}', + destination: 'Поверните направо в направлении {destination}', + }, + straight: { + default: 'Двигайтесь прямо', + name: 'Двигайтесь по {way_name:dative}', + destination: 'Двигайтесь в направлении {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Продолжайте движение прямо', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 43: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1:a', + 2: '2:a', + 3: '3:e', + 4: '4:e', + 5: '5:e', + 6: '6:e', + 7: '7:e', + 8: '8:e', + 9: '9:e', + 10: '10:e', + }, + direction: { + north: 'norr', + northeast: 'nordost', + east: 'öster', + southeast: 'sydost', + south: 'söder', + southwest: 'sydväst', + west: 'väster', + northwest: 'nordväst', + }, + modifier: { + left: 'vänster', + right: 'höger', + 'sharp left': 'vänster', + 'sharp right': 'höger', + 'slight left': 'vänster', + 'slight right': 'höger', + straight: 'rakt fram', + uturn: 'U-sväng', + }, + lanes: { + xo: 'Håll till höger', + ox: 'Håll till vänster', + xox: 'Håll till mitten', + oxo: 'Håll till vänster eller höger', + }, + }, + modes: { + ferry: { + default: 'Ta färjan', + name: 'Ta färjan på {way_name}', + destination: 'Ta färjan mot {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, sedan efter {distance}, {instruction_two}', + 'two linked': '{instruction_one}, sedan {instruction_two}', + 'one in distance': 'Om {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'exit {exit}', + }, + arrive: { + default: { + default: 'Du är framme vid din {nth} destination', + upcoming: 'Du är snart framme vid din {nth} destination', + short: 'Du är framme', + 'short-upcoming': 'Du är snart framme', + named: 'Du är framme vid {waypoint_name}', + }, + left: { + default: 'Du är framme vid din {nth} destination, till vänster', + upcoming: 'Du är snart framme vid din {nth} destination, till vänster', + short: 'Du är framme', + 'short-upcoming': 'Du är snart framme', + named: 'Du är framme vid {waypoint_name}, till vänster', + }, + right: { + default: 'Du är framme vid din {nth} destination, till höger', + upcoming: 'Du är snart framme vid din {nth} destination, till höger', + short: 'Du är framme', + 'short-upcoming': 'Du är snart framme', + named: 'Du är framme vid {waypoint_name}, till höger', + }, + 'sharp left': { + default: 'Du är framme vid din {nth} destination, till vänster', + upcoming: 'Du är snart framme vid din {nth} destination, till vänster', + short: 'Du är framme', + 'short-upcoming': 'Du är snart framme', + named: 'Du är framme vid {waypoint_name}, till vänster', + }, + 'sharp right': { + default: 'Du är framme vid din {nth} destination, till höger', + upcoming: 'Du är snart framme vid din {nth} destination, till höger', + short: 'Du är framme', + 'short-upcoming': 'Du är snart framme', + named: 'Du är framme vid {waypoint_name}, till höger', + }, + 'slight right': { + default: 'Du är framme vid din {nth} destination, till höger', + upcoming: 'Du är snart framme vid din {nth} destination, till höger', + short: 'Du är framme', + 'short-upcoming': 'Du är snart framme', + named: 'Du är framme vid {waypoint_name}, till höger', + }, + 'slight left': { + default: 'Du är framme vid din {nth} destination, till vänster', + upcoming: 'Du är snart framme vid din {nth} destination, till vänster', + short: 'Du är framme', + 'short-upcoming': 'Du är snart framme', + named: 'Du är framme vid {waypoint_name}, till vänster', + }, + straight: { + default: 'Du är framme vid din {nth} destination, rakt fram', + upcoming: 'Du är snart framme vid din {nth} destination, rakt fram', + short: 'Du är framme', + 'short-upcoming': 'Du är snart framme', + named: 'Du är framme vid {waypoint_name}, rakt fram', + }, + }, + continue: { + default: { + default: 'Sväng {modifier}', + name: 'Sväng {modifier} och fortsätt på {way_name}', + destination: 'Sväng {modifier} mot {destination}', + exit: 'Sväng {modifier} in på {way_name}', + }, + straight: { + default: 'Fortsätt rakt fram', + name: 'Kör rakt fram och fortsätt på {way_name}', + destination: 'Fortsätt mot {destination}', + distance: 'Fortsätt rakt fram i {distance}', + namedistance: 'Fortsätt på {way_name} i {distance}', + }, + 'sharp left': { + default: 'Sväng vänster', + name: 'Sväng vänster och fortsätt på {way_name}', + destination: 'Sväng vänster mot {destination}', + }, + 'sharp right': { + default: 'Sväng höger', + name: 'Sväng höger och fortsätt på {way_name}', + destination: 'Sväng höger mot {destination}', + }, + 'slight left': { + default: 'Sväng vänster', + name: 'Sväng vänster och fortsätt på {way_name}', + destination: 'Sväng vänster mot {destination}', + }, + 'slight right': { + default: 'Sväng höger', + name: 'Sväng höger och fortsätt på {way_name}', + destination: 'Sväng höger mot {destination}', + }, + uturn: { + default: 'Gör en U-sväng', + name: 'Gör en U-sväng och fortsätt på {way_name}', + destination: 'Gör en U-sväng mot {destination}', + }, + }, + depart: { + default: { + default: 'Kör åt {direction}', + name: 'Kör åt {direction} på {way_name}', + namedistance: 'Kör {distance} åt {direction} på {way_name}', + }, + }, + 'end of road': { + default: { + default: 'Sväng {modifier}', + name: 'Sväng {modifier} in på {way_name}', + destination: 'Sväng {modifier} mot {destination}', + }, + straight: { + default: 'Fortsätt rakt fram', + name: 'Fortsätt rakt fram in på {way_name}', + destination: 'Fortsätt rakt fram mot {destination}', + }, + uturn: { + default: 'Gör en U-sväng i slutet av vägen', + name: 'Gör en U-sväng in på {way_name} i slutet av vägen', + destination: 'Gör en U-sväng mot {destination} i slutet av vägen', + }, + }, + fork: { + default: { + default: 'Håll till {modifier} där vägen delar sig', + name: 'Håll till {modifier} in på {way_name}', + destination: 'Håll till {modifier} mot {destination}', + }, + 'slight left': { + default: 'Håll till vänster där vägen delar sig', + name: 'Håll till vänster in på {way_name}', + destination: 'Håll till vänster mot {destination}', + }, + 'slight right': { + default: 'Håll till höger där vägen delar sig', + name: 'Håll till höger in på {way_name}', + destination: 'Håll till höger mot {destination}', + }, + 'sharp left': { + default: 'Sväng vänster där vägen delar sig', + name: 'Sväng vänster in på {way_name}', + destination: 'Sväng vänster mot {destination}', + }, + 'sharp right': { + default: 'Sväng höger där vägen delar sig', + name: 'Sväng höger in på {way_name}', + destination: 'Sväng höger mot {destination}', + }, + uturn: { + default: 'Gör en U-sväng', + name: 'Gör en U-sväng in på {way_name}', + destination: 'Gör en U-sväng mot {destination}', + }, + }, + merge: { + default: { + default: 'Byt till {modifier} körfält', + name: 'Byt till {modifier} körfält, in på {way_name}', + destination: 'Byt till {modifier} körfält, mot {destination}', + }, + straight: { + default: 'Fortsätt', + name: 'Kör in på {way_name}', + destination: 'Kör mot {destination}', + }, + 'slight left': { + default: 'Byt till vänstra körfältet', + name: 'Byt till vänstra körfältet, in på {way_name}', + destination: 'Byt till vänstra körfältet, mot {destination}', + }, + 'slight right': { + default: 'Byt till högra körfältet', + name: 'Byt till högra körfältet, in på {way_name}', + destination: 'Byt till högra körfältet, mot {destination}', + }, + 'sharp left': { + default: 'Byt till vänstra körfältet', + name: 'Byt till vänstra körfältet, in på {way_name}', + destination: 'Byt till vänstra körfältet, mot {destination}', + }, + 'sharp right': { + default: 'Byt till högra körfältet', + name: 'Byt till högra körfältet, in på {way_name}', + destination: 'Byt till högra körfältet, mot {destination}', + }, + uturn: { + default: 'Gör en U-sväng', + name: 'Gör en U-sväng in på {way_name}', + destination: 'Gör en U-sväng mot {destination}', + }, + }, + 'new name': { + default: { + default: 'Fortsätt {modifier}', + name: 'Fortsätt {modifier} på {way_name}', + destination: 'Fortsätt {modifier} mot {destination}', + }, + straight: { + default: 'Fortsätt rakt fram', + name: 'Fortsätt in på {way_name}', + destination: 'Fortsätt mot {destination}', + }, + 'sharp left': { + default: 'Gör en skarp vänstersväng', + name: 'Gör en skarp vänstersväng in på {way_name}', + destination: 'Gör en skarp vänstersväng mot {destination}', + }, + 'sharp right': { + default: 'Gör en skarp högersväng', + name: 'Gör en skarp högersväng in på {way_name}', + destination: 'Gör en skarp högersväng mot {destination}', + }, + 'slight left': { + default: 'Fortsätt med lätt vänstersväng', + name: 'Fortsätt med lätt vänstersväng in på {way_name}', + destination: 'Fortsätt med lätt vänstersväng mot {destination}', + }, + 'slight right': { + default: 'Fortsätt med lätt högersväng', + name: 'Fortsätt med lätt högersväng in på {way_name}', + destination: 'Fortsätt med lätt högersväng mot {destination}', + }, + uturn: { + default: 'Gör en U-sväng', + name: 'Gör en U-sväng in på {way_name}', + destination: 'Gör en U-sväng mot {destination}', + }, + }, + notification: { + default: { + default: 'Fortsätt {modifier}', + name: 'Fortsätt {modifier} på {way_name}', + destination: 'Fortsätt {modifier} mot {destination}', + }, + uturn: { + default: 'Gör en U-sväng', + name: 'Gör en U-sväng in på {way_name}', + destination: 'Gör en U-sväng mot {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Ta avfarten', + name: 'Ta avfarten in på {way_name}', + destination: 'Ta avfarten mot {destination}', + exit: 'Ta avfart {exit} ', + exit_destination: 'Ta avfart {exit} mot {destination}', + }, + left: { + default: 'Ta avfarten till vänster', + name: 'Ta avfarten till vänster in på {way_name}', + destination: 'Ta avfarten till vänster mot {destination}', + exit: 'Ta avfart {exit} till vänster', + exit_destination: 'Ta avfart {exit} till vänster mot {destination}', + }, + right: { + default: 'Ta avfarten till höger', + name: 'Ta avfarten till höger in på {way_name}', + destination: 'Ta avfarten till höger mot {destination}', + exit: 'Ta avfart {exit} till höger', + exit_destination: 'Ta avfart {exit} till höger mot {destination}', + }, + 'sharp left': { + default: 'Ta avfarten till vänster', + name: 'Ta avfarten till vänster in på {way_name}', + destination: 'Ta avfarten till vänster mot {destination}', + exit: 'Ta avfart {exit} till vänster', + exit_destination: 'Ta avfart {exit} till vänster mot {destination}', + }, + 'sharp right': { + default: 'Ta avfarten till höger', + name: 'Ta avfarten till höger in på {way_name}', + destination: 'Ta avfarten till höger mot {destination}', + exit: 'Ta avfart {exit} till höger', + exit_destination: 'Ta avfart {exit} till höger mot {destination}', + }, + 'slight left': { + default: 'Ta avfarten till vänster', + name: 'Ta avfarten till vänster in på {way_name}', + destination: 'Ta avfarten till vänster mot {destination}', + exit: 'Ta avfart {exit} till vänster', + exit_destination: 'Ta avfart{exit} till vänster mot {destination}', + }, + 'slight right': { + default: 'Ta avfarten till höger', + name: 'Ta avfarten till höger in på {way_name}', + destination: 'Ta avfarten till höger mot {destination}', + exit: 'Ta avfart {exit} till höger', + exit_destination: 'Ta avfart {exit} till höger mot {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Ta påfarten', + name: 'Ta påfarten in på {way_name}', + destination: 'Ta påfarten mot {destination}', + }, + left: { + default: 'Ta påfarten till vänster', + name: 'Ta påfarten till vänster in på {way_name}', + destination: 'Ta påfarten till vänster mot {destination}', + }, + right: { + default: 'Ta påfarten till höger', + name: 'Ta påfarten till höger in på {way_name}', + destination: 'Ta påfarten till höger mot {destination}', + }, + 'sharp left': { + default: 'Ta påfarten till vänster', + name: 'Ta påfarten till vänster in på {way_name}', + destination: 'Ta påfarten till vänster mot {destination}', + }, + 'sharp right': { + default: 'Ta påfarten till höger', + name: 'Ta påfarten till höger in på {way_name}', + destination: 'Ta påfarten till höger mot {destination}', + }, + 'slight left': { + default: 'Ta påfarten till vänster', + name: 'Ta påfarten till vänster in på {way_name}', + destination: 'Ta påfarten till vänster mot {destination}', + }, + 'slight right': { + default: 'Ta påfarten till höger', + name: 'Ta påfarten till höger in på {way_name}', + destination: 'Ta påfarten till höger mot {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Kör in i rondellen', + name: 'I rondellen, ta avfarten in på {way_name}', + destination: 'I rondellen, ta av mot {destination}', + }, + name: { + default: 'Kör in i {rotary_name}', + name: 'I {rotary_name}, ta av in på {way_name}', + destination: 'I {rotary_name}, ta av mot {destination}', + }, + exit: { + default: 'I rondellen, ta {exit_number} avfarten', + name: 'I rondellen, ta {exit_number} avfarten in på {way_name}', + destination: 'I rondellen, ta {exit_number} avfarten mot {destination}', + }, + name_exit: { + default: 'I {rotary_name}, ta {exit_number} avfarten', + name: 'I {rotary_name}, ta {exit_number} avfarten in på {way_name}', + destination: 'I {rotary_name}, ta {exit_number} avfarten mot {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'I rondellen, ta {exit_number} avfarten', + name: 'I rondellen, ta {exit_number} avfarten in på {way_name}', + destination: 'I rondellen, ta {exit_number} avfarten mot {destination}', + }, + default: { + default: 'Kör in i rondellen', + name: 'I rondellen, ta avfarten in på {way_name}', + destination: 'I rondellen, ta av mot {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Sväng {modifier}', + name: 'Sväng {modifier} in på {way_name}', + destination: 'Sväng {modifier} mot {destination}', + }, + left: { + default: 'Sväng vänster', + name: 'Sväng vänster in på {way_name}', + destination: 'Sväng vänster mot {destination}', + }, + right: { + default: 'Sväng höger', + name: 'Sväng höger in på {way_name}', + destination: 'Sväng höger mot {destination}', + }, + straight: { + default: 'Fortsätt rakt fram', + name: 'Fortsätt rakt fram in på {way_name}', + destination: 'Fortsätt rakt fram mot {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Kör ut ur rondellen', + name: 'Kör ut ur rondellen in på {way_name}', + destination: 'Kör ut ur rondellen mot {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Kör ut ur rondellen', + name: 'Kör ut ur rondellen in på {way_name}', + destination: 'Kör ut ur rondellen mot {destination}', + }, + }, + turn: { + default: { + default: 'Sväng {modifier}', + name: 'Sväng {modifier} in på {way_name}', + destination: 'Sväng {modifier} mot {destination}', + }, + left: { + default: 'Sväng vänster', + name: 'Sväng vänster in på {way_name}', + destination: 'Sväng vänster mot {destination}', + }, + right: { + default: 'Sväng höger', + name: 'Sväng höger in på {way_name}', + destination: 'Sväng höger mot {destination}', + }, + straight: { + default: 'Kör rakt fram', + name: 'Kör rakt fram in på {way_name}', + destination: 'Kör rakt fram mot {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Fortsätt rakt fram', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 44: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: 'birinci', + 2: 'ikinci', + 3: 'üçüncü', + 4: 'dördüncü', + 5: 'beşinci', + 6: 'altıncı', + 7: 'yedinci', + 8: 'sekizinci', + 9: 'dokuzuncu', + 10: 'onuncu', + }, + direction: { + north: 'kuzey', + northeast: 'kuzeydoğu', + east: 'doğu', + southeast: 'güneydoğu', + south: 'güney', + southwest: 'güneybatı', + west: 'batı', + northwest: 'kuzeybatı', + }, + modifier: { + left: 'sol', + right: 'sağ', + 'sharp left': 'keskin sol', + 'sharp right': 'keskin sağ', + 'slight left': 'hafif sol', + 'slight right': 'hafif sağ', + straight: 'düz', + uturn: 'U dönüşü', + }, + lanes: { + xo: 'Sağda kalın', + ox: 'Solda kalın', + xox: 'Ortada kalın', + oxo: 'Solda veya sağda kalın', + }, + }, + modes: { + ferry: { + default: 'Vapur kullan', + name: '{way_name} vapurunu kullan', + destination: '{destination} istikametine giden vapuru kullan', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one} ve {distance} sonra {instruction_two}', + 'two linked': '{instruction_one} ve sonra {instruction_two}', + 'one in distance': '{distance} sonra, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'exit {exit}', + }, + arrive: { + default: { + default: '{nth} hedefinize ulaştınız', + upcoming: '{nth} hedefinize ulaştınız', + short: '{nth} hedefinize ulaştınız', + 'short-upcoming': '{nth} hedefinize ulaştınız', + named: '{waypoint_name} ulaştınız', + }, + left: { + default: '{nth} hedefinize ulaştınız, hedefiniz solunuzdadır', + upcoming: '{nth} hedefinize ulaştınız, hedefiniz solunuzdadır', + short: '{nth} hedefinize ulaştınız', + 'short-upcoming': '{nth} hedefinize ulaştınız', + named: '{waypoint_name} ulaştınız, hedefiniz solunuzdadır', + }, + right: { + default: '{nth} hedefinize ulaştınız, hedefiniz sağınızdadır', + upcoming: '{nth} hedefinize ulaştınız, hedefiniz sağınızdadır', + short: '{nth} hedefinize ulaştınız', + 'short-upcoming': '{nth} hedefinize ulaştınız', + named: '{waypoint_name} ulaştınız, hedefiniz sağınızdadır', + }, + 'sharp left': { + default: '{nth} hedefinize ulaştınız, hedefiniz solunuzdadır', + upcoming: '{nth} hedefinize ulaştınız, hedefiniz solunuzdadır', + short: '{nth} hedefinize ulaştınız', + 'short-upcoming': '{nth} hedefinize ulaştınız', + named: '{waypoint_name} ulaştınız, hedefiniz solunuzdadır', + }, + 'sharp right': { + default: '{nth} hedefinize ulaştınız, hedefiniz sağınızdadır', + upcoming: '{nth} hedefinize ulaştınız, hedefiniz sağınızdadır', + short: '{nth} hedefinize ulaştınız', + 'short-upcoming': '{nth} hedefinize ulaştınız', + named: '{waypoint_name} ulaştınız, hedefiniz sağınızdadır', + }, + 'slight right': { + default: '{nth} hedefinize ulaştınız, hedefiniz sağınızdadır', + upcoming: '{nth} hedefinize ulaştınız, hedefiniz sağınızdadır', + short: '{nth} hedefinize ulaştınız', + 'short-upcoming': '{nth} hedefinize ulaştınız', + named: '{waypoint_name} ulaştınız, hedefiniz sağınızdadır', + }, + 'slight left': { + default: '{nth} hedefinize ulaştınız, hedefiniz solunuzdadır', + upcoming: '{nth} hedefinize ulaştınız, hedefiniz solunuzdadır', + short: '{nth} hedefinize ulaştınız', + 'short-upcoming': '{nth} hedefinize ulaştınız', + named: '{waypoint_name} ulaştınız, hedefiniz solunuzdadır', + }, + straight: { + default: '{nth} hedefinize ulaştınız, hedefiniz karşınızdadır', + upcoming: '{nth} hedefinize ulaştınız, hedefiniz karşınızdadır', + short: '{nth} hedefinize ulaştınız', + 'short-upcoming': '{nth} hedefinize ulaştınız', + named: '{waypoint_name} ulaştınız, hedefiniz karşınızdadır', + }, + }, + continue: { + default: { + default: '{modifier} yöne dön', + name: '{way_name} üzerinde kalmak için {modifier} yöne dön', + destination: '{destination} istikametinde {modifier} yöne dön', + exit: '{way_name} üzerinde {modifier} yöne dön', + }, + straight: { + default: 'Düz devam edin', + name: '{way_name} üzerinde kalmak için düz devam et', + destination: '{destination} istikametinde devam et', + distance: '{distance} boyunca düz devam et', + namedistance: '{distance} boyunca {way_name} üzerinde devam et', + }, + 'sharp left': { + default: 'Sola keskin dönüş yap', + name: '{way_name} üzerinde kalmak için sola keskin dönüş yap', + destination: '{destination} istikametinde sola keskin dönüş yap', + }, + 'sharp right': { + default: 'Sağa keskin dönüş yap', + name: '{way_name} üzerinde kalmak için sağa keskin dönüş yap', + destination: '{destination} istikametinde sağa keskin dönüş yap', + }, + 'slight left': { + default: 'Sola hafif dönüş yap', + name: '{way_name} üzerinde kalmak için sola hafif dönüş yap', + destination: '{destination} istikametinde sola hafif dönüş yap', + }, + 'slight right': { + default: 'Sağa hafif dönüş yap', + name: '{way_name} üzerinde kalmak için sağa hafif dönüş yap', + destination: '{destination} istikametinde sağa hafif dönüş yap', + }, + uturn: { + default: 'U dönüşü yapın', + name: 'Bir U-dönüşü yap ve {way_name} devam et', + destination: '{destination} istikametinde bir U-dönüşü yap', + }, + }, + depart: { + default: { + default: '{direction} tarafına yönelin', + name: '{way_name} üzerinde {direction} yöne git', + namedistance: 'Head {direction} on {way_name} for {distance}', + }, + }, + 'end of road': { + default: { + default: '{modifier} tarafa dönün', + name: '{way_name} üzerinde {modifier} yöne dön', + destination: '{destination} istikametinde {modifier} yöne dön', + }, + straight: { + default: 'Düz devam edin', + name: '{way_name} üzerinde düz devam et', + destination: '{destination} istikametinde düz devam et', + }, + uturn: { + default: 'Yolun sonunda U dönüşü yapın', + name: 'Yolun sonunda {way_name} üzerinde bir U-dönüşü yap', + destination: 'Yolun sonunda {destination} istikametinde bir U-dönüşü yap', + }, + }, + fork: { + default: { + default: 'Yol ayrımında {modifier} yönde kal', + name: '{way_name} üzerindeki yol ayrımında {modifier} yönde kal', + destination: '{destination} istikametindeki yol ayrımında {modifier} yönde kal', + }, + 'slight left': { + default: 'Çatalın solundan devam edin', + name: 'Çatalın solundan {way_name} yoluna doğru ', + destination: '{destination} istikametindeki yol ayrımında solda kal', + }, + 'slight right': { + default: 'Çatalın sağından devam edin', + name: '{way_name} üzerindeki yol ayrımında sağda kal', + destination: '{destination} istikametindeki yol ayrımında sağda kal', + }, + 'sharp left': { + default: 'Çatalda keskin sola dönün', + name: '{way_name} yoluna doğru sola keskin dönüş yapın', + destination: '{destination} istikametinde sola keskin dönüş yap', + }, + 'sharp right': { + default: 'Çatalda keskin sağa dönün', + name: '{way_name} yoluna doğru sağa keskin dönüş yapın', + destination: '{destination} istikametinde sağa keskin dönüş yap', + }, + uturn: { + default: 'U dönüşü yapın', + name: '{way_name} yoluna U dönüşü yapın', + destination: '{destination} istikametinde bir U-dönüşü yap', + }, + }, + merge: { + default: { + default: '{modifier} yöne gir', + name: '{way_name} üzerinde {modifier} yöne gir', + destination: '{destination} istikametinde {modifier} yöne gir', + }, + straight: { + default: 'düz yöne gir', + name: '{way_name} üzerinde düz yöne gir', + destination: '{destination} istikametinde düz yöne gir', + }, + 'slight left': { + default: 'Sola gir', + name: '{way_name} üzerinde sola gir', + destination: '{destination} istikametinde sola gir', + }, + 'slight right': { + default: 'Sağa gir', + name: '{way_name} üzerinde sağa gir', + destination: '{destination} istikametinde sağa gir', + }, + 'sharp left': { + default: 'Sola gir', + name: '{way_name} üzerinde sola gir', + destination: '{destination} istikametinde sola gir', + }, + 'sharp right': { + default: 'Sağa gir', + name: '{way_name} üzerinde sağa gir', + destination: '{destination} istikametinde sağa gir', + }, + uturn: { + default: 'U dönüşü yapın', + name: '{way_name} yoluna U dönüşü yapın', + destination: '{destination} istikametinde bir U-dönüşü yap', + }, + }, + 'new name': { + default: { + default: '{modifier} yönde devam et', + name: '{way_name} üzerinde {modifier} yönde devam et', + destination: '{destination} istikametinde {modifier} yönde devam et', + }, + straight: { + default: 'Düz devam et', + name: '{way_name} üzerinde devam et', + destination: '{destination} istikametinde devam et', + }, + 'sharp left': { + default: 'Sola keskin dönüş yapın', + name: '{way_name} yoluna doğru sola keskin dönüş yapın', + destination: '{destination} istikametinde sola keskin dönüş yap', + }, + 'sharp right': { + default: 'Sağa keskin dönüş yapın', + name: '{way_name} yoluna doğru sağa keskin dönüş yapın', + destination: '{destination} istikametinde sağa keskin dönüş yap', + }, + 'slight left': { + default: 'Hafif soldan devam edin', + name: '{way_name} üzerinde hafif solda devam et', + destination: '{destination} istikametinde hafif solda devam et', + }, + 'slight right': { + default: 'Hafif sağdan devam edin', + name: '{way_name} üzerinde hafif sağda devam et', + destination: '{destination} istikametinde hafif sağda devam et', + }, + uturn: { + default: 'U dönüşü yapın', + name: '{way_name} yoluna U dönüşü yapın', + destination: '{destination} istikametinde bir U-dönüşü yap', + }, + }, + notification: { + default: { + default: '{modifier} yönde devam et', + name: '{way_name} üzerinde {modifier} yönde devam et', + destination: '{destination} istikametinde {modifier} yönde devam et', + }, + uturn: { + default: 'U dönüşü yapın', + name: '{way_name} yoluna U dönüşü yapın', + destination: '{destination} istikametinde bir U-dönüşü yap', + }, + }, + 'off ramp': { + default: { + default: 'Bağlantı yoluna geç', + name: '{way_name} üzerindeki bağlantı yoluna geç', + destination: '{destination} istikametine giden bağlantı yoluna geç', + exit: '{exit} çıkış yoluna geç', + exit_destination: '{destination} istikametindeki {exit} çıkış yoluna geç', + }, + left: { + default: 'Soldaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sol bağlantı yoluna geç', + destination: '{destination} istikametine giden sol bağlantı yoluna geç', + exit: 'Soldaki {exit} çıkış yoluna geç', + exit_destination: '{destination} istikametindeki {exit} sol çıkış yoluna geç', + }, + right: { + default: 'Sağdaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sağ bağlantı yoluna geç', + destination: '{destination} istikametine giden sağ bağlantı yoluna geç', + exit: 'Sağdaki {exit} çıkış yoluna geç', + exit_destination: '{destination} istikametindeki {exit} sağ çıkış yoluna geç', + }, + 'sharp left': { + default: 'Soldaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sol bağlantı yoluna geç', + destination: '{destination} istikametine giden sol bağlantı yoluna geç', + exit: 'Soldaki {exit} çıkış yoluna geç', + exit_destination: '{destination} istikametindeki {exit} sol çıkış yoluna geç', + }, + 'sharp right': { + default: 'Sağdaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sağ bağlantı yoluna geç', + destination: '{destination} istikametine giden sağ bağlantı yoluna geç', + exit: 'Sağdaki {exit} çıkış yoluna geç', + exit_destination: '{destination} istikametindeki {exit} sağ çıkış yoluna geç', + }, + 'slight left': { + default: 'Soldaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sol bağlantı yoluna geç', + destination: '{destination} istikametine giden sol bağlantı yoluna geç', + exit: 'Soldaki {exit} çıkış yoluna geç', + exit_destination: '{destination} istikametindeki {exit} sol çıkış yoluna geç', + }, + 'slight right': { + default: 'Sağdaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sağ bağlantı yoluna geç', + destination: '{destination} istikametine giden sağ bağlantı yoluna geç', + exit: 'Sağdaki {exit} çıkış yoluna geç', + exit_destination: '{destination} istikametindeki {exit} sağ çıkış yoluna geç', + }, + }, + 'on ramp': { + default: { + default: 'Bağlantı yoluna geç', + name: '{way_name} üzerindeki bağlantı yoluna geç', + destination: '{destination} istikametine giden bağlantı yoluna geç', + }, + left: { + default: 'Soldaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sol bağlantı yoluna geç', + destination: '{destination} istikametine giden sol bağlantı yoluna geç', + }, + right: { + default: 'Sağdaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sağ bağlantı yoluna geç', + destination: '{destination} istikametine giden sağ bağlantı yoluna geç', + }, + 'sharp left': { + default: 'Soldaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sol bağlantı yoluna geç', + destination: '{destination} istikametine giden sol bağlantı yoluna geç', + }, + 'sharp right': { + default: 'Sağdaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sağ bağlantı yoluna geç', + destination: '{destination} istikametine giden sağ bağlantı yoluna geç', + }, + 'slight left': { + default: 'Soldaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sol bağlantı yoluna geç', + destination: '{destination} istikametine giden sol bağlantı yoluna geç', + }, + 'slight right': { + default: 'Sağdaki bağlantı yoluna geç', + name: '{way_name} üzerindeki sağ bağlantı yoluna geç', + destination: '{destination} istikametine giden sağ bağlantı yoluna geç', + }, + }, + rotary: { + default: { + default: { + default: 'Dönel kavşağa gir', + name: 'Dönel kavşağa gir ve {way_name} üzerinde çık', + destination: 'Dönel kavşağa gir ve {destination} istikametinde çık', + }, + name: { + default: '{rotary_name} dönel kavşağa gir', + name: '{rotary_name} dönel kavşağa gir ve {way_name} üzerinde çık', + destination: '{rotary_name} dönel kavşağa gir ve {destination} istikametinde çık', + }, + exit: { + default: 'Dönel kavşağa gir ve {exit_number} numaralı çıkışa gir', + name: 'Dönel kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir', + destination: + 'Dönel kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir', + }, + name_exit: { + default: '{rotary_name} dönel kavşağa gir ve {exit_number} numaralı çıkışa gir', + name: '{rotary_name} dönel kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir', + destination: + '{rotary_name} dönel kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Göbekli kavşağa gir ve {exit_number} numaralı çıkışa gir', + name: 'Göbekli kavşağa gir ve {way_name} üzerindeki {exit_number} numaralı çıkışa gir', + destination: + 'Göbekli kavşağa gir ve {destination} istikametindeki {exit_number} numaralı çıkışa gir', + }, + default: { + default: 'Göbekli kavşağa gir', + name: 'Göbekli kavşağa gir ve {way_name} üzerinde çık', + destination: 'Göbekli kavşağa gir ve {destination} istikametinde çık', + }, + }, + }, + 'roundabout turn': { + default: { + default: '{modifier} yöne dön', + name: '{way_name} üzerinde {modifier} yöne dön', + destination: '{destination} istikametinde {modifier} yöne dön', + }, + left: { + default: 'Sola dön', + name: '{way_name} üzerinde sola dön', + destination: '{destination} istikametinde sola dön', + }, + right: { + default: 'Sağa dön', + name: '{way_name} üzerinde sağa dön', + destination: '{destination} istikametinde sağa dön', + }, + straight: { + default: 'Düz devam et', + name: '{way_name} üzerinde düz devam et', + destination: '{destination} istikametinde düz devam et', + }, + }, + 'exit roundabout': { + default: { + default: '{modifier} yöne dön', + name: '{way_name} üzerinde {modifier} yöne dön', + destination: '{destination} istikametinde {modifier} yöne dön', + }, + left: { + default: 'Sola dön', + name: '{way_name} üzerinde sola dön', + destination: '{destination} istikametinde sola dön', + }, + right: { + default: 'Sağa dön', + name: '{way_name} üzerinde sağa dön', + destination: '{destination} istikametinde sağa dön', + }, + straight: { + default: 'Düz devam et', + name: '{way_name} üzerinde düz devam et', + destination: '{destination} istikametinde düz devam et', + }, + }, + 'exit rotary': { + default: { + default: '{modifier} yöne dön', + name: '{way_name} üzerinde {modifier} yöne dön', + destination: '{destination} istikametinde {modifier} yöne dön', + }, + left: { + default: 'Sola dön', + name: '{way_name} üzerinde sola dön', + destination: '{destination} istikametinde sola dön', + }, + right: { + default: 'Sağa dön', + name: '{way_name} üzerinde sağa dön', + destination: '{destination} istikametinde sağa dön', + }, + straight: { + default: 'Düz devam et', + name: '{way_name} üzerinde düz devam et', + destination: '{destination} istikametinde düz devam et', + }, + }, + turn: { + default: { + default: '{modifier} yöne dön', + name: '{way_name} üzerinde {modifier} yöne dön', + destination: '{destination} istikametinde {modifier} yöne dön', + }, + left: { + default: 'Sola dönün', + name: '{way_name} üzerinde sola dön', + destination: '{destination} istikametinde sola dön', + }, + right: { + default: 'Sağa dönün', + name: '{way_name} üzerinde sağa dön', + destination: '{destination} istikametinde sağa dön', + }, + straight: { + default: 'Düz git', + name: '{way_name} üzerinde düz git', + destination: '{destination} istikametinde düz git', + }, + }, + 'use lane': { + no_lanes: { + default: 'Düz devam edin', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 45: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: '1й', + 2: '2й', + 3: '3й', + 4: '4й', + 5: '5й', + 6: '6й', + 7: '7й', + 8: '8й', + 9: '9й', + 10: '10й', + }, + direction: { + north: 'північ', + northeast: 'північний схід', + east: 'схід', + southeast: 'південний схід', + south: 'південь', + southwest: 'південний захід', + west: 'захід', + northwest: 'північний захід', + }, + modifier: { + left: 'ліворуч', + right: 'праворуч', + 'sharp left': 'різко ліворуч', + 'sharp right': 'різко праворуч', + 'slight left': 'плавно ліворуч', + 'slight right': 'плавно праворуч', + straight: 'прямо', + uturn: 'розворот', + }, + lanes: { + xo: 'Тримайтесь праворуч', + ox: 'Тримайтесь ліворуч', + xox: 'Тримайтесь в середині', + oxo: 'Тримайтесь праворуч або ліворуч', + }, + }, + modes: { + ferry: { + default: 'Скористайтесь поромом', + name: 'Скористайтесь поромом {way_name}', + destination: 'Скористайтесь поромом у напрямку {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, потім, через {distance}, {instruction_two}', + 'two linked': '{instruction_one}, потім {instruction_two}', + 'one in distance': 'Через {distance}, {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': "з'їзд {exit}", + }, + arrive: { + default: { + default: 'Ви прибули у ваш {nth} пункт призначення', + upcoming: 'Ви наближаєтесь до вашого {nth} місця призначення', + short: 'Ви прибули', + 'short-upcoming': 'Ви прибудете', + named: 'Ви прибули у {waypoint_name}', + }, + left: { + default: 'Ви прибули у ваш {nth} пункт призначення, він – ліворуч', + upcoming: 'Ви наближаєтесь до вашого {nth} місця призначення, ліворуч', + short: 'Ви прибули', + 'short-upcoming': 'Ви прибудете', + named: 'Ви прибули у {waypoint_name} ліворуч', + }, + right: { + default: 'Ви прибули у ваш {nth} пункт призначення, він – праворуч', + upcoming: 'Ви наближаєтесь до вашого {nth} місця призначення, праворуч', + short: 'Ви прибули', + 'short-upcoming': 'Ви прибудете', + named: 'Ви прибули у {waypoint_name} праворуч', + }, + 'sharp left': { + default: 'Ви прибули у ваш {nth} пункт призначення, він – ліворуч', + upcoming: 'Ви наближаєтесь до вашого {nth} місця призначення, ліворуч', + short: 'Ви прибули', + 'short-upcoming': 'Ви прибудете', + named: 'Ви прибули у {waypoint_name} ліворуч', + }, + 'sharp right': { + default: 'Ви прибули у ваш {nth} пункт призначення, він – праворуч', + upcoming: 'Ви наближаєтесь до вашого {nth} місця призначення, праворуч', + short: 'Ви прибули', + 'short-upcoming': 'Ви прибудете', + named: 'Ви прибули у {waypoint_name} праворуч', + }, + 'slight right': { + default: 'Ви прибули у ваш {nth} пункт призначення, він – праворуч', + upcoming: 'Ви наближаєтесь до вашого {nth} місця призначення, праворуч', + short: 'Ви прибули', + 'short-upcoming': 'Ви прибудете', + named: 'Ви прибули у {waypoint_name} праворуч', + }, + 'slight left': { + default: 'Ви прибули у ваш {nth} пункт призначення, він – ліворуч', + upcoming: 'Ви наближаєтесь до вашого {nth} місця призначення, ліворуч', + short: 'Ви прибули', + 'short-upcoming': 'Ви прибудете', + named: 'Ви прибули у {waypoint_name} ліворуч', + }, + straight: { + default: 'Ви прибули у ваш {nth} пункт призначення, він – прямо перед вами', + upcoming: 'Ви наближаєтесь до вашого {nth} місця призначення, прямо перед вами', + short: 'Ви прибули', + 'short-upcoming': 'Ви прибудете', + named: 'Ви прибули у {waypoint_name} прямо перед вами', + }, + }, + continue: { + default: { + default: 'Поверніть {modifier}', + name: 'Поверніть{modifier} залишаючись на {way_name}', + destination: 'Поверніть {modifier} у напрямку {destination}', + exit: 'Поверніть {modifier} на {way_name}', + }, + straight: { + default: 'Продовжуйте рух прямо', + name: 'Продовжуйте рух прямо залишаючись на {way_name}', + destination: 'Рухайтесь у напрямку {destination}', + distance: 'Продовжуйте рух прямо {distance}', + namedistance: 'Продовжуйте рух по {way_name} {distance}', + }, + 'sharp left': { + default: 'Поверніть різко ліворуч', + name: 'Поверніть різко ліворуч щоб залишитись на {way_name}', + destination: 'Поверніть різко ліворуч у напрямку {destination}', + }, + 'sharp right': { + default: 'Поверніть різко праворуч', + name: 'Поверніть різко праворуч щоб залишитись на {way_name}', + destination: 'Поверніть різко праворуч у напрямку {destination}', + }, + 'slight left': { + default: 'Поверніть різко ліворуч', + name: 'Поверніть плавно ліворуч щоб залишитись на {way_name}', + destination: 'Поверніть плавно ліворуч у напрямку {destination}', + }, + 'slight right': { + default: 'Поверніть плавно праворуч', + name: 'Поверніть плавно праворуч щоб залишитись на {way_name}', + destination: 'Поверніть плавно праворуч у напрямку {destination}', + }, + uturn: { + default: 'Здійсніть розворот', + name: 'Здійсніть розворот та рухайтесь по {way_name}', + destination: 'Здійсніть розворот у напрямку {destination}', + }, + }, + depart: { + default: { + default: 'Прямуйте на {direction}', + name: 'Прямуйте на {direction} по {way_name}', + namedistance: 'Прямуйте на {direction} по {way_name} {distance}', + }, + }, + 'end of road': { + default: { + default: 'Поверніть {modifier}', + name: 'Поверніть {modifier} на {way_name}', + destination: 'Поверніть {modifier} у напрямку {destination}', + }, + straight: { + default: 'Продовжуйте рух прямо', + name: 'Продовжуйте рух прямо до {way_name}', + destination: 'Продовжуйте рух прямо у напрямку {destination}', + }, + uturn: { + default: 'Здійсніть розворот в кінці дороги', + name: 'Здійсніть розворот на {way_name} в кінці дороги', + destination: 'Здійсніть розворот у напрямку {destination} в кінці дороги', + }, + }, + fork: { + default: { + default: 'На роздоріжжі тримайтеся {modifier}', + name: 'Тримайтеся {modifier} і рухайтесь на {way_name}', + destination: 'Тримайтеся {modifier} в напрямку {destination}', + }, + 'slight left': { + default: 'На роздоріжжі тримайтеся ліворуч', + name: 'Тримайтеся ліворуч і рухайтесь на {way_name}', + destination: 'Тримайтеся ліворуч в напрямку {destination}', + }, + 'slight right': { + default: 'На роздоріжжі тримайтеся праворуч', + name: 'Тримайтеся праворуч і рухайтесь на {way_name}', + destination: 'Тримайтеся праворуч в напрямку {destination}', + }, + 'sharp left': { + default: 'На роздоріжжі різко поверніть ліворуч', + name: 'Прийміть різко ліворуч на {way_name}', + destination: 'Прийміть різко ліворуч у напрямку {destination}', + }, + 'sharp right': { + default: 'На роздоріжжі різко поверніть праворуч', + name: 'Прийміть різко праворуч на {way_name}', + destination: 'Прийміть різко праворуч у напрямку {destination}', + }, + uturn: { + default: 'Здійсніть розворот', + name: 'Здійсніть розворот на {way_name}', + destination: 'Здійсніть розворот у напрямку {destination}', + }, + }, + merge: { + default: { + default: 'Приєднайтеся до потоку {modifier}', + name: 'Приєднайтеся до потоку {modifier} на {way_name}', + destination: 'Приєднайтеся до потоку {modifier} у напрямку {destination}', + }, + straight: { + default: 'Приєднайтеся до потоку', + name: 'Приєднайтеся до потоку на {way_name}', + destination: 'Приєднайтеся до потоку у напрямку {destination}', + }, + 'slight left': { + default: 'Приєднайтеся до потоку ліворуч', + name: 'Приєднайтеся до потоку ліворуч на {way_name}', + destination: 'Приєднайтеся до потоку ліворуч у напрямку {destination}', + }, + 'slight right': { + default: 'Приєднайтеся до потоку праворуч', + name: 'Приєднайтеся до потоку праворуч на {way_name}', + destination: 'Приєднайтеся до потоку праворуч у напрямку {destination}', + }, + 'sharp left': { + default: 'Приєднайтеся до потоку ліворуч', + name: 'Приєднайтеся до потоку ліворуч на {way_name}', + destination: 'Приєднайтеся до потоку ліворуч у напрямку {destination}', + }, + 'sharp right': { + default: 'Приєднайтеся до потоку праворуч', + name: 'Приєднайтеся до потоку праворуч на {way_name}', + destination: 'Приєднайтеся до потоку праворуч у напрямку {destination}', + }, + uturn: { + default: 'Здійсніть розворот', + name: 'Здійсніть розворот на {way_name}', + destination: 'Здійсніть розворот у напрямку {destination}', + }, + }, + 'new name': { + default: { + default: 'Рухайтесь {modifier}', + name: 'Рухайтесь {modifier} на {way_name}', + destination: 'Рухайтесь {modifier} у напрямку {destination}', + }, + straight: { + default: 'Рухайтесь прямо', + name: 'Рухайтесь по {way_name}', + destination: 'Рухайтесь у напрямку {destination}', + }, + 'sharp left': { + default: 'Прийміть різко ліворуч', + name: 'Прийміть різко ліворуч на {way_name}', + destination: 'Прийміть різко ліворуч у напрямку {destination}', + }, + 'sharp right': { + default: 'Прийміть різко праворуч', + name: 'Прийміть різко праворуч на {way_name}', + destination: 'Прийміть різко праворуч у напрямку {destination}', + }, + 'slight left': { + default: 'Рухайтесь плавно ліворуч', + name: 'Рухайтесь плавно ліворуч на {way_name}', + destination: 'Рухайтесь плавно ліворуч у напрямку {destination}', + }, + 'slight right': { + default: 'Рухайтесь плавно праворуч', + name: 'Рухайтесь плавно праворуч на {way_name}', + destination: 'Рухайтесь плавно праворуч у напрямку {destination}', + }, + uturn: { + default: 'Здійсніть розворот', + name: 'Здійсніть розворот на {way_name}', + destination: 'Здійсніть розворот у напрямку {destination}', + }, + }, + notification: { + default: { + default: 'Рухайтесь {modifier}', + name: 'Рухайтесь {modifier} на {way_name}', + destination: 'Рухайтесь {modifier} у напрямку {destination}', + }, + uturn: { + default: 'Здійсніть розворот', + name: 'Здійсніть розворот на {way_name}', + destination: 'Здійсніть розворот у напрямку {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Рухайтесь на зʼїзд', + name: 'Рухайтесь на зʼїзд на {way_name}', + destination: 'Рухайтесь на зʼїзд у напрямку {destination}', + exit: "Оберіть з'їзд {exit}", + exit_destination: "Оберіть з'їзд {exit} у напрямку {destination}", + }, + left: { + default: 'Рухайтесь на зʼїзд ліворуч', + name: 'Рухайтесь на зʼїзд ліворуч на {way_name}', + destination: 'Рухайтесь на зʼїзд ліворуч у напрямку {destination}', + exit: "Оберіть з'їзд {exit} ліворуч", + exit_destination: "Оберіть з'їзд {exit} ліворуч у напрямку {destination}", + }, + right: { + default: 'Рухайтесь на зʼїзд праворуч', + name: 'Рухайтесь на зʼїзд праворуч на {way_name}', + destination: 'Рухайтесь на зʼїзд праворуч у напрямку {destination}', + exit: "Оберіть з'їзд {exit} праворуч", + exit_destination: "Оберіть з'їзд {exit} праворуч у напрямку {destination}", + }, + 'sharp left': { + default: 'Рухайтесь на зʼїзд ліворуч', + name: 'Рухайтесь на зʼїзд ліворуч на {way_name}', + destination: 'Рухайтесь на зʼїзд ліворуч у напрямку {destination}', + exit: "Оберіть з'їзд {exit} ліворуч", + exit_destination: "Оберіть з'їзд {exit} ліворуч у напрямку {destination}", + }, + 'sharp right': { + default: 'Рухайтесь на зʼїзд праворуч', + name: 'Рухайтесь на зʼїзд праворуч на {way_name}', + destination: 'Рухайтесь на зʼїзд праворуч у напрямку {destination}', + exit: "Оберіть з'їзд {exit} праворуч", + exit_destination: "Оберіть з'їзд {exit} праворуч у напрямку {destination}", + }, + 'slight left': { + default: 'Рухайтесь на зʼїзд ліворуч', + name: 'Рухайтесь на зʼїзд ліворуч на {way_name}', + destination: 'Рухайтесь на зʼїзд ліворуч у напрямку {destination}', + exit: "Оберіть з'їзд {exit} ліворуч", + exit_destination: "Оберіть з'їзд {exit} ліворуч у напрямку {destination}", + }, + 'slight right': { + default: 'Рухайтесь на зʼїзд праворуч', + name: 'Рухайтесь на зʼїзд праворуч на {way_name}', + destination: 'Рухайтесь на зʼїзд праворуч у напрямку {destination}', + exit: "Оберіть з'їзд {exit} праворуч", + exit_destination: "Оберіть з'їзд {exit} праворуч у напрямку {destination}", + }, + }, + 'on ramp': { + default: { + default: 'Рухайтесь на вʼїзд', + name: 'Рухайтесь на вʼїзд на {way_name}', + destination: 'Рухайтесь на вʼїзд у напрямку {destination}', + }, + left: { + default: 'Рухайтесь на вʼїзд ліворуч', + name: 'Рухайтесь на вʼїзд ліворуч на {way_name}', + destination: 'Рухайтесь на вʼїзд ліворуч у напрямку {destination}', + }, + right: { + default: 'Рухайтесь на вʼїзд праворуч', + name: 'Рухайтесь на вʼїзд праворуч на {way_name}', + destination: 'Рухайтесь на вʼїзд праворуч у напрямку {destination}', + }, + 'sharp left': { + default: 'Рухайтесь на вʼїзд ліворуч', + name: 'Рухайтесь на вʼїзд ліворуч на {way_name}', + destination: 'Рухайтесь на вʼїзд ліворуч у напрямку {destination}', + }, + 'sharp right': { + default: 'Рухайтесь на вʼїзд праворуч', + name: 'Рухайтесь на вʼїзд праворуч на {way_name}', + destination: 'Рухайтесь на вʼїзд праворуч у напрямку {destination}', + }, + 'slight left': { + default: 'Рухайтесь на вʼїзд ліворуч', + name: 'Рухайтесь на вʼїзд ліворуч на {way_name}', + destination: 'Рухайтесь на вʼїзд ліворуч у напрямку {destination}', + }, + 'slight right': { + default: 'Рухайтесь на вʼїзд праворуч', + name: 'Рухайтесь на вʼїзд праворуч на {way_name}', + destination: 'Рухайтесь на вʼїзд праворуч у напрямку {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Рухайтесь по колу', + name: 'Рухайтесь по колу до {way_name}', + destination: 'Рухайтесь по колу в напрямку {destination}', + }, + name: { + default: 'Рухайтесь по {rotary_name}', + name: 'Рухайтесь по {rotary_name} та поверніть на {way_name}', + destination: 'Рухайтесь по {rotary_name} та поверніть в напрямку {destination}', + }, + exit: { + default: "Рухайтесь по колу та повереніть у {exit_number} з'їзд", + name: "Рухайтесь по колу та поверніть у {exit_number} з'їзд на {way_name}", + destination: + "Рухайтесь по колу та поверніть у {exit_number} з'їзд у напрямку {destination}", + }, + name_exit: { + default: "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд", + name: "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд на {way_name}", + destination: + "Рухайтесь по {rotary_name} та поверніть у {exit_number} з'їзд в напрямку {destination}", + }, + }, + }, + roundabout: { + default: { + exit: { + default: "Рухайтесь по колу та повереніть у {exit_number} з'їзд", + name: "Рухайтесь по колу та поверніть у {exit_number} з'їзд на {way_name}", + destination: + "Рухайтесь по колу та поверніть у {exit_number} з'їзд у напрямку {destination}", + }, + default: { + default: 'Рухайтесь по колу', + name: 'Рухайтесь по колу до {way_name}', + destination: 'Рухайтесь по колу в напрямку {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Рухайтесь {modifier}', + name: 'Рухайтесь {modifier} на {way_name}', + destination: 'Рухайтесь {modifier} в напрямку {destination}', + }, + left: { + default: 'Поверніть ліворуч', + name: 'Поверніть ліворуч на {way_name}', + destination: 'Поверніть ліворуч у напрямку {destination}', + }, + right: { + default: 'Поверніть праворуч', + name: 'Поверніть праворуч на {way_name}', + destination: 'Поверніть праворуч у напрямку {destination}', + }, + straight: { + default: 'Рухайтесь прямо', + name: 'Продовжуйте рух прямо до {way_name}', + destination: 'Продовжуйте рух прямо у напрямку {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Залишить коло', + name: 'Залишить коло на {way_name} зʼїзді', + destination: 'Залишить коло в напрямку {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Залишить коло', + name: 'Залишить коло на {way_name} зʼїзді', + destination: 'Залишить коло в напрямку {destination}', + }, + }, + turn: { + default: { + default: 'Рухайтесь {modifier}', + name: 'Рухайтесь {modifier} на {way_name}', + destination: 'Рухайтесь {modifier} в напрямку {destination}', + }, + left: { + default: 'Поверніть ліворуч', + name: 'Поверніть ліворуч на {way_name}', + destination: 'Поверніть ліворуч у напрямку {destination}', + }, + right: { + default: 'Поверніть праворуч', + name: 'Поверніть праворуч на {way_name}', + destination: 'Поверніть праворуч у напрямку {destination}', + }, + straight: { + default: 'Рухайтесь прямо', + name: 'Рухайтесь прямо по {way_name}', + destination: 'Рухайтесь прямо у напрямку {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Продовжуйте рух прямо', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 46: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: true, + }, + v5: { + constants: { + ordinalize: { + 1: 'đầu tiên', + 2: 'thứ 2', + 3: 'thứ 3', + 4: 'thứ 4', + 5: 'thứ 5', + 6: 'thú 6', + 7: 'thứ 7', + 8: 'thứ 8', + 9: 'thứ 9', + 10: 'thứ 10', + }, + direction: { + north: 'bắc', + northeast: 'đông bắc', + east: 'đông', + southeast: 'đông nam', + south: 'nam', + southwest: 'tây nam', + west: 'tây', + northwest: 'tây bắc', + }, + modifier: { + left: 'trái', + right: 'phải', + 'sharp left': 'trái gắt', + 'sharp right': 'phải gắt', + 'slight left': 'trái nghiêng', + 'slight right': 'phải nghiêng', + straight: 'thẳng', + uturn: 'ngược', + }, + lanes: { + xo: 'Đi bên phải', + ox: 'Đi bên trái', + xox: 'Đi vào giữa', + oxo: 'Đi bên trái hay bên phải', + }, + }, + modes: { + ferry: { + default: 'Lên phà', + name: 'Lên phà {way_name}', + destination: 'Lên phà đi {destination}', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one}, rồi {distance} nữa thì {instruction_two}', + 'two linked': '{instruction_one}, rồi {instruction_two}', + 'one in distance': '{distance} nữa thì {instruction_one}', + 'name and ref': '{name} ({ref})', + 'exit with number': 'lối ra {exit}', + }, + arrive: { + default: { + default: 'Đến nơi {nth}', + upcoming: 'Đến nơi {nth}', + short: 'Đến nơi', + 'short-upcoming': 'Đến nơi', + named: 'Đến {waypoint_name}', + }, + left: { + default: 'Đến nơi {nth} ở bên trái', + upcoming: 'Đến nơi {nth} ở bên trái', + short: 'Đến nơi', + 'short-upcoming': 'Đến nơi', + named: 'Đến {waypoint_name} ở bên trái', + }, + right: { + default: 'Đến nơi {nth} ở bên phải', + upcoming: 'Đến nơi {nth} ở bên phải', + short: 'Đến nơi', + 'short-upcoming': 'Đến nơi', + named: 'Đến {waypoint_name} ở bên phải', + }, + 'sharp left': { + default: 'Đến nơi {nth} ở bên trái', + upcoming: 'Đến nơi {nth} ở bên trái', + short: 'Đến nơi', + 'short-upcoming': 'Đến nơi', + named: 'Đến {waypoint_name} ở bên trái', + }, + 'sharp right': { + default: 'Đến nơi {nth} ở bên phải', + upcoming: 'Đến nơi {nth} ở bên phải', + short: 'Đến nơi', + 'short-upcoming': 'Đến nơi', + named: 'Đến {waypoint_name} ở bên phải', + }, + 'slight right': { + default: 'Đến nơi {nth} ở bên phải', + upcoming: 'Đến nơi {nth} ở bên phải', + short: 'Đến nơi', + 'short-upcoming': 'Đến nơi', + named: 'Đến {waypoint_name} ở bên phải', + }, + 'slight left': { + default: 'Đến nơi {nth} ở bên trái', + upcoming: 'Đến nơi {nth} ở bên trái', + short: 'Đến nơi', + 'short-upcoming': 'Đến nơi', + named: 'Đến {waypoint_name} ở bên trái', + }, + straight: { + default: 'Đến nơi {nth} ở trước mặt', + upcoming: 'Đến nơi {nth} ở trước mặt', + short: 'Đến nơi', + 'short-upcoming': 'Đến nơi', + named: 'Đến {waypoint_name} ở trước mặt', + }, + }, + continue: { + default: { + default: 'Quẹo {modifier}', + name: 'Quẹo {modifier} để chạy tiếp trên {way_name}', + destination: 'Quẹo {modifier} về {destination}', + exit: 'Quẹo {modifier} vào {way_name}', + }, + straight: { + default: 'Chạy thẳng', + name: 'Chạy tiếp trên {way_name}', + destination: 'Chạy tiếp về {destination}', + distance: 'Chạy thẳng cho {distance}', + namedistance: 'Chạy tiếp trên {way_name} cho {distance}', + }, + 'sharp left': { + default: 'Quẹo gắt bên trái', + name: 'Quẹo gắt bên trái để chạy tiếp trên {way_name}', + destination: 'Quẹo gắt bên trái về {destination}', + }, + 'sharp right': { + default: 'Quẹo gắt bên phải', + name: 'Quẹo gắt bên phải để chạy tiếp trên {way_name}', + destination: 'Quẹo gắt bên phải về {destination}', + }, + 'slight left': { + default: 'Nghiêng về bên trái', + name: 'Nghiêng về bên trái để chạy tiếp trên {way_name}', + destination: 'Nghiêng về bên trái về {destination}', + }, + 'slight right': { + default: 'Nghiêng về bên phải', + name: 'Nghiêng về bên phải để chạy tiếp trên {way_name}', + destination: 'Nghiêng về bên phải về {destination}', + }, + uturn: { + default: 'Quẹo ngược lại', + name: 'Quẹo ngược lại trên {way_name}', + destination: 'Quẹo ngược về {destination}', + }, + }, + depart: { + default: { + default: 'Đi về hướng {direction}', + name: 'Đi về hướng {direction} trên {way_name}', + namedistance: 'Đi về hướng {direction} trên {way_name} cho {distance}', + }, + }, + 'end of road': { + default: { + default: 'Quẹo {modifier}', + name: 'Quẹo {modifier} vào {way_name}', + destination: 'Quẹo {modifier} về {destination}', + }, + straight: { + default: 'Chạy thẳng', + name: 'Chạy tiếp trên {way_name}', + destination: 'Chạy tiếp về {destination}', + }, + uturn: { + default: 'Quẹo ngược lại tại cuối đường', + name: 'Quẹo ngược vào {way_name} tại cuối đường', + destination: 'Quẹo ngược về {destination} tại cuối đường', + }, + }, + fork: { + default: { + default: 'Đi bên {modifier} ở ngã ba', + name: 'Giữ bên {modifier} vào {way_name}', + destination: 'Giữ bên {modifier} về {destination}', + }, + 'slight left': { + default: 'Nghiêng về bên trái ở ngã ba', + name: 'Giữ bên trái vào {way_name}', + destination: 'Giữ bên trái về {destination}', + }, + 'slight right': { + default: 'Nghiêng về bên phải ở ngã ba', + name: 'Giữ bên phải vào {way_name}', + destination: 'Giữ bên phải về {destination}', + }, + 'sharp left': { + default: 'Quẹo gắt bên trái ở ngã ba', + name: 'Quẹo gắt bên trái vào {way_name}', + destination: 'Quẹo gắt bên trái về {destination}', + }, + 'sharp right': { + default: 'Quẹo gắt bên phải ở ngã ba', + name: 'Quẹo gắt bên phải vào {way_name}', + destination: 'Quẹo gắt bên phải về {destination}', + }, + uturn: { + default: 'Quẹo ngược lại', + name: 'Quẹo ngược lại {way_name}', + destination: 'Quẹo ngược lại về {destination}', + }, + }, + merge: { + default: { + default: 'Nhập sang {modifier}', + name: 'Nhập sang {modifier} vào {way_name}', + destination: 'Nhập sang {modifier} về {destination}', + }, + straight: { + default: 'Nhập đường', + name: 'Nhập vào {way_name}', + destination: 'Nhập đường về {destination}', + }, + 'slight left': { + default: 'Nhập sang trái', + name: 'Nhập sang trái vào {way_name}', + destination: 'Nhập sang trái về {destination}', + }, + 'slight right': { + default: 'Nhập sang phải', + name: 'Nhập sang phải vào {way_name}', + destination: 'Nhập sang phải về {destination}', + }, + 'sharp left': { + default: 'Nhập sang trái', + name: 'Nhập sang trái vào {way_name}', + destination: 'Nhập sang trái về {destination}', + }, + 'sharp right': { + default: 'Nhập sang phải', + name: 'Nhập sang phải vào {way_name}', + destination: 'Nhập sang phải về {destination}', + }, + uturn: { + default: 'Quẹo ngược lại', + name: 'Quẹo ngược lại {way_name}', + destination: 'Quẹo ngược lại về {destination}', + }, + }, + 'new name': { + default: { + default: 'Chạy tiếp bên {modifier}', + name: 'Chạy tiếp bên {modifier} trên {way_name}', + destination: 'Chạy tiếp bên {modifier} về {destination}', + }, + straight: { + default: 'Chạy thẳng', + name: 'Chạy tiếp trên {way_name}', + destination: 'Chạy tiếp về {destination}', + }, + 'sharp left': { + default: 'Quẹo gắt bên trái', + name: 'Quẹo gắt bên trái vào {way_name}', + destination: 'Quẹo gắt bên trái về {destination}', + }, + 'sharp right': { + default: 'Quẹo gắt bên phải', + name: 'Quẹo gắt bên phải vào {way_name}', + destination: 'Quẹo gắt bên phải về {destination}', + }, + 'slight left': { + default: 'Nghiêng về bên trái', + name: 'Nghiêng về bên trái vào {way_name}', + destination: 'Nghiêng về bên trái về {destination}', + }, + 'slight right': { + default: 'Nghiêng về bên phải', + name: 'Nghiêng về bên phải vào {way_name}', + destination: 'Nghiêng về bên phải về {destination}', + }, + uturn: { + default: 'Quẹo ngược lại', + name: 'Quẹo ngược lại {way_name}', + destination: 'Quẹo ngược lại về {destination}', + }, + }, + notification: { + default: { + default: 'Chạy tiếp bên {modifier}', + name: 'Chạy tiếp bên {modifier} trên {way_name}', + destination: 'Chạy tiếp bên {modifier} về {destination}', + }, + uturn: { + default: 'Quẹo ngược lại', + name: 'Quẹo ngược lại {way_name}', + destination: 'Quẹo ngược lại về {destination}', + }, + }, + 'off ramp': { + default: { + default: 'Đi đường nhánh', + name: 'Đi đường nhánh {way_name}', + destination: 'Đi đường nhánh về {destination}', + exit: 'Đi theo lối ra {exit}', + exit_destination: 'Đi theo lối ra {exit} về {destination}', + }, + left: { + default: 'Đi đường nhánh bên trái', + name: 'Đi đường nhánh {way_name} bên trái', + destination: 'Đi đường nhánh bên trái về {destination}', + exit: 'Đi theo lối ra {exit} bên trái', + exit_destination: 'Đi theo lối ra {exit} bên trái về {destination}', + }, + right: { + default: 'Đi đường nhánh bên phải', + name: 'Đi đường nhánh {way_name} bên phải', + destination: 'Đi đường nhánh bên phải về {destination}', + exit: 'Đi theo lối ra {exit} bên phải', + exit_destination: 'Đi theo lối ra {exit} bên phải về {destination}', + }, + 'sharp left': { + default: 'Đi đường nhánh bên trái', + name: 'Đi đường nhánh {way_name} bên trái', + destination: 'Đi đường nhánh bên trái về {destination}', + exit: 'Đi theo lối ra {exit} bên trái', + exit_destination: 'Đi theo lối ra {exit} bên trái về {destination}', + }, + 'sharp right': { + default: 'Đi đường nhánh bên phải', + name: 'Đi đường nhánh {way_name} bên phải', + destination: 'Đi đường nhánh bên phải về {destination}', + exit: 'Đi theo lối ra {exit} bên phải', + exit_destination: 'Đi theo lối ra {exit} bên phải về {destination}', + }, + 'slight left': { + default: 'Đi đường nhánh bên trái', + name: 'Đi đường nhánh {way_name} bên trái', + destination: 'Đi đường nhánh bên trái về {destination}', + exit: 'Đi theo lối ra {exit} bên trái', + exit_destination: 'Đi theo lối ra {exit} bên trái về {destination}', + }, + 'slight right': { + default: 'Đi đường nhánh bên phải', + name: 'Đi đường nhánh {way_name} bên phải', + destination: 'Đi đường nhánh bên phải về {destination}', + exit: 'Đi theo lối ra {exit} bên phải', + exit_destination: 'Đi theo lối ra {exit} bên phải về {destination}', + }, + }, + 'on ramp': { + default: { + default: 'Đi đường nhánh', + name: 'Đi đường nhánh {way_name}', + destination: 'Đi đường nhánh về {destination}', + }, + left: { + default: 'Đi đường nhánh bên trái', + name: 'Đi đường nhánh {way_name} bên trái', + destination: 'Đi đường nhánh bên trái về {destination}', + }, + right: { + default: 'Đi đường nhánh bên phải', + name: 'Đi đường nhánh {way_name} bên phải', + destination: 'Đi đường nhánh bên phải về {destination}', + }, + 'sharp left': { + default: 'Đi đường nhánh bên trái', + name: 'Đi đường nhánh {way_name} bên trái', + destination: 'Đi đường nhánh bên trái về {destination}', + }, + 'sharp right': { + default: 'Đi đường nhánh bên phải', + name: 'Đi đường nhánh {way_name} bên phải', + destination: 'Đi đường nhánh bên phải về {destination}', + }, + 'slight left': { + default: 'Đi đường nhánh bên trái', + name: 'Đi đường nhánh {way_name} bên trái', + destination: 'Đi đường nhánh bên trái về {destination}', + }, + 'slight right': { + default: 'Đi đường nhánh bên phải', + name: 'Đi đường nhánh {way_name} bên phải', + destination: 'Đi đường nhánh bên phải về {destination}', + }, + }, + rotary: { + default: { + default: { + default: 'Đi vào bùng binh', + name: 'Đi vào bùng binh và ra tại {way_name}', + destination: 'Đi vào bùng binh và ra về {destination}', + }, + name: { + default: 'Đi vào {rotary_name}', + name: 'Đi vào {rotary_name} và ra tại {way_name}', + destination: 'Đi và {rotary_name} và ra về {destination}', + }, + exit: { + default: 'Đi vào bùng binh và ra tại đường {exit_number}', + name: 'Đi vào bùng binh và ra tại đường {exit_number} tức {way_name}', + destination: 'Đi vào bùng binh và ra tại đường {exit_number} về {destination}', + }, + name_exit: { + default: 'Đi vào {rotary_name} và ra tại đường {exit_number}', + name: 'Đi vào {rotary_name} và ra tại đường {exit_number} tức {way_name}', + destination: 'Đi vào {rotary_name} và ra tại đường {exit_number} về {destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: 'Đi vào bùng binh và ra tại đường {exit_number}', + name: 'Đi vào bùng binh và ra tại đường {exit_number} tức {way_name}', + destination: 'Đi vào bùng binh và ra tại đường {exit_number} về {destination}', + }, + default: { + default: 'Đi vào bùng binh', + name: 'Đi vào bùng binh và ra tại {way_name}', + destination: 'Đi vào bùng binh và ra về {destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: 'Quẹo {modifier}', + name: 'Quẹo {modifier} vào {way_name}', + destination: 'Quẹo {modifier} về {destination}', + }, + left: { + default: 'Quẹo trái', + name: 'Quẹo trái vào {way_name}', + destination: 'Quẹo trái về {destination}', + }, + right: { + default: 'Quẹo phải', + name: 'Quẹo phải vào {way_name}', + destination: 'Quẹo phải về {destination}', + }, + straight: { + default: 'Chạy thẳng', + name: 'Chạy tiếp trên {way_name}', + destination: 'Chạy tiếp về {destination}', + }, + }, + 'exit roundabout': { + default: { + default: 'Ra bùng binh', + name: 'Ra bùng binh vào {way_name}', + destination: 'Ra bùng binh về {destination}', + }, + }, + 'exit rotary': { + default: { + default: 'Ra bùng binh', + name: 'Ra bùng binh vào {way_name}', + destination: 'Ra bùng binh về {destination}', + }, + }, + turn: { + default: { + default: 'Quẹo {modifier}', + name: 'Quẹo {modifier} vào {way_name}', + destination: 'Quẹo {modifier} về {destination}', + }, + left: { + default: 'Quẹo trái', + name: 'Quẹo trái vào {way_name}', + destination: 'Quẹo trái về {destination}', + }, + right: { + default: 'Quẹo phải', + name: 'Quẹo phải vào {way_name}', + destination: 'Quẹo phải về {destination}', + }, + straight: { + default: 'Chạy thẳng', + name: 'Chạy thẳng vào {way_name}', + destination: 'Chạy thẳng về {destination}', + }, + }, + 'use lane': { + no_lanes: { + default: 'Chạy thẳng', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 47: [ + function (_dereq_, module, exports) { + module.exports = { + meta: { + capitalizeFirstLetter: false, + }, + v5: { + constants: { + ordinalize: { + 1: '第一', + 2: '第二', + 3: '第三', + 4: '第四', + 5: '第五', + 6: '第六', + 7: '第七', + 8: '第八', + 9: '第九', + 10: '第十', + }, + direction: { + north: '北', + northeast: '东北', + east: '东', + southeast: '东南', + south: '南', + southwest: '西南', + west: '西', + northwest: '西北', + }, + modifier: { + left: '向左', + right: '向右', + 'sharp left': '急向左', + 'sharp right': '急向右', + 'slight left': '稍向左', + 'slight right': '稍向右', + straight: '直行', + uturn: '调头', + }, + lanes: { + xo: '靠右行驶', + ox: '靠左行驶', + xox: '保持在道路中间行驶', + oxo: '保持在道路左侧或右侧行驶', + }, + }, + modes: { + ferry: { + default: '乘坐轮渡', + name: '乘坐{way_name}轮渡', + destination: '乘坐开往{destination}的轮渡', + }, + }, + phrase: { + 'two linked by distance': '{instruction_one},{distance}后{instruction_two}', + 'two linked': '{instruction_one},随后{instruction_two}', + 'one in distance': '{distance}后{instruction_one}', + 'name and ref': '{name}({ref})', + 'exit with number': '出口{exit}', + }, + arrive: { + default: { + default: '您已经到达您的{nth}个目的地', + upcoming: '您即将到达您的{nth}个目的地', + short: '已到达目的地', + 'short-upcoming': '即将到达目的地', + named: '您已到达{waypoint_name}', + }, + left: { + default: '您已经到达您的{nth}个目的地,目的地在道路左侧', + upcoming: '您即将到达您的{nth}个目的地,目的地在道路左侧', + short: '已到达目的地', + 'short-upcoming': '即将到达目的地', + named: '您已到达{waypoint_name},目的地在您左边。', + }, + right: { + default: '您已经到达您的{nth}个目的地,目的地在道路右侧', + upcoming: '您即将到达您的{nth}个目的地,目的地在道路右侧', + short: '已到达目的地', + 'short-upcoming': '即将到达目的地', + named: '您已到达{waypoint_name},目的地在您右边。', + }, + 'sharp left': { + default: '您已经到达您的{nth}个目的地,目的地在道路左侧', + upcoming: '您即将到达您的{nth}个目的地,目的地在道路左侧', + short: '已到达目的地', + 'short-upcoming': '即将到达目的地', + named: '您已到达{waypoint_name},目的地在您左边。', + }, + 'sharp right': { + default: '您已经到达您的{nth}个目的地,目的地在道路右侧', + upcoming: '您即将到达您的{nth}个目的地,目的地在道路右侧', + short: '已到达目的地', + 'short-upcoming': '即将到达目的地', + named: '您已到达{waypoint_name},目的地在您右边。', + }, + 'slight right': { + default: '您已经到达您的{nth}个目的地,目的地在道路左侧', + upcoming: '您即将到达您的{nth}个目的地,目的地在道路左侧', + short: '已到达目的地', + 'short-upcoming': '即将到达目的地', + named: '您已到达{waypoint_name},目的地在您右边。', + }, + 'slight left': { + default: '您已经到达您的{nth}个目的地,目的地在道路右侧', + upcoming: '您即将到达您的{nth}个目的地,目的地在道路右侧', + short: '已到达目的地', + 'short-upcoming': '即将到达目的地', + named: '您已到达{waypoint_name},目的地在您左边。', + }, + straight: { + default: '您已经到达您的{nth}个目的地,目的地在您正前方', + upcoming: '您即将到达您的{nth}个目的地,目的地在您正前方', + short: '已到达目的地', + 'short-upcoming': '即将到达目的地', + named: '您已到达{waypoint_name},目的地在您前方。', + }, + }, + continue: { + default: { + default: '{modifier}行驶', + name: '在{way_name}上继续{modifier}行驶', + destination: '{modifier}行驶,{destination}方向', + exit: '{modifier}行驶,驶入{way_name}', + }, + straight: { + default: '继续直行', + name: '在{way_name}上继续直行', + destination: '继续直行,前往{destination}', + distance: '继续直行{distance}', + namedistance: '继续在{way_name}上直行{distance}', + }, + 'sharp left': { + default: '前方左急转弯', + name: '前方左急转弯,继续在{way_name}上行驶', + destination: '左急转弯,前往{destination}', + }, + 'sharp right': { + default: '前方右急转弯', + name: '前方右急转弯,继续在{way_name}上行驶', + destination: '右急转弯,前往{destination}', + }, + 'slight left': { + default: '前方稍向左转', + name: '前方稍向左转,继续在{way_name}上行驶', + destination: '稍向左转,前往{destination}', + }, + 'slight right': { + default: '前方稍向右转', + name: '前方稍向右转,继续在{way_name}上行驶', + destination: '前方稍向右转,前往{destination}', + }, + uturn: { + default: '前方调头', + name: '前方调头,继续在{way_name}上行驶', + destination: '前方调头,前往{destination}', + }, + }, + depart: { + default: { + default: '出发向{direction}', + name: '出发向{direction},驶入{way_name}', + namedistance: '出发向{direction},在{way_name}上继续行驶{distance}', + }, + }, + 'end of road': { + default: { + default: '{modifier}行驶', + name: '{modifier}行驶,驶入{way_name}', + destination: '{modifier}行驶,前往{destination}', + }, + straight: { + default: '继续直行', + name: '继续直行,驶入{way_name}', + destination: '继续直行,前往{destination}', + }, + uturn: { + default: '在道路尽头调头', + name: '在道路尽头调头驶入{way_name}', + destination: '在道路尽头调头,前往{destination}', + }, + }, + fork: { + default: { + default: '在岔道保持{modifier}', + name: '在岔道口保持{modifier},驶入{way_name}', + destination: '在岔道口保持{modifier},前往{destination}', + }, + 'slight left': { + default: '在岔道口保持左侧行驶', + name: '在岔道口保持左侧行驶,驶入{way_name}', + destination: '在岔道口保持左侧行驶,前往{destination}', + }, + 'slight right': { + default: '在岔道口保持右侧行驶', + name: '在岔道口保持右侧行驶,驶入{way_name}', + destination: '在岔道口保持右侧行驶,前往{destination}', + }, + 'sharp left': { + default: '在岔道口左急转弯', + name: '在岔道口左急转弯,驶入{way_name}', + destination: '在岔道口左急转弯,前往{destination}', + }, + 'sharp right': { + default: '在岔道口右急转弯', + name: '在岔道口右急转弯,驶入{way_name}', + destination: '在岔道口右急转弯,前往{destination}', + }, + uturn: { + default: '前方调头', + name: '前方调头,驶入{way_name}', + destination: '前方调头,前往{destination}', + }, + }, + merge: { + default: { + default: '{modifier}并道', + name: '{modifier}并道,驶入{way_name}', + destination: '{modifier}并道,前往{destination}', + }, + straight: { + default: '直行并道', + name: '直行并道,驶入{way_name}', + destination: '直行并道,前往{destination}', + }, + 'slight left': { + default: '稍向左并道', + name: '稍向左并道,驶入{way_name}', + destination: '稍向左并道,前往{destination}', + }, + 'slight right': { + default: '稍向右并道', + name: '稍向右并道,驶入{way_name}', + destination: '稍向右并道,前往{destination}', + }, + 'sharp left': { + default: '急向左并道', + name: '急向左并道,驶入{way_name}', + destination: '急向左并道,前往{destination}', + }, + 'sharp right': { + default: '急向右并道', + name: '急向右并道,驶入{way_name}', + destination: '急向右并道,前往{destination}', + }, + uturn: { + default: '前方调头', + name: '前方调头,驶入{way_name}', + destination: '前方调头,前往{destination}', + }, + }, + 'new name': { + default: { + default: '继续{modifier}', + name: '继续{modifier},驶入{way_name}', + destination: '继续{modifier},前往{destination}', + }, + straight: { + default: '继续直行', + name: '继续在{way_name}上直行', + destination: '继续直行,前往{destination}', + }, + 'sharp left': { + default: '前方左急转弯', + name: '前方左急转弯,驶入{way_name}', + destination: '左急转弯,前往{destination}', + }, + 'sharp right': { + default: '前方右急转弯', + name: '前方右急转弯,驶入{way_name}', + destination: '右急转弯,前往{destination}', + }, + 'slight left': { + default: '继续稍向左', + name: '继续稍向左,驶入{way_name}', + destination: '继续稍向左,前往{destination}', + }, + 'slight right': { + default: '继续稍向右', + name: '继续稍向右,驶入{way_name}', + destination: '继续稍向右,前往{destination}', + }, + uturn: { + default: '前方调头', + name: '前方调头,上{way_name}', + destination: '前方调头,前往{destination}', + }, + }, + notification: { + default: { + default: '继续{modifier}', + name: '继续{modifier},驶入{way_name}', + destination: '继续{modifier},前往{destination}', + }, + uturn: { + default: '前方调头', + name: '前方调头,驶入{way_name}', + destination: '前方调头,前往{destination}', + }, + }, + 'off ramp': { + default: { + default: '下匝道', + name: '下匝道,驶入{way_name}', + destination: '下匝道,前往{destination}', + exit: '从{exit}出口驶出', + exit_destination: '从{exit}出口驶出,前往{destination}', + }, + left: { + default: '下左侧匝道', + name: '下左侧匝道,上{way_name}', + destination: '下左侧匝道,前往{destination}', + exit: '从左侧{exit}出口驶出', + exit_destination: '从左侧{exit}出口驶出,前往{destination}', + }, + right: { + default: '下右侧匝道', + name: '下右侧匝道,驶入{way_name}', + destination: '下右侧匝道,前往{destination}', + exit: '从右侧{exit}出口驶出', + exit_destination: '从右侧{exit}出口驶出,前往{destination}', + }, + 'sharp left': { + default: '急向左下匝道', + name: '急向左下匝道,驶入{way_name}', + destination: '急向左下匝道,前往{destination}', + exit: '从左侧{exit}出口驶出', + exit_destination: '从左侧{exit}出口驶出,前往{destination}', + }, + 'sharp right': { + default: '急向右下匝道', + name: '急向右下匝道,驶入{way_name}', + destination: '急向右下匝道,前往{destination}', + exit: '从右侧{exit}出口驶出', + exit_destination: '从右侧{exit}出口驶出,前往{destination}', + }, + 'slight left': { + default: '稍向左下匝道', + name: '稍向左下匝道,驶入{way_name}', + destination: '稍向左下匝道,前往{destination}', + exit: '从左侧{exit}出口驶出', + exit_destination: '从左侧{exit}出口驶出,前往{destination}', + }, + 'slight right': { + default: '稍向右下匝道', + name: '稍向右下匝道,驶入{way_name}', + destination: '稍向右下匝道,前往{destination}', + exit: '从右侧{exit}出口驶出', + exit_destination: '从右侧{exit}出口驶出,前往{destination}', + }, + }, + 'on ramp': { + default: { + default: '上匝道', + name: '上匝道,驶入{way_name}', + destination: '上匝道,前往{destination}', + }, + left: { + default: '上左侧匝道', + name: '上左侧匝道,驶入{way_name}', + destination: '上左侧匝道,前往{destination}', + }, + right: { + default: '上右侧匝道', + name: '上右侧匝道,驶入{way_name}', + destination: '上右侧匝道,前往{destination}', + }, + 'sharp left': { + default: '急向左上匝道', + name: '急向左上匝道,驶入{way_name}', + destination: '急向左上匝道,前往{destination}', + }, + 'sharp right': { + default: '急向右上匝道', + name: '急向右上匝道,驶入{way_name}', + destination: '急向右上匝道,前往{destination}', + }, + 'slight left': { + default: '稍向左上匝道', + name: '稍向左上匝道,驶入{way_name}', + destination: '稍向左上匝道,前往{destination}', + }, + 'slight right': { + default: '稍向右上匝道', + name: '稍向右上匝道,驶入{way_name}', + destination: '稍向右上匝道,前往{destination}', + }, + }, + rotary: { + default: { + default: { + default: '进入环岛', + name: '通过环岛后驶入{way_name}', + destination: '通过环岛后前往{destination}', + }, + name: { + default: '进入{rotary_name}环岛', + name: '通过{rotary_name}环岛后驶入{way_name}', + destination: '通过{rotary_name}环岛后前往{destination}', + }, + exit: { + default: '进入环岛后从{exit_number}出口驶出', + name: '进入环岛后从{exit_number}出口驶出,上{way_name}', + destination: '进入环岛后从{exit_number}出口驶出,前往{destination}', + }, + name_exit: { + default: '进入{rotary_name}环岛后从{exit_number}出口驶出', + name: '进入{rotary_name}环岛后从{exit_number}出口驶出,上{way_name}', + destination: '进入{rotary_name}环岛后从{exit_number}出口驶出,前往{destination}', + }, + }, + }, + roundabout: { + default: { + exit: { + default: '进入环岛后从{exit_number}出口驶出', + name: '进入环岛后从{exit_number}出口驶出,上{way_name}', + destination: '进入环岛后从{exit_number}出口驶出,前往{destination}', + }, + default: { + default: '进入环岛', + name: '通过环岛后驶入{way_name}', + destination: '通过环岛后前往{destination}', + }, + }, + }, + 'roundabout turn': { + default: { + default: '{modifier}转弯', + name: '{modifier}转弯,驶入{way_name}', + destination: '{modifier}转弯,前往{destination}', + }, + left: { + default: '左转', + name: '左转,驶入{way_name}', + destination: '左转,前往{destination}', + }, + right: { + default: '右转', + name: '右转,驶入{way_name}', + destination: '右转,前往{destination}', + }, + straight: { + default: '继续直行', + name: '继续直行,驶入{way_name}', + destination: '继续直行,前往{destination}', + }, + }, + 'exit roundabout': { + default: { + default: '驶离环岛', + name: '驶离环岛,驶入{way_name}', + destination: '驶离环岛,前往{destination}', + }, + }, + 'exit rotary': { + default: { + default: '驶离环岛', + name: '驶离环岛,驶入{way_name}', + destination: '驶离环岛,前往{destination}', + }, + }, + turn: { + default: { + default: '{modifier}转弯', + name: '{modifier}转弯,驶入{way_name}', + destination: '{modifier}转弯,前往{destination}', + }, + left: { + default: '左转', + name: '左转,驶入{way_name}', + destination: '左转,前往{destination}', + }, + right: { + default: '右转', + name: '右转,驶入{way_name}', + destination: '右转,前往{destination}', + }, + straight: { + default: '直行', + name: '直行,驶入{way_name}', + destination: '直行,前往{destination}', + }, + }, + 'use lane': { + no_lanes: { + default: '继续直行', + }, + default: { + default: '{lane_instruction}', + }, + }, + }, + }; + }, + {}, + ], + 48: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + + module.exports = L.Class.extend({ + options: { + timeout: 500, + blurTimeout: 100, + noResultsMessage: 'No results found.', + }, + + initialize: function (elem, callback, context, options) { + L.setOptions(this, options); + + this._elem = elem; + this._resultFn = options.resultFn + ? L.Util.bind(options.resultFn, options.resultContext) + : null; + this._autocomplete = options.autocompleteFn + ? L.Util.bind(options.autocompleteFn, options.autocompleteContext) + : null; + this._selectFn = L.Util.bind(callback, context); + this._container = L.DomUtil.create('div', 'leaflet-routing-geocoder-result'); + this._resultTable = L.DomUtil.create('table', '', this._container); + + // TODO: looks a bit like a kludge to register same for input and keypress - + // browsers supporting both will get duplicate events; just registering + // input will not catch enter, though. + L.DomEvent.addListener(this._elem, 'input', this._keyPressed, this); + L.DomEvent.addListener(this._elem, 'keypress', this._keyPressed, this); + L.DomEvent.addListener(this._elem, 'keydown', this._keyDown, this); + L.DomEvent.addListener( + this._elem, + 'blur', + function () { + if (this._isOpen) { + this.close(); + } + }, + this + ); + }, + + close: function () { + L.DomUtil.removeClass(this._container, 'leaflet-routing-geocoder-result-open'); + this._isOpen = false; + }, + + _open: function () { + var rect = this._elem.getBoundingClientRect(); + if (!this._container.parentElement) { + // See notes section under https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollX + // This abomination is required to support all flavors of IE + var scrollX = + window.pageXOffset !== undefined + ? window.pageXOffset + : (document.documentElement || document.body.parentNode || document.body) + .scrollLeft; + var scrollY = + window.pageYOffset !== undefined + ? window.pageYOffset + : (document.documentElement || document.body.parentNode || document.body) + .scrollTop; + this._container.style.left = rect.left + scrollX + 'px'; + this._container.style.top = rect.bottom + scrollY + 'px'; + this._container.style.width = rect.right - rect.left + 'px'; + document.body.appendChild(this._container); + } + + L.DomUtil.addClass(this._container, 'leaflet-routing-geocoder-result-open'); + this._isOpen = true; + }, + + _setResults: function (results) { + var i, tr, td, text; + + delete this._selection; + this._results = results; + + while (this._resultTable.firstChild) { + this._resultTable.removeChild(this._resultTable.firstChild); + } + + for (i = 0; i < results.length; i++) { + tr = L.DomUtil.create('tr', '', this._resultTable); + tr.setAttribute('data-result-index', i); + td = L.DomUtil.create('td', '', tr); + text = document.createTextNode(results[i].name); + td.appendChild(text); + // mousedown + click because: + // http://stackoverflow.com/questions/10652852/jquery-fire-click-before-blur-event + L.DomEvent.addListener(td, 'mousedown', L.DomEvent.preventDefault); + L.DomEvent.addListener(td, 'click', this._createClickListener(results[i])); + } + + if (!i) { + tr = L.DomUtil.create('tr', '', this._resultTable); + td = L.DomUtil.create('td', 'leaflet-routing-geocoder-no-results', tr); + td.innerHTML = this.options.noResultsMessage; + } + + this._open(); + + if (results.length > 0) { + // Select the first entry + this._select(1); + } + }, + + _createClickListener: function (r) { + var resultSelected = this._resultSelected(r); + return L.bind(function () { + this._elem.blur(); + resultSelected(); + }, this); + }, + + _resultSelected: function (r) { + return L.bind(function () { + this.close(); + this._elem.value = r.name; + this._lastCompletedText = r.name; + this._selectFn(r); + }, this); + }, + + _keyPressed: function (e) { + var index; + + if (this._isOpen && e.keyCode === 13 && this._selection) { + index = parseInt(this._selection.getAttribute('data-result-index'), 10); + this._resultSelected(this._results[index])(); + L.DomEvent.preventDefault(e); + return; + } + + if (e.keyCode === 13) { + L.DomEvent.preventDefault(e); + this._complete(this._resultFn, true); + return; + } + + if (this._autocomplete && document.activeElement === this._elem) { + if (this._timer) { + clearTimeout(this._timer); + } + this._timer = setTimeout( + L.Util.bind(function () { + this._complete(this._autocomplete); + }, this), + this.options.timeout + ); + return; + } + + this._unselect(); + }, + + _select: function (dir) { + var sel = this._selection; + if (sel) { + L.DomUtil.removeClass(sel.firstChild, 'leaflet-routing-geocoder-selected'); + sel = sel[dir > 0 ? 'nextSibling' : 'previousSibling']; + } + if (!sel) { + sel = this._resultTable[dir > 0 ? 'firstChild' : 'lastChild']; + } + + if (sel) { + L.DomUtil.addClass(sel.firstChild, 'leaflet-routing-geocoder-selected'); + this._selection = sel; + } + }, + + _unselect: function () { + if (this._selection) { + L.DomUtil.removeClass( + this._selection.firstChild, + 'leaflet-routing-geocoder-selected' + ); + } + delete this._selection; + }, + + _keyDown: function (e) { + if (this._isOpen) { + switch (e.keyCode) { + // Escape + case 27: + this.close(); + L.DomEvent.preventDefault(e); + return; + // Up + case 38: + this._select(-1); + L.DomEvent.preventDefault(e); + return; + // Down + case 40: + this._select(1); + L.DomEvent.preventDefault(e); + return; + } + } + }, + + _complete: function (completeFn, trySelect) { + var v = this._elem.value; + function completeResults(results) { + this._lastCompletedText = v; + if (trySelect && results.length === 1) { + this._resultSelected(results[0])(); + } else { + this._setResults(results); + } + } + + if (!v) { + return; + } + + if (v !== this._lastCompletedText) { + completeFn(v, completeResults, this); + } else if (trySelect) { + completeResults.call(this, this._results); + } + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + {}, + ], + 49: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + + var Itinerary = _dereq_('./itinerary'); + var Line = _dereq_('./line'); + var Plan = _dereq_('./plan'); + var OSRMv1 = _dereq_('./osrm-v1'); + + module.exports = Itinerary.extend({ + options: { + fitSelectedRoutes: 'smart', + routeLine: function (route, options) { + return new Line(route, options); + }, + autoRoute: true, + routeWhileDragging: false, + routeDragInterval: 500, + waypointMode: 'connect', + showAlternatives: false, + defaultErrorHandler: function (e) { + console.error('Routing error:', e.error); + }, + }, + + initialize: function (options) { + L.Util.setOptions(this, options); + + this._router = this.options.router || new OSRMv1(options); + this._plan = this.options.plan || new Plan(this.options.waypoints, options); + this._requestCount = 0; + + Itinerary.prototype.initialize.call(this, options); + + this.on('routeselected', this._routeSelected, this); + if (this.options.defaultErrorHandler) { + this.on('routingerror', this.options.defaultErrorHandler); + } + this._plan.on('waypointschanged', this._onWaypointsChanged, this); + if (options.routeWhileDragging) { + this._setupRouteDragging(); + } + }, + + _onZoomEnd: function () { + if (!this._selectedRoute || !this._router.requiresMoreDetail) { + return; + } + + var map = this._map; + if ( + this._router.requiresMoreDetail(this._selectedRoute, map.getZoom(), map.getBounds()) + ) { + this.route({ + callback: L.bind(function (err, routes) { + var i; + if (!err) { + for (i = 0; i < routes.length; i++) { + this._routes[i].properties = routes[i].properties; + } + this._updateLineCallback(err, routes); + } + }, this), + simplifyGeometry: false, + geometryOnly: true, + }); + } + }, + + onAdd: function (map) { + if (this.options.autoRoute) { + this.route(); + } + + var container = Itinerary.prototype.onAdd.call(this, map); + + this._map = map; + this._map.addLayer(this._plan); + + this._map.on('zoomend', this._onZoomEnd, this); + + if (this._plan.options.geocoder) { + container.insertBefore(this._plan.createGeocoders(), container.firstChild); + } + + return container; + }, + + onRemove: function (map) { + map.off('zoomend', this._onZoomEnd, this); + if (this._line) { + map.removeLayer(this._line); + } + map.removeLayer(this._plan); + if (this._alternatives && this._alternatives.length > 0) { + for (var i = 0, len = this._alternatives.length; i < len; i++) { + map.removeLayer(this._alternatives[i]); + } + } + return Itinerary.prototype.onRemove.call(this, map); + }, + + getWaypoints: function () { + return this._plan.getWaypoints(); + }, + + setWaypoints: function (waypoints) { + this._plan.setWaypoints(waypoints); + return this; + }, + + spliceWaypoints: function () { + var removed = this._plan.spliceWaypoints.apply(this._plan, arguments); + return removed; + }, + + getPlan: function () { + return this._plan; + }, + + getRouter: function () { + return this._router; + }, + + _routeSelected: function (e) { + var route = (this._selectedRoute = e.route), + alternatives = this.options.showAlternatives && e.alternatives, + fitMode = this.options.fitSelectedRoutes, + fitBounds = + (fitMode === 'smart' && !this._waypointsVisible()) || + (fitMode !== 'smart' && fitMode); + + this._updateLines({ route: route, alternatives: alternatives }); + + if (fitBounds) { + this._map.fitBounds(this._line.getBounds()); + } + + if (this.options.waypointMode === 'snap') { + this._plan.off('waypointschanged', this._onWaypointsChanged, this); + this.setWaypoints(route.waypoints); + this._plan.on('waypointschanged', this._onWaypointsChanged, this); + } + }, + + _waypointsVisible: function () { + var wps = this.getWaypoints(), + mapSize, + bounds, + boundsSize, + i, + p; + + try { + mapSize = this._map.getSize(); + + for (i = 0; i < wps.length; i++) { + p = this._map.latLngToLayerPoint(wps[i].latLng); + + if (bounds) { + bounds.extend(p); + } else { + bounds = L.bounds([p]); + } + } + + boundsSize = bounds.getSize(); + return ( + (boundsSize.x > mapSize.x / 5 || boundsSize.y > mapSize.y / 5) && + this._waypointsInViewport() + ); + } catch (e) { + return false; + } + }, + + _waypointsInViewport: function () { + var wps = this.getWaypoints(), + mapBounds, + i; + + try { + mapBounds = this._map.getBounds(); + } catch (e) { + return false; + } + + for (i = 0; i < wps.length; i++) { + if (mapBounds.contains(wps[i].latLng)) { + return true; + } + } + + return false; + }, + + _updateLines: function (routes) { + var addWaypoints = + this.options.addWaypoints !== undefined ? this.options.addWaypoints : true; + this._clearLines(); + + // add alternatives first so they lie below the main route + this._alternatives = []; + if (routes.alternatives) + routes.alternatives.forEach(function (alt, i) { + this._alternatives[i] = this.options.routeLine( + alt, + L.extend( + { + isAlternative: true, + }, + this.options.altLineOptions || this.options.lineOptions + ) + ); + this._alternatives[i].addTo(this._map); + this._hookAltEvents(this._alternatives[i]); + }, this); + + this._line = this.options.routeLine( + routes.route, + L.extend( + { + addWaypoints: addWaypoints, + extendToWaypoints: this.options.waypointMode === 'connect', + }, + this.options.lineOptions + ) + ); + this._line.addTo(this._map); + this._hookEvents(this._line); + }, + + _hookEvents: function (l) { + l.on( + 'linetouched', + function (e) { + this._plan.dragNewWaypoint(e); + }, + this + ); + }, + + _hookAltEvents: function (l) { + l.on( + 'linetouched', + function (e) { + var alts = this._routes.slice(); + var selected = alts.splice(e.target._route.routesIndex, 1)[0]; + this.fire('routeselected', { route: selected, alternatives: alts }); + }, + this + ); + }, + + _onWaypointsChanged: function (e) { + if (this.options.autoRoute) { + this.route({}); + } + if (!this._plan.isReady()) { + this._clearLines(); + this._clearAlts(); + } + this.fire('waypointschanged', { waypoints: e.waypoints }); + }, + + _setupRouteDragging: function () { + var timer = 0, + waypoints; + + this._plan.on( + 'waypointdrag', + L.bind(function (e) { + waypoints = e.waypoints; + + if (!timer) { + timer = setTimeout( + L.bind(function () { + this.route({ + waypoints: waypoints, + geometryOnly: true, + callback: L.bind(this._updateLineCallback, this), + }); + timer = undefined; + }, this), + this.options.routeDragInterval + ); + } + }, this) + ); + this._plan.on( + 'waypointdragend', + function () { + if (timer) { + clearTimeout(timer); + timer = undefined; + } + this.route(); + }, + this + ); + }, + + _updateLineCallback: function (err, routes) { + if (!err) { + routes = routes.slice(); + var selected = routes.splice(this._selectedRoute.routesIndex, 1)[0]; + this._updateLines({ + route: selected, + alternatives: this.options.showAlternatives ? routes : [], + }); + } else if (err.type !== 'abort') { + this._clearLines(); + } + }, + + route: function (options) { + var ts = ++this._requestCount, + wps; + + if (this._pendingRequest && this._pendingRequest.abort) { + this._pendingRequest.abort(); + this._pendingRequest = null; + } + + options = options || {}; + + if (this._plan.isReady()) { + if (this.options.useZoomParameter) { + options.z = this._map && this._map.getZoom(); + } + + wps = (options && options.waypoints) || this._plan.getWaypoints(); + this.fire('routingstart', { waypoints: wps }); + this._pendingRequest = this._router.route( + wps, + function (err, routes) { + this._pendingRequest = null; + + if (options.callback) { + return options.callback.call(this, err, routes); + } + + // Prevent race among multiple requests, + // by checking the current request's count + // against the last request's; ignore result if + // this isn't the last request. + if (ts === this._requestCount) { + this._clearLines(); + this._clearAlts(); + if (err && err.type !== 'abort') { + this.fire('routingerror', { error: err }); + return; + } + + routes.forEach(function (route, i) { + route.routesIndex = i; + }); + + if (!options.geometryOnly) { + this.fire('routesfound', { waypoints: wps, routes: routes }); + this.setAlternatives(routes); + } else { + var selectedRoute = routes.splice(0, 1)[0]; + this._routeSelected({ route: selectedRoute, alternatives: routes }); + } + } + }, + this, + options + ); + } + }, + + _clearLines: function () { + if (this._line) { + this._map.removeLayer(this._line); + delete this._line; + } + if (this._alternatives && this._alternatives.length) { + for (var i in this._alternatives) { + this._map.removeLayer(this._alternatives[i]); + } + this._alternatives = []; + } + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { './itinerary': 55, './line': 56, './osrm-v1': 59, './plan': 60 }, + ], + 50: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + + module.exports = L.Control.extend({ + options: { + header: 'Routing error', + formatMessage: function (error) { + if (error.status < 0) { + return ( + 'Calculating the route caused an error. Technical description follows:
' +
+											error.message +
+											'
= 1000) { + data = { + value: round(d / 1609.344, sensitivity), + unit: un.miles, + }; + } else { + data = { + value: round(yards, sensitivity), + unit: un.yards, + }; + } + } else { + v = round(d, sensitivity); + data = { + value: v >= 1000 ? v / 1000 : v, + unit: v >= 1000 ? un.kilometers : un.meters, + }; + } + + if (simpleRounding) { + data.value = data.value.toFixed(-sensitivity); + } + + return L.Util.template(this.options.distanceTemplate, data); + }, + + _round: function (d, sensitivity) { + var s = sensitivity || this.options.roundingSensitivity, + pow10 = Math.pow(10, (Math.floor(d / s) + '').length - 1), + r = Math.floor(d / pow10), + p = r > 5 ? pow10 : pow10 / 2; + + return Math.round(d / p) * p; + }, + + formatTime: function (t /* Number (seconds) */) { + var un = this.options.unitNames || this._localization.localize('units'); + // More than 30 seconds precision looks ridiculous + t = Math.round(t / 30) * 30; + + if (t > 86400) { + return Math.round(t / 3600) + ' ' + un.hours; + } else if (t > 3600) { + return ( + Math.floor(t / 3600) + + ' ' + + un.hours + + ' ' + + Math.round((t % 3600) / 60) + + ' ' + + un.minutes + ); + } else if (t > 300) { + return Math.round(t / 60) + ' ' + un.minutes; + } else if (t > 60) { + return ( + Math.floor(t / 60) + + ' ' + + un.minutes + + (t % 60 !== 0 ? ' ' + (t % 60) + ' ' + un.seconds : '') + ); + } else { + return t + ' ' + un.seconds; + } + }, + + formatInstruction: function (instr, i) { + if (instr.text === undefined) { + return this.capitalize( + L.Util.template( + this._getInstructionTemplate(instr, i), + L.extend({}, instr, { + exitStr: instr.exit + ? this._localization.localize('formatOrder')(instr.exit) + : '', + dir: this._localization.localize(['directions', instr.direction]), + modifier: this._localization.localize(['directions', instr.modifier]), + }) + ) + ); + } else { + return instr.text; + } + }, + + getIconName: function (instr, i) { + switch (instr.type) { + case 'Head': + if (i === 0) { + return 'depart'; + } + break; + case 'WaypointReached': + return 'via'; + case 'Roundabout': + return 'enter-roundabout'; + case 'DestinationReached': + return 'arrive'; + } + + switch (instr.modifier) { + case 'Straight': + return 'continue'; + case 'SlightRight': + return 'bear-right'; + case 'Right': + return 'turn-right'; + case 'SharpRight': + return 'sharp-right'; + case 'TurnAround': + case 'Uturn': + return 'u-turn'; + case 'SharpLeft': + return 'sharp-left'; + case 'Left': + return 'turn-left'; + case 'SlightLeft': + return 'bear-left'; + } + }, + + capitalize: function (s) { + return s.charAt(0).toUpperCase() + s.substring(1); + }, + + _getInstructionTemplate: function (instr, i) { + var type = instr.type === 'Straight' ? (i === 0 ? 'Head' : 'Continue') : instr.type, + strings = this._localization.localize(['instructions', type]); + + if (!strings) { + strings = [ + this._localization.localize(['directions', type]), + ' ' + this._localization.localize(['instructions', 'Onto']), + ]; + } + + return strings[0] + (strings.length > 1 && instr.road ? strings[1] : ''); + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { './localization': 57 }, + ], + 52: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + var Autocomplete = _dereq_('./autocomplete'); + var Localization = _dereq_('./localization'); + + function selectInputText(input) { + if (input.setSelectionRange) { + // On iOS, select() doesn't work + input.setSelectionRange(0, 9999); + } else { + // On at least IE8, setSeleectionRange doesn't exist + input.select(); + } + } + + module.exports = L.Class.extend({ + includes: (typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events, + + options: { + createGeocoder: function (i, nWps, options) { + var container = L.DomUtil.create('div', 'leaflet-routing-geocoder'), + input = L.DomUtil.create('input', '', container), + remove = options.addWaypoints + ? L.DomUtil.create('span', 'leaflet-routing-remove-waypoint', container) + : undefined; + + input.disabled = !options.addWaypoints; + + return { + container: container, + input: input, + closeButton: remove, + }; + }, + geocoderPlaceholder: function (i, numberWaypoints, geocoderElement) { + var l = new Localization(geocoderElement.options.language).localize('ui'); + return i === 0 + ? l.startPlaceholder + : i < numberWaypoints - 1 + ? L.Util.template(l.viaPlaceholder, { viaNumber: i }) + : l.endPlaceholder; + }, + + geocoderClass: function () { + return ''; + }, + + waypointNameFallback: function (latLng) { + var ns = latLng.lat < 0 ? 'S' : 'N', + ew = latLng.lng < 0 ? 'W' : 'E', + lat = (Math.round(Math.abs(latLng.lat) * 10000) / 10000).toString(), + lng = (Math.round(Math.abs(latLng.lng) * 10000) / 10000).toString(); + return ns + lat + ', ' + ew + lng; + }, + maxGeocoderTolerance: 200, + autocompleteOptions: {}, + language: 'en', + }, + + initialize: function (wp, i, nWps, options) { + L.setOptions(this, options); + + var g = this.options.createGeocoder(i, nWps, this.options), + closeButton = g.closeButton, + geocoderInput = g.input; + geocoderInput.setAttribute( + 'placeholder', + this.options.geocoderPlaceholder(i, nWps, this) + ); + geocoderInput.className = this.options.geocoderClass(i, nWps); + + this._element = g; + this._waypoint = wp; + + this.update(); + // This has to be here, or geocoder's value will not be properly + // initialized. + // TODO: look into why and make _updateWaypointName fix this. + geocoderInput.value = wp.name; + + L.DomEvent.addListener( + geocoderInput, + 'click', + function () { + selectInputText(this); + }, + geocoderInput + ); + + if (closeButton) { + L.DomEvent.addListener( + closeButton, + 'click', + function () { + this.fire('delete', { waypoint: this._waypoint }); + }, + this + ); + } + + new Autocomplete( + geocoderInput, + function (r) { + geocoderInput.value = r.name; + wp.name = r.name; + wp.latLng = r.center; + this.fire('geocoded', { waypoint: wp, value: r }); + }, + this, + L.extend( + { + resultFn: this.options.geocoder.geocode, + resultContext: this.options.geocoder, + autocompleteFn: this.options.geocoder.suggest, + autocompleteContext: this.options.geocoder, + }, + this.options.autocompleteOptions + ) + ); + }, + + getContainer: function () { + return this._element.container; + }, + + setValue: function (v) { + this._element.input.value = v; + }, + + update: function (force) { + var wp = this._waypoint, + wpCoords; + + wp.name = wp.name || ''; + + if (wp.latLng && (force || !wp.name)) { + wpCoords = this.options.waypointNameFallback(wp.latLng); + if (this.options.geocoder && this.options.geocoder.reverse) { + this.options.geocoder.reverse( + wp.latLng, + 67108864 /* zoom 18 */, + function (rs) { + if ( + rs.length > 0 && + rs[0].center.distanceTo(wp.latLng) < + this.options.maxGeocoderTolerance + ) { + wp.name = rs[0].name; + } else { + wp.name = wpCoords; + } + this._update(); + }, + this + ); + } else { + wp.name = wpCoords; + this._update(); + } + } + }, + + focus: function () { + var input = this._element.input; + input.focus(); + selectInputText(input); + }, + + _update: function () { + var wp = this._waypoint, + value = wp && wp.name ? wp.name : ''; + this.setValue(value); + this.fire('reversegeocoded', { waypoint: wp, value: value }); + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { './autocomplete': 48, './localization': 57 }, + ], + 53: [ + function (_dereq_, module, exports) { + (function (global) { + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null, + Control = _dereq_('./control'), + Itinerary = _dereq_('./itinerary'), + Line = _dereq_('./line'), + OSRMv1 = _dereq_('./osrm-v1'), + Plan = _dereq_('./plan'), + Waypoint = _dereq_('./waypoint'), + Autocomplete = _dereq_('./autocomplete'), + Formatter = _dereq_('./formatter'), + GeocoderElement = _dereq_('./geocoder-element'), + Localization = _dereq_('./localization'), + ItineraryBuilder = _dereq_('./itinerary-builder'), + Mapbox = _dereq_('./mapbox'), + ErrorControl = _dereq_('./error-control'); + + L.routing = { + control: function (options) { + return new Control(options); + }, + itinerary: function (options) { + return Itinerary(options); + }, + line: function (route, options) { + return new Line(route, options); + }, + plan: function (waypoints, options) { + return new Plan(waypoints, options); + }, + waypoint: function (latLng, name, options) { + return new Waypoint(latLng, name, options); + }, + osrmv1: function (options) { + return new OSRMv1(options); + }, + localization: function (options) { + return new Localization(options); + }, + formatter: function (options) { + return new Formatter(options); + }, + geocoderElement: function (wp, i, nWps, plan) { + return new L.Routing.GeocoderElement(wp, i, nWps, plan); + }, + itineraryBuilder: function (options) { + return new ItineraryBuilder(options); + }, + mapbox: function (accessToken, options) { + return new Mapbox(accessToken, options); + }, + errorControl: function (routingControl, options) { + return new ErrorControl(routingControl, options); + }, + autocomplete: function (elem, callback, context, options) { + return new Autocomplete(elem, callback, context, options); + }, + }; + + module.exports = L.Routing = { + Control: Control, + Itinerary: Itinerary, + Line: Line, + OSRMv1: OSRMv1, + Plan: Plan, + Waypoint: Waypoint, + Autocomplete: Autocomplete, + Formatter: Formatter, + GeocoderElement: GeocoderElement, + Localization: Localization, + Formatter: Formatter, + ItineraryBuilder: ItineraryBuilder, + + // Legacy; remove these in next major release + control: L.routing.control, + itinerary: L.routing.itinerary, + line: L.routing.line, + plan: L.routing.plan, + waypoint: L.routing.waypoint, + osrmv1: L.routing.osrmv1, + geocoderElement: L.routing.geocoderElement, + mapbox: L.routing.mapbox, + errorControl: L.routing.errorControl, + }; + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { + './autocomplete': 48, + './control': 49, + './error-control': 50, + './formatter': 51, + './geocoder-element': 52, + './itinerary': 55, + './itinerary-builder': 54, + './line': 56, + './localization': 57, + './mapbox': 58, + './osrm-v1': 59, + './plan': 60, + './waypoint': 61, + }, + ], + 54: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + + module.exports = L.Class.extend({ + options: { + containerClassName: '', + }, + + initialize: function (options) { + L.setOptions(this, options); + }, + + createContainer: function (className) { + var table = L.DomUtil.create( + 'table', + (className || '') + ' ' + this.options.containerClassName + ), + colgroup = L.DomUtil.create('colgroup', '', table); + + L.DomUtil.create('col', 'leaflet-routing-instruction-icon', colgroup); + L.DomUtil.create('col', 'leaflet-routing-instruction-text', colgroup); + L.DomUtil.create('col', 'leaflet-routing-instruction-distance', colgroup); + + return table; + }, + + createStepsContainer: function () { + return L.DomUtil.create('tbody', ''); + }, + + createStep: function (text, distance, icon, steps) { + var row = L.DomUtil.create('tr', '', steps), + span, + td; + td = L.DomUtil.create('td', '', row); + span = L.DomUtil.create( + 'span', + 'leaflet-routing-icon leaflet-routing-icon-' + icon, + td + ); + td.appendChild(span); + td = L.DomUtil.create('td', '', row); + td.appendChild(document.createTextNode(text)); + td = L.DomUtil.create('td', '', row); + td.appendChild(document.createTextNode(distance)); + return row; + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + {}, + ], + 55: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + var Formatter = _dereq_('./formatter'); + var ItineraryBuilder = _dereq_('./itinerary-builder'); + + module.exports = L.Control.extend({ + includes: (typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events, + + options: { + pointMarkerStyle: { + radius: 5, + color: '#03f', + fillColor: 'white', + opacity: 1, + fillOpacity: 0.7, + }, + summaryTemplate: '

{name}

{distance}, {time}

', + timeTemplate: '{time}', + containerClassName: '', + alternativeClassName: '', + minimizedClassName: '', + itineraryClassName: '', + totalDistanceRoundingSensitivity: -1, + show: true, + collapsible: undefined, + collapseBtn: function (itinerary) { + var collapseBtn = L.DomUtil.create('span', itinerary.options.collapseBtnClass); + L.DomEvent.on(collapseBtn, 'click', itinerary._toggle, itinerary); + itinerary._container.insertBefore(collapseBtn, itinerary._container.firstChild); + }, + collapseBtnClass: 'leaflet-routing-collapse-btn', + }, + + initialize: function (options) { + L.setOptions(this, options); + this._formatter = this.options.formatter || new Formatter(this.options); + this._itineraryBuilder = + this.options.itineraryBuilder || + new ItineraryBuilder({ + containerClassName: this.options.itineraryClassName, + }); + }, + + onAdd: function (map) { + var collapsible = this.options.collapsible; + + collapsible = collapsible || (collapsible === undefined && map.getSize().x <= 640); + + this._container = L.DomUtil.create( + 'div', + 'leaflet-routing-container leaflet-bar ' + + (!this.options.show ? 'leaflet-routing-container-hide ' : '') + + (collapsible ? 'leaflet-routing-collapsible ' : '') + + this.options.containerClassName + ); + this._altContainer = this.createAlternativesContainer(); + this._container.appendChild(this._altContainer); + L.DomEvent.disableClickPropagation(this._container); + L.DomEvent.addListener(this._container, 'mousewheel', function (e) { + L.DomEvent.stopPropagation(e); + }); + + if (collapsible) { + this.options.collapseBtn(this); + } + + return this._container; + }, + + onRemove: function () {}, + + createAlternativesContainer: function () { + return L.DomUtil.create('div', 'leaflet-routing-alternatives-container'); + }, + + setAlternatives: function (routes) { + var i, alt, altDiv; + + this._clearAlts(); + + this._routes = routes; + + for (i = 0; i < this._routes.length; i++) { + alt = this._routes[i]; + altDiv = this._createAlternative(alt, i); + this._altContainer.appendChild(altDiv); + this._altElements.push(altDiv); + } + + this._selectRoute({ route: this._routes[0], alternatives: this._routes.slice(1) }); + + return this; + }, + + show: function () { + L.DomUtil.removeClass(this._container, 'leaflet-routing-container-hide'); + }, + + hide: function () { + L.DomUtil.addClass(this._container, 'leaflet-routing-container-hide'); + }, + + _toggle: function () { + var collapsed = L.DomUtil.hasClass(this._container, 'leaflet-routing-container-hide'); + this[collapsed ? 'show' : 'hide'](); + }, + + _createAlternative: function (alt, i) { + var altDiv = L.DomUtil.create( + 'div', + 'leaflet-routing-alt ' + + this.options.alternativeClassName + + (i > 0 + ? ' leaflet-routing-alt-minimized ' + this.options.minimizedClassName + : '') + ), + template = this.options.summaryTemplate, + data = L.extend( + { + name: alt.name, + distance: this._formatter.formatDistance( + alt.summary.totalDistance, + this.options.totalDistanceRoundingSensitivity + ), + time: this._formatter.formatTime(alt.summary.totalTime), + }, + alt + ); + altDiv.innerHTML = + typeof template === 'function' ? template(data) : L.Util.template(template, data); + L.DomEvent.addListener(altDiv, 'click', this._onAltClicked, this); + this.on('routeselected', this._selectAlt, this); + + altDiv.appendChild(this._createItineraryContainer(alt)); + return altDiv; + }, + + _clearAlts: function () { + var el = this._altContainer; + while (el && el.firstChild) { + el.removeChild(el.firstChild); + } + + this._altElements = []; + }, + + _createItineraryContainer: function (r) { + var container = this._itineraryBuilder.createContainer(), + steps = this._itineraryBuilder.createStepsContainer(), + i, + instr, + step, + distance, + text, + icon; + + container.appendChild(steps); + + for (i = 0; i < r.instructions.length; i++) { + instr = r.instructions[i]; + text = this._formatter.formatInstruction(instr, i); + distance = this._formatter.formatDistance(instr.distance); + icon = this._formatter.getIconName(instr, i); + step = this._itineraryBuilder.createStep(text, distance, icon, steps); + + if (instr.index) { + this._addRowListeners(step, r.coordinates[instr.index]); + } + } + + return container; + }, + + _addRowListeners: function (row, coordinate) { + L.DomEvent.addListener( + row, + 'mouseover', + function () { + this._marker = L.circleMarker(coordinate, this.options.pointMarkerStyle).addTo( + this._map + ); + }, + this + ); + L.DomEvent.addListener( + row, + 'mouseout', + function () { + if (this._marker) { + this._map.removeLayer(this._marker); + delete this._marker; + } + }, + this + ); + L.DomEvent.addListener( + row, + 'click', + function (e) { + this._map.panTo(coordinate); + L.DomEvent.stopPropagation(e); + }, + this + ); + }, + + _onAltClicked: function (e) { + var altElem = e.target || window.event.srcElement; + while (!L.DomUtil.hasClass(altElem, 'leaflet-routing-alt')) { + altElem = altElem.parentElement; + } + + var j = this._altElements.indexOf(altElem); + var alts = this._routes.slice(); + var route = alts.splice(j, 1)[0]; + + this.fire('routeselected', { + route: route, + alternatives: alts, + }); + }, + + _selectAlt: function (e) { + var altElem, j, n, classFn; + + altElem = this._altElements[e.route.routesIndex]; + + if (L.DomUtil.hasClass(altElem, 'leaflet-routing-alt-minimized')) { + for (j = 0; j < this._altElements.length; j++) { + n = this._altElements[j]; + classFn = j === e.route.routesIndex ? 'removeClass' : 'addClass'; + L.DomUtil[classFn](n, 'leaflet-routing-alt-minimized'); + if (this.options.minimizedClassName) { + L.DomUtil[classFn](n, this.options.minimizedClassName); + } + + if (j !== e.route.routesIndex) n.scrollTop = 0; + } + } + + L.DomEvent.stop(e); + }, + + _selectRoute: function (routes) { + if (this._marker) { + this._map.removeLayer(this._marker); + delete this._marker; + } + this.fire('routeselected', routes); + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { './formatter': 51, './itinerary-builder': 54 }, + ], + 56: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + + module.exports = L.LayerGroup.extend({ + includes: (typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events, + + options: { + styles: [ + { color: 'black', opacity: 0.15, weight: 9 }, + { color: 'white', opacity: 0.8, weight: 6 }, + { color: 'red', opacity: 1, weight: 2 }, + ], + missingRouteStyles: [ + { color: 'black', opacity: 0.15, weight: 7 }, + { color: 'white', opacity: 0.6, weight: 4 }, + { color: 'gray', opacity: 0.8, weight: 2, dashArray: '7,12' }, + ], + addWaypoints: true, + extendToWaypoints: true, + missingRouteTolerance: 10, + }, + + initialize: function (route, options) { + L.setOptions(this, options); + L.LayerGroup.prototype.initialize.call(this, options); + this._route = route; + + if (this.options.extendToWaypoints) { + this._extendToWaypoints(); + } + + this._addSegment(route.coordinates, this.options.styles, this.options.addWaypoints); + }, + + getBounds: function () { + return L.latLngBounds(this._route.coordinates); + }, + + _findWaypointIndices: function () { + var wps = this._route.inputWaypoints, + indices = [], + i; + for (i = 0; i < wps.length; i++) { + indices.push(this._findClosestRoutePoint(wps[i].latLng)); + } + + return indices; + }, + + _findClosestRoutePoint: function (latlng) { + var minDist = Number.MAX_VALUE, + minIndex, + i, + d; + + for (i = this._route.coordinates.length - 1; i >= 0; i--) { + // TODO: maybe do this in pixel space instead? + d = latlng.distanceTo(this._route.coordinates[i]); + if (d < minDist) { + minIndex = i; + minDist = d; + } + } + + return minIndex; + }, + + _extendToWaypoints: function () { + var wps = this._route.inputWaypoints, + wpIndices = this._getWaypointIndices(), + i, + wpLatLng, + routeCoord; + + for (i = 0; i < wps.length; i++) { + wpLatLng = wps[i].latLng; + routeCoord = L.latLng(this._route.coordinates[wpIndices[i]]); + if (wpLatLng.distanceTo(routeCoord) > this.options.missingRouteTolerance) { + this._addSegment([wpLatLng, routeCoord], this.options.missingRouteStyles); + } + } + }, + + _addSegment: function (coords, styles, mouselistener) { + var i, pl; + + for (i = 0; i < styles.length; i++) { + pl = L.polyline(coords, styles[i]); + this.addLayer(pl); + if (mouselistener) { + pl.on('mousedown', this._onLineTouched, this); + } + } + }, + + _findNearestWpBefore: function (i) { + var wpIndices = this._getWaypointIndices(), + j = wpIndices.length - 1; + while (j >= 0 && wpIndices[j] > i) { + j--; + } + + return j; + }, + + _onLineTouched: function (e) { + var afterIndex = this._findNearestWpBefore(this._findClosestRoutePoint(e.latlng)); + this.fire('linetouched', { + afterIndex: afterIndex, + latlng: e.latlng, + }); + L.DomEvent.stop(e); + }, + + _getWaypointIndices: function () { + if (!this._wpIndices) { + this._wpIndices = this._route.waypointIndices || this._findWaypointIndices(); + } + + return this._wpIndices; + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + {}, + ], + 57: [ + function (_dereq_, module, exports) { + /* NOTICE Since version 3.2.5, the functionality in this file is by default NOT used for localizing OSRM instructions. @@ -17078,1565 +17718,1597 @@ module.exports = L.Routing = { stepToText option in the OSRMv1 class. */ -(function() { - 'use strict'; - - var spanish = { - directions: { - N: 'norte', - NE: 'noreste', - E: 'este', - SE: 'sureste', - S: 'sur', - SW: 'suroeste', - W: 'oeste', - NW: 'noroeste', - SlightRight: 'leve giro a la derecha', - Right: 'derecha', - SharpRight: 'giro pronunciado a la derecha', - SlightLeft: 'leve giro a la izquierda', - Left: 'izquierda', - SharpLeft: 'giro pronunciado a la izquierda', - Uturn: 'media vuelta' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Derecho {dir}', ' sobre {road}'], - 'Continue': - ['Continuar {dir}', ' en {road}'], - 'TurnAround': - ['Dar vuelta'], - 'WaypointReached': - ['Llegó a un punto del camino'], - 'Roundabout': - ['Tomar {exitStr} salida en la rotonda', ' en {road}'], - 'DestinationReached': - ['Llegada a destino'], - 'Fork': ['En el cruce gira a {modifier}', ' hacia {road}'], - 'Merge': ['Incorpórate {modifier}', ' hacia {road}'], - 'OnRamp': ['Gira {modifier} en la salida', ' hacia {road}'], - 'OffRamp': ['Toma la salida {modifier}', ' hacia {road}'], - 'EndOfRoad': ['Gira {modifier} al final de la carretera', ' hacia {road}'], - 'Onto': 'hacia {road}' - }, - formatOrder: function(n) { - return n + 'º'; - }, - ui: { - startPlaceholder: 'Inicio', - viaPlaceholder: 'Via {viaNumber}', - endPlaceholder: 'Destino' - }, - units: { - meters: 'm', - kilometers: 'km', - yards: 'yd', - miles: 'mi', - hours: 'h', - minutes: 'min', - seconds: 's' - } - }; - - L.Routing = L.Routing || {}; - - var Localization = L.Class.extend({ - initialize: function(langs) { - this._langs = L.Util.isArray(langs) ? langs.slice() : [langs, 'en']; - - for (var i = 0, l = this._langs.length; i < l; i++) { - var generalizedCode = /([A-Za-z]+)/.exec(this._langs[i])[1] - if (!Localization[this._langs[i]]) { - if (Localization[generalizedCode]) { - this._langs[i] = generalizedCode; - } else { - throw new Error('No localization for language "' + this._langs[i] + '".'); - } - } - } - }, - - localize: function(keys) { - var dict, - key, - value; - - keys = L.Util.isArray(keys) ? keys : [keys]; - - for (var i = 0, l = this._langs.length; i < l; i++) { - dict = Localization[this._langs[i]]; - for (var j = 0, nKeys = keys.length; dict && j < nKeys; j++) { - key = keys[j]; - value = dict[key]; - dict = value; - } - - if (value) { - return value; - } - } - } - }); - - module.exports = L.extend(Localization, { - 'en': { - directions: { - N: 'north', - NE: 'northeast', - E: 'east', - SE: 'southeast', - S: 'south', - SW: 'southwest', - W: 'west', - NW: 'northwest', - SlightRight: 'slight right', - Right: 'right', - SharpRight: 'sharp right', - SlightLeft: 'slight left', - Left: 'left', - SharpLeft: 'sharp left', - Uturn: 'Turn around' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Head {dir}', ' on {road}'], - 'Continue': - ['Continue {dir}'], - 'TurnAround': - ['Turn around'], - 'WaypointReached': - ['Waypoint reached'], - 'Roundabout': - ['Take the {exitStr} exit in the roundabout', ' onto {road}'], - 'DestinationReached': - ['Destination reached'], - 'Fork': ['At the fork, turn {modifier}', ' onto {road}'], - 'Merge': ['Merge {modifier}', ' onto {road}'], - 'OnRamp': ['Turn {modifier} on the ramp', ' onto {road}'], - 'OffRamp': ['Take the ramp on the {modifier}', ' onto {road}'], - 'EndOfRoad': ['Turn {modifier} at the end of the road', ' onto {road}'], - 'Onto': 'onto {road}' - }, - formatOrder: function(n) { - var i = n % 10 - 1, - suffix = ['st', 'nd', 'rd']; - - return suffix[i] ? n + suffix[i] : n + 'th'; - }, - ui: { - startPlaceholder: 'Start', - viaPlaceholder: 'Via {viaNumber}', - endPlaceholder: 'End' - }, - units: { - meters: 'm', - kilometers: 'km', - yards: 'yd', - miles: 'mi', - hours: 'h', - minutes: 'min', - seconds: 's' - } - }, - - 'de': { - directions: { - N: 'Norden', - NE: 'Nordosten', - E: 'Osten', - SE: 'Südosten', - S: 'Süden', - SW: 'Südwesten', - W: 'Westen', - NW: 'Nordwesten', - SlightRight: 'leicht rechts', - Right: 'rechts', - SharpRight: 'scharf rechts', - SlightLeft: 'leicht links', - Left: 'links', - SharpLeft: 'scharf links', - Uturn: 'Wenden' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Richtung {dir}', ' auf {road}'], - 'Continue': - ['Geradeaus Richtung {dir}', ' auf {road}'], - 'SlightRight': - ['Leicht rechts abbiegen', ' auf {road}'], - 'Right': - ['Rechts abbiegen', ' auf {road}'], - 'SharpRight': - ['Scharf rechts abbiegen', ' auf {road}'], - 'TurnAround': - ['Wenden'], - 'SharpLeft': - ['Scharf links abbiegen', ' auf {road}'], - 'Left': - ['Links abbiegen', ' auf {road}'], - 'SlightLeft': - ['Leicht links abbiegen', ' auf {road}'], - 'WaypointReached': - ['Zwischenhalt erreicht'], - 'Roundabout': - ['Nehmen Sie die {exitStr} Ausfahrt im Kreisverkehr', ' auf {road}'], - 'DestinationReached': - ['Sie haben ihr Ziel erreicht'], - 'Fork': ['An der Kreuzung {modifier}', ' auf {road}'], - 'Merge': ['Fahren Sie {modifier} weiter', ' auf {road}'], - 'OnRamp': ['Fahren Sie {modifier} auf die Auffahrt', ' auf {road}'], - 'OffRamp': ['Nehmen Sie die Ausfahrt {modifier}', ' auf {road}'], - 'EndOfRoad': ['Fahren Sie {modifier} am Ende der Straße', ' auf {road}'], - 'Onto': 'auf {road}' - }, - formatOrder: function(n) { - return n + '.'; - }, - ui: { - startPlaceholder: 'Start', - viaPlaceholder: 'Via {viaNumber}', - endPlaceholder: 'Ziel' - } - }, - - 'sv': { - directions: { - N: 'norr', - NE: 'nordost', - E: 'öst', - SE: 'sydost', - S: 'syd', - SW: 'sydväst', - W: 'väst', - NW: 'nordväst', - SlightRight: 'svagt höger', - Right: 'höger', - SharpRight: 'skarpt höger', - SlightLeft: 'svagt vänster', - Left: 'vänster', - SharpLeft: 'skarpt vänster', - Uturn: 'Vänd' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Åk åt {dir}', ' till {road}'], - 'Continue': - ['Fortsätt {dir}'], - 'SlightRight': - ['Svagt höger', ' till {road}'], - 'Right': - ['Sväng höger', ' till {road}'], - 'SharpRight': - ['Skarpt höger', ' till {road}'], - 'TurnAround': - ['Vänd'], - 'SharpLeft': - ['Skarpt vänster', ' till {road}'], - 'Left': - ['Sväng vänster', ' till {road}'], - 'SlightLeft': - ['Svagt vänster', ' till {road}'], - 'WaypointReached': - ['Viapunkt nådd'], - 'Roundabout': - ['Tag {exitStr} avfarten i rondellen', ' till {road}'], - 'DestinationReached': - ['Framme vid resans mål'], - 'Fork': ['Tag av {modifier}', ' till {road}'], - 'Merge': ['Anslut {modifier} ', ' till {road}'], - 'OnRamp': ['Tag påfarten {modifier}', ' till {road}'], - 'OffRamp': ['Tag avfarten {modifier}', ' till {road}'], - 'EndOfRoad': ['Sväng {modifier} vid vägens slut', ' till {road}'], - 'Onto': 'till {road}' - }, - formatOrder: function(n) { - return ['första', 'andra', 'tredje', 'fjärde', 'femte', - 'sjätte', 'sjunde', 'åttonde', 'nionde', 'tionde' - /* Can't possibly be more than ten exits, can there? */][n - 1]; - }, - ui: { - startPlaceholder: 'Från', - viaPlaceholder: 'Via {viaNumber}', - endPlaceholder: 'Till' - } - }, - - 'es': spanish, - 'sp': spanish, - - 'nl': { - directions: { - N: 'noordelijke', - NE: 'noordoostelijke', - E: 'oostelijke', - SE: 'zuidoostelijke', - S: 'zuidelijke', - SW: 'zuidewestelijke', - W: 'westelijke', - NW: 'noordwestelijke' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Vertrek in {dir} richting', ' de {road} op'], - 'Continue': - ['Ga in {dir} richting', ' de {road} op'], - 'SlightRight': - ['Volg de weg naar rechts', ' de {road} op'], - 'Right': - ['Ga rechtsaf', ' de {road} op'], - 'SharpRight': - ['Ga scherpe bocht naar rechts', ' de {road} op'], - 'TurnAround': - ['Keer om'], - 'SharpLeft': - ['Ga scherpe bocht naar links', ' de {road} op'], - 'Left': - ['Ga linksaf', ' de {road} op'], - 'SlightLeft': - ['Volg de weg naar links', ' de {road} op'], - 'WaypointReached': - ['Aangekomen bij tussenpunt'], - 'Roundabout': - ['Neem de {exitStr} afslag op de rotonde', ' de {road} op'], - 'DestinationReached': - ['Aangekomen op eindpunt'], - }, - formatOrder: function(n) { - if (n === 1 || n >= 20) { - return n + 'ste'; - } else { - return n + 'de'; - } - }, - ui: { - startPlaceholder: 'Vertrekpunt', - viaPlaceholder: 'Via {viaNumber}', - endPlaceholder: 'Bestemming' - } - }, - 'fr': { - directions: { - N: 'nord', - NE: 'nord-est', - E: 'est', - SE: 'sud-est', - S: 'sud', - SW: 'sud-ouest', - W: 'ouest', - NW: 'nord-ouest' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Tout droit au {dir}', ' sur {road}'], - 'Continue': - ['Continuer au {dir}', ' sur {road}'], - 'SlightRight': - ['Légèrement à droite', ' sur {road}'], - 'Right': - ['A droite', ' sur {road}'], - 'SharpRight': - ['Complètement à droite', ' sur {road}'], - 'TurnAround': - ['Faire demi-tour'], - 'SharpLeft': - ['Complètement à gauche', ' sur {road}'], - 'Left': - ['A gauche', ' sur {road}'], - 'SlightLeft': - ['Légèrement à gauche', ' sur {road}'], - 'WaypointReached': - ['Point d\'étape atteint'], - 'Roundabout': - ['Au rond-point, prenez la {exitStr} sortie', ' sur {road}'], - 'DestinationReached': - ['Destination atteinte'], - }, - formatOrder: function(n) { - return n + 'º'; - }, - ui: { - startPlaceholder: 'Départ', - viaPlaceholder: 'Intermédiaire {viaNumber}', - endPlaceholder: 'Arrivée' - } - }, - 'it': { - directions: { - N: 'nord', - NE: 'nord-est', - E: 'est', - SE: 'sud-est', - S: 'sud', - SW: 'sud-ovest', - W: 'ovest', - NW: 'nord-ovest' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Dritto verso {dir}', ' su {road}'], - 'Continue': - ['Continuare verso {dir}', ' su {road}'], - 'SlightRight': - ['Mantenere la destra', ' su {road}'], - 'Right': - ['A destra', ' su {road}'], - 'SharpRight': - ['Strettamente a destra', ' su {road}'], - 'TurnAround': - ['Fare inversione di marcia'], - 'SharpLeft': - ['Strettamente a sinistra', ' su {road}'], - 'Left': - ['A sinistra', ' sur {road}'], - 'SlightLeft': - ['Mantenere la sinistra', ' su {road}'], - 'WaypointReached': - ['Punto di passaggio raggiunto'], - 'Roundabout': - ['Alla rotonda, prendere la {exitStr} uscita'], - 'DestinationReached': - ['Destinazione raggiunta'], - }, - formatOrder: function(n) { - return n + 'º'; - }, - ui: { - startPlaceholder: 'Partenza', - viaPlaceholder: 'Intermedia {viaNumber}', - endPlaceholder: 'Destinazione' - } - }, - 'pt': { - directions: { - N: 'norte', - NE: 'nordeste', - E: 'leste', - SE: 'sudeste', - S: 'sul', - SW: 'sudoeste', - W: 'oeste', - NW: 'noroeste', - SlightRight: 'curva ligeira a direita', - Right: 'direita', - SharpRight: 'curva fechada a direita', - SlightLeft: 'ligeira a esquerda', - Left: 'esquerda', - SharpLeft: 'curva fechada a esquerda', - Uturn: 'Meia volta' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Siga {dir}', ' na {road}'], - 'Continue': - ['Continue {dir}', ' na {road}'], - 'SlightRight': - ['Curva ligeira a direita', ' na {road}'], - 'Right': - ['Curva a direita', ' na {road}'], - 'SharpRight': - ['Curva fechada a direita', ' na {road}'], - 'TurnAround': - ['Retorne'], - 'SharpLeft': - ['Curva fechada a esquerda', ' na {road}'], - 'Left': - ['Curva a esquerda', ' na {road}'], - 'SlightLeft': - ['Curva ligueira a esquerda', ' na {road}'], - 'WaypointReached': - ['Ponto de interesse atingido'], - 'Roundabout': - ['Pegue a {exitStr} saída na rotatória', ' na {road}'], - 'DestinationReached': - ['Destino atingido'], - 'Fork': ['Na encruzilhada, vire a {modifier}', ' na {road}'], - 'Merge': ['Entre à {modifier}', ' na {road}'], - 'OnRamp': ['Vire {modifier} na rampa', ' na {road}'], - 'OffRamp': ['Entre na rampa na {modifier}', ' na {road}'], - 'EndOfRoad': ['Vire {modifier} no fim da rua', ' na {road}'], - 'Onto': 'na {road}' - }, - formatOrder: function(n) { - return n + 'º'; - }, - ui: { - startPlaceholder: 'Origem', - viaPlaceholder: 'Intermédio {viaNumber}', - endPlaceholder: 'Destino' - } - }, - 'sk': { - directions: { - N: 'sever', - NE: 'serverovýchod', - E: 'východ', - SE: 'juhovýchod', - S: 'juh', - SW: 'juhozápad', - W: 'západ', - NW: 'serverozápad' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Mierte na {dir}', ' na {road}'], - 'Continue': - ['Pokračujte na {dir}', ' na {road}'], - 'SlightRight': - ['Mierne doprava', ' na {road}'], - 'Right': - ['Doprava', ' na {road}'], - 'SharpRight': - ['Prudko doprava', ' na {road}'], - 'TurnAround': - ['Otočte sa'], - 'SharpLeft': - ['Prudko doľava', ' na {road}'], - 'Left': - ['Doľava', ' na {road}'], - 'SlightLeft': - ['Mierne doľava', ' na {road}'], - 'WaypointReached': - ['Ste v prejazdovom bode.'], - 'Roundabout': - ['Odbočte na {exitStr} výjazde', ' na {road}'], - 'DestinationReached': - ['Prišli ste do cieľa.'], - }, - formatOrder: function(n) { - var i = n % 10 - 1, - suffix = ['.', '.', '.']; - - return suffix[i] ? n + suffix[i] : n + '.'; - }, - ui: { - startPlaceholder: 'Začiatok', - viaPlaceholder: 'Cez {viaNumber}', - endPlaceholder: 'Koniec' - } - }, - 'el': { - directions: { - N: 'βόρεια', - NE: 'βορειοανατολικά', - E: 'ανατολικά', - SE: 'νοτιοανατολικά', - S: 'νότια', - SW: 'νοτιοδυτικά', - W: 'δυτικά', - NW: 'βορειοδυτικά' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Κατευθυνθείτε {dir}', ' στην {road}'], - 'Continue': - ['Συνεχίστε {dir}', ' στην {road}'], - 'SlightRight': - ['Ελαφρώς δεξιά', ' στην {road}'], - 'Right': - ['Δεξιά', ' στην {road}'], - 'SharpRight': - ['Απότομη δεξιά στροφή', ' στην {road}'], - 'TurnAround': - ['Κάντε αναστροφή'], - 'SharpLeft': - ['Απότομη αριστερή στροφή', ' στην {road}'], - 'Left': - ['Αριστερά', ' στην {road}'], - 'SlightLeft': - ['Ελαφρώς αριστερά', ' στην {road}'], - 'WaypointReached': - ['Φτάσατε στο σημείο αναφοράς'], - 'Roundabout': - ['Ακολουθήστε την {exitStr} έξοδο στο κυκλικό κόμβο', ' στην {road}'], - 'DestinationReached': - ['Φτάσατε στον προορισμό σας'], - }, - formatOrder: function(n) { - return n + 'º'; - }, - ui: { - startPlaceholder: 'Αφετηρία', - viaPlaceholder: 'μέσω {viaNumber}', - endPlaceholder: 'Προορισμός' - } - }, - 'ca': { - directions: { - N: 'nord', - NE: 'nord-est', - E: 'est', - SE: 'sud-est', - S: 'sud', - SW: 'sud-oest', - W: 'oest', - NW: 'nord-oest', - SlightRight: 'lleu gir a la dreta', - Right: 'dreta', - SharpRight: 'gir pronunciat a la dreta', - SlightLeft: 'gir pronunciat a l\'esquerra', - Left: 'esquerra', - SharpLeft: 'lleu gir a l\'esquerra', - Uturn: 'mitja volta' - }, - instructions: { - 'Head': - ['Recte {dir}', ' sobre {road}'], - 'Continue': - ['Continuar {dir}'], - 'TurnAround': - ['Donar la volta'], - 'WaypointReached': - ['Ha arribat a un punt del camí'], - 'Roundabout': - ['Agafar {exitStr} sortida a la rotonda', ' a {road}'], - 'DestinationReached': - ['Arribada al destí'], - 'Fork': ['A la cruïlla gira a la {modifier}', ' cap a {road}'], - 'Merge': ['Incorpora\'t {modifier}', ' a {road}'], - 'OnRamp': ['Gira {modifier} a la sortida', ' cap a {road}'], - 'OffRamp': ['Pren la sortida {modifier}', ' cap a {road}'], - 'EndOfRoad': ['Gira {modifier} al final de la carretera', ' cap a {road}'], - 'Onto': 'cap a {road}' - }, - formatOrder: function(n) { - return n + 'º'; - }, - ui: { - startPlaceholder: 'Origen', - viaPlaceholder: 'Via {viaNumber}', - endPlaceholder: 'Destí' - }, - units: { - meters: 'm', - kilometers: 'km', - yards: 'yd', - miles: 'mi', - hours: 'h', - minutes: 'min', - seconds: 's' - } - }, - 'ru': { - directions: { - N: 'север', - NE: 'северовосток', - E: 'восток', - SE: 'юговосток', - S: 'юг', - SW: 'югозапад', - W: 'запад', - NW: 'северозапад', - SlightRight: 'плавно направо', - Right: 'направо', - SharpRight: 'резко направо', - SlightLeft: 'плавно налево', - Left: 'налево', - SharpLeft: 'резко налево', - Uturn: 'развернуться' - }, - instructions: { - 'Head': - ['Начать движение на {dir}', ' по {road}'], - 'Continue': - ['Продолжать движение на {dir}', ' по {road}'], - 'SlightRight': - ['Плавный поворот направо', ' на {road}'], - 'Right': - ['Направо', ' на {road}'], - 'SharpRight': - ['Резкий поворот направо', ' на {road}'], - 'TurnAround': - ['Развернуться'], - 'SharpLeft': - ['Резкий поворот налево', ' на {road}'], - 'Left': - ['Поворот налево', ' на {road}'], - 'SlightLeft': - ['Плавный поворот налево', ' на {road}'], - 'WaypointReached': - ['Точка достигнута'], - 'Roundabout': - ['{exitStr} съезд с кольца', ' на {road}'], - 'DestinationReached': - ['Окончание маршрута'], - 'Fork': ['На развилке поверните {modifier}', ' на {road}'], - 'Merge': ['Перестройтесь {modifier}', ' на {road}'], - 'OnRamp': ['Поверните {modifier} на съезд', ' на {road}'], - 'OffRamp': ['Съезжайте на {modifier}', ' на {road}'], - 'EndOfRoad': ['Поверните {modifier} в конце дороги', ' на {road}'], - 'Onto': 'на {road}' - }, - formatOrder: function(n) { - return n + '-й'; - }, - ui: { - startPlaceholder: 'Начало', - viaPlaceholder: 'Через {viaNumber}', - endPlaceholder: 'Конец' - }, - units: { - meters: 'м', - kilometers: 'км', - yards: 'ярд', - miles: 'ми', - hours: 'ч', - minutes: 'м', - seconds: 'с' - } - }, - - 'pl': { - directions: { - N: 'północ', - NE: 'północny wschód', - E: 'wschód', - SE: 'południowy wschód', - S: 'południe', - SW: 'południowy zachód', - W: 'zachód', - NW: 'północny zachód', - SlightRight: 'lekko w prawo', - Right: 'w prawo', - SharpRight: 'ostro w prawo', - SlightLeft: 'lekko w lewo', - Left: 'w lewo', - SharpLeft: 'ostro w lewo', - Uturn: 'zawróć' - }, - instructions: { - // instruction, postfix if the road is named - 'Head': - ['Kieruj się na {dir}', ' na {road}'], - 'Continue': - ['Jedź dalej przez {dir}'], - 'TurnAround': - ['Zawróć'], - 'WaypointReached': - ['Punkt pośredni'], - 'Roundabout': - ['Wyjedź {exitStr} zjazdem na rondzie', ' na {road}'], - 'DestinationReached': - ['Dojechano do miejsca docelowego'], - 'Fork': ['Na rozwidleniu {modifier}', ' na {road}'], - 'Merge': ['Zjedź {modifier}', ' na {road}'], - 'OnRamp': ['Wjazd {modifier}', ' na {road}'], - 'OffRamp': ['Zjazd {modifier}', ' na {road}'], - 'EndOfRoad': ['Skręć {modifier} na końcu drogi', ' na {road}'], - 'Onto': 'na {road}' - }, - formatOrder: function(n) { - return n + '.'; - }, - ui: { - startPlaceholder: 'Początek', - viaPlaceholder: 'Przez {viaNumber}', - endPlaceholder: 'Koniec' - }, - units: { - meters: 'm', - kilometers: 'km', - yards: 'yd', - miles: 'mi', - hours: 'godz', - minutes: 'min', - seconds: 's' - } - } - }); -})(); - -},{}],58:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - - var OSRMv1 = _dereq_('./osrm-v1'); - - /** - * Works against OSRM's new API in version 5.0; this has - * the API version v1. - */ - module.exports = OSRMv1.extend({ - options: { - serviceUrl: 'https://api.mapbox.com/directions/v5', - profile: 'mapbox/driving', - useHints: false - }, - - initialize: function(accessToken, options) { - L.Routing.OSRMv1.prototype.initialize.call(this, options); - this.options.requestParameters = this.options.requestParameters || {}; - /* jshint camelcase: false */ - this.options.requestParameters.access_token = accessToken; - /* jshint camelcase: true */ - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./osrm-v1":59}],59:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null), - corslite = _dereq_('@mapbox/corslite'), - polyline = _dereq_('@mapbox/polyline'), - osrmTextInstructions = _dereq_('osrm-text-instructions')('v5'); - - // Ignore camelcase naming for this file, since OSRM's API uses - // underscores. - /* jshint camelcase: false */ - - var Waypoint = _dereq_('./waypoint'); - - /** - * Works against OSRM's new API in version 5.0; this has - * the API version v1. - */ - module.exports = L.Class.extend({ - options: { - serviceUrl: 'https://router.project-osrm.org/route/v1', - profile: 'driving', - timeout: 30 * 1000, - routingOptions: { - alternatives: true, - steps: true - }, - polylinePrecision: 5, - useHints: true, - suppressDemoServerWarning: false, - language: 'en' - }, - - initialize: function(options) { - L.Util.setOptions(this, options); - this._hints = { - locations: {} - }; - - if (!this.options.suppressDemoServerWarning && - this.options.serviceUrl.indexOf('//router.project-osrm.org') >= 0) { - console.warn('You are using OSRM\'s demo server. ' + - 'Please note that it is **NOT SUITABLE FOR PRODUCTION USE**.\n' + - 'Refer to the demo server\'s usage policy: ' + - 'https://github.com/Project-OSRM/osrm-backend/wiki/Api-usage-policy\n\n' + - 'To change, set the serviceUrl option.\n\n' + - 'Please do not report issues with this server to neither ' + - 'Leaflet Routing Machine or OSRM - it\'s for\n' + - 'demo only, and will sometimes not be available, or work in ' + - 'unexpected ways.\n\n' + - 'Please set up your own OSRM server, or use a paid service ' + - 'provider for production.'); - } - }, - - route: function(waypoints, callback, context, options) { - var timedOut = false, - wps = [], - url, - timer, - wp, - i, - xhr; - - options = L.extend({}, this.options.routingOptions, options); - url = this.buildRouteUrl(waypoints, options); - if (this.options.requestParameters) { - url += L.Util.getParamString(this.options.requestParameters, url); - } - - timer = setTimeout(function() { - timedOut = true; - callback.call(context || callback, { - status: -1, - message: 'OSRM request timed out.' - }); - }, this.options.timeout); - - // Create a copy of the waypoints, since they - // might otherwise be asynchronously modified while - // the request is being processed. - for (i = 0; i < waypoints.length; i++) { - wp = waypoints[i]; - wps.push(new Waypoint(wp.latLng, wp.name, wp.options)); - } - - return xhr = corslite(url, L.bind(function(err, resp) { - var data, - error = {}; - - clearTimeout(timer); - if (!timedOut) { - if (!err) { - try { - data = JSON.parse(resp.responseText); - try { - return this._routeDone(data, wps, options, callback, context); - } catch (ex) { - error.status = -3; - error.message = ex.toString(); - } - } catch (ex) { - error.status = -2; - error.message = 'Error parsing OSRM response: ' + ex.toString(); - } - } else { - error.message = 'HTTP request failed: ' + err.type + - (err.target && err.target.status ? ' HTTP ' + err.target.status + ': ' + err.target.statusText : ''); - error.url = url; - error.status = -1; - error.target = err; - } - - callback.call(context || callback, error); - } else { - xhr.abort(); - } - }, this)); - }, - - requiresMoreDetail: function(route, zoom, bounds) { - if (!route.properties.isSimplified) { - return false; - } - - var waypoints = route.inputWaypoints, - i; - for (i = 0; i < waypoints.length; ++i) { - if (!bounds.contains(waypoints[i].latLng)) { - return true; - } - } - - return false; - }, - - _routeDone: function(response, inputWaypoints, options, callback, context) { - var alts = [], - actualWaypoints, - i, - route; - - context = context || callback; - if (response.code !== 'Ok') { - callback.call(context, { - status: response.code - }); - return; - } - - actualWaypoints = this._toWaypoints(inputWaypoints, response.waypoints); - - for (i = 0; i < response.routes.length; i++) { - route = this._convertRoute(response.routes[i]); - route.inputWaypoints = inputWaypoints; - route.waypoints = actualWaypoints; - route.properties = {isSimplified: !options || !options.geometryOnly || options.simplifyGeometry}; - alts.push(route); - } - - this._saveHintData(response.waypoints, inputWaypoints); - - callback.call(context, null, alts); - }, - - _convertRoute: function(responseRoute) { - var result = { - name: '', - coordinates: [], - instructions: [], - summary: { - totalDistance: responseRoute.distance, - totalTime: responseRoute.duration - } - }, - legNames = [], - waypointIndices = [], - index = 0, - legCount = responseRoute.legs.length, - hasSteps = responseRoute.legs[0].steps.length > 0, - i, - j, - leg, - step, - geometry, - type, - modifier, - text, - stepToText; - - if (this.options.stepToText) { - stepToText = this.options.stepToText; - } else { - stepToText = L.bind(osrmTextInstructions.compile, osrmTextInstructions, this.options.language); - } - - for (i = 0; i < legCount; i++) { - leg = responseRoute.legs[i]; - legNames.push(leg.summary && leg.summary.charAt(0).toUpperCase() + leg.summary.substring(1)); - for (j = 0; j < leg.steps.length; j++) { - step = leg.steps[j]; - geometry = this._decodePolyline(step.geometry); - result.coordinates.push.apply(result.coordinates, geometry); - type = this._maneuverToInstructionType(step.maneuver, i === legCount - 1); - modifier = this._maneuverToModifier(step.maneuver); - text = stepToText(step, {legCount: legCount, legIndex: i}); - - if (type) { - if ((i == 0 && step.maneuver.type == 'depart') || step.maneuver.type == 'arrive') { - waypointIndices.push(index); - } - - result.instructions.push({ - type: type, - distance: step.distance, - time: step.duration, - road: step.name, - direction: this._bearingToDirection(step.maneuver.bearing_after), - exit: step.maneuver.exit, - index: index, - mode: step.mode, - modifier: modifier, - text: text - }); - } - - index += geometry.length; - } - } - - result.name = legNames.join(', '); - if (!hasSteps) { - result.coordinates = this._decodePolyline(responseRoute.geometry); - } else { - result.waypointIndices = waypointIndices; - } - - return result; - }, - - _bearingToDirection: function(bearing) { - var oct = Math.round(bearing / 45) % 8; - return ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'][oct]; - }, - - _maneuverToInstructionType: function(maneuver, lastLeg) { - switch (maneuver.type) { - case 'new name': - return 'Continue'; - case 'depart': - return 'Head'; - case 'arrive': - return lastLeg ? 'DestinationReached' : 'WaypointReached'; - case 'roundabout': - case 'rotary': - return 'Roundabout'; - case 'merge': - case 'fork': - case 'on ramp': - case 'off ramp': - case 'end of road': - return this._camelCase(maneuver.type); - // These are all reduced to the same instruction in the current model - //case 'turn': - //case 'ramp': // deprecated in v5.1 - default: - return this._camelCase(maneuver.modifier); - } - }, - - _maneuverToModifier: function(maneuver) { - var modifier = maneuver.modifier; - - switch (maneuver.type) { - case 'merge': - case 'fork': - case 'on ramp': - case 'off ramp': - case 'end of road': - modifier = this._leftOrRight(modifier); - } - - return modifier && this._camelCase(modifier); - }, - - _camelCase: function(s) { - var words = s.split(' '), - result = ''; - for (var i = 0, l = words.length; i < l; i++) { - result += words[i].charAt(0).toUpperCase() + words[i].substring(1); - } - - return result; - }, - - _leftOrRight: function(d) { - return d.indexOf('left') >= 0 ? 'Left' : 'Right'; - }, - - _decodePolyline: function(routeGeometry) { - var cs = polyline.decode(routeGeometry, this.options.polylinePrecision), - result = new Array(cs.length), - i; - for (i = cs.length - 1; i >= 0; i--) { - result[i] = L.latLng(cs[i]); - } - - return result; - }, - - _toWaypoints: function(inputWaypoints, vias) { - var wps = [], - i, - viaLoc; - for (i = 0; i < vias.length; i++) { - viaLoc = vias[i].location; - wps.push(new Waypoint(L.latLng(viaLoc[1], viaLoc[0]), - inputWaypoints[i].name, - inputWaypoints[i].options)); - } - - return wps; - }, - - buildRouteUrl: function(waypoints, options) { - var locs = [], - hints = [], - wp, - latLng, - computeInstructions, - computeAlternative = true; - - for (var i = 0; i < waypoints.length; i++) { - wp = waypoints[i]; - latLng = wp.latLng; - locs.push(latLng.lng + ',' + latLng.lat); - hints.push(this._hints.locations[this._locationKey(latLng)] || ''); - } - - computeInstructions = - true; - - return this.options.serviceUrl + '/' + this.options.profile + '/' + - locs.join(';') + '?' + - (options.geometryOnly ? (options.simplifyGeometry ? '' : 'overview=full') : 'overview=false') + - '&alternatives=' + computeAlternative.toString() + - '&steps=' + computeInstructions.toString() + - (this.options.useHints ? '&hints=' + hints.join(';') : '') + - (options.allowUTurns ? '&continue_straight=' + !options.allowUTurns : ''); - }, - - _locationKey: function(location) { - return location.lat + ',' + location.lng; - }, - - _saveHintData: function(actualWaypoints, waypoints) { - var loc; - this._hints = { - locations: {} - }; - for (var i = actualWaypoints.length - 1; i >= 0; i--) { - loc = waypoints[i].latLng; - this._hints.locations[this._locationKey(loc)] = actualWaypoints[i].hint; - } - }, - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./waypoint":61,"@mapbox/corslite":1,"@mapbox/polyline":2,"osrm-text-instructions":3}],60:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - var GeocoderElement = _dereq_('./geocoder-element'); - var Waypoint = _dereq_('./waypoint'); - - module.exports = (L.Layer || L.Class).extend({ - includes: ((typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events), - - options: { - dragStyles: [ - {color: 'black', opacity: 0.15, weight: 9}, - {color: 'white', opacity: 0.8, weight: 6}, - {color: 'red', opacity: 1, weight: 2, dashArray: '7,12'} - ], - draggableWaypoints: true, - routeWhileDragging: false, - addWaypoints: true, - reverseWaypoints: false, - addButtonClassName: '', - language: 'en', - createGeocoderElement: function(wp, i, nWps, plan) { - return new GeocoderElement(wp, i, nWps, plan); - }, - createMarker: function(i, wp) { - var options = { - draggable: this.draggableWaypoints - }, - marker = L.marker(wp.latLng, options); - - return marker; - }, - geocodersClassName: '' - }, - - initialize: function(waypoints, options) { - L.Util.setOptions(this, options); - this._waypoints = []; - this.setWaypoints(waypoints); - }, - - isReady: function() { - var i; - for (i = 0; i < this._waypoints.length; i++) { - if (!this._waypoints[i].latLng) { - return false; - } - } - - return true; - }, - - getWaypoints: function() { - var i, - wps = []; - - for (i = 0; i < this._waypoints.length; i++) { - wps.push(this._waypoints[i]); - } - - return wps; - }, - - setWaypoints: function(waypoints) { - var args = [0, this._waypoints.length].concat(waypoints); - this.spliceWaypoints.apply(this, args); - return this; - }, - - spliceWaypoints: function() { - var args = [arguments[0], arguments[1]], - i; - - for (i = 2; i < arguments.length; i++) { - args.push(arguments[i] && arguments[i].hasOwnProperty('latLng') ? arguments[i] : new Waypoint(arguments[i])); - } - - [].splice.apply(this._waypoints, args); - - // Make sure there's always at least two waypoints - while (this._waypoints.length < 2) { - this.spliceWaypoints(this._waypoints.length, 0, null); - } - - this._updateMarkers(); - this._fireChanged.apply(this, args); - }, - - onAdd: function(map) { - this._map = map; - this._updateMarkers(); - }, - - onRemove: function() { - var i; - this._removeMarkers(); - - if (this._newWp) { - for (i = 0; i < this._newWp.lines.length; i++) { - this._map.removeLayer(this._newWp.lines[i]); - } - } - - delete this._map; - }, - - createGeocoders: function() { - var container = L.DomUtil.create('div', 'leaflet-routing-geocoders ' + this.options.geocodersClassName), - waypoints = this._waypoints, - addWpBtn, - reverseBtn; - - this._geocoderContainer = container; - this._geocoderElems = []; - - - if (this.options.addWaypoints) { - addWpBtn = L.DomUtil.create('button', 'leaflet-routing-add-waypoint ' + this.options.addButtonClassName, container); - addWpBtn.setAttribute('type', 'button'); - L.DomEvent.addListener(addWpBtn, 'click', function() { - this.spliceWaypoints(waypoints.length, 0, null); - }, this); - } - - if (this.options.reverseWaypoints) { - reverseBtn = L.DomUtil.create('button', 'leaflet-routing-reverse-waypoints', container); - reverseBtn.setAttribute('type', 'button'); - L.DomEvent.addListener(reverseBtn, 'click', function() { - this._waypoints.reverse(); - this.setWaypoints(this._waypoints); - }, this); - } - - this._updateGeocoders(); - this.on('waypointsspliced', this._updateGeocoders); - - return container; - }, - - _createGeocoder: function(i) { - var geocoder = this.options.createGeocoderElement(this._waypoints[i], i, this._waypoints.length, this.options); - geocoder - .on('delete', function() { - if (i > 0 || this._waypoints.length > 2) { - this.spliceWaypoints(i, 1); - } else { - this.spliceWaypoints(i, 1, new Waypoint()); - } - }, this) - .on('geocoded', function(e) { - this._updateMarkers(); - this._fireChanged(); - this._focusGeocoder(i + 1); - this.fire('waypointgeocoded', { - waypointIndex: i, - waypoint: e.waypoint - }); - }, this) - .on('reversegeocoded', function(e) { - this.fire('waypointgeocoded', { - waypointIndex: i, - waypoint: e.waypoint - }); - }, this); - - return geocoder; - }, - - _updateGeocoders: function() { - var elems = [], - i, - geocoderElem; - - for (i = 0; i < this._geocoderElems.length; i++) { - this._geocoderContainer.removeChild(this._geocoderElems[i].getContainer()); - } - - for (i = this._waypoints.length - 1; i >= 0; i--) { - geocoderElem = this._createGeocoder(i); - this._geocoderContainer.insertBefore(geocoderElem.getContainer(), this._geocoderContainer.firstChild); - elems.push(geocoderElem); - } - - this._geocoderElems = elems.reverse(); - }, - - _removeMarkers: function() { - var i; - if (this._markers) { - for (i = 0; i < this._markers.length; i++) { - if (this._markers[i]) { - this._map.removeLayer(this._markers[i]); - } - } - } - this._markers = []; - }, - - _updateMarkers: function() { - var i, - m; - - if (!this._map) { - return; - } - - this._removeMarkers(); - - for (i = 0; i < this._waypoints.length; i++) { - if (this._waypoints[i].latLng) { - m = this.options.createMarker(i, this._waypoints[i], this._waypoints.length); - if (m) { - m.addTo(this._map); - if (this.options.draggableWaypoints) { - this._hookWaypointEvents(m, i); - } - } - } else { - m = null; - } - this._markers.push(m); - } - }, - - _fireChanged: function() { - this.fire('waypointschanged', {waypoints: this.getWaypoints()}); - - if (arguments.length >= 2) { - this.fire('waypointsspliced', { - index: Array.prototype.shift.call(arguments), - nRemoved: Array.prototype.shift.call(arguments), - added: arguments - }); - } - }, - - _hookWaypointEvents: function(m, i, trackMouseMove) { - var eventLatLng = function(e) { - return trackMouseMove ? e.latlng : e.target.getLatLng(); - }, - dragStart = L.bind(function(e) { - this.fire('waypointdragstart', {index: i, latlng: eventLatLng(e)}); - }, this), - drag = L.bind(function(e) { - this._waypoints[i].latLng = eventLatLng(e); - this.fire('waypointdrag', {index: i, latlng: eventLatLng(e)}); - }, this), - dragEnd = L.bind(function(e) { - this._waypoints[i].latLng = eventLatLng(e); - this._waypoints[i].name = ''; - if (this._geocoderElems) { - this._geocoderElems[i].update(true); - } - this.fire('waypointdragend', {index: i, latlng: eventLatLng(e)}); - this._fireChanged(); - }, this), - mouseMove, - mouseUp; - - if (trackMouseMove) { - mouseMove = L.bind(function(e) { - this._markers[i].setLatLng(e.latlng); - drag(e); - }, this); - mouseUp = L.bind(function(e) { - this._map.dragging.enable(); - this._map.off('mouseup', mouseUp); - this._map.off('mousemove', mouseMove); - dragEnd(e); - }, this); - this._map.dragging.disable(); - this._map.on('mousemove', mouseMove); - this._map.on('mouseup', mouseUp); - dragStart({latlng: this._waypoints[i].latLng}); - } else { - m.on('dragstart', dragStart); - m.on('drag', drag); - m.on('dragend', dragEnd); - } - }, - - dragNewWaypoint: function(e) { - var newWpIndex = e.afterIndex + 1; - if (this.options.routeWhileDragging) { - this.spliceWaypoints(newWpIndex, 0, e.latlng); - this._hookWaypointEvents(this._markers[newWpIndex], newWpIndex, true); - } else { - this._dragNewWaypoint(newWpIndex, e.latlng); - } - }, - - _dragNewWaypoint: function(newWpIndex, initialLatLng) { - var wp = new Waypoint(initialLatLng), - prevWp = this._waypoints[newWpIndex - 1], - nextWp = this._waypoints[newWpIndex], - marker = this.options.createMarker(newWpIndex, wp, this._waypoints.length + 1), - lines = [], - draggingEnabled = this._map.dragging.enabled(), - mouseMove = L.bind(function(e) { - var i, - latLngs; - if (marker) { - marker.setLatLng(e.latlng); - } - for (i = 0; i < lines.length; i++) { - latLngs = lines[i].getLatLngs(); - latLngs.splice(1, 1, e.latlng); - lines[i].setLatLngs(latLngs); - } - - L.DomEvent.stop(e); - }, this), - mouseUp = L.bind(function(e) { - var i; - if (marker) { - this._map.removeLayer(marker); - } - for (i = 0; i < lines.length; i++) { - this._map.removeLayer(lines[i]); - } - this._map.off('mousemove', mouseMove); - this._map.off('mouseup', mouseUp); - this.spliceWaypoints(newWpIndex, 0, e.latlng); - if (draggingEnabled) { - this._map.dragging.enable(); - } - - L.DomEvent.stop(e); - }, this), - i; - - if (marker) { - marker.addTo(this._map); - } - - for (i = 0; i < this.options.dragStyles.length; i++) { - lines.push(L.polyline([prevWp.latLng, initialLatLng, nextWp.latLng], - this.options.dragStyles[i]).addTo(this._map)); - } - - if (draggingEnabled) { - this._map.dragging.disable(); - } - - this._map.on('mousemove', mouseMove); - this._map.on('mouseup', mouseUp); - }, - - _focusGeocoder: function(i) { - if (this._geocoderElems[i]) { - this._geocoderElems[i].focus(); - } else { - document.activeElement.blur(); - } - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./geocoder-element":52,"./waypoint":61}],61:[function(_dereq_,module,exports){ -(function (global){ -(function() { - 'use strict'; - - var L = (typeof window !== "undefined" ? window['L'] : typeof global !== "undefined" ? global['L'] : null); - - module.exports = L.Class.extend({ - options: { - allowUTurn: false, - }, - initialize: function(latLng, name, options) { - L.Util.setOptions(this, options); - this.latLng = L.latLng(latLng); - this.name = name; - } - }); -})(); - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}]},{},[53]); + (function () { + 'use strict'; + + var spanish = { + directions: { + N: 'norte', + NE: 'noreste', + E: 'este', + SE: 'sureste', + S: 'sur', + SW: 'suroeste', + W: 'oeste', + NW: 'noroeste', + SlightRight: 'leve giro a la derecha', + Right: 'derecha', + SharpRight: 'giro pronunciado a la derecha', + SlightLeft: 'leve giro a la izquierda', + Left: 'izquierda', + SharpLeft: 'giro pronunciado a la izquierda', + Uturn: 'media vuelta', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Derecho {dir}', ' sobre {road}'], + Continue: ['Continuar {dir}', ' en {road}'], + TurnAround: ['Dar vuelta'], + WaypointReached: ['Llegó a un punto del camino'], + Roundabout: ['Tomar {exitStr} salida en la rotonda', ' en {road}'], + DestinationReached: ['Llegada a destino'], + Fork: ['En el cruce gira a {modifier}', ' hacia {road}'], + Merge: ['Incorpórate {modifier}', ' hacia {road}'], + OnRamp: ['Gira {modifier} en la salida', ' hacia {road}'], + OffRamp: ['Toma la salida {modifier}', ' hacia {road}'], + EndOfRoad: ['Gira {modifier} al final de la carretera', ' hacia {road}'], + Onto: 'hacia {road}', + }, + formatOrder: function (n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Inicio', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Destino', + }, + units: { + meters: 'm', + kilometers: 'km', + yards: 'yd', + miles: 'mi', + hours: 'h', + minutes: 'min', + seconds: 's', + }, + }; + + L.Routing = L.Routing || {}; + + var Localization = L.Class.extend({ + initialize: function (langs) { + this._langs = L.Util.isArray(langs) ? langs.slice() : [langs, 'en']; + + for (var i = 0, l = this._langs.length; i < l; i++) { + var generalizedCode = /([A-Za-z]+)/.exec(this._langs[i])[1]; + if (!Localization[this._langs[i]]) { + if (Localization[generalizedCode]) { + this._langs[i] = generalizedCode; + } else { + throw new Error('No localization for language "' + this._langs[i] + '".'); + } + } + } + }, + + localize: function (keys) { + var dict, key, value; + + keys = L.Util.isArray(keys) ? keys : [keys]; + + for (var i = 0, l = this._langs.length; i < l; i++) { + dict = Localization[this._langs[i]]; + for (var j = 0, nKeys = keys.length; dict && j < nKeys; j++) { + key = keys[j]; + value = dict[key]; + dict = value; + } + + if (value) { + return value; + } + } + }, + }); + + module.exports = L.extend(Localization, { + en: { + directions: { + N: 'north', + NE: 'northeast', + E: 'east', + SE: 'southeast', + S: 'south', + SW: 'southwest', + W: 'west', + NW: 'northwest', + SlightRight: 'slight right', + Right: 'right', + SharpRight: 'sharp right', + SlightLeft: 'slight left', + Left: 'left', + SharpLeft: 'sharp left', + Uturn: 'Turn around', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Head {dir}', ' on {road}'], + Continue: ['Continue {dir}'], + TurnAround: ['Turn around'], + WaypointReached: ['Waypoint reached'], + Roundabout: ['Take the {exitStr} exit in the roundabout', ' onto {road}'], + DestinationReached: ['Destination reached'], + Fork: ['At the fork, turn {modifier}', ' onto {road}'], + Merge: ['Merge {modifier}', ' onto {road}'], + OnRamp: ['Turn {modifier} on the ramp', ' onto {road}'], + OffRamp: ['Take the ramp on the {modifier}', ' onto {road}'], + EndOfRoad: ['Turn {modifier} at the end of the road', ' onto {road}'], + Onto: 'onto {road}', + }, + formatOrder: function (n) { + var i = (n % 10) - 1, + suffix = ['st', 'nd', 'rd']; + + return suffix[i] ? n + suffix[i] : n + 'th'; + }, + ui: { + startPlaceholder: 'Start', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'End', + }, + units: { + meters: 'm', + kilometers: 'km', + yards: 'yd', + miles: 'mi', + hours: 'h', + minutes: 'min', + seconds: 's', + }, + }, + + de: { + directions: { + N: 'Norden', + NE: 'Nordosten', + E: 'Osten', + SE: 'Südosten', + S: 'Süden', + SW: 'Südwesten', + W: 'Westen', + NW: 'Nordwesten', + SlightRight: 'leicht rechts', + Right: 'rechts', + SharpRight: 'scharf rechts', + SlightLeft: 'leicht links', + Left: 'links', + SharpLeft: 'scharf links', + Uturn: 'Wenden', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Richtung {dir}', ' auf {road}'], + Continue: ['Geradeaus Richtung {dir}', ' auf {road}'], + SlightRight: ['Leicht rechts abbiegen', ' auf {road}'], + Right: ['Rechts abbiegen', ' auf {road}'], + SharpRight: ['Scharf rechts abbiegen', ' auf {road}'], + TurnAround: ['Wenden'], + SharpLeft: ['Scharf links abbiegen', ' auf {road}'], + Left: ['Links abbiegen', ' auf {road}'], + SlightLeft: ['Leicht links abbiegen', ' auf {road}'], + WaypointReached: ['Zwischenhalt erreicht'], + Roundabout: ['Nehmen Sie die {exitStr} Ausfahrt im Kreisverkehr', ' auf {road}'], + DestinationReached: ['Sie haben ihr Ziel erreicht'], + Fork: ['An der Kreuzung {modifier}', ' auf {road}'], + Merge: ['Fahren Sie {modifier} weiter', ' auf {road}'], + OnRamp: ['Fahren Sie {modifier} auf die Auffahrt', ' auf {road}'], + OffRamp: ['Nehmen Sie die Ausfahrt {modifier}', ' auf {road}'], + EndOfRoad: ['Fahren Sie {modifier} am Ende der Straße', ' auf {road}'], + Onto: 'auf {road}', + }, + formatOrder: function (n) { + return n + '.'; + }, + ui: { + startPlaceholder: 'Start', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Ziel', + }, + }, + + sv: { + directions: { + N: 'norr', + NE: 'nordost', + E: 'öst', + SE: 'sydost', + S: 'syd', + SW: 'sydväst', + W: 'väst', + NW: 'nordväst', + SlightRight: 'svagt höger', + Right: 'höger', + SharpRight: 'skarpt höger', + SlightLeft: 'svagt vänster', + Left: 'vänster', + SharpLeft: 'skarpt vänster', + Uturn: 'Vänd', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Åk åt {dir}', ' till {road}'], + Continue: ['Fortsätt {dir}'], + SlightRight: ['Svagt höger', ' till {road}'], + Right: ['Sväng höger', ' till {road}'], + SharpRight: ['Skarpt höger', ' till {road}'], + TurnAround: ['Vänd'], + SharpLeft: ['Skarpt vänster', ' till {road}'], + Left: ['Sväng vänster', ' till {road}'], + SlightLeft: ['Svagt vänster', ' till {road}'], + WaypointReached: ['Viapunkt nådd'], + Roundabout: ['Tag {exitStr} avfarten i rondellen', ' till {road}'], + DestinationReached: ['Framme vid resans mål'], + Fork: ['Tag av {modifier}', ' till {road}'], + Merge: ['Anslut {modifier} ', ' till {road}'], + OnRamp: ['Tag påfarten {modifier}', ' till {road}'], + OffRamp: ['Tag avfarten {modifier}', ' till {road}'], + EndOfRoad: ['Sväng {modifier} vid vägens slut', ' till {road}'], + Onto: 'till {road}', + }, + formatOrder: function (n) { + return [ + 'första', + 'andra', + 'tredje', + 'fjärde', + 'femte', + 'sjätte', + 'sjunde', + 'åttonde', + 'nionde', + 'tionde', + /* Can't possibly be more than ten exits, can there? */ + ][n - 1]; + }, + ui: { + startPlaceholder: 'Från', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Till', + }, + }, + + es: spanish, + sp: spanish, + + nl: { + directions: { + N: 'noordelijke', + NE: 'noordoostelijke', + E: 'oostelijke', + SE: 'zuidoostelijke', + S: 'zuidelijke', + SW: 'zuidewestelijke', + W: 'westelijke', + NW: 'noordwestelijke', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Vertrek in {dir} richting', ' de {road} op'], + Continue: ['Ga in {dir} richting', ' de {road} op'], + SlightRight: ['Volg de weg naar rechts', ' de {road} op'], + Right: ['Ga rechtsaf', ' de {road} op'], + SharpRight: ['Ga scherpe bocht naar rechts', ' de {road} op'], + TurnAround: ['Keer om'], + SharpLeft: ['Ga scherpe bocht naar links', ' de {road} op'], + Left: ['Ga linksaf', ' de {road} op'], + SlightLeft: ['Volg de weg naar links', ' de {road} op'], + WaypointReached: ['Aangekomen bij tussenpunt'], + Roundabout: ['Neem de {exitStr} afslag op de rotonde', ' de {road} op'], + DestinationReached: ['Aangekomen op eindpunt'], + }, + formatOrder: function (n) { + if (n === 1 || n >= 20) { + return n + 'ste'; + } else { + return n + 'de'; + } + }, + ui: { + startPlaceholder: 'Vertrekpunt', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Bestemming', + }, + }, + fr: { + directions: { + N: 'nord', + NE: 'nord-est', + E: 'est', + SE: 'sud-est', + S: 'sud', + SW: 'sud-ouest', + W: 'ouest', + NW: 'nord-ouest', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Tout droit au {dir}', ' sur {road}'], + Continue: ['Continuer au {dir}', ' sur {road}'], + SlightRight: ['Légèrement à droite', ' sur {road}'], + Right: ['A droite', ' sur {road}'], + SharpRight: ['Complètement à droite', ' sur {road}'], + TurnAround: ['Faire demi-tour'], + SharpLeft: ['Complètement à gauche', ' sur {road}'], + Left: ['A gauche', ' sur {road}'], + SlightLeft: ['Légèrement à gauche', ' sur {road}'], + WaypointReached: ["Point d'étape atteint"], + Roundabout: ['Au rond-point, prenez la {exitStr} sortie', ' sur {road}'], + DestinationReached: ['Destination atteinte'], + }, + formatOrder: function (n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Départ', + viaPlaceholder: 'Intermédiaire {viaNumber}', + endPlaceholder: 'Arrivée', + }, + }, + it: { + directions: { + N: 'nord', + NE: 'nord-est', + E: 'est', + SE: 'sud-est', + S: 'sud', + SW: 'sud-ovest', + W: 'ovest', + NW: 'nord-ovest', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Dritto verso {dir}', ' su {road}'], + Continue: ['Continuare verso {dir}', ' su {road}'], + SlightRight: ['Mantenere la destra', ' su {road}'], + Right: ['A destra', ' su {road}'], + SharpRight: ['Strettamente a destra', ' su {road}'], + TurnAround: ['Fare inversione di marcia'], + SharpLeft: ['Strettamente a sinistra', ' su {road}'], + Left: ['A sinistra', ' sur {road}'], + SlightLeft: ['Mantenere la sinistra', ' su {road}'], + WaypointReached: ['Punto di passaggio raggiunto'], + Roundabout: ['Alla rotonda, prendere la {exitStr} uscita'], + DestinationReached: ['Destinazione raggiunta'], + }, + formatOrder: function (n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Partenza', + viaPlaceholder: 'Intermedia {viaNumber}', + endPlaceholder: 'Destinazione', + }, + }, + pt: { + directions: { + N: 'norte', + NE: 'nordeste', + E: 'leste', + SE: 'sudeste', + S: 'sul', + SW: 'sudoeste', + W: 'oeste', + NW: 'noroeste', + SlightRight: 'curva ligeira a direita', + Right: 'direita', + SharpRight: 'curva fechada a direita', + SlightLeft: 'ligeira a esquerda', + Left: 'esquerda', + SharpLeft: 'curva fechada a esquerda', + Uturn: 'Meia volta', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Siga {dir}', ' na {road}'], + Continue: ['Continue {dir}', ' na {road}'], + SlightRight: ['Curva ligeira a direita', ' na {road}'], + Right: ['Curva a direita', ' na {road}'], + SharpRight: ['Curva fechada a direita', ' na {road}'], + TurnAround: ['Retorne'], + SharpLeft: ['Curva fechada a esquerda', ' na {road}'], + Left: ['Curva a esquerda', ' na {road}'], + SlightLeft: ['Curva ligueira a esquerda', ' na {road}'], + WaypointReached: ['Ponto de interesse atingido'], + Roundabout: ['Pegue a {exitStr} saída na rotatória', ' na {road}'], + DestinationReached: ['Destino atingido'], + Fork: ['Na encruzilhada, vire a {modifier}', ' na {road}'], + Merge: ['Entre à {modifier}', ' na {road}'], + OnRamp: ['Vire {modifier} na rampa', ' na {road}'], + OffRamp: ['Entre na rampa na {modifier}', ' na {road}'], + EndOfRoad: ['Vire {modifier} no fim da rua', ' na {road}'], + Onto: 'na {road}', + }, + formatOrder: function (n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Origem', + viaPlaceholder: 'Intermédio {viaNumber}', + endPlaceholder: 'Destino', + }, + }, + sk: { + directions: { + N: 'sever', + NE: 'serverovýchod', + E: 'východ', + SE: 'juhovýchod', + S: 'juh', + SW: 'juhozápad', + W: 'západ', + NW: 'serverozápad', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Mierte na {dir}', ' na {road}'], + Continue: ['Pokračujte na {dir}', ' na {road}'], + SlightRight: ['Mierne doprava', ' na {road}'], + Right: ['Doprava', ' na {road}'], + SharpRight: ['Prudko doprava', ' na {road}'], + TurnAround: ['Otočte sa'], + SharpLeft: ['Prudko doľava', ' na {road}'], + Left: ['Doľava', ' na {road}'], + SlightLeft: ['Mierne doľava', ' na {road}'], + WaypointReached: ['Ste v prejazdovom bode.'], + Roundabout: ['Odbočte na {exitStr} výjazde', ' na {road}'], + DestinationReached: ['Prišli ste do cieľa.'], + }, + formatOrder: function (n) { + var i = (n % 10) - 1, + suffix = ['.', '.', '.']; + + return suffix[i] ? n + suffix[i] : n + '.'; + }, + ui: { + startPlaceholder: 'Začiatok', + viaPlaceholder: 'Cez {viaNumber}', + endPlaceholder: 'Koniec', + }, + }, + el: { + directions: { + N: 'βόρεια', + NE: 'βορειοανατολικά', + E: 'ανατολικά', + SE: 'νοτιοανατολικά', + S: 'νότια', + SW: 'νοτιοδυτικά', + W: 'δυτικά', + NW: 'βορειοδυτικά', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Κατευθυνθείτε {dir}', ' στην {road}'], + Continue: ['Συνεχίστε {dir}', ' στην {road}'], + SlightRight: ['Ελαφρώς δεξιά', ' στην {road}'], + Right: ['Δεξιά', ' στην {road}'], + SharpRight: ['Απότομη δεξιά στροφή', ' στην {road}'], + TurnAround: ['Κάντε αναστροφή'], + SharpLeft: ['Απότομη αριστερή στροφή', ' στην {road}'], + Left: ['Αριστερά', ' στην {road}'], + SlightLeft: ['Ελαφρώς αριστερά', ' στην {road}'], + WaypointReached: ['Φτάσατε στο σημείο αναφοράς'], + Roundabout: ['Ακολουθήστε την {exitStr} έξοδο στο κυκλικό κόμβο', ' στην {road}'], + DestinationReached: ['Φτάσατε στον προορισμό σας'], + }, + formatOrder: function (n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Αφετηρία', + viaPlaceholder: 'μέσω {viaNumber}', + endPlaceholder: 'Προορισμός', + }, + }, + ca: { + directions: { + N: 'nord', + NE: 'nord-est', + E: 'est', + SE: 'sud-est', + S: 'sud', + SW: 'sud-oest', + W: 'oest', + NW: 'nord-oest', + SlightRight: 'lleu gir a la dreta', + Right: 'dreta', + SharpRight: 'gir pronunciat a la dreta', + SlightLeft: "gir pronunciat a l'esquerra", + Left: 'esquerra', + SharpLeft: "lleu gir a l'esquerra", + Uturn: 'mitja volta', + }, + instructions: { + Head: ['Recte {dir}', ' sobre {road}'], + Continue: ['Continuar {dir}'], + TurnAround: ['Donar la volta'], + WaypointReached: ['Ha arribat a un punt del camí'], + Roundabout: ['Agafar {exitStr} sortida a la rotonda', ' a {road}'], + DestinationReached: ['Arribada al destí'], + Fork: ['A la cruïlla gira a la {modifier}', ' cap a {road}'], + Merge: ["Incorpora't {modifier}", ' a {road}'], + OnRamp: ['Gira {modifier} a la sortida', ' cap a {road}'], + OffRamp: ['Pren la sortida {modifier}', ' cap a {road}'], + EndOfRoad: ['Gira {modifier} al final de la carretera', ' cap a {road}'], + Onto: 'cap a {road}', + }, + formatOrder: function (n) { + return n + 'º'; + }, + ui: { + startPlaceholder: 'Origen', + viaPlaceholder: 'Via {viaNumber}', + endPlaceholder: 'Destí', + }, + units: { + meters: 'm', + kilometers: 'km', + yards: 'yd', + miles: 'mi', + hours: 'h', + minutes: 'min', + seconds: 's', + }, + }, + ru: { + directions: { + N: 'север', + NE: 'северовосток', + E: 'восток', + SE: 'юговосток', + S: 'юг', + SW: 'югозапад', + W: 'запад', + NW: 'северозапад', + SlightRight: 'плавно направо', + Right: 'направо', + SharpRight: 'резко направо', + SlightLeft: 'плавно налево', + Left: 'налево', + SharpLeft: 'резко налево', + Uturn: 'развернуться', + }, + instructions: { + Head: ['Начать движение на {dir}', ' по {road}'], + Continue: ['Продолжать движение на {dir}', ' по {road}'], + SlightRight: ['Плавный поворот направо', ' на {road}'], + Right: ['Направо', ' на {road}'], + SharpRight: ['Резкий поворот направо', ' на {road}'], + TurnAround: ['Развернуться'], + SharpLeft: ['Резкий поворот налево', ' на {road}'], + Left: ['Поворот налево', ' на {road}'], + SlightLeft: ['Плавный поворот налево', ' на {road}'], + WaypointReached: ['Точка достигнута'], + Roundabout: ['{exitStr} съезд с кольца', ' на {road}'], + DestinationReached: ['Окончание маршрута'], + Fork: ['На развилке поверните {modifier}', ' на {road}'], + Merge: ['Перестройтесь {modifier}', ' на {road}'], + OnRamp: ['Поверните {modifier} на съезд', ' на {road}'], + OffRamp: ['Съезжайте на {modifier}', ' на {road}'], + EndOfRoad: ['Поверните {modifier} в конце дороги', ' на {road}'], + Onto: 'на {road}', + }, + formatOrder: function (n) { + return n + '-й'; + }, + ui: { + startPlaceholder: 'Начало', + viaPlaceholder: 'Через {viaNumber}', + endPlaceholder: 'Конец', + }, + units: { + meters: 'м', + kilometers: 'км', + yards: 'ярд', + miles: 'ми', + hours: 'ч', + minutes: 'м', + seconds: 'с', + }, + }, + + pl: { + directions: { + N: 'północ', + NE: 'północny wschód', + E: 'wschód', + SE: 'południowy wschód', + S: 'południe', + SW: 'południowy zachód', + W: 'zachód', + NW: 'północny zachód', + SlightRight: 'lekko w prawo', + Right: 'w prawo', + SharpRight: 'ostro w prawo', + SlightLeft: 'lekko w lewo', + Left: 'w lewo', + SharpLeft: 'ostro w lewo', + Uturn: 'zawróć', + }, + instructions: { + // instruction, postfix if the road is named + Head: ['Kieruj się na {dir}', ' na {road}'], + Continue: ['Jedź dalej przez {dir}'], + TurnAround: ['Zawróć'], + WaypointReached: ['Punkt pośredni'], + Roundabout: ['Wyjedź {exitStr} zjazdem na rondzie', ' na {road}'], + DestinationReached: ['Dojechano do miejsca docelowego'], + Fork: ['Na rozwidleniu {modifier}', ' na {road}'], + Merge: ['Zjedź {modifier}', ' na {road}'], + OnRamp: ['Wjazd {modifier}', ' na {road}'], + OffRamp: ['Zjazd {modifier}', ' na {road}'], + EndOfRoad: ['Skręć {modifier} na końcu drogi', ' na {road}'], + Onto: 'na {road}', + }, + formatOrder: function (n) { + return n + '.'; + }, + ui: { + startPlaceholder: 'Początek', + viaPlaceholder: 'Przez {viaNumber}', + endPlaceholder: 'Koniec', + }, + units: { + meters: 'm', + kilometers: 'km', + yards: 'yd', + miles: 'mi', + hours: 'godz', + minutes: 'min', + seconds: 's', + }, + }, + }); + })(); + }, + {}, + ], + 58: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + + var OSRMv1 = _dereq_('./osrm-v1'); + + /** + * Works against OSRM's new API in version 5.0; this has + * the API version v1. + */ + module.exports = OSRMv1.extend({ + options: { + serviceUrl: 'https://api.mapbox.com/directions/v5', + profile: 'mapbox/driving', + useHints: false, + }, + + initialize: function (accessToken, options) { + L.Routing.OSRMv1.prototype.initialize.call(this, options); + this.options.requestParameters = this.options.requestParameters || {}; + /* jshint camelcase: false */ + this.options.requestParameters.access_token = accessToken; + /* jshint camelcase: true */ + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { './osrm-v1': 59 }, + ], + 59: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null, + corslite = _dereq_('@mapbox/corslite'), + polyline = _dereq_('@mapbox/polyline'), + osrmTextInstructions = _dereq_('osrm-text-instructions')('v5'); + + // Ignore camelcase naming for this file, since OSRM's API uses + // underscores. + /* jshint camelcase: false */ + + var Waypoint = _dereq_('./waypoint'); + + /** + * Works against OSRM's new API in version 5.0; this has + * the API version v1. + */ + module.exports = L.Class.extend({ + options: { + serviceUrl: 'https://router.project-osrm.org/route/v1', + profile: 'driving', + timeout: 30 * 1000, + routingOptions: { + alternatives: true, + steps: true, + }, + polylinePrecision: 5, + useHints: true, + suppressDemoServerWarning: false, + language: 'en', + }, + + initialize: function (options) { + L.Util.setOptions(this, options); + this._hints = { + locations: {}, + }; + + if ( + !this.options.suppressDemoServerWarning && + this.options.serviceUrl.indexOf('//router.project-osrm.org') >= 0 + ) { + console.warn( + "You are using OSRM's demo server. " + + 'Please note that it is **NOT SUITABLE FOR PRODUCTION USE**.\n' + + "Refer to the demo server's usage policy: " + + 'https://github.com/Project-OSRM/osrm-backend/wiki/Api-usage-policy\n\n' + + 'To change, set the serviceUrl option.\n\n' + + 'Please do not report issues with this server to neither ' + + "Leaflet Routing Machine or OSRM - it's for\n" + + 'demo only, and will sometimes not be available, or work in ' + + 'unexpected ways.\n\n' + + 'Please set up your own OSRM server, or use a paid service ' + + 'provider for production.' + ); + } + }, + + route: function (waypoints, callback, context, options) { + var timedOut = false, + wps = [], + url, + timer, + wp, + i, + xhr; + + options = L.extend({}, this.options.routingOptions, options); + url = this.buildRouteUrl(waypoints, options); + if (this.options.requestParameters) { + url += L.Util.getParamString(this.options.requestParameters, url); + } + + timer = setTimeout(function () { + timedOut = true; + callback.call(context || callback, { + status: -1, + message: 'OSRM request timed out.', + }); + }, this.options.timeout); + + // Create a copy of the waypoints, since they + // might otherwise be asynchronously modified while + // the request is being processed. + for (i = 0; i < waypoints.length; i++) { + wp = waypoints[i]; + wps.push(new Waypoint(wp.latLng, wp.name, wp.options)); + } + + return (xhr = corslite( + url, + L.bind(function (err, resp) { + var data, + error = {}; + + clearTimeout(timer); + if (!timedOut) { + if (!err) { + try { + data = JSON.parse(resp.responseText); + try { + return this._routeDone(data, wps, options, callback, context); + } catch (ex) { + error.status = -3; + error.message = ex.toString(); + } + } catch (ex) { + error.status = -2; + error.message = 'Error parsing OSRM response: ' + ex.toString(); + } + } else { + error.message = + 'HTTP request failed: ' + + err.type + + (err.target && err.target.status + ? ' HTTP ' + err.target.status + ': ' + err.target.statusText + : ''); + error.url = url; + error.status = -1; + error.target = err; + } + + callback.call(context || callback, error); + } else { + xhr.abort(); + } + }, this) + )); + }, + + requiresMoreDetail: function (route, zoom, bounds) { + if (!route.properties.isSimplified) { + return false; + } + + var waypoints = route.inputWaypoints, + i; + for (i = 0; i < waypoints.length; ++i) { + if (!bounds.contains(waypoints[i].latLng)) { + return true; + } + } + + return false; + }, + + _routeDone: function (response, inputWaypoints, options, callback, context) { + var alts = [], + actualWaypoints, + i, + route; + + context = context || callback; + if (response.code !== 'Ok') { + callback.call(context, { + status: response.code, + }); + return; + } + + actualWaypoints = this._toWaypoints(inputWaypoints, response.waypoints); + + for (i = 0; i < response.routes.length; i++) { + route = this._convertRoute(response.routes[i]); + route.inputWaypoints = inputWaypoints; + route.waypoints = actualWaypoints; + route.properties = { + isSimplified: !options || !options.geometryOnly || options.simplifyGeometry, + }; + alts.push(route); + } + + this._saveHintData(response.waypoints, inputWaypoints); + + callback.call(context, null, alts); + }, + + _convertRoute: function (responseRoute) { + var result = { + name: '', + coordinates: [], + instructions: [], + summary: { + totalDistance: responseRoute.distance, + totalTime: responseRoute.duration, + }, + }, + legNames = [], + waypointIndices = [], + index = 0, + legCount = responseRoute.legs.length, + hasSteps = responseRoute.legs[0].steps.length > 0, + i, + j, + leg, + step, + geometry, + type, + modifier, + text, + stepToText; + + if (this.options.stepToText) { + stepToText = this.options.stepToText; + } else { + stepToText = L.bind( + osrmTextInstructions.compile, + osrmTextInstructions, + this.options.language + ); + } + + for (i = 0; i < legCount; i++) { + leg = responseRoute.legs[i]; + legNames.push( + leg.summary && leg.summary.charAt(0).toUpperCase() + leg.summary.substring(1) + ); + for (j = 0; j < leg.steps.length; j++) { + step = leg.steps[j]; + geometry = this._decodePolyline(step.geometry); + result.coordinates.push.apply(result.coordinates, geometry); + type = this._maneuverToInstructionType(step.maneuver, i === legCount - 1); + modifier = this._maneuverToModifier(step.maneuver); + text = stepToText(step, { legCount: legCount, legIndex: i }); + + if (type) { + if ( + (i == 0 && step.maneuver.type == 'depart') || + step.maneuver.type == 'arrive' + ) { + waypointIndices.push(index); + } + + result.instructions.push({ + type: type, + distance: step.distance, + time: step.duration, + road: step.name, + direction: this._bearingToDirection(step.maneuver.bearing_after), + exit: step.maneuver.exit, + index: index, + mode: step.mode, + modifier: modifier, + text: text, + }); + } + + index += geometry.length; + } + } + + result.name = legNames.join(', '); + if (!hasSteps) { + result.coordinates = this._decodePolyline(responseRoute.geometry); + } else { + result.waypointIndices = waypointIndices; + } + + return result; + }, + + _bearingToDirection: function (bearing) { + var oct = Math.round(bearing / 45) % 8; + return ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW'][oct]; + }, + + _maneuverToInstructionType: function (maneuver, lastLeg) { + switch (maneuver.type) { + case 'new name': + return 'Continue'; + case 'depart': + return 'Head'; + case 'arrive': + return lastLeg ? 'DestinationReached' : 'WaypointReached'; + case 'roundabout': + case 'rotary': + return 'Roundabout'; + case 'merge': + case 'fork': + case 'on ramp': + case 'off ramp': + case 'end of road': + return this._camelCase(maneuver.type); + // These are all reduced to the same instruction in the current model + //case 'turn': + //case 'ramp': // deprecated in v5.1 + default: + return this._camelCase(maneuver.modifier); + } + }, + + _maneuverToModifier: function (maneuver) { + var modifier = maneuver.modifier; + + switch (maneuver.type) { + case 'merge': + case 'fork': + case 'on ramp': + case 'off ramp': + case 'end of road': + modifier = this._leftOrRight(modifier); + } + + return modifier && this._camelCase(modifier); + }, + + _camelCase: function (s) { + var words = s.split(' '), + result = ''; + for (var i = 0, l = words.length; i < l; i++) { + result += words[i].charAt(0).toUpperCase() + words[i].substring(1); + } + + return result; + }, + + _leftOrRight: function (d) { + return d.indexOf('left') >= 0 ? 'Left' : 'Right'; + }, + + _decodePolyline: function (routeGeometry) { + var cs = polyline.decode(routeGeometry, this.options.polylinePrecision), + result = new Array(cs.length), + i; + for (i = cs.length - 1; i >= 0; i--) { + result[i] = L.latLng(cs[i]); + } + + return result; + }, + + _toWaypoints: function (inputWaypoints, vias) { + var wps = [], + i, + viaLoc; + for (i = 0; i < vias.length; i++) { + viaLoc = vias[i].location; + wps.push( + new Waypoint( + L.latLng(viaLoc[1], viaLoc[0]), + inputWaypoints[i].name, + inputWaypoints[i].options + ) + ); + } + + return wps; + }, + + buildRouteUrl: function (waypoints, options) { + var locs = [], + hints = [], + wp, + latLng, + computeInstructions, + computeAlternative = true; + + for (var i = 0; i < waypoints.length; i++) { + wp = waypoints[i]; + latLng = wp.latLng; + locs.push(latLng.lng + ',' + latLng.lat); + hints.push(this._hints.locations[this._locationKey(latLng)] || ''); + } + + computeInstructions = true; + + return ( + this.options.serviceUrl + + '/' + + this.options.profile + + '/' + + locs.join(';') + + '?' + + (options.geometryOnly + ? options.simplifyGeometry + ? '' + : 'overview=full' + : 'overview=false') + + '&alternatives=' + + computeAlternative.toString() + + '&steps=' + + computeInstructions.toString() + + (this.options.useHints ? '&hints=' + hints.join(';') : '') + + (options.allowUTurns ? '&continue_straight=' + !options.allowUTurns : '') + ); + }, + + _locationKey: function (location) { + return location.lat + ',' + location.lng; + }, + + _saveHintData: function (actualWaypoints, waypoints) { + var loc; + this._hints = { + locations: {}, + }; + for (var i = actualWaypoints.length - 1; i >= 0; i--) { + loc = waypoints[i].latLng; + this._hints.locations[this._locationKey(loc)] = actualWaypoints[i].hint; + } + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { './waypoint': 61, '@mapbox/corslite': 1, '@mapbox/polyline': 2, 'osrm-text-instructions': 3 }, + ], + 60: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + var GeocoderElement = _dereq_('./geocoder-element'); + var Waypoint = _dereq_('./waypoint'); + + module.exports = (L.Layer || L.Class).extend({ + includes: (typeof L.Evented !== 'undefined' && L.Evented.prototype) || L.Mixin.Events, + + options: { + dragStyles: [ + { color: 'black', opacity: 0.15, weight: 9 }, + { color: 'white', opacity: 0.8, weight: 6 }, + { color: 'red', opacity: 1, weight: 2, dashArray: '7,12' }, + ], + draggableWaypoints: true, + routeWhileDragging: false, + addWaypoints: true, + reverseWaypoints: false, + addButtonClassName: '', + language: 'en', + createGeocoderElement: function (wp, i, nWps, plan) { + return new GeocoderElement(wp, i, nWps, plan); + }, + createMarker: function (i, wp) { + var options = { + draggable: this.draggableWaypoints, + }, + marker = L.marker(wp.latLng, options); + + return marker; + }, + geocodersClassName: '', + }, + + initialize: function (waypoints, options) { + L.Util.setOptions(this, options); + this._waypoints = []; + this.setWaypoints(waypoints); + }, + + isReady: function () { + var i; + for (i = 0; i < this._waypoints.length; i++) { + if (!this._waypoints[i].latLng) { + return false; + } + } + + return true; + }, + + getWaypoints: function () { + var i, + wps = []; + + for (i = 0; i < this._waypoints.length; i++) { + wps.push(this._waypoints[i]); + } + + return wps; + }, + + setWaypoints: function (waypoints) { + var args = [0, this._waypoints.length].concat(waypoints); + this.spliceWaypoints.apply(this, args); + return this; + }, + + spliceWaypoints: function () { + var args = [arguments[0], arguments[1]], + i; + + for (i = 2; i < arguments.length; i++) { + args.push( + arguments[i] && arguments[i].hasOwnProperty('latLng') + ? arguments[i] + : new Waypoint(arguments[i]) + ); + } + + [].splice.apply(this._waypoints, args); + + // Make sure there's always at least two waypoints + while (this._waypoints.length < 2) { + this.spliceWaypoints(this._waypoints.length, 0, null); + } + + this._updateMarkers(); + this._fireChanged.apply(this, args); + }, + + onAdd: function (map) { + this._map = map; + this._updateMarkers(); + }, + + onRemove: function () { + var i; + this._removeMarkers(); + + if (this._newWp) { + for (i = 0; i < this._newWp.lines.length; i++) { + this._map.removeLayer(this._newWp.lines[i]); + } + } + + delete this._map; + }, + + createGeocoders: function () { + var container = L.DomUtil.create( + 'div', + 'leaflet-routing-geocoders ' + this.options.geocodersClassName + ), + waypoints = this._waypoints, + addWpBtn, + reverseBtn; + + this._geocoderContainer = container; + this._geocoderElems = []; + + if (this.options.addWaypoints) { + addWpBtn = L.DomUtil.create( + 'button', + 'leaflet-routing-add-waypoint ' + this.options.addButtonClassName, + container + ); + addWpBtn.setAttribute('type', 'button'); + L.DomEvent.addListener( + addWpBtn, + 'click', + function () { + this.spliceWaypoints(waypoints.length, 0, null); + }, + this + ); + } + + if (this.options.reverseWaypoints) { + reverseBtn = L.DomUtil.create( + 'button', + 'leaflet-routing-reverse-waypoints', + container + ); + reverseBtn.setAttribute('type', 'button'); + L.DomEvent.addListener( + reverseBtn, + 'click', + function () { + this._waypoints.reverse(); + this.setWaypoints(this._waypoints); + }, + this + ); + } + + this._updateGeocoders(); + this.on('waypointsspliced', this._updateGeocoders); + + return container; + }, + + _createGeocoder: function (i) { + var geocoder = this.options.createGeocoderElement( + this._waypoints[i], + i, + this._waypoints.length, + this.options + ); + geocoder + .on( + 'delete', + function () { + if (i > 0 || this._waypoints.length > 2) { + this.spliceWaypoints(i, 1); + } else { + this.spliceWaypoints(i, 1, new Waypoint()); + } + }, + this + ) + .on( + 'geocoded', + function (e) { + this._updateMarkers(); + this._fireChanged(); + this._focusGeocoder(i + 1); + this.fire('waypointgeocoded', { + waypointIndex: i, + waypoint: e.waypoint, + }); + }, + this + ) + .on( + 'reversegeocoded', + function (e) { + this.fire('waypointgeocoded', { + waypointIndex: i, + waypoint: e.waypoint, + }); + }, + this + ); + + return geocoder; + }, + + _updateGeocoders: function () { + var elems = [], + i, + geocoderElem; + + for (i = 0; i < this._geocoderElems.length; i++) { + this._geocoderContainer.removeChild(this._geocoderElems[i].getContainer()); + } + + for (i = this._waypoints.length - 1; i >= 0; i--) { + geocoderElem = this._createGeocoder(i); + this._geocoderContainer.insertBefore( + geocoderElem.getContainer(), + this._geocoderContainer.firstChild + ); + elems.push(geocoderElem); + } + + this._geocoderElems = elems.reverse(); + }, + + _removeMarkers: function () { + var i; + if (this._markers) { + for (i = 0; i < this._markers.length; i++) { + if (this._markers[i]) { + this._map.removeLayer(this._markers[i]); + } + } + } + this._markers = []; + }, + + _updateMarkers: function () { + var i, m; + + if (!this._map) { + return; + } + + this._removeMarkers(); + + for (i = 0; i < this._waypoints.length; i++) { + if (this._waypoints[i].latLng) { + m = this.options.createMarker(i, this._waypoints[i], this._waypoints.length); + if (m) { + m.addTo(this._map); + if (this.options.draggableWaypoints) { + this._hookWaypointEvents(m, i); + } + } + } else { + m = null; + } + this._markers.push(m); + } + }, + + _fireChanged: function () { + this.fire('waypointschanged', { waypoints: this.getWaypoints() }); + + if (arguments.length >= 2) { + this.fire('waypointsspliced', { + index: Array.prototype.shift.call(arguments), + nRemoved: Array.prototype.shift.call(arguments), + added: arguments, + }); + } + }, + + _hookWaypointEvents: function (m, i, trackMouseMove) { + var eventLatLng = function (e) { + return trackMouseMove ? e.latlng : e.target.getLatLng(); + }, + dragStart = L.bind(function (e) { + this.fire('waypointdragstart', { index: i, latlng: eventLatLng(e) }); + }, this), + drag = L.bind(function (e) { + this._waypoints[i].latLng = eventLatLng(e); + this.fire('waypointdrag', { index: i, latlng: eventLatLng(e) }); + }, this), + dragEnd = L.bind(function (e) { + this._waypoints[i].latLng = eventLatLng(e); + this._waypoints[i].name = ''; + if (this._geocoderElems) { + this._geocoderElems[i].update(true); + } + this.fire('waypointdragend', { index: i, latlng: eventLatLng(e) }); + this._fireChanged(); + }, this), + mouseMove, + mouseUp; + + if (trackMouseMove) { + mouseMove = L.bind(function (e) { + this._markers[i].setLatLng(e.latlng); + drag(e); + }, this); + mouseUp = L.bind(function (e) { + this._map.dragging.enable(); + this._map.off('mouseup', mouseUp); + this._map.off('mousemove', mouseMove); + dragEnd(e); + }, this); + this._map.dragging.disable(); + this._map.on('mousemove', mouseMove); + this._map.on('mouseup', mouseUp); + dragStart({ latlng: this._waypoints[i].latLng }); + } else { + m.on('dragstart', dragStart); + m.on('drag', drag); + m.on('dragend', dragEnd); + } + }, + + dragNewWaypoint: function (e) { + var newWpIndex = e.afterIndex + 1; + if (this.options.routeWhileDragging) { + this.spliceWaypoints(newWpIndex, 0, e.latlng); + this._hookWaypointEvents(this._markers[newWpIndex], newWpIndex, true); + } else { + this._dragNewWaypoint(newWpIndex, e.latlng); + } + }, + + _dragNewWaypoint: function (newWpIndex, initialLatLng) { + var wp = new Waypoint(initialLatLng), + prevWp = this._waypoints[newWpIndex - 1], + nextWp = this._waypoints[newWpIndex], + marker = this.options.createMarker(newWpIndex, wp, this._waypoints.length + 1), + lines = [], + draggingEnabled = this._map.dragging.enabled(), + mouseMove = L.bind(function (e) { + var i, latLngs; + if (marker) { + marker.setLatLng(e.latlng); + } + for (i = 0; i < lines.length; i++) { + latLngs = lines[i].getLatLngs(); + latLngs.splice(1, 1, e.latlng); + lines[i].setLatLngs(latLngs); + } + + L.DomEvent.stop(e); + }, this), + mouseUp = L.bind(function (e) { + var i; + if (marker) { + this._map.removeLayer(marker); + } + for (i = 0; i < lines.length; i++) { + this._map.removeLayer(lines[i]); + } + this._map.off('mousemove', mouseMove); + this._map.off('mouseup', mouseUp); + this.spliceWaypoints(newWpIndex, 0, e.latlng); + if (draggingEnabled) { + this._map.dragging.enable(); + } + + L.DomEvent.stop(e); + }, this), + i; + + if (marker) { + marker.addTo(this._map); + } + + for (i = 0; i < this.options.dragStyles.length; i++) { + lines.push( + L.polyline( + [prevWp.latLng, initialLatLng, nextWp.latLng], + this.options.dragStyles[i] + ).addTo(this._map) + ); + } + + if (draggingEnabled) { + this._map.dragging.disable(); + } + + this._map.on('mousemove', mouseMove); + this._map.on('mouseup', mouseUp); + }, + + _focusGeocoder: function (i) { + if (this._geocoderElems[i]) { + this._geocoderElems[i].focus(); + } else { + document.activeElement.blur(); + } + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + { './geocoder-element': 52, './waypoint': 61 }, + ], + 61: [ + function (_dereq_, module, exports) { + (function (global) { + (function () { + 'use strict'; + + var L = + typeof window !== 'undefined' + ? window['L'] + : typeof global !== 'undefined' + ? global['L'] + : null; + + module.exports = L.Class.extend({ + options: { + allowUTurn: false, + }, + initialize: function (latLng, name, options) { + L.Util.setOptions(this, options); + this.latLng = L.latLng(latLng); + this.name = name; + }, + }); + })(); + }).call( + this, + typeof global !== 'undefined' + ? global + : typeof self !== 'undefined' + ? self + : typeof window !== 'undefined' + ? window + : {} + ); + }, + {}, + ], + }, + {}, + [53] +); diff --git a/src/Files/Leaflet/Leaflet.min.js b/src/Files/Leaflet/Leaflet.min.js index a3bf693..45e95ef 100644 --- a/src/Files/Leaflet/Leaflet.min.js +++ b/src/Files/Leaflet/Leaflet.min.js @@ -2,5 +2,6382 @@ * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var e,i,n=1,o=arguments.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Ft=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,"click",O),this.expand(),this);setTimeout(function(){k(t,"click",O),e._preventClick=!1})}})),qe=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?"touchstart mousedown":"mousedown",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Vi("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Vi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=qi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=qi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1= this.min.x && i.x <= this.max.x && e.y >= this.min.y && i.y <= this.max.y + ); + }, + intersects: function (t) { + t = _(t); + var e = this.min, + i = this.max, + n = t.min, + t = t.max, + o = t.x >= e.x && n.x <= i.x, + t = t.y >= e.y && n.y <= i.y; + return o && t; + }, + overlaps: function (t) { + t = _(t); + var e = this.min, + i = this.max, + n = t.min, + t = t.max, + o = t.x > e.x && n.x < i.x, + t = t.y > e.y && n.y < i.y; + return o && t; + }, + isValid: function () { + return !(!this.min || !this.max); + }, + pad: function (t) { + var e = this.min, + i = this.max, + n = Math.abs(e.x - i.x) * t, + t = Math.abs(e.y - i.y) * t; + return _(m(e.x - n, e.y - t), m(i.x + n, i.y + t)); + }, + equals: function (t) { + return !!t && ((t = _(t)), this.min.equals(t.getTopLeft()) && this.max.equals(t.getBottomRight())); + }, + }), + (s.prototype = { + extend: function (t) { + var e, + i, + n = this._southWest, + o = this._northEast; + if (t instanceof v) i = e = t; + else { + if (!(t instanceof s)) return t ? this.extend(w(t) || g(t)) : this; + if (((e = t._southWest), (i = t._northEast), !e || !i)) return this; + } + return ( + n || o + ? ((n.lat = Math.min(e.lat, n.lat)), + (n.lng = Math.min(e.lng, n.lng)), + (o.lat = Math.max(i.lat, o.lat)), + (o.lng = Math.max(i.lng, o.lng))) + : ((this._southWest = new v(e.lat, e.lng)), (this._northEast = new v(i.lat, i.lng))), + this + ); + }, + pad: function (t) { + var e = this._southWest, + i = this._northEast, + n = Math.abs(e.lat - i.lat) * t, + t = Math.abs(e.lng - i.lng) * t; + return new s(new v(e.lat - n, e.lng - t), new v(i.lat + n, i.lng + t)); + }, + getCenter: function () { + return new v( + (this._southWest.lat + this._northEast.lat) / 2, + (this._southWest.lng + this._northEast.lng) / 2 + ); + }, + getSouthWest: function () { + return this._southWest; + }, + getNorthEast: function () { + return this._northEast; + }, + getNorthWest: function () { + return new v(this.getNorth(), this.getWest()); + }, + getSouthEast: function () { + return new v(this.getSouth(), this.getEast()); + }, + getWest: function () { + return this._southWest.lng; + }, + getSouth: function () { + return this._southWest.lat; + }, + getEast: function () { + return this._northEast.lng; + }, + getNorth: function () { + return this._northEast.lat; + }, + contains: function (t) { + t = ('number' == typeof t[0] || t instanceof v || 'lat' in t ? w : g)(t); + var e, + i, + n = this._southWest, + o = this._northEast; + return ( + t instanceof s ? ((e = t.getSouthWest()), (i = t.getNorthEast())) : (e = i = t), + e.lat >= n.lat && i.lat <= o.lat && e.lng >= n.lng && i.lng <= o.lng + ); + }, + intersects: function (t) { + t = g(t); + var e = this._southWest, + i = this._northEast, + n = t.getSouthWest(), + t = t.getNorthEast(), + o = t.lat >= e.lat && n.lat <= i.lat, + t = t.lng >= e.lng && n.lng <= i.lng; + return o && t; + }, + overlaps: function (t) { + t = g(t); + var e = this._southWest, + i = this._northEast, + n = t.getSouthWest(), + t = t.getNorthEast(), + o = t.lat > e.lat && n.lat < i.lat, + t = t.lng > e.lng && n.lng < i.lng; + return o && t; + }, + toBBoxString: function () { + return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(','); + }, + equals: function (t, e) { + return ( + !!t && + ((t = g(t)), + this._southWest.equals(t.getSouthWest(), e) && this._northEast.equals(t.getNorthEast(), e)) + ); + }, + isValid: function () { + return !(!this._southWest || !this._northEast); + }, + }); + var ot = { + latLngToPoint: function (t, e) { + (t = this.projection.project(t)), (e = this.scale(e)); + return this.transformation._transform(t, e); + }, + pointToLatLng: function (t, e) { + (e = this.scale(e)), (t = this.transformation.untransform(t, e)); + return this.projection.unproject(t); + }, + project: function (t) { + return this.projection.project(t); + }, + unproject: function (t) { + return this.projection.unproject(t); + }, + scale: function (t) { + return 256 * Math.pow(2, t); + }, + zoom: function (t) { + return Math.log(t / 256) / Math.LN2; + }, + getProjectedBounds: function (t) { + var e; + return this.infinite + ? null + : ((e = this.projection.bounds), + (t = this.scale(t)), + new f(this.transformation.transform(e.min, t), this.transformation.transform(e.max, t))); + }, + infinite: !(v.prototype = { + equals: function (t, e) { + return ( + !!t && + ((t = w(t)), + Math.max(Math.abs(this.lat - t.lat), Math.abs(this.lng - t.lng)) <= (void 0 === e ? 1e-9 : e)) + ); + }, + toString: function (t) { + return 'LatLng(' + i(this.lat, t) + ', ' + i(this.lng, t) + ')'; + }, + distanceTo: function (t) { + return st.distance(this, w(t)); + }, + wrap: function () { + return st.wrapLatLng(this); + }, + toBounds: function (t) { + var t = (180 * t) / 40075017, + e = t / Math.cos((Math.PI / 180) * this.lat); + return g([this.lat - t, this.lng - e], [this.lat + t, this.lng + e]); + }, + clone: function () { + return new v(this.lat, this.lng, this.alt); + }, + }), + wrapLatLng: function (t) { + var e = this.wrapLng ? H(t.lng, this.wrapLng, !0) : t.lng; + return new v(this.wrapLat ? H(t.lat, this.wrapLat, !0) : t.lat, e, t.alt); + }, + wrapLatLngBounds: function (t) { + var e = t.getCenter(), + i = this.wrapLatLng(e), + n = e.lat - i.lat, + e = e.lng - i.lng; + return 0 == n && 0 == e + ? t + : ((i = t.getSouthWest()), + (t = t.getNorthEast()), + new s(new v(i.lat - n, i.lng - e), new v(t.lat - n, t.lng - e))); + }, + }, + st = l({}, ot, { + wrapLng: [-180, 180], + R: 6371e3, + distance: function (t, e) { + var i = Math.PI / 180, + n = t.lat * i, + o = e.lat * i, + s = Math.sin(((e.lat - t.lat) * i) / 2), + e = Math.sin(((e.lng - t.lng) * i) / 2), + t = s * s + Math.cos(n) * Math.cos(o) * e * e, + i = 2 * Math.atan2(Math.sqrt(t), Math.sqrt(1 - t)); + return this.R * i; + }, + }), + rt = 6378137, + rt = { + R: rt, + MAX_LATITUDE: 85.0511287798, + project: function (t) { + var e = Math.PI / 180, + i = this.MAX_LATITUDE, + i = Math.max(Math.min(i, t.lat), -i), + i = Math.sin(i * e); + return new p(this.R * t.lng * e, (this.R * Math.log((1 + i) / (1 - i))) / 2); + }, + unproject: function (t) { + var e = 180 / Math.PI; + return new v((2 * Math.atan(Math.exp(t.y / this.R)) - Math.PI / 2) * e, (t.x * e) / this.R); + }, + bounds: new f([-(rt = rt * Math.PI), -rt], [rt, rt]), + }; + function at(t, e, i, n) { + d(t) + ? ((this._a = t[0]), (this._b = t[1]), (this._c = t[2]), (this._d = t[3])) + : ((this._a = t), (this._b = e), (this._c = i), (this._d = n)); + } + function ht(t, e, i, n) { + return new at(t, e, i, n); + } + at.prototype = { + transform: function (t, e) { + return this._transform(t.clone(), e); + }, + _transform: function (t, e) { + return (t.x = (e = e || 1) * (this._a * t.x + this._b)), (t.y = e * (this._c * t.y + this._d)), t; + }, + untransform: function (t, e) { + return new p((t.x / (e = e || 1) - this._b) / this._a, (t.y / e - this._d) / this._c); + }, + }; + var lt = l({}, st, { + code: 'EPSG:3857', + projection: rt, + transformation: ht((lt = 0.5 / (Math.PI * rt.R)), 0.5, -lt, 0.5), + }), + ut = l({}, lt, { code: 'EPSG:900913' }); + function ct(t) { + return document.createElementNS('http://www.w3.org/2000/svg', t); + } + function dt(t, e) { + for (var i, n, o, s, r = '', a = 0, h = t.length; a < h; a++) { + for (i = 0, n = (o = t[a]).length; i < n; i++) r += (i ? 'L' : 'M') + (s = o[i]).x + ' ' + s.y; + r += e ? (b.svg ? 'z' : 'x') : ''; + } + return r || 'M0 0'; + } + var _t = document.documentElement.style, + pt = 'ActiveXObject' in window, + mt = pt && !document.addEventListener, + n = 'msLaunchUri' in navigator && !('documentMode' in document), + ft = y('webkit'), + gt = y('android'), + vt = y('android 2') || y('android 3'), + yt = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10), + yt = gt && y('Google') && yt < 537 && !('AudioNode' in window), + xt = !!window.opera, + wt = !n && y('chrome'), + bt = y('gecko') && !ft && !xt && !pt, + Pt = !wt && y('safari'), + Lt = y('phantom'), + o = 'OTransition' in _t, + Tt = 0 === navigator.platform.indexOf('Win'), + Mt = pt && 'transition' in _t, + zt = 'WebKitCSSMatrix' in window && 'm11' in new window.WebKitCSSMatrix() && !vt, + _t = 'MozPerspective' in _t, + Ct = !window.L_DISABLE_3D && (Mt || zt || _t) && !o && !Lt, + Zt = 'undefined' != typeof orientation || y('mobile'), + St = Zt && ft, + Et = Zt && zt, + kt = !window.PointerEvent && window.MSPointerEvent, + Ot = !(!window.PointerEvent && !kt), + At = 'ontouchstart' in window || !!window.TouchEvent, + Bt = !window.L_NO_TOUCH && (At || Ot), + It = Zt && xt, + Rt = Zt && bt, + Nt = 1 < (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI), + Dt = (function () { + var t = !1; + try { + var e = Object.defineProperty({}, 'passive', { + get: function () { + t = !0; + }, + }); + window.addEventListener('testPassiveEventSupport', u, e), + window.removeEventListener('testPassiveEventSupport', u, e); + } catch (t) {} + return t; + })(), + jt = !!document.createElement('canvas').getContext, + Ht = !(!document.createElementNS || !ct('svg').createSVGRect), + Wt = + !!Ht && + (((Wt = document.createElement('div')).innerHTML = ''), + 'http://www.w3.org/2000/svg' === (Wt.firstChild && Wt.firstChild.namespaceURI)); + function y(t) { + return 0 <= navigator.userAgent.toLowerCase().indexOf(t); + } + var b = { + ie: pt, + ielt9: mt, + edge: n, + webkit: ft, + android: gt, + android23: vt, + androidStock: yt, + opera: xt, + chrome: wt, + gecko: bt, + safari: Pt, + phantom: Lt, + opera12: o, + win: Tt, + ie3d: Mt, + webkit3d: zt, + gecko3d: _t, + any3d: Ct, + mobile: Zt, + mobileWebkit: St, + mobileWebkit3d: Et, + msPointer: kt, + pointer: Ot, + touch: Bt, + touchNative: At, + mobileOpera: It, + mobileGecko: Rt, + retina: Nt, + passiveEvents: Dt, + canvas: jt, + svg: Ht, + vml: + !Ht && + (function () { + try { + var t = document.createElement('div'), + e = ((t.innerHTML = ''), t.firstChild); + return (e.style.behavior = 'url(#default#VML)'), e && 'object' == typeof e.adj; + } catch (t) { + return !1; + } + })(), + inlineSvg: Wt, + mac: 0 === navigator.platform.indexOf('Mac'), + linux: 0 === navigator.platform.indexOf('Linux'), + }, + Ft = b.msPointer ? 'MSPointerDown' : 'pointerdown', + Ut = b.msPointer ? 'MSPointerMove' : 'pointermove', + Vt = b.msPointer ? 'MSPointerUp' : 'pointerup', + qt = b.msPointer ? 'MSPointerCancel' : 'pointercancel', + Gt = { touchstart: Ft, touchmove: Ut, touchend: Vt, touchcancel: qt }, + Kt = { + touchstart: function (t, e) { + e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH && O(e); + ee(t, e); + }, + touchmove: ee, + touchend: ee, + touchcancel: ee, + }, + Yt = {}, + Xt = !1; + function Jt(t, e, i) { + return ( + 'touchstart' !== e || + Xt || + (document.addEventListener(Ft, $t, !0), + document.addEventListener(Ut, Qt, !0), + document.addEventListener(Vt, te, !0), + document.addEventListener(qt, te, !0), + (Xt = !0)), + Kt[e] + ? ((i = Kt[e].bind(this, i)), t.addEventListener(Gt[e], i, !1), i) + : (console.warn('wrong event specified:', e), u) + ); + } + function $t(t) { + Yt[t.pointerId] = t; + } + function Qt(t) { + Yt[t.pointerId] && (Yt[t.pointerId] = t); + } + function te(t) { + delete Yt[t.pointerId]; + } + function ee(t, e) { + if (e.pointerType !== (e.MSPOINTER_TYPE_MOUSE || 'mouse')) { + for (var i in ((e.touches = []), Yt)) e.touches.push(Yt[i]); + (e.changedTouches = [e]), t(e); + } + } + var ie = 200; + function ne(t, i) { + t.addEventListener('dblclick', i); + var n, + o = 0; + function e(t) { + var e; + 1 !== t.detail + ? (n = t.detail) + : 'mouse' === t.pointerType || + (t.sourceCapabilities && !t.sourceCapabilities.firesTouchEvents) || + ((e = Ne(t)).some(function (t) { + return t instanceof HTMLLabelElement && t.attributes.for; + }) && + !e.some(function (t) { + return t instanceof HTMLInputElement || t instanceof HTMLSelectElement; + })) || + ((e = Date.now()) - o <= ie + ? 2 === ++n && + i( + (function (t) { + var e, + i, + n = {}; + for (i in t) (e = t[i]), (n[i] = e && e.bind ? e.bind(t) : e); + return ( + ((t = n).type = 'dblclick'), + (n.detail = 2), + (n.isTrusted = !1), + (n._simulated = !0), + n + ); + })(t) + ) + : (n = 1), + (o = e)); + } + return t.addEventListener('click', e), { dblclick: i, simDblclick: e }; + } + var oe, + se, + re, + ae, + he, + le, + ue = we(['transform', 'webkitTransform', 'OTransform', 'MozTransform', 'msTransform']), + ce = we(['webkitTransition', 'transition', 'OTransition', 'MozTransition', 'msTransition']), + de = 'webkitTransition' === ce || 'OTransition' === ce ? ce + 'End' : 'transitionend'; + function _e(t) { + return 'string' == typeof t ? document.getElementById(t) : t; + } + function pe(t, e) { + var i = t.style[e] || (t.currentStyle && t.currentStyle[e]); + return 'auto' === + (i = + (i && 'auto' !== i) || !document.defaultView + ? i + : (t = document.defaultView.getComputedStyle(t, null)) + ? t[e] + : null) + ? null + : i; + } + function P(t, e, i) { + t = document.createElement(t); + return (t.className = e || ''), i && i.appendChild(t), t; + } + function T(t) { + var e = t.parentNode; + e && e.removeChild(t); + } + function me(t) { + for (; t.firstChild; ) t.removeChild(t.firstChild); + } + function fe(t) { + var e = t.parentNode; + e && e.lastChild !== t && e.appendChild(t); + } + function ge(t) { + var e = t.parentNode; + e && e.firstChild !== t && e.insertBefore(t, e.firstChild); + } + function ve(t, e) { + return void 0 !== t.classList + ? t.classList.contains(e) + : 0 < (t = xe(t)).length && new RegExp('(^|\\s)' + e + '(\\s|$)').test(t); + } + function M(t, e) { + var i; + if (void 0 !== t.classList) for (var n = F(e), o = 0, s = n.length; o < s; o++) t.classList.add(n[o]); + else ve(t, e) || ye(t, ((i = xe(t)) ? i + ' ' : '') + e); + } + function z(t, e) { + void 0 !== t.classList ? t.classList.remove(e) : ye(t, W((' ' + xe(t) + ' ').replace(' ' + e + ' ', ' '))); + } + function ye(t, e) { + void 0 === t.className.baseVal ? (t.className = e) : (t.className.baseVal = e); + } + function xe(t) { + return void 0 === (t = t.correspondingElement ? t.correspondingElement : t).className.baseVal + ? t.className + : t.className.baseVal; + } + function C(t, e) { + if ('opacity' in t.style) t.style.opacity = e; + else if ('filter' in t.style) { + var i = !1, + n = 'DXImageTransform.Microsoft.Alpha'; + try { + i = t.filters.item(n); + } catch (t) { + if (1 === e) return; + } + (e = Math.round(100 * e)), + i + ? ((i.Enabled = 100 !== e), (i.Opacity = e)) + : (t.style.filter += ' progid:' + n + '(opacity=' + e + ')'); + } + } + function we(t) { + for (var e = document.documentElement.style, i = 0; i < t.length; i++) if (t[i] in e) return t[i]; + return !1; + } + function be(t, e, i) { + e = e || new p(0, 0); + t.style[ue] = + (b.ie3d ? 'translate(' + e.x + 'px,' + e.y + 'px)' : 'translate3d(' + e.x + 'px,' + e.y + 'px,0)') + + (i ? ' scale(' + i + ')' : ''); + } + function Z(t, e) { + (t._leaflet_pos = e), b.any3d ? be(t, e) : ((t.style.left = e.x + 'px'), (t.style.top = e.y + 'px')); + } + function Pe(t) { + return t._leaflet_pos || new p(0, 0); + } + function Le() { + S(window, 'dragstart', O); + } + function Te() { + k(window, 'dragstart', O); + } + function Me(t) { + for (; -1 === t.tabIndex; ) t = t.parentNode; + t.style && + (ze(), (le = (he = t).style.outlineStyle), (t.style.outlineStyle = 'none'), S(window, 'keydown', ze)); + } + function ze() { + he && ((he.style.outlineStyle = le), (le = he = void 0), k(window, 'keydown', ze)); + } + function Ce(t) { + for (; !(((t = t.parentNode).offsetWidth && t.offsetHeight) || t === document.body); ); + return t; + } + function Ze(t) { + var e = t.getBoundingClientRect(); + return { x: e.width / t.offsetWidth || 1, y: e.height / t.offsetHeight || 1, boundingClientRect: e }; + } + ae = + 'onselectstart' in document + ? ((re = function () { + S(window, 'selectstart', O); + }), + function () { + k(window, 'selectstart', O); + }) + : ((se = we(['userSelect', 'WebkitUserSelect', 'OUserSelect', 'MozUserSelect', 'msUserSelect'])), + (re = function () { + var t; + se && ((t = document.documentElement.style), (oe = t[se]), (t[se] = 'none')); + }), + function () { + se && ((document.documentElement.style[se] = oe), (oe = void 0)); + }); + pt = { + __proto__: null, + TRANSFORM: ue, + TRANSITION: ce, + TRANSITION_END: de, + get: _e, + getStyle: pe, + create: P, + remove: T, + empty: me, + toFront: fe, + toBack: ge, + hasClass: ve, + addClass: M, + removeClass: z, + setClass: ye, + getClass: xe, + setOpacity: C, + testProp: we, + setTransform: be, + setPosition: Z, + getPosition: Pe, + get disableTextSelection() { + return re; + }, + get enableTextSelection() { + return ae; + }, + disableImageDrag: Le, + enableImageDrag: Te, + preventOutline: Me, + restoreOutline: ze, + getSizedParentNode: Ce, + getScale: Ze, + }; + function S(t, e, i, n) { + if (e && 'object' == typeof e) for (var o in e) ke(t, o, e[o], i); + else for (var s = 0, r = (e = F(e)).length; s < r; s++) ke(t, e[s], i, n); + return this; + } + var E = '_leaflet_events'; + function k(t, e, i, n) { + if (1 === arguments.length) Se(t), delete t[E]; + else if (e && 'object' == typeof e) for (var o in e) Oe(t, o, e[o], i); + else if (((e = F(e)), 2 === arguments.length)) + Se(t, function (t) { + return -1 !== G(e, t); + }); + else for (var s = 0, r = e.length; s < r; s++) Oe(t, e[s], i, n); + return this; + } + function Se(t, e) { + for (var i in t[E]) { + var n = i.split(/\d/)[0]; + (e && !e(n)) || Oe(t, n, null, null, i); + } + } + var Ee = { mouseenter: 'mouseover', mouseleave: 'mouseout', wheel: !('onwheel' in window) && 'mousewheel' }; + function ke(e, t, i, n) { + var o, + s, + r = t + h(i) + (n ? '_' + h(n) : ''); + (e[E] && e[E][r]) || + ((s = o = + function (t) { + return i.call(n || e, t || window.event); + }), + !b.touchNative && b.pointer && 0 === t.indexOf('touch') + ? (o = Jt(e, t, o)) + : b.touch && 'dblclick' === t + ? (o = ne(e, o)) + : 'addEventListener' in e + ? 'touchstart' === t || 'touchmove' === t || 'wheel' === t || 'mousewheel' === t + ? e.addEventListener(Ee[t] || t, o, !!b.passiveEvents && { passive: !1 }) + : 'mouseenter' === t || 'mouseleave' === t + ? e.addEventListener( + Ee[t], + (o = function (t) { + (t = t || window.event), We(e, t) && s(t); + }), + !1 + ) + : e.addEventListener(t, s, !1) + : e.attachEvent('on' + t, o), + (e[E] = e[E] || {}), + (e[E][r] = o)); + } + function Oe(t, e, i, n, o) { + o = o || e + h(i) + (n ? '_' + h(n) : ''); + var s, + r, + i = t[E] && t[E][o]; + i && + (!b.touchNative && b.pointer && 0 === e.indexOf('touch') + ? ((n = t), + (r = i), + Gt[(s = e)] ? n.removeEventListener(Gt[s], r, !1) : console.warn('wrong event specified:', s)) + : b.touch && 'dblclick' === e + ? ((n = i), + (r = t).removeEventListener('dblclick', n.dblclick), + r.removeEventListener('click', n.simDblclick)) + : 'removeEventListener' in t + ? t.removeEventListener(Ee[e] || e, i, !1) + : t.detachEvent('on' + e, i), + (t[E][o] = null)); + } + function Ae(t) { + return ( + t.stopPropagation + ? t.stopPropagation() + : t.originalEvent + ? (t.originalEvent._stopped = !0) + : (t.cancelBubble = !0), + this + ); + } + function Be(t) { + return ke(t, 'wheel', Ae), this; + } + function Ie(t) { + return S(t, 'mousedown touchstart dblclick contextmenu', Ae), (t._leaflet_disable_click = !0), this; + } + function O(t) { + return t.preventDefault ? t.preventDefault() : (t.returnValue = !1), this; + } + function Re(t) { + return O(t), Ae(t), this; + } + function Ne(t) { + if (t.composedPath) return t.composedPath(); + for (var e = [], i = t.target; i; ) e.push(i), (i = i.parentNode); + return e; + } + function De(t, e) { + var i, n; + return e + ? ((n = (i = Ze(e)).boundingClientRect), + new p((t.clientX - n.left) / i.x - e.clientLeft, (t.clientY - n.top) / i.y - e.clientTop)) + : new p(t.clientX, t.clientY); + } + var je = + b.linux && b.chrome + ? window.devicePixelRatio + : b.mac + ? 3 * window.devicePixelRatio + : 0 < window.devicePixelRatio + ? 2 * window.devicePixelRatio + : 1; + function He(t) { + return b.edge + ? t.wheelDeltaY / 2 + : t.deltaY && 0 === t.deltaMode + ? -t.deltaY / je + : t.deltaY && 1 === t.deltaMode + ? 20 * -t.deltaY + : t.deltaY && 2 === t.deltaMode + ? 60 * -t.deltaY + : t.deltaX || t.deltaZ + ? 0 + : t.wheelDelta + ? (t.wheelDeltaY || t.wheelDelta) / 2 + : t.detail && Math.abs(t.detail) < 32765 + ? 20 * -t.detail + : t.detail + ? (t.detail / -32765) * 60 + : 0; + } + function We(t, e) { + var i = e.relatedTarget; + if (!i) return !0; + try { + for (; i && i !== t; ) i = i.parentNode; + } catch (t) { + return !1; + } + return i !== t; + } + var mt = { + __proto__: null, + on: S, + off: k, + stopPropagation: Ae, + disableScrollPropagation: Be, + disableClickPropagation: Ie, + preventDefault: O, + stop: Re, + getPropagationPath: Ne, + getMousePosition: De, + getWheelDelta: He, + isExternalTarget: We, + addListener: S, + removeListener: k, + }, + Fe = it.extend({ + run: function (t, e, i, n) { + this.stop(), + (this._el = t), + (this._inProgress = !0), + (this._duration = i || 0.25), + (this._easeOutPower = 1 / Math.max(n || 0.5, 0.2)), + (this._startPos = Pe(t)), + (this._offset = e.subtract(this._startPos)), + (this._startTime = +new Date()), + this.fire('start'), + this._animate(); + }, + stop: function () { + this._inProgress && (this._step(!0), this._complete()); + }, + _animate: function () { + (this._animId = x(this._animate, this)), this._step(); + }, + _step: function (t) { + var e = +new Date() - this._startTime, + i = 1e3 * this._duration; + e < i ? this._runFrame(this._easeOut(e / i), t) : (this._runFrame(1), this._complete()); + }, + _runFrame: function (t, e) { + t = this._startPos.add(this._offset.multiplyBy(t)); + e && t._round(), Z(this._el, t), this.fire('step'); + }, + _complete: function () { + r(this._animId), (this._inProgress = !1), this.fire('end'); + }, + _easeOut: function (t) { + return 1 - Math.pow(1 - t, this._easeOutPower); + }, + }), + A = it.extend({ + options: { + crs: lt, + center: void 0, + zoom: void 0, + minZoom: void 0, + maxZoom: void 0, + layers: [], + maxBounds: void 0, + renderer: void 0, + zoomAnimation: !0, + zoomAnimationThreshold: 4, + fadeAnimation: !0, + markerZoomAnimation: !0, + transform3DLimit: 8388608, + zoomSnap: 1, + zoomDelta: 1, + trackResize: !0, + }, + initialize: function (t, e) { + (e = c(this, e)), + (this._handlers = []), + (this._layers = {}), + (this._zoomBoundLayers = {}), + (this._sizeChanged = !0), + this._initContainer(t), + this._initLayout(), + (this._onResize = a(this._onResize, this)), + this._initEvents(), + e.maxBounds && this.setMaxBounds(e.maxBounds), + void 0 !== e.zoom && (this._zoom = this._limitZoom(e.zoom)), + e.center && void 0 !== e.zoom && this.setView(w(e.center), e.zoom, { reset: !0 }), + this.callInitHooks(), + (this._zoomAnimated = ce && b.any3d && !b.mobileOpera && this.options.zoomAnimation), + this._zoomAnimated && (this._createAnimProxy(), S(this._proxy, de, this._catchTransitionEnd, this)), + this._addLayers(this.options.layers); + }, + setView: function (t, e, i) { + if ( + ((e = void 0 === e ? this._zoom : this._limitZoom(e)), + (t = this._limitCenter(w(t), e, this.options.maxBounds)), + (i = i || {}), + this._stop(), + this._loaded && !i.reset && !0 !== i) && + (void 0 !== i.animate && + ((i.zoom = l({ animate: i.animate }, i.zoom)), + (i.pan = l({ animate: i.animate, duration: i.duration }, i.pan))), + this._zoom !== e + ? this._tryAnimatedZoom && this._tryAnimatedZoom(t, e, i.zoom) + : this._tryAnimatedPan(t, i.pan)) + ) + return clearTimeout(this._sizeTimer), this; + return this._resetView(t, e, i.pan && i.pan.noMoveStart), this; + }, + setZoom: function (t, e) { + return this._loaded ? this.setView(this.getCenter(), t, { zoom: e }) : ((this._zoom = t), this); + }, + zoomIn: function (t, e) { + return (t = t || (b.any3d ? this.options.zoomDelta : 1)), this.setZoom(this._zoom + t, e); + }, + zoomOut: function (t, e) { + return (t = t || (b.any3d ? this.options.zoomDelta : 1)), this.setZoom(this._zoom - t, e); + }, + setZoomAround: function (t, e, i) { + var n = this.getZoomScale(e), + o = this.getSize().divideBy(2), + t = (t instanceof p ? t : this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1 - 1 / n), + n = this.containerPointToLatLng(o.add(t)); + return this.setView(n, e, { zoom: i }); + }, + _getBoundsCenterZoom: function (t, e) { + (e = e || {}), (t = t.getBounds ? t.getBounds() : g(t)); + var i = m(e.paddingTopLeft || e.padding || [0, 0]), + n = m(e.paddingBottomRight || e.padding || [0, 0]), + o = this.getBoundsZoom(t, !1, i.add(n)); + return (o = 'number' == typeof e.maxZoom ? Math.min(e.maxZoom, o) : o) === 1 / 0 + ? { center: t.getCenter(), zoom: o } + : ((e = n.subtract(i).divideBy(2)), + (n = this.project(t.getSouthWest(), o)), + (i = this.project(t.getNorthEast(), o)), + { center: this.unproject(n.add(i).divideBy(2).add(e), o), zoom: o }); + }, + fitBounds: function (t, e) { + if ((t = g(t)).isValid()) + return (t = this._getBoundsCenterZoom(t, e)), this.setView(t.center, t.zoom, e); + throw new Error('Bounds are not valid.'); + }, + fitWorld: function (t) { + return this.fitBounds( + [ + [-90, -180], + [90, 180], + ], + t + ); + }, + panTo: function (t, e) { + return this.setView(t, this._zoom, { pan: e }); + }, + panBy: function (t, e) { + var i; + return ( + (e = e || {}), + (t = m(t).round()).x || t.y + ? (!0 === e.animate || this.getSize().contains(t) + ? (this._panAnim || + ((this._panAnim = new Fe()), + this._panAnim.on( + { step: this._onPanTransitionStep, end: this._onPanTransitionEnd }, + this + )), + e.noMoveStart || this.fire('movestart'), + !1 !== e.animate + ? (M(this._mapPane, 'leaflet-pan-anim'), + (i = this._getMapPanePos().subtract(t).round()), + this._panAnim.run(this._mapPane, i, e.duration || 0.25, e.easeLinearity)) + : (this._rawPanBy(t), this.fire('move').fire('moveend'))) + : this._resetView( + this.unproject(this.project(this.getCenter()).add(t)), + this.getZoom() + ), + this) + : this.fire('moveend') + ); + }, + flyTo: function (n, o, t) { + if (!1 === (t = t || {}).animate || !b.any3d) return this.setView(n, o, t); + this._stop(); + var s = this.project(this.getCenter()), + r = this.project(n), + e = this.getSize(), + a = this._zoom, + h = ((n = w(n)), (o = void 0 === o ? a : o), Math.max(e.x, e.y)), + i = h * this.getZoomScale(a, o), + l = r.distanceTo(s) || 1, + u = 1.42, + c = u * u; + function d(t) { + (t = (i * i - h * h + (t ? -1 : 1) * c * c * l * l) / (2 * (t ? i : h) * c * l)), + (t = Math.sqrt(t * t + 1) - t); + return t < 1e-9 ? -18 : Math.log(t); + } + function _(t) { + return (Math.exp(t) - Math.exp(-t)) / 2; + } + function p(t) { + return (Math.exp(t) + Math.exp(-t)) / 2; + } + var m = d(0); + function f(t) { + return (h * (p(m) * (_((t = m + u * t)) / p(t)) - _(m))) / c; + } + var g = Date.now(), + v = (d(1) - m) / u, + y = t.duration ? 1e3 * t.duration : 1e3 * v * 0.8; + return ( + this._moveStart(!0, t.noMoveStart), + function t() { + var e = (Date.now() - g) / y, + i = (1 - Math.pow(1 - e, 1.5)) * v; + e <= 1 + ? ((this._flyToFrame = x(t, this)), + this._move( + this.unproject(s.add(r.subtract(s).multiplyBy(f(i) / l)), a), + this.getScaleZoom(h / ((e = i), h * (p(m) / p(m + u * e))), a), + { flyTo: !0 } + )) + : this._move(n, o)._moveEnd(!0); + }.call(this), + this + ); + }, + flyToBounds: function (t, e) { + t = this._getBoundsCenterZoom(t, e); + return this.flyTo(t.center, t.zoom, e); + }, + setMaxBounds: function (t) { + return ( + (t = g(t)), + this.listens('moveend', this._panInsideMaxBounds) && this.off('moveend', this._panInsideMaxBounds), + t.isValid() + ? ((this.options.maxBounds = t), + this._loaded && this._panInsideMaxBounds(), + this.on('moveend', this._panInsideMaxBounds)) + : ((this.options.maxBounds = null), this) + ); + }, + setMinZoom: function (t) { + var e = this.options.minZoom; + return ( + (this.options.minZoom = t), + this._loaded && e !== t && (this.fire('zoomlevelschange'), this.getZoom() < this.options.minZoom) + ? this.setZoom(t) + : this + ); + }, + setMaxZoom: function (t) { + var e = this.options.maxZoom; + return ( + (this.options.maxZoom = t), + this._loaded && e !== t && (this.fire('zoomlevelschange'), this.getZoom() > this.options.maxZoom) + ? this.setZoom(t) + : this + ); + }, + panInsideBounds: function (t, e) { + this._enforcingBounds = !0; + var i = this.getCenter(), + t = this._limitCenter(i, this._zoom, g(t)); + return i.equals(t) || this.panTo(t, e), (this._enforcingBounds = !1), this; + }, + panInside: function (t, e) { + var i = m((e = e || {}).paddingTopLeft || e.padding || [0, 0]), + n = m(e.paddingBottomRight || e.padding || [0, 0]), + o = this.project(this.getCenter()), + t = this.project(t), + s = this.getPixelBounds(), + i = _([s.min.add(i), s.max.subtract(n)]), + s = i.getSize(); + return ( + i.contains(t) || + ((this._enforcingBounds = !0), + (n = t.subtract(i.getCenter())), + (i = i.extend(t).getSize().subtract(s)), + (o.x += n.x < 0 ? -i.x : i.x), + (o.y += n.y < 0 ? -i.y : i.y), + this.panTo(this.unproject(o), e), + (this._enforcingBounds = !1)), + this + ); + }, + invalidateSize: function (t) { + if (!this._loaded) return this; + t = l({ animate: !1, pan: !0 }, !0 === t ? { animate: !0 } : t); + var e = this.getSize(), + i = ((this._sizeChanged = !0), (this._lastCenter = null), this.getSize()), + n = e.divideBy(2).round(), + o = i.divideBy(2).round(), + n = n.subtract(o); + return n.x || n.y + ? (t.animate && t.pan + ? this.panBy(n) + : (t.pan && this._rawPanBy(n), + this.fire('move'), + t.debounceMoveend + ? (clearTimeout(this._sizeTimer), + (this._sizeTimer = setTimeout(a(this.fire, this, 'moveend'), 200))) + : this.fire('moveend')), + this.fire('resize', { oldSize: e, newSize: i })) + : this; + }, + stop: function () { + return ( + this.setZoom(this._limitZoom(this._zoom)), + this.options.zoomSnap || this.fire('viewreset'), + this._stop() + ); + }, + locate: function (t) { + var e, i; + return ( + (t = this._locateOptions = l({ timeout: 1e4, watch: !1 }, t)), + 'geolocation' in navigator + ? ((e = a(this._handleGeolocationResponse, this)), + (i = a(this._handleGeolocationError, this)), + t.watch + ? (this._locationWatchId = navigator.geolocation.watchPosition(e, i, t)) + : navigator.geolocation.getCurrentPosition(e, i, t)) + : this._handleGeolocationError({ code: 0, message: 'Geolocation not supported.' }), + this + ); + }, + stopLocate: function () { + return ( + navigator.geolocation && + navigator.geolocation.clearWatch && + navigator.geolocation.clearWatch(this._locationWatchId), + this._locateOptions && (this._locateOptions.setView = !1), + this + ); + }, + _handleGeolocationError: function (t) { + var e; + this._container._leaflet_id && + ((e = t.code), + (t = t.message || (1 === e ? 'permission denied' : 2 === e ? 'position unavailable' : 'timeout')), + this._locateOptions.setView && !this._loaded && this.fitWorld(), + this.fire('locationerror', { code: e, message: 'Geolocation error: ' + t + '.' })); + }, + _handleGeolocationResponse: function (t) { + if (this._container._leaflet_id) { + var e, + i, + n = new v(t.coords.latitude, t.coords.longitude), + o = n.toBounds(2 * t.coords.accuracy), + s = this._locateOptions, + r = + (s.setView && + ((e = this.getBoundsZoom(o)), this.setView(n, s.maxZoom ? Math.min(e, s.maxZoom) : e)), + { latlng: n, bounds: o, timestamp: t.timestamp }); + for (i in t.coords) 'number' == typeof t.coords[i] && (r[i] = t.coords[i]); + this.fire('locationfound', r); + } + }, + addHandler: function (t, e) { + return e && ((e = this[t] = new e(this)), this._handlers.push(e), this.options[t] && e.enable()), this; + }, + remove: function () { + if ( + (this._initEvents(!0), + this.options.maxBounds && this.off('moveend', this._panInsideMaxBounds), + this._containerId !== this._container._leaflet_id) + ) + throw new Error('Map container is being reused by another instance'); + try { + delete this._container._leaflet_id, delete this._containerId; + } catch (t) { + (this._container._leaflet_id = void 0), (this._containerId = void 0); + } + for (var t in (void 0 !== this._locationWatchId && this.stopLocate(), + this._stop(), + T(this._mapPane), + this._clearControlPos && this._clearControlPos(), + this._resizeRequest && (r(this._resizeRequest), (this._resizeRequest = null)), + this._clearHandlers(), + this._loaded && this.fire('unload'), + this._layers)) + this._layers[t].remove(); + for (t in this._panes) T(this._panes[t]); + return (this._layers = []), (this._panes = []), delete this._mapPane, delete this._renderer, this; + }, + createPane: function (t, e) { + e = P( + 'div', + 'leaflet-pane' + (t ? ' leaflet-' + t.replace('Pane', '') + '-pane' : ''), + e || this._mapPane + ); + return t && (this._panes[t] = e), e; + }, + getCenter: function () { + return ( + this._checkIfLoaded(), + this._lastCenter && !this._moved() + ? this._lastCenter.clone() + : this.layerPointToLatLng(this._getCenterLayerPoint()) + ); + }, + getZoom: function () { + return this._zoom; + }, + getBounds: function () { + var t = this.getPixelBounds(); + return new s(this.unproject(t.getBottomLeft()), this.unproject(t.getTopRight())); + }, + getMinZoom: function () { + return void 0 === this.options.minZoom ? this._layersMinZoom || 0 : this.options.minZoom; + }, + getMaxZoom: function () { + return void 0 === this.options.maxZoom + ? void 0 === this._layersMaxZoom + ? 1 / 0 + : this._layersMaxZoom + : this.options.maxZoom; + }, + getBoundsZoom: function (t, e, i) { + (t = g(t)), (i = m(i || [0, 0])); + var n = this.getZoom() || 0, + o = this.getMinZoom(), + s = this.getMaxZoom(), + r = t.getNorthWest(), + t = t.getSouthEast(), + i = this.getSize().subtract(i), + t = _(this.project(t, n), this.project(r, n)).getSize(), + r = b.any3d ? this.options.zoomSnap : 1, + a = i.x / t.x, + i = i.y / t.y, + t = e ? Math.max(a, i) : Math.min(a, i), + n = this.getScaleZoom(t, n); + return ( + r && + ((n = Math.round(n / (r / 100)) * (r / 100)), + (n = e ? Math.ceil(n / r) * r : Math.floor(n / r) * r)), + Math.max(o, Math.min(s, n)) + ); + }, + getSize: function () { + return ( + (this._size && !this._sizeChanged) || + ((this._size = new p(this._container.clientWidth || 0, this._container.clientHeight || 0)), + (this._sizeChanged = !1)), + this._size.clone() + ); + }, + getPixelBounds: function (t, e) { + t = this._getTopLeftPoint(t, e); + return new f(t, t.add(this.getSize())); + }, + getPixelOrigin: function () { + return this._checkIfLoaded(), this._pixelOrigin; + }, + getPixelWorldBounds: function (t) { + return this.options.crs.getProjectedBounds(void 0 === t ? this.getZoom() : t); + }, + getPane: function (t) { + return 'string' == typeof t ? this._panes[t] : t; + }, + getPanes: function () { + return this._panes; + }, + getContainer: function () { + return this._container; + }, + getZoomScale: function (t, e) { + var i = this.options.crs; + return (e = void 0 === e ? this._zoom : e), i.scale(t) / i.scale(e); + }, + getScaleZoom: function (t, e) { + var i = this.options.crs, + t = ((e = void 0 === e ? this._zoom : e), i.zoom(t * i.scale(e))); + return isNaN(t) ? 1 / 0 : t; + }, + project: function (t, e) { + return (e = void 0 === e ? this._zoom : e), this.options.crs.latLngToPoint(w(t), e); + }, + unproject: function (t, e) { + return (e = void 0 === e ? this._zoom : e), this.options.crs.pointToLatLng(m(t), e); + }, + layerPointToLatLng: function (t) { + t = m(t).add(this.getPixelOrigin()); + return this.unproject(t); + }, + latLngToLayerPoint: function (t) { + return this.project(w(t))._round()._subtract(this.getPixelOrigin()); + }, + wrapLatLng: function (t) { + return this.options.crs.wrapLatLng(w(t)); + }, + wrapLatLngBounds: function (t) { + return this.options.crs.wrapLatLngBounds(g(t)); + }, + distance: function (t, e) { + return this.options.crs.distance(w(t), w(e)); + }, + containerPointToLayerPoint: function (t) { + return m(t).subtract(this._getMapPanePos()); + }, + layerPointToContainerPoint: function (t) { + return m(t).add(this._getMapPanePos()); + }, + containerPointToLatLng: function (t) { + t = this.containerPointToLayerPoint(m(t)); + return this.layerPointToLatLng(t); + }, + latLngToContainerPoint: function (t) { + return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t))); + }, + mouseEventToContainerPoint: function (t) { + return De(t, this._container); + }, + mouseEventToLayerPoint: function (t) { + return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t)); + }, + mouseEventToLatLng: function (t) { + return this.layerPointToLatLng(this.mouseEventToLayerPoint(t)); + }, + _initContainer: function (t) { + t = this._container = _e(t); + if (!t) throw new Error('Map container not found.'); + if (t._leaflet_id) throw new Error('Map container is already initialized.'); + S(t, 'scroll', this._onScroll, this), (this._containerId = h(t)); + }, + _initLayout: function () { + var t = this._container, + e = + ((this._fadeAnimated = this.options.fadeAnimation && b.any3d), + M( + t, + 'leaflet-container' + + (b.touch ? ' leaflet-touch' : '') + + (b.retina ? ' leaflet-retina' : '') + + (b.ielt9 ? ' leaflet-oldie' : '') + + (b.safari ? ' leaflet-safari' : '') + + (this._fadeAnimated ? ' leaflet-fade-anim' : '') + ), + pe(t, 'position')); + 'absolute' !== e && + 'relative' !== e && + 'fixed' !== e && + 'sticky' !== e && + (t.style.position = 'relative'), + this._initPanes(), + this._initControlPos && this._initControlPos(); + }, + _initPanes: function () { + var t = (this._panes = {}); + (this._paneRenderers = {}), + (this._mapPane = this.createPane('mapPane', this._container)), + Z(this._mapPane, new p(0, 0)), + this.createPane('tilePane'), + this.createPane('overlayPane'), + this.createPane('shadowPane'), + this.createPane('markerPane'), + this.createPane('tooltipPane'), + this.createPane('popupPane'), + this.options.markerZoomAnimation || + (M(t.markerPane, 'leaflet-zoom-hide'), M(t.shadowPane, 'leaflet-zoom-hide')); + }, + _resetView: function (t, e, i) { + Z(this._mapPane, new p(0, 0)); + var n = !this._loaded, + o = ((this._loaded = !0), (e = this._limitZoom(e)), this.fire('viewprereset'), this._zoom !== e); + this._moveStart(o, i)._move(t, e)._moveEnd(o), this.fire('viewreset'), n && this.fire('load'); + }, + _moveStart: function (t, e) { + return t && this.fire('zoomstart'), e || this.fire('movestart'), this; + }, + _move: function (t, e, i, n) { + void 0 === e && (e = this._zoom); + var o = this._zoom !== e; + return ( + (this._zoom = e), + (this._lastCenter = t), + (this._pixelOrigin = this._getNewPixelOrigin(t)), + n + ? i && i.pinch && this.fire('zoom', i) + : ((o || (i && i.pinch)) && this.fire('zoom', i), this.fire('move', i)), + this + ); + }, + _moveEnd: function (t) { + return t && this.fire('zoomend'), this.fire('moveend'); + }, + _stop: function () { + return r(this._flyToFrame), this._panAnim && this._panAnim.stop(), this; + }, + _rawPanBy: function (t) { + Z(this._mapPane, this._getMapPanePos().subtract(t)); + }, + _getZoomSpan: function () { + return this.getMaxZoom() - this.getMinZoom(); + }, + _panInsideMaxBounds: function () { + this._enforcingBounds || this.panInsideBounds(this.options.maxBounds); + }, + _checkIfLoaded: function () { + if (!this._loaded) throw new Error('Set map center and zoom first.'); + }, + _initEvents: function (t) { + this._targets = {}; + var e = t ? k : S; + e( + (this._targets[h(this._container)] = this)._container, + 'click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup', + this._handleDOMEvent, + this + ), + this.options.trackResize && e(window, 'resize', this._onResize, this), + b.any3d && + this.options.transform3DLimit && + (t ? this.off : this.on).call(this, 'moveend', this._onMoveEnd); + }, + _onResize: function () { + r(this._resizeRequest), + (this._resizeRequest = x(function () { + this.invalidateSize({ debounceMoveend: !0 }); + }, this)); + }, + _onScroll: function () { + (this._container.scrollTop = 0), (this._container.scrollLeft = 0); + }, + _onMoveEnd: function () { + var t = this._getMapPanePos(); + Math.max(Math.abs(t.x), Math.abs(t.y)) >= this.options.transform3DLimit && + this._resetView(this.getCenter(), this.getZoom()); + }, + _findEventTargets: function (t, e) { + for ( + var i, n = [], o = 'mouseout' === e || 'mouseover' === e, s = t.target || t.srcElement, r = !1; + s; + + ) { + if ((i = this._targets[h(s)]) && ('click' === e || 'preclick' === e) && this._draggableMoved(i)) { + r = !0; + break; + } + if (i && i.listens(e, !0)) { + if (o && !We(s, t)) break; + if ((n.push(i), o)) break; + } + if (s === this._container) break; + s = s.parentNode; + } + return (n = n.length || r || o || !this.listens(e, !0) ? n : [this]); + }, + _isClickDisabled: function (t) { + for (; t && t !== this._container; ) { + if (t._leaflet_disable_click) return !0; + t = t.parentNode; + } + }, + _handleDOMEvent: function (t) { + var e, + i = t.target || t.srcElement; + !this._loaded || + i._leaflet_disable_events || + ('click' === t.type && this._isClickDisabled(i)) || + ('mousedown' === (e = t.type) && Me(i), this._fireDOMEvent(t, e)); + }, + _mouseEvents: ['click', 'dblclick', 'mouseover', 'mouseout', 'contextmenu'], + _fireDOMEvent: function (t, e, i) { + 'click' === t.type && (((a = l({}, t)).type = 'preclick'), this._fireDOMEvent(a, a.type, i)); + var n = this._findEventTargets(t, e); + if (i) { + for (var o = [], s = 0; s < i.length; s++) i[s].listens(e, !0) && o.push(i[s]); + n = o.concat(n); + } + if (n.length) { + 'contextmenu' === e && O(t); + var r, + a = n[0], + h = { originalEvent: t }; + for ( + 'keypress' !== t.type && + 'keydown' !== t.type && + 'keyup' !== t.type && + ((r = a.getLatLng && (!a._radius || a._radius <= 10)), + (h.containerPoint = r + ? this.latLngToContainerPoint(a.getLatLng()) + : this.mouseEventToContainerPoint(t)), + (h.layerPoint = this.containerPointToLayerPoint(h.containerPoint)), + (h.latlng = r ? a.getLatLng() : this.layerPointToLatLng(h.layerPoint))), + s = 0; + s < n.length; + s++ + ) + if ( + (n[s].fire(e, h, !0), + h.originalEvent._stopped || + (!1 === n[s].options.bubblingMouseEvents && -1 !== G(this._mouseEvents, e))) + ) + return; + } + }, + _draggableMoved: function (t) { + return ( + ((t = t.dragging && t.dragging.enabled() ? t : this).dragging && t.dragging.moved()) || + (this.boxZoom && this.boxZoom.moved()) + ); + }, + _clearHandlers: function () { + for (var t = 0, e = this._handlers.length; t < e; t++) this._handlers[t].disable(); + }, + whenReady: function (t, e) { + return this._loaded ? t.call(e || this, { target: this }) : this.on('load', t, e), this; + }, + _getMapPanePos: function () { + return Pe(this._mapPane) || new p(0, 0); + }, + _moved: function () { + var t = this._getMapPanePos(); + return t && !t.equals([0, 0]); + }, + _getTopLeftPoint: function (t, e) { + return (t && void 0 !== e ? this._getNewPixelOrigin(t, e) : this.getPixelOrigin()).subtract( + this._getMapPanePos() + ); + }, + _getNewPixelOrigin: function (t, e) { + var i = this.getSize()._divideBy(2); + return this.project(t, e)._subtract(i)._add(this._getMapPanePos())._round(); + }, + _latLngToNewLayerPoint: function (t, e, i) { + i = this._getNewPixelOrigin(i, e); + return this.project(t, e)._subtract(i); + }, + _latLngBoundsToNewLayerBounds: function (t, e, i) { + i = this._getNewPixelOrigin(i, e); + return _([ + this.project(t.getSouthWest(), e)._subtract(i), + this.project(t.getNorthWest(), e)._subtract(i), + this.project(t.getSouthEast(), e)._subtract(i), + this.project(t.getNorthEast(), e)._subtract(i), + ]); + }, + _getCenterLayerPoint: function () { + return this.containerPointToLayerPoint(this.getSize()._divideBy(2)); + }, + _getCenterOffset: function (t) { + return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint()); + }, + _limitCenter: function (t, e, i) { + var n, o; + return !i || + ((n = this.project(t, e)), + (o = this.getSize().divideBy(2)), + (o = new f(n.subtract(o), n.add(o))), + (o = this._getBoundsOffset(o, i, e)), + Math.abs(o.x) <= 1 && Math.abs(o.y) <= 1) + ? t + : this.unproject(n.add(o), e); + }, + _limitOffset: function (t, e) { + var i; + return e + ? ((i = new f((i = this.getPixelBounds()).min.add(t), i.max.add(t))), + t.add(this._getBoundsOffset(i, e))) + : t; + }, + _getBoundsOffset: function (t, e, i) { + (e = _(this.project(e.getNorthEast(), i), this.project(e.getSouthWest(), i))), + (i = e.min.subtract(t.min)), + (e = e.max.subtract(t.max)); + return new p(this._rebound(i.x, -e.x), this._rebound(i.y, -e.y)); + }, + _rebound: function (t, e) { + return 0 < t + e ? Math.round(t - e) / 2 : Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(e)); + }, + _limitZoom: function (t) { + var e = this.getMinZoom(), + i = this.getMaxZoom(), + n = b.any3d ? this.options.zoomSnap : 1; + return n && (t = Math.round(t / n) * n), Math.max(e, Math.min(i, t)); + }, + _onPanTransitionStep: function () { + this.fire('move'); + }, + _onPanTransitionEnd: function () { + z(this._mapPane, 'leaflet-pan-anim'), this.fire('moveend'); + }, + _tryAnimatedPan: function (t, e) { + t = this._getCenterOffset(t)._trunc(); + return !(!0 !== (e && e.animate) && !this.getSize().contains(t)) && (this.panBy(t, e), !0); + }, + _createAnimProxy: function () { + var t = (this._proxy = P('div', 'leaflet-proxy leaflet-zoom-animated')); + this._panes.mapPane.appendChild(t), + this.on( + 'zoomanim', + function (t) { + var e = ue, + i = this._proxy.style[e]; + be(this._proxy, this.project(t.center, t.zoom), this.getZoomScale(t.zoom, 1)), + i === this._proxy.style[e] && this._animatingZoom && this._onZoomTransitionEnd(); + }, + this + ), + this.on('load moveend', this._animMoveEnd, this), + this._on('unload', this._destroyAnimProxy, this); + }, + _destroyAnimProxy: function () { + T(this._proxy), this.off('load moveend', this._animMoveEnd, this), delete this._proxy; + }, + _animMoveEnd: function () { + var t = this.getCenter(), + e = this.getZoom(); + be(this._proxy, this.project(t, e), this.getZoomScale(e, 1)); + }, + _catchTransitionEnd: function (t) { + this._animatingZoom && 0 <= t.propertyName.indexOf('transform') && this._onZoomTransitionEnd(); + }, + _nothingToAnimate: function () { + return !this._container.getElementsByClassName('leaflet-zoom-animated').length; + }, + _tryAnimatedZoom: function (t, e, i) { + if (!this._animatingZoom) { + if ( + ((i = i || {}), + !this._zoomAnimated || + !1 === i.animate || + this._nothingToAnimate() || + Math.abs(e - this._zoom) > this.options.zoomAnimationThreshold) + ) + return !1; + var n = this.getZoomScale(e), + n = this._getCenterOffset(t)._divideBy(1 - 1 / n); + if (!0 !== i.animate && !this.getSize().contains(n)) return !1; + x(function () { + this._moveStart(!0, i.noMoveStart || !1)._animateZoom(t, e, !0); + }, this); + } + return !0; + }, + _animateZoom: function (t, e, i, n) { + this._mapPane && + (i && + ((this._animatingZoom = !0), + (this._animateToCenter = t), + (this._animateToZoom = e), + M(this._mapPane, 'leaflet-zoom-anim')), + this.fire('zoomanim', { center: t, zoom: e, noUpdate: n }), + this._tempFireZoomEvent || (this._tempFireZoomEvent = this._zoom !== this._animateToZoom), + this._move(this._animateToCenter, this._animateToZoom, void 0, !0), + setTimeout(a(this._onZoomTransitionEnd, this), 250)); + }, + _onZoomTransitionEnd: function () { + this._animatingZoom && + (this._mapPane && z(this._mapPane, 'leaflet-zoom-anim'), + (this._animatingZoom = !1), + this._move(this._animateToCenter, this._animateToZoom, void 0, !0), + this._tempFireZoomEvent && this.fire('zoom'), + delete this._tempFireZoomEvent, + this.fire('move'), + this._moveEnd(!0)); + }, + }); + function Ue(t) { + return new B(t); + } + var B = et.extend({ + options: { position: 'topright' }, + initialize: function (t) { + c(this, t); + }, + getPosition: function () { + return this.options.position; + }, + setPosition: function (t) { + var e = this._map; + return e && e.removeControl(this), (this.options.position = t), e && e.addControl(this), this; + }, + getContainer: function () { + return this._container; + }, + addTo: function (t) { + this.remove(), (this._map = t); + var e = (this._container = this.onAdd(t)), + i = this.getPosition(), + t = t._controlCorners[i]; + return ( + M(e, 'leaflet-control'), + -1 !== i.indexOf('bottom') ? t.insertBefore(e, t.firstChild) : t.appendChild(e), + this._map.on('unload', this.remove, this), + this + ); + }, + remove: function () { + return ( + this._map && + (T(this._container), + this.onRemove && this.onRemove(this._map), + this._map.off('unload', this.remove, this), + (this._map = null)), + this + ); + }, + _refocusOnMap: function (t) { + this._map && t && 0 < t.screenX && 0 < t.screenY && this._map.getContainer().focus(); + }, + }), + Ve = + (A.include({ + addControl: function (t) { + return t.addTo(this), this; + }, + removeControl: function (t) { + return t.remove(), this; + }, + _initControlPos: function () { + var i = (this._controlCorners = {}), + n = 'leaflet-', + o = (this._controlContainer = P('div', n + 'control-container', this._container)); + function t(t, e) { + i[t + e] = P('div', n + t + ' ' + n + e, o); + } + t('top', 'left'), t('top', 'right'), t('bottom', 'left'), t('bottom', 'right'); + }, + _clearControlPos: function () { + for (var t in this._controlCorners) T(this._controlCorners[t]); + T(this._controlContainer), delete this._controlCorners, delete this._controlContainer; + }, + }), + B.extend({ + options: { + collapsed: !0, + position: 'topright', + autoZIndex: !0, + hideSingleBase: !1, + sortLayers: !1, + sortFunction: function (t, e, i, n) { + return i < n ? -1 : n < i ? 1 : 0; + }, + }, + initialize: function (t, e, i) { + for (var n in (c(this, i), + (this._layerControlInputs = []), + (this._layers = []), + (this._lastZIndex = 0), + (this._handlingClick = !1), + (this._preventClick = !1), + t)) + this._addLayer(t[n], n); + for (n in e) this._addLayer(e[n], n, !0); + }, + onAdd: function (t) { + this._initLayout(), this._update(), (this._map = t).on('zoomend', this._checkDisabledLayers, this); + for (var e = 0; e < this._layers.length; e++) + this._layers[e].layer.on('add remove', this._onLayerChange, this); + return this._container; + }, + addTo: function (t) { + return B.prototype.addTo.call(this, t), this._expandIfNotCollapsed(); + }, + onRemove: function () { + this._map.off('zoomend', this._checkDisabledLayers, this); + for (var t = 0; t < this._layers.length; t++) + this._layers[t].layer.off('add remove', this._onLayerChange, this); + }, + addBaseLayer: function (t, e) { + return this._addLayer(t, e), this._map ? this._update() : this; + }, + addOverlay: function (t, e) { + return this._addLayer(t, e, !0), this._map ? this._update() : this; + }, + removeLayer: function (t) { + t.off('add remove', this._onLayerChange, this); + t = this._getLayer(h(t)); + return t && this._layers.splice(this._layers.indexOf(t), 1), this._map ? this._update() : this; + }, + expand: function () { + M(this._container, 'leaflet-control-layers-expanded'), (this._section.style.height = null); + var t = this._map.getSize().y - (this._container.offsetTop + 50); + return ( + t < this._section.clientHeight + ? (M(this._section, 'leaflet-control-layers-scrollbar'), + (this._section.style.height = t + 'px')) + : z(this._section, 'leaflet-control-layers-scrollbar'), + this._checkDisabledLayers(), + this + ); + }, + collapse: function () { + return z(this._container, 'leaflet-control-layers-expanded'), this; + }, + _initLayout: function () { + var t = 'leaflet-control-layers', + e = (this._container = P('div', t)), + i = this.options.collapsed, + n = + (e.setAttribute('aria-haspopup', !0), + Ie(e), + Be(e), + (this._section = P('section', t + '-list'))), + o = + (i && + (this._map.on('click', this.collapse, this), + S(e, { mouseenter: this._expandSafely, mouseleave: this.collapse }, this)), + (this._layersLink = P('a', t + '-toggle', e))); + (o.href = '#'), + (o.title = 'Layers'), + o.setAttribute('role', 'button'), + S( + o, + { + keydown: function (t) { + 13 === t.keyCode && this._expandSafely(); + }, + click: function (t) { + O(t), this._expandSafely(); + }, + }, + this + ), + i || this.expand(), + (this._baseLayersList = P('div', t + '-base', n)), + (this._separator = P('div', t + '-separator', n)), + (this._overlaysList = P('div', t + '-overlays', n)), + e.appendChild(n); + }, + _getLayer: function (t) { + for (var e = 0; e < this._layers.length; e++) + if (this._layers[e] && h(this._layers[e].layer) === t) return this._layers[e]; + }, + _addLayer: function (t, e, i) { + this._map && t.on('add remove', this._onLayerChange, this), + this._layers.push({ layer: t, name: e, overlay: i }), + this.options.sortLayers && + this._layers.sort( + a(function (t, e) { + return this.options.sortFunction(t.layer, e.layer, t.name, e.name); + }, this) + ), + this.options.autoZIndex && t.setZIndex && (this._lastZIndex++, t.setZIndex(this._lastZIndex)), + this._expandIfNotCollapsed(); + }, + _update: function () { + if (this._container) { + me(this._baseLayersList), me(this._overlaysList), (this._layerControlInputs = []); + for (var t, e, i, n = 0, o = 0; o < this._layers.length; o++) + (i = this._layers[o]), + this._addItem(i), + (e = e || i.overlay), + (t = t || !i.overlay), + (n += i.overlay ? 0 : 1); + this.options.hideSingleBase && + (this._baseLayersList.style.display = (t = t && 1 < n) ? '' : 'none'), + (this._separator.style.display = e && t ? '' : 'none'); + } + return this; + }, + _onLayerChange: function (t) { + this._handlingClick || this._update(); + var e = this._getLayer(h(t.target)), + t = e.overlay + ? 'add' === t.type + ? 'overlayadd' + : 'overlayremove' + : 'add' === t.type + ? 'baselayerchange' + : null; + t && this._map.fire(t, e); + }, + _createRadioElement: function (t, e) { + (t = + ''), + (e = document.createElement('div')); + return (e.innerHTML = t), e.firstChild; + }, + _addItem: function (t) { + var e, + i = document.createElement('label'), + n = this._map.hasLayer(t.layer), + n = + (t.overlay + ? (((e = document.createElement('input')).type = 'checkbox'), + (e.className = 'leaflet-control-layers-selector'), + (e.defaultChecked = n)) + : (e = this._createRadioElement('leaflet-base-layers_' + h(this), n)), + this._layerControlInputs.push(e), + (e.layerId = h(t.layer)), + S(e, 'click', this._onInputClick, this), + document.createElement('span')), + o = ((n.innerHTML = ' ' + t.name), document.createElement('span')); + return ( + i.appendChild(o), + o.appendChild(e), + o.appendChild(n), + (t.overlay ? this._overlaysList : this._baseLayersList).appendChild(i), + this._checkDisabledLayers(), + i + ); + }, + _onInputClick: function () { + if (!this._preventClick) { + var t, + e, + i = this._layerControlInputs, + n = [], + o = []; + this._handlingClick = !0; + for (var s = i.length - 1; 0 <= s; s--) + (t = i[s]), + (e = this._getLayer(t.layerId).layer), + t.checked ? n.push(e) : t.checked || o.push(e); + for (s = 0; s < o.length; s++) this._map.hasLayer(o[s]) && this._map.removeLayer(o[s]); + for (s = 0; s < n.length; s++) this._map.hasLayer(n[s]) || this._map.addLayer(n[s]); + (this._handlingClick = !1), this._refocusOnMap(); + } + }, + _checkDisabledLayers: function () { + for (var t, e, i = this._layerControlInputs, n = this._map.getZoom(), o = i.length - 1; 0 <= o; o--) + (t = i[o]), + (e = this._getLayer(t.layerId).layer), + (t.disabled = + (void 0 !== e.options.minZoom && n < e.options.minZoom) || + (void 0 !== e.options.maxZoom && n > e.options.maxZoom)); + }, + _expandIfNotCollapsed: function () { + return this._map && !this.options.collapsed && this.expand(), this; + }, + _expandSafely: function () { + var t = this._section, + e = ((this._preventClick = !0), S(t, 'click', O), this.expand(), this); + setTimeout(function () { + k(t, 'click', O), (e._preventClick = !1); + }); + }, + })), + qe = B.extend({ + options: { + position: 'topleft', + zoomInText: '', + zoomInTitle: 'Zoom in', + zoomOutText: '', + zoomOutTitle: 'Zoom out', + }, + onAdd: function (t) { + var e = 'leaflet-control-zoom', + i = P('div', e + ' leaflet-bar'), + n = this.options; + return ( + (this._zoomInButton = this._createButton(n.zoomInText, n.zoomInTitle, e + '-in', i, this._zoomIn)), + (this._zoomOutButton = this._createButton( + n.zoomOutText, + n.zoomOutTitle, + e + '-out', + i, + this._zoomOut + )), + this._updateDisabled(), + t.on('zoomend zoomlevelschange', this._updateDisabled, this), + i + ); + }, + onRemove: function (t) { + t.off('zoomend zoomlevelschange', this._updateDisabled, this); + }, + disable: function () { + return (this._disabled = !0), this._updateDisabled(), this; + }, + enable: function () { + return (this._disabled = !1), this._updateDisabled(), this; + }, + _zoomIn: function (t) { + !this._disabled && + this._map._zoom < this._map.getMaxZoom() && + this._map.zoomIn(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1)); + }, + _zoomOut: function (t) { + !this._disabled && + this._map._zoom > this._map.getMinZoom() && + this._map.zoomOut(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1)); + }, + _createButton: function (t, e, i, n, o) { + i = P('a', i, n); + return ( + (i.innerHTML = t), + (i.href = '#'), + (i.title = e), + i.setAttribute('role', 'button'), + i.setAttribute('aria-label', e), + Ie(i), + S(i, 'click', Re), + S(i, 'click', o, this), + S(i, 'click', this._refocusOnMap, this), + i + ); + }, + _updateDisabled: function () { + var t = this._map, + e = 'leaflet-disabled'; + z(this._zoomInButton, e), + z(this._zoomOutButton, e), + this._zoomInButton.setAttribute('aria-disabled', 'false'), + this._zoomOutButton.setAttribute('aria-disabled', 'false'), + (!this._disabled && t._zoom !== t.getMinZoom()) || + (M(this._zoomOutButton, e), this._zoomOutButton.setAttribute('aria-disabled', 'true')), + (!this._disabled && t._zoom !== t.getMaxZoom()) || + (M(this._zoomInButton, e), this._zoomInButton.setAttribute('aria-disabled', 'true')); + }, + }), + Ge = + (A.mergeOptions({ zoomControl: !0 }), + A.addInitHook(function () { + this.options.zoomControl && ((this.zoomControl = new qe()), this.addControl(this.zoomControl)); + }), + B.extend({ + options: { position: 'bottomleft', maxWidth: 100, metric: !0, imperial: !0 }, + onAdd: function (t) { + var e = 'leaflet-control-scale', + i = P('div', e), + n = this.options; + return ( + this._addScales(n, e + '-line', i), + t.on(n.updateWhenIdle ? 'moveend' : 'move', this._update, this), + t.whenReady(this._update, this), + i + ); + }, + onRemove: function (t) { + t.off(this.options.updateWhenIdle ? 'moveend' : 'move', this._update, this); + }, + _addScales: function (t, e, i) { + t.metric && (this._mScale = P('div', e, i)), t.imperial && (this._iScale = P('div', e, i)); + }, + _update: function () { + var t = this._map, + e = t.getSize().y / 2, + t = t.distance( + t.containerPointToLatLng([0, e]), + t.containerPointToLatLng([this.options.maxWidth, e]) + ); + this._updateScales(t); + }, + _updateScales: function (t) { + this.options.metric && t && this._updateMetric(t), + this.options.imperial && t && this._updateImperial(t); + }, + _updateMetric: function (t) { + var e = this._getRoundNum(t); + this._updateScale(this._mScale, e < 1e3 ? e + ' m' : e / 1e3 + ' km', e / t); + }, + _updateImperial: function (t) { + var e, + i, + t = 3.2808399 * t; + 5280 < t + ? ((i = this._getRoundNum((e = t / 5280))), this._updateScale(this._iScale, i + ' mi', i / e)) + : ((i = this._getRoundNum(t)), this._updateScale(this._iScale, i + ' ft', i / t)); + }, + _updateScale: function (t, e, i) { + (t.style.width = Math.round(this.options.maxWidth * i) + 'px'), (t.innerHTML = e); + }, + _getRoundNum: function (t) { + var e = Math.pow(10, (Math.floor(t) + '').length - 1), + t = t / e; + return e * (t = 10 <= t ? 10 : 5 <= t ? 5 : 3 <= t ? 3 : 2 <= t ? 2 : 1); + }, + })), + Ke = B.extend({ + options: { + position: 'bottomright', + prefix: + '' + + (b.inlineSvg + ? ' ' + : '') + + 'Leaflet', + }, + initialize: function (t) { + c(this, t), (this._attributions = {}); + }, + onAdd: function (t) { + for (var e in (((t.attributionControl = this)._container = P('div', 'leaflet-control-attribution')), + Ie(this._container), + t._layers)) + t._layers[e].getAttribution && this.addAttribution(t._layers[e].getAttribution()); + return this._update(), t.on('layeradd', this._addAttribution, this), this._container; + }, + onRemove: function (t) { + t.off('layeradd', this._addAttribution, this); + }, + _addAttribution: function (t) { + t.layer.getAttribution && + (this.addAttribution(t.layer.getAttribution()), + t.layer.once( + 'remove', + function () { + this.removeAttribution(t.layer.getAttribution()); + }, + this + )); + }, + setPrefix: function (t) { + return (this.options.prefix = t), this._update(), this; + }, + addAttribution: function (t) { + return ( + t && + (this._attributions[t] || (this._attributions[t] = 0), this._attributions[t]++, this._update()), + this + ); + }, + removeAttribution: function (t) { + return t && this._attributions[t] && (this._attributions[t]--, this._update()), this; + }, + _update: function () { + if (this._map) { + var t, + e = []; + for (t in this._attributions) this._attributions[t] && e.push(t); + var i = []; + this.options.prefix && i.push(this.options.prefix), + e.length && i.push(e.join(', ')), + (this._container.innerHTML = i.join(' ')); + } + }, + }), + n = + (A.mergeOptions({ attributionControl: !0 }), + A.addInitHook(function () { + this.options.attributionControl && new Ke().addTo(this); + }), + (B.Layers = Ve), + (B.Zoom = qe), + (B.Scale = Ge), + (B.Attribution = Ke), + (Ue.layers = function (t, e, i) { + return new Ve(t, e, i); + }), + (Ue.zoom = function (t) { + return new qe(t); + }), + (Ue.scale = function (t) { + return new Ge(t); + }), + (Ue.attribution = function (t) { + return new Ke(t); + }), + et.extend({ + initialize: function (t) { + this._map = t; + }, + enable: function () { + return this._enabled || ((this._enabled = !0), this.addHooks()), this; + }, + disable: function () { + return this._enabled && ((this._enabled = !1), this.removeHooks()), this; + }, + enabled: function () { + return !!this._enabled; + }, + })), + ft = + ((n.addTo = function (t, e) { + return t.addHandler(e, this), this; + }), + { Events: e }), + Ye = b.touch ? 'touchstart mousedown' : 'mousedown', + Xe = it.extend({ + options: { clickTolerance: 3 }, + initialize: function (t, e, i, n) { + c(this, n), (this._element = t), (this._dragStartTarget = e || t), (this._preventOutline = i); + }, + enable: function () { + this._enabled || (S(this._dragStartTarget, Ye, this._onDown, this), (this._enabled = !0)); + }, + disable: function () { + this._enabled && + (Xe._dragging === this && this.finishDrag(!0), + k(this._dragStartTarget, Ye, this._onDown, this), + (this._enabled = !1), + (this._moved = !1)); + }, + _onDown: function (t) { + var e, i; + this._enabled && + ((this._moved = !1), + ve(this._element, 'leaflet-zoom-anim') || + (t.touches && 1 !== t.touches.length + ? Xe._dragging === this && this.finishDrag() + : Xe._dragging || + t.shiftKey || + (1 !== t.which && 1 !== t.button && !t.touches) || + ((Xe._dragging = this)._preventOutline && Me(this._element), + Le(), + re(), + this._moving || + (this.fire('down'), + (i = t.touches ? t.touches[0] : t), + (e = Ce(this._element)), + (this._startPoint = new p(i.clientX, i.clientY)), + (this._startPos = Pe(this._element)), + (this._parentScale = Ze(e)), + (i = 'mousedown' === t.type), + S(document, i ? 'mousemove' : 'touchmove', this._onMove, this), + S(document, i ? 'mouseup' : 'touchend touchcancel', this._onUp, this))))); + }, + _onMove: function (t) { + var e; + this._enabled && + (t.touches && 1 < t.touches.length + ? (this._moved = !0) + : (!(e = new p( + (e = t.touches && 1 === t.touches.length ? t.touches[0] : t).clientX, + e.clientY + )._subtract(this._startPoint)).x && + !e.y) || + Math.abs(e.x) + Math.abs(e.y) < this.options.clickTolerance || + ((e.x /= this._parentScale.x), + (e.y /= this._parentScale.y), + O(t), + this._moved || + (this.fire('dragstart'), + (this._moved = !0), + M(document.body, 'leaflet-dragging'), + (this._lastTarget = t.target || t.srcElement), + window.SVGElementInstance && + this._lastTarget instanceof window.SVGElementInstance && + (this._lastTarget = this._lastTarget.correspondingUseElement), + M(this._lastTarget, 'leaflet-drag-target')), + (this._newPos = this._startPos.add(e)), + (this._moving = !0), + (this._lastEvent = t), + this._updatePosition())); + }, + _updatePosition: function () { + var t = { originalEvent: this._lastEvent }; + this.fire('predrag', t), Z(this._element, this._newPos), this.fire('drag', t); + }, + _onUp: function () { + this._enabled && this.finishDrag(); + }, + finishDrag: function (t) { + z(document.body, 'leaflet-dragging'), + this._lastTarget && (z(this._lastTarget, 'leaflet-drag-target'), (this._lastTarget = null)), + k(document, 'mousemove touchmove', this._onMove, this), + k(document, 'mouseup touchend touchcancel', this._onUp, this), + Te(), + ae(); + var e = this._moved && this._moving; + (this._moving = !1), + (Xe._dragging = !1), + e && this.fire('dragend', { noInertia: t, distance: this._newPos.distanceTo(this._startPos) }); + }, + }); + function Je(t, e, i) { + for (var n, o, s, r, a, h, l, u = [1, 4, 2, 8], c = 0, d = t.length; c < d; c++) t[c]._code = si(t[c], e); + for (s = 0; s < 4; s++) { + for (h = u[s], n = [], c = 0, o = (d = t.length) - 1; c < d; o = c++) + (r = t[c]), + (a = t[o]), + r._code & h + ? a._code & h || (((l = oi(a, r, h, e, i))._code = si(l, e)), n.push(l)) + : (a._code & h && (((l = oi(a, r, h, e, i))._code = si(l, e)), n.push(l)), n.push(r)); + t = n; + } + return t; + } + function $e(t, e) { + var i, n, o, s, r, a, h; + if (!t || 0 === t.length) throw new Error('latlngs not passed'); + I(t) || (console.warn('latlngs are not flat! Only the first ring will be used'), (t = t[0])); + for ( + var l = w([0, 0]), + u = g(t), + c = + (u.getNorthWest().distanceTo(u.getSouthWest()) * u.getNorthEast().distanceTo(u.getNorthWest()) < + 1700 && (l = Qe(t)), + t.length), + d = [], + _ = 0; + _ < c; + _++ + ) { + var p = w(t[_]); + d.push(e.project(w([p.lat - l.lat, p.lng - l.lng]))); + } + for (_ = r = a = h = 0, i = c - 1; _ < c; i = _++) + (n = d[_]), + (o = d[i]), + (s = n.y * o.x - o.y * n.x), + (a += (n.x + o.x) * s), + (h += (n.y + o.y) * s), + (r += 3 * s); + (u = 0 === r ? d[0] : [a / r, h / r]), (u = e.unproject(m(u))); + return w([u.lat + l.lat, u.lng + l.lng]); + } + function Qe(t) { + for (var e = 0, i = 0, n = 0, o = 0; o < t.length; o++) { + var s = w(t[o]); + (e += s.lat), (i += s.lng), n++; + } + return w([e / n, i / n]); + } + var ti, + gt = { __proto__: null, clipPolygon: Je, polygonCenter: $e, centroid: Qe }; + function ei(t, e) { + if (e && t.length) { + var i = (t = (function (t, e) { + for (var i = [t[0]], n = 1, o = 0, s = t.length; n < s; n++) + (function (t, e) { + var i = e.x - t.x, + e = e.y - t.y; + return i * i + e * e; + })(t[n], t[o]) > e && (i.push(t[n]), (o = n)); + o < s - 1 && i.push(t[s - 1]); + return i; + })(t, (e = e * e))), + n = i.length, + o = new (typeof Uint8Array != void 0 + '' ? Uint8Array : Array)(n); + (o[0] = o[n - 1] = 1), + (function t(e, i, n, o, s) { + var r, + a, + h, + l = 0; + for (a = o + 1; a <= s - 1; a++) (h = ri(e[a], e[o], e[s], !0)), l < h && ((r = a), (l = h)); + n < l && ((i[r] = 1), t(e, i, n, o, r), t(e, i, n, r, s)); + })(i, o, e, 0, n - 1); + var s, + r = []; + for (s = 0; s < n; s++) o[s] && r.push(i[s]); + return r; + } + return t.slice(); + } + function ii(t, e, i) { + return Math.sqrt(ri(t, e, i, !0)); + } + function ni(t, e, i, n, o) { + var s, + r, + a, + h = n ? ti : si(t, i), + l = si(e, i); + for (ti = l; ; ) { + if (!(h | l)) return [t, e]; + if (h & l) return !1; + (a = si((r = oi(t, e, (s = h || l), i, o)), i)), s === h ? ((t = r), (h = a)) : ((e = r), (l = a)); + } + } + function oi(t, e, i, n, o) { + var s, + r, + a = e.x - t.x, + e = e.y - t.y, + h = n.min, + n = n.max; + return ( + 8 & i + ? ((s = t.x + (a * (n.y - t.y)) / e), (r = n.y)) + : 4 & i + ? ((s = t.x + (a * (h.y - t.y)) / e), (r = h.y)) + : 2 & i + ? ((s = n.x), (r = t.y + (e * (n.x - t.x)) / a)) + : 1 & i && ((s = h.x), (r = t.y + (e * (h.x - t.x)) / a)), + new p(s, r, o) + ); + } + function si(t, e) { + var i = 0; + return ( + t.x < e.min.x ? (i |= 1) : t.x > e.max.x && (i |= 2), + t.y < e.min.y ? (i |= 4) : t.y > e.max.y && (i |= 8), + i + ); + } + function ri(t, e, i, n) { + var o = e.x, + e = e.y, + s = i.x - o, + r = i.y - e, + a = s * s + r * r; + return ( + 0 < a && + (1 < (a = ((t.x - o) * s + (t.y - e) * r) / a) + ? ((o = i.x), (e = i.y)) + : 0 < a && ((o += s * a), (e += r * a))), + (s = t.x - o), + (r = t.y - e), + n ? s * s + r * r : new p(o, e) + ); + } + function I(t) { + return !d(t[0]) || ('object' != typeof t[0][0] && void 0 !== t[0][0]); + } + function ai(t) { + return console.warn('Deprecated use of _flat, please use L.LineUtil.isFlat instead.'), I(t); + } + function hi(t, e) { + var i, n, o, s, r, a; + if (!t || 0 === t.length) throw new Error('latlngs not passed'); + I(t) || (console.warn('latlngs are not flat! Only the first ring will be used'), (t = t[0])); + for ( + var h = w([0, 0]), + l = g(t), + u = + (l.getNorthWest().distanceTo(l.getSouthWest()) * l.getNorthEast().distanceTo(l.getNorthWest()) < + 1700 && (h = Qe(t)), + t.length), + c = [], + d = 0; + d < u; + d++ + ) { + var _ = w(t[d]); + c.push(e.project(w([_.lat - h.lat, _.lng - h.lng]))); + } + for (i = d = 0; d < u - 1; d++) i += c[d].distanceTo(c[d + 1]) / 2; + if (0 === i) a = c[0]; + else + for (n = d = 0; d < u - 1; d++) + if (((o = c[d]), (s = c[d + 1]), i < (n += r = o.distanceTo(s)))) { + a = [s.x - (r = (n - i) / r) * (s.x - o.x), s.y - r * (s.y - o.y)]; + break; + } + l = e.unproject(m(a)); + return w([l.lat + h.lat, l.lng + h.lng]); + } + var vt = { + __proto__: null, + simplify: ei, + pointToSegmentDistance: ii, + closestPointOnSegment: function (t, e, i) { + return ri(t, e, i); + }, + clipSegment: ni, + _getEdgeIntersection: oi, + _getBitCode: si, + _sqClosestPointOnSegment: ri, + isFlat: I, + _flat: ai, + polylineCenter: hi, + }, + yt = { + project: function (t) { + return new p(t.lng, t.lat); + }, + unproject: function (t) { + return new v(t.y, t.x); + }, + bounds: new f([-180, -90], [180, 90]), + }, + xt = { + R: 6378137, + R_MINOR: 6356752.314245179, + bounds: new f([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]), + project: function (t) { + var e = Math.PI / 180, + i = this.R, + n = t.lat * e, + o = this.R_MINOR / i, + o = Math.sqrt(1 - o * o), + s = o * Math.sin(n), + s = Math.tan(Math.PI / 4 - n / 2) / Math.pow((1 - s) / (1 + s), o / 2), + n = -i * Math.log(Math.max(s, 1e-10)); + return new p(t.lng * e * i, n); + }, + unproject: function (t) { + for ( + var e, + i = 180 / Math.PI, + n = this.R, + o = this.R_MINOR / n, + s = Math.sqrt(1 - o * o), + r = Math.exp(-t.y / n), + a = Math.PI / 2 - 2 * Math.atan(r), + h = 0, + l = 0.1; + h < 15 && 1e-7 < Math.abs(l); + h++ + ) + (e = s * Math.sin(a)), + (e = Math.pow((1 - e) / (1 + e), s / 2)), + (a += l = Math.PI / 2 - 2 * Math.atan(r * e) - a); + return new v(a * i, (t.x * i) / n); + }, + }, + wt = { __proto__: null, LonLat: yt, Mercator: xt, SphericalMercator: rt }, + Pt = l({}, st, { + code: 'EPSG:3395', + projection: xt, + transformation: ht((bt = 0.5 / (Math.PI * xt.R)), 0.5, -bt, 0.5), + }), + li = l({}, st, { code: 'EPSG:4326', projection: yt, transformation: ht(1 / 180, 1, -1 / 180, 0.5) }), + Lt = l({}, ot, { + projection: yt, + transformation: ht(1, 0, -1, 0), + scale: function (t) { + return Math.pow(2, t); + }, + zoom: function (t) { + return Math.log(t) / Math.LN2; + }, + distance: function (t, e) { + var i = e.lng - t.lng, + e = e.lat - t.lat; + return Math.sqrt(i * i + e * e); + }, + infinite: !0, + }), + o = + ((ot.Earth = st), + (ot.EPSG3395 = Pt), + (ot.EPSG3857 = lt), + (ot.EPSG900913 = ut), + (ot.EPSG4326 = li), + (ot.Simple = Lt), + it.extend({ + options: { pane: 'overlayPane', attribution: null, bubblingMouseEvents: !0 }, + addTo: function (t) { + return t.addLayer(this), this; + }, + remove: function () { + return this.removeFrom(this._map || this._mapToAdd); + }, + removeFrom: function (t) { + return t && t.removeLayer(this), this; + }, + getPane: function (t) { + return this._map.getPane(t ? this.options[t] || t : this.options.pane); + }, + addInteractiveTarget: function (t) { + return (this._map._targets[h(t)] = this); + }, + removeInteractiveTarget: function (t) { + return delete this._map._targets[h(t)], this; + }, + getAttribution: function () { + return this.options.attribution; + }, + _layerAdd: function (t) { + var e, + i = t.target; + i.hasLayer(this) && + ((this._map = i), + (this._zoomAnimated = i._zoomAnimated), + this.getEvents && + ((e = this.getEvents()), + i.on(e, this), + this.once( + 'remove', + function () { + i.off(e, this); + }, + this + )), + this.onAdd(i), + this.fire('add'), + i.fire('layeradd', { layer: this })); + }, + })), + ui = + (A.include({ + addLayer: function (t) { + var e; + if (t._layerAdd) + return ( + (e = h(t)), + this._layers[e] || + (((this._layers[e] = t)._mapToAdd = this), + t.beforeAdd && t.beforeAdd(this), + this.whenReady(t._layerAdd, t)), + this + ); + throw new Error('The provided object is not a Layer.'); + }, + removeLayer: function (t) { + var e = h(t); + return ( + this._layers[e] && + (this._loaded && t.onRemove(this), + delete this._layers[e], + this._loaded && (this.fire('layerremove', { layer: t }), t.fire('remove')), + (t._map = t._mapToAdd = null)), + this + ); + }, + hasLayer: function (t) { + return h(t) in this._layers; + }, + eachLayer: function (t, e) { + for (var i in this._layers) t.call(e, this._layers[i]); + return this; + }, + _addLayers: function (t) { + for (var e = 0, i = (t = t ? (d(t) ? t : [t]) : []).length; e < i; e++) this.addLayer(t[e]); + }, + _addZoomLimit: function (t) { + (isNaN(t.options.maxZoom) && isNaN(t.options.minZoom)) || + ((this._zoomBoundLayers[h(t)] = t), this._updateZoomLevels()); + }, + _removeZoomLimit: function (t) { + t = h(t); + this._zoomBoundLayers[t] && (delete this._zoomBoundLayers[t], this._updateZoomLevels()); + }, + _updateZoomLevels: function () { + var t, + e = 1 / 0, + i = -1 / 0, + n = this._getZoomSpan(); + for (t in this._zoomBoundLayers) + var o = this._zoomBoundLayers[t].options, + e = void 0 === o.minZoom ? e : Math.min(e, o.minZoom), + i = void 0 === o.maxZoom ? i : Math.max(i, o.maxZoom); + (this._layersMaxZoom = i === -1 / 0 ? void 0 : i), + (this._layersMinZoom = e === 1 / 0 ? void 0 : e), + n !== this._getZoomSpan() && this.fire('zoomlevelschange'), + void 0 === this.options.maxZoom && + this._layersMaxZoom && + this.getZoom() > this._layersMaxZoom && + this.setZoom(this._layersMaxZoom), + void 0 === this.options.minZoom && + this._layersMinZoom && + this.getZoom() < this._layersMinZoom && + this.setZoom(this._layersMinZoom); + }, + }), + o.extend({ + initialize: function (t, e) { + var i, n; + if ((c(this, e), (this._layers = {}), t)) for (i = 0, n = t.length; i < n; i++) this.addLayer(t[i]); + }, + addLayer: function (t) { + var e = this.getLayerId(t); + return (this._layers[e] = t), this._map && this._map.addLayer(t), this; + }, + removeLayer: function (t) { + t = t in this._layers ? t : this.getLayerId(t); + return ( + this._map && this._layers[t] && this._map.removeLayer(this._layers[t]), + delete this._layers[t], + this + ); + }, + hasLayer: function (t) { + return ('number' == typeof t ? t : this.getLayerId(t)) in this._layers; + }, + clearLayers: function () { + return this.eachLayer(this.removeLayer, this); + }, + invoke: function (t) { + var e, + i, + n = Array.prototype.slice.call(arguments, 1); + for (e in this._layers) (i = this._layers[e])[t] && i[t].apply(i, n); + return this; + }, + onAdd: function (t) { + this.eachLayer(t.addLayer, t); + }, + onRemove: function (t) { + this.eachLayer(t.removeLayer, t); + }, + eachLayer: function (t, e) { + for (var i in this._layers) t.call(e, this._layers[i]); + return this; + }, + getLayer: function (t) { + return this._layers[t]; + }, + getLayers: function () { + var t = []; + return this.eachLayer(t.push, t), t; + }, + setZIndex: function (t) { + return this.invoke('setZIndex', t); + }, + getLayerId: h, + })), + ci = ui.extend({ + addLayer: function (t) { + return this.hasLayer(t) + ? this + : (t.addEventParent(this), + ui.prototype.addLayer.call(this, t), + this.fire('layeradd', { layer: t })); + }, + removeLayer: function (t) { + return this.hasLayer(t) + ? ((t = t in this._layers ? this._layers[t] : t).removeEventParent(this), + ui.prototype.removeLayer.call(this, t), + this.fire('layerremove', { layer: t })) + : this; + }, + setStyle: function (t) { + return this.invoke('setStyle', t); + }, + bringToFront: function () { + return this.invoke('bringToFront'); + }, + bringToBack: function () { + return this.invoke('bringToBack'); + }, + getBounds: function () { + var t, + e = new s(); + for (t in this._layers) { + var i = this._layers[t]; + e.extend(i.getBounds ? i.getBounds() : i.getLatLng()); + } + return e; + }, + }), + di = et.extend({ + options: { popupAnchor: [0, 0], tooltipAnchor: [0, 0], crossOrigin: !1 }, + initialize: function (t) { + c(this, t); + }, + createIcon: function (t) { + return this._createIcon('icon', t); + }, + createShadow: function (t) { + return this._createIcon('shadow', t); + }, + _createIcon: function (t, e) { + var i = this._getIconUrl(t); + if (i) + return ( + (i = this._createImg(i, e && 'IMG' === e.tagName ? e : null)), + this._setIconStyles(i, t), + (!this.options.crossOrigin && '' !== this.options.crossOrigin) || + (i.crossOrigin = !0 === this.options.crossOrigin ? '' : this.options.crossOrigin), + i + ); + if ('icon' === t) throw new Error('iconUrl not set in Icon options (see the docs).'); + return null; + }, + _setIconStyles: function (t, e) { + var i = this.options, + n = i[e + 'Size'], + n = m((n = 'number' == typeof n ? [n, n] : n)), + o = m(('shadow' === e && i.shadowAnchor) || i.iconAnchor || (n && n.divideBy(2, !0))); + (t.className = 'leaflet-marker-' + e + ' ' + (i.className || '')), + o && ((t.style.marginLeft = -o.x + 'px'), (t.style.marginTop = -o.y + 'px')), + n && ((t.style.width = n.x + 'px'), (t.style.height = n.y + 'px')); + }, + _createImg: function (t, e) { + return ((e = e || document.createElement('img')).src = t), e; + }, + _getIconUrl: function (t) { + return (b.retina && this.options[t + 'RetinaUrl']) || this.options[t + 'Url']; + }, + }); + var _i = di.extend({ + options: { + iconUrl: 'marker-icon.png', + iconRetinaUrl: 'marker-icon-2x.png', + shadowUrl: 'marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + popupAnchor: [1, -34], + tooltipAnchor: [16, -28], + shadowSize: [41, 41], + }, + _getIconUrl: function (t) { + return ( + 'string' != typeof _i.imagePath && (_i.imagePath = this._detectIconPath()), + (this.options.imagePath || _i.imagePath) + di.prototype._getIconUrl.call(this, t) + ); + }, + _stripUrl: function (t) { + function e(t, e, i) { + return (e = e.exec(t)) && e[i]; + } + return (t = e(t, /^url\((['"])?(.+)\1\)$/, 2)) && e(t, /^(.*)marker-icon\.png$/, 1); + }, + _detectIconPath: function () { + var t = P('div', 'leaflet-default-icon-path', document.body), + e = pe(t, 'background-image') || pe(t, 'backgroundImage'); + return ( + document.body.removeChild(t), + (e = this._stripUrl(e)) + ? e + : (t = document.querySelector('link[href$="leaflet.css"]')) + ? t.href.substring(0, t.href.length - 'leaflet.css'.length - 1) + : '' + ); + }, + }), + pi = n.extend({ + initialize: function (t) { + this._marker = t; + }, + addHooks: function () { + var t = this._marker._icon; + this._draggable || (this._draggable = new Xe(t, t, !0)), + this._draggable + .on( + { + dragstart: this._onDragStart, + predrag: this._onPreDrag, + drag: this._onDrag, + dragend: this._onDragEnd, + }, + this + ) + .enable(), + M(t, 'leaflet-marker-draggable'); + }, + removeHooks: function () { + this._draggable + .off( + { + dragstart: this._onDragStart, + predrag: this._onPreDrag, + drag: this._onDrag, + dragend: this._onDragEnd, + }, + this + ) + .disable(), + this._marker._icon && z(this._marker._icon, 'leaflet-marker-draggable'); + }, + moved: function () { + return this._draggable && this._draggable._moved; + }, + _adjustPan: function (t) { + var e = this._marker, + i = e._map, + n = this._marker.options.autoPanSpeed, + o = this._marker.options.autoPanPadding, + s = Pe(e._icon), + r = i.getPixelBounds(), + a = i.getPixelOrigin(), + a = _(r.min._subtract(a).add(o), r.max._subtract(a).subtract(o)); + a.contains(s) || + ((o = m( + (Math.max(a.max.x, s.x) - a.max.x) / (r.max.x - a.max.x) - + (Math.min(a.min.x, s.x) - a.min.x) / (r.min.x - a.min.x), + (Math.max(a.max.y, s.y) - a.max.y) / (r.max.y - a.max.y) - + (Math.min(a.min.y, s.y) - a.min.y) / (r.min.y - a.min.y) + ).multiplyBy(n)), + i.panBy(o, { animate: !1 }), + this._draggable._newPos._add(o), + this._draggable._startPos._add(o), + Z(e._icon, this._draggable._newPos), + this._onDrag(t), + (this._panRequest = x(this._adjustPan.bind(this, t)))); + }, + _onDragStart: function () { + (this._oldLatLng = this._marker.getLatLng()), + this._marker.closePopup && this._marker.closePopup(), + this._marker.fire('movestart').fire('dragstart'); + }, + _onPreDrag: function (t) { + this._marker.options.autoPan && + (r(this._panRequest), (this._panRequest = x(this._adjustPan.bind(this, t)))); + }, + _onDrag: function (t) { + var e = this._marker, + i = e._shadow, + n = Pe(e._icon), + o = e._map.layerPointToLatLng(n); + i && Z(i, n), + (e._latlng = o), + (t.latlng = o), + (t.oldLatLng = this._oldLatLng), + e.fire('move', t).fire('drag', t); + }, + _onDragEnd: function (t) { + r(this._panRequest), delete this._oldLatLng, this._marker.fire('moveend').fire('dragend', t); + }, + }), + mi = o.extend({ + options: { + icon: new _i(), + interactive: !0, + keyboard: !0, + title: '', + alt: 'Marker', + zIndexOffset: 0, + opacity: 1, + riseOnHover: !1, + riseOffset: 250, + pane: 'markerPane', + shadowPane: 'shadowPane', + bubblingMouseEvents: !1, + autoPanOnFocus: !0, + draggable: !1, + autoPan: !1, + autoPanPadding: [50, 50], + autoPanSpeed: 10, + }, + initialize: function (t, e) { + c(this, e), (this._latlng = w(t)); + }, + onAdd: function (t) { + (this._zoomAnimated = this._zoomAnimated && t.options.markerZoomAnimation), + this._zoomAnimated && t.on('zoomanim', this._animateZoom, this), + this._initIcon(), + this.update(); + }, + onRemove: function (t) { + this.dragging && + this.dragging.enabled() && + ((this.options.draggable = !0), this.dragging.removeHooks()), + delete this.dragging, + this._zoomAnimated && t.off('zoomanim', this._animateZoom, this), + this._removeIcon(), + this._removeShadow(); + }, + getEvents: function () { + return { zoom: this.update, viewreset: this.update }; + }, + getLatLng: function () { + return this._latlng; + }, + setLatLng: function (t) { + var e = this._latlng; + return (this._latlng = w(t)), this.update(), this.fire('move', { oldLatLng: e, latlng: this._latlng }); + }, + setZIndexOffset: function (t) { + return (this.options.zIndexOffset = t), this.update(); + }, + getIcon: function () { + return this.options.icon; + }, + setIcon: function (t) { + return ( + (this.options.icon = t), + this._map && (this._initIcon(), this.update()), + this._popup && this.bindPopup(this._popup, this._popup.options), + this + ); + }, + getElement: function () { + return this._icon; + }, + update: function () { + var t; + return ( + this._icon && + this._map && + ((t = this._map.latLngToLayerPoint(this._latlng).round()), this._setPos(t)), + this + ); + }, + _initIcon: function () { + var t = this.options, + e = 'leaflet-zoom-' + (this._zoomAnimated ? 'animated' : 'hide'), + i = t.icon.createIcon(this._icon), + n = !1, + i = + (i !== this._icon && + (this._icon && this._removeIcon(), + (n = !0), + t.title && (i.title = t.title), + 'IMG' === i.tagName && (i.alt = t.alt || '')), + M(i, e), + t.keyboard && ((i.tabIndex = '0'), i.setAttribute('role', 'button')), + (this._icon = i), + t.riseOnHover && this.on({ mouseover: this._bringToFront, mouseout: this._resetZIndex }), + this.options.autoPanOnFocus && S(i, 'focus', this._panOnFocus, this), + t.icon.createShadow(this._shadow)), + o = !1; + i !== this._shadow && (this._removeShadow(), (o = !0)), + i && (M(i, e), (i.alt = '')), + (this._shadow = i), + t.opacity < 1 && this._updateOpacity(), + n && this.getPane().appendChild(this._icon), + this._initInteraction(), + i && o && this.getPane(t.shadowPane).appendChild(this._shadow); + }, + _removeIcon: function () { + this.options.riseOnHover && this.off({ mouseover: this._bringToFront, mouseout: this._resetZIndex }), + this.options.autoPanOnFocus && k(this._icon, 'focus', this._panOnFocus, this), + T(this._icon), + this.removeInteractiveTarget(this._icon), + (this._icon = null); + }, + _removeShadow: function () { + this._shadow && T(this._shadow), (this._shadow = null); + }, + _setPos: function (t) { + this._icon && Z(this._icon, t), + this._shadow && Z(this._shadow, t), + (this._zIndex = t.y + this.options.zIndexOffset), + this._resetZIndex(); + }, + _updateZIndex: function (t) { + this._icon && (this._icon.style.zIndex = this._zIndex + t); + }, + _animateZoom: function (t) { + t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center).round(); + this._setPos(t); + }, + _initInteraction: function () { + var t; + this.options.interactive && + (M(this._icon, 'leaflet-interactive'), + this.addInteractiveTarget(this._icon), + pi && + ((t = this.options.draggable), + this.dragging && ((t = this.dragging.enabled()), this.dragging.disable()), + (this.dragging = new pi(this)), + t && this.dragging.enable())); + }, + setOpacity: function (t) { + return (this.options.opacity = t), this._map && this._updateOpacity(), this; + }, + _updateOpacity: function () { + var t = this.options.opacity; + this._icon && C(this._icon, t), this._shadow && C(this._shadow, t); + }, + _bringToFront: function () { + this._updateZIndex(this.options.riseOffset); + }, + _resetZIndex: function () { + this._updateZIndex(0); + }, + _panOnFocus: function () { + var t, + e, + i = this._map; + i && + ((t = (e = this.options.icon.options).iconSize ? m(e.iconSize) : m(0, 0)), + (e = e.iconAnchor ? m(e.iconAnchor) : m(0, 0)), + i.panInside(this._latlng, { paddingTopLeft: e, paddingBottomRight: t.subtract(e) })); + }, + _getPopupAnchor: function () { + return this.options.icon.options.popupAnchor; + }, + _getTooltipAnchor: function () { + return this.options.icon.options.tooltipAnchor; + }, + }); + var fi = o.extend({ + options: { + stroke: !0, + color: '#3388ff', + weight: 3, + opacity: 1, + lineCap: 'round', + lineJoin: 'round', + dashArray: null, + dashOffset: null, + fill: !1, + fillColor: null, + fillOpacity: 0.2, + fillRule: 'evenodd', + interactive: !0, + bubblingMouseEvents: !0, + }, + beforeAdd: function (t) { + this._renderer = t.getRenderer(this); + }, + onAdd: function () { + this._renderer._initPath(this), this._reset(), this._renderer._addPath(this); + }, + onRemove: function () { + this._renderer._removePath(this); + }, + redraw: function () { + return this._map && this._renderer._updatePath(this), this; + }, + setStyle: function (t) { + return ( + c(this, t), + this._renderer && + (this._renderer._updateStyle(this), + this.options.stroke && + t && + Object.prototype.hasOwnProperty.call(t, 'weight') && + this._updateBounds()), + this + ); + }, + bringToFront: function () { + return this._renderer && this._renderer._bringToFront(this), this; + }, + bringToBack: function () { + return this._renderer && this._renderer._bringToBack(this), this; + }, + getElement: function () { + return this._path; + }, + _reset: function () { + this._project(), this._update(); + }, + _clickTolerance: function () { + return (this.options.stroke ? this.options.weight / 2 : 0) + (this._renderer.options.tolerance || 0); + }, + }), + gi = fi.extend({ + options: { fill: !0, radius: 10 }, + initialize: function (t, e) { + c(this, e), (this._latlng = w(t)), (this._radius = this.options.radius); + }, + setLatLng: function (t) { + var e = this._latlng; + return (this._latlng = w(t)), this.redraw(), this.fire('move', { oldLatLng: e, latlng: this._latlng }); + }, + getLatLng: function () { + return this._latlng; + }, + setRadius: function (t) { + return (this.options.radius = this._radius = t), this.redraw(); + }, + getRadius: function () { + return this._radius; + }, + setStyle: function (t) { + var e = (t && t.radius) || this._radius; + return fi.prototype.setStyle.call(this, t), this.setRadius(e), this; + }, + _project: function () { + (this._point = this._map.latLngToLayerPoint(this._latlng)), this._updateBounds(); + }, + _updateBounds: function () { + var t = this._radius, + e = this._radiusY || t, + i = this._clickTolerance(), + t = [t + i, e + i]; + this._pxBounds = new f(this._point.subtract(t), this._point.add(t)); + }, + _update: function () { + this._map && this._updatePath(); + }, + _updatePath: function () { + this._renderer._updateCircle(this); + }, + _empty: function () { + return this._radius && !this._renderer._bounds.intersects(this._pxBounds); + }, + _containsPoint: function (t) { + return t.distanceTo(this._point) <= this._radius + this._clickTolerance(); + }, + }); + var vi = gi.extend({ + initialize: function (t, e, i) { + if ( + (c(this, (e = 'number' == typeof e ? l({}, i, { radius: e }) : e)), + (this._latlng = w(t)), + isNaN(this.options.radius)) + ) + throw new Error('Circle radius cannot be NaN'); + this._mRadius = this.options.radius; + }, + setRadius: function (t) { + return (this._mRadius = t), this.redraw(); + }, + getRadius: function () { + return this._mRadius; + }, + getBounds: function () { + var t = [this._radius, this._radiusY || this._radius]; + return new s( + this._map.layerPointToLatLng(this._point.subtract(t)), + this._map.layerPointToLatLng(this._point.add(t)) + ); + }, + setStyle: fi.prototype.setStyle, + _project: function () { + var t, + e, + i, + n, + o, + s = this._latlng.lng, + r = this._latlng.lat, + a = this._map, + h = a.options.crs; + h.distance === st.distance + ? ((n = Math.PI / 180), + (o = this._mRadius / st.R / n), + (t = a.project([r + o, s])), + (e = a.project([r - o, s])), + (e = t.add(e).divideBy(2)), + (i = a.unproject(e).lat), + (n = + Math.acos( + (Math.cos(o * n) - Math.sin(r * n) * Math.sin(i * n)) / (Math.cos(r * n) * Math.cos(i * n)) + ) / n), + (!isNaN(n) && 0 !== n) || (n = o / Math.cos((Math.PI / 180) * r)), + (this._point = e.subtract(a.getPixelOrigin())), + (this._radius = isNaN(n) ? 0 : e.x - a.project([i, s - n]).x), + (this._radiusY = e.y - t.y)) + : ((o = h.unproject(h.project(this._latlng).subtract([this._mRadius, 0]))), + (this._point = a.latLngToLayerPoint(this._latlng)), + (this._radius = this._point.x - a.latLngToLayerPoint(o).x)), + this._updateBounds(); + }, + }); + var yi = fi.extend({ + options: { smoothFactor: 1, noClip: !1 }, + initialize: function (t, e) { + c(this, e), this._setLatLngs(t); + }, + getLatLngs: function () { + return this._latlngs; + }, + setLatLngs: function (t) { + return this._setLatLngs(t), this.redraw(); + }, + isEmpty: function () { + return !this._latlngs.length; + }, + closestLayerPoint: function (t) { + for (var e = 1 / 0, i = null, n = ri, o = 0, s = this._parts.length; o < s; o++) + for (var r = this._parts[o], a = 1, h = r.length; a < h; a++) { + var l, + u, + c = n(t, (l = r[a - 1]), (u = r[a]), !0); + c < e && ((e = c), (i = n(t, l, u))); + } + return i && (i.distance = Math.sqrt(e)), i; + }, + getCenter: function () { + if (this._map) return hi(this._defaultShape(), this._map.options.crs); + throw new Error('Must add layer to map before using getCenter()'); + }, + getBounds: function () { + return this._bounds; + }, + addLatLng: function (t, e) { + return (e = e || this._defaultShape()), (t = w(t)), e.push(t), this._bounds.extend(t), this.redraw(); + }, + _setLatLngs: function (t) { + (this._bounds = new s()), (this._latlngs = this._convertLatLngs(t)); + }, + _defaultShape: function () { + return I(this._latlngs) ? this._latlngs : this._latlngs[0]; + }, + _convertLatLngs: function (t) { + for (var e = [], i = I(t), n = 0, o = t.length; n < o; n++) + i ? ((e[n] = w(t[n])), this._bounds.extend(e[n])) : (e[n] = this._convertLatLngs(t[n])); + return e; + }, + _project: function () { + var t = new f(); + (this._rings = []), + this._projectLatlngs(this._latlngs, this._rings, t), + this._bounds.isValid() && t.isValid() && ((this._rawPxBounds = t), this._updateBounds()); + }, + _updateBounds: function () { + var t = this._clickTolerance(), + t = new p(t, t); + this._rawPxBounds && + (this._pxBounds = new f([this._rawPxBounds.min.subtract(t), this._rawPxBounds.max.add(t)])); + }, + _projectLatlngs: function (t, e, i) { + var n, + o, + s = t[0] instanceof v, + r = t.length; + if (s) { + for (o = [], n = 0; n < r; n++) (o[n] = this._map.latLngToLayerPoint(t[n])), i.extend(o[n]); + e.push(o); + } else for (n = 0; n < r; n++) this._projectLatlngs(t[n], e, i); + }, + _clipPoints: function () { + var t = this._renderer._bounds; + if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t))) + if (this.options.noClip) this._parts = this._rings; + else + for (var e, i, n, o, s = this._parts, r = 0, a = 0, h = this._rings.length; r < h; r++) + for (e = 0, i = (o = this._rings[r]).length; e < i - 1; e++) + (n = ni(o[e], o[e + 1], t, e, !0)) && + ((s[a] = s[a] || []), + s[a].push(n[0]), + (n[1] === o[e + 1] && e !== i - 2) || (s[a].push(n[1]), a++)); + }, + _simplifyPoints: function () { + for (var t = this._parts, e = this.options.smoothFactor, i = 0, n = t.length; i < n; i++) + t[i] = ei(t[i], e); + }, + _update: function () { + this._map && (this._clipPoints(), this._simplifyPoints(), this._updatePath()); + }, + _updatePath: function () { + this._renderer._updatePoly(this); + }, + _containsPoint: function (t, e) { + var i, + n, + o, + s, + r, + a, + h = this._clickTolerance(); + if (this._pxBounds && this._pxBounds.contains(t)) + for (i = 0, s = this._parts.length; i < s; i++) + for (n = 0, o = (r = (a = this._parts[i]).length) - 1; n < r; o = n++) + if ((e || 0 !== n) && ii(t, a[o], a[n]) <= h) return !0; + return !1; + }, + }); + yi._flat = ai; + var xi = yi.extend({ + options: { fill: !0 }, + isEmpty: function () { + return !this._latlngs.length || !this._latlngs[0].length; + }, + getCenter: function () { + if (this._map) return $e(this._defaultShape(), this._map.options.crs); + throw new Error('Must add layer to map before using getCenter()'); + }, + _convertLatLngs: function (t) { + var t = yi.prototype._convertLatLngs.call(this, t), + e = t.length; + return 2 <= e && t[0] instanceof v && t[0].equals(t[e - 1]) && t.pop(), t; + }, + _setLatLngs: function (t) { + yi.prototype._setLatLngs.call(this, t), I(this._latlngs) && (this._latlngs = [this._latlngs]); + }, + _defaultShape: function () { + return (I(this._latlngs[0]) ? this._latlngs : this._latlngs[0])[0]; + }, + _clipPoints: function () { + var t = this._renderer._bounds, + e = this.options.weight, + e = new p(e, e), + t = new f(t.min.subtract(e), t.max.add(e)); + if (((this._parts = []), this._pxBounds && this._pxBounds.intersects(t))) + if (this.options.noClip) this._parts = this._rings; + else + for (var i, n = 0, o = this._rings.length; n < o; n++) + (i = Je(this._rings[n], t, !0)).length && this._parts.push(i); + }, + _updatePath: function () { + this._renderer._updatePoly(this, !0); + }, + _containsPoint: function (t) { + var e, + i, + n, + o, + s, + r, + a, + h, + l = !1; + if (!this._pxBounds || !this._pxBounds.contains(t)) return !1; + for (o = 0, a = this._parts.length; o < a; o++) + for (s = 0, r = (h = (e = this._parts[o]).length) - 1; s < h; r = s++) + (i = e[s]), + (n = e[r]), + i.y > t.y != n.y > t.y && t.x < ((n.x - i.x) * (t.y - i.y)) / (n.y - i.y) + i.x && (l = !l); + return l || yi.prototype._containsPoint.call(this, t, !0); + }, + }); + var wi = ci.extend({ + initialize: function (t, e) { + c(this, e), (this._layers = {}), t && this.addData(t); + }, + addData: function (t) { + var e, + i, + n, + o = d(t) ? t : t.features; + if (o) { + for (e = 0, i = o.length; e < i; e++) + ((n = o[e]).geometries || n.geometry || n.features || n.coordinates) && this.addData(n); + return this; + } + var s, + r = this.options; + return (!r.filter || r.filter(t)) && (s = bi(t, r)) + ? ((s.feature = Zi(t)), + (s.defaultOptions = s.options), + this.resetStyle(s), + r.onEachFeature && r.onEachFeature(t, s), + this.addLayer(s)) + : this; + }, + resetStyle: function (t) { + return void 0 === t + ? this.eachLayer(this.resetStyle, this) + : ((t.options = l({}, t.defaultOptions)), this._setLayerStyle(t, this.options.style), this); + }, + setStyle: function (e) { + return this.eachLayer(function (t) { + this._setLayerStyle(t, e); + }, this); + }, + _setLayerStyle: function (t, e) { + t.setStyle && ('function' == typeof e && (e = e(t.feature)), t.setStyle(e)); + }, + }); + function bi(t, e) { + var i, + n, + o, + s, + r = 'Feature' === t.type ? t.geometry : t, + a = r ? r.coordinates : null, + h = [], + l = e && e.pointToLayer, + u = (e && e.coordsToLatLng) || Li; + if (!a && !r) return null; + switch (r.type) { + case 'Point': + return Pi(l, t, (i = u(a)), e); + case 'MultiPoint': + for (o = 0, s = a.length; o < s; o++) (i = u(a[o])), h.push(Pi(l, t, i, e)); + return new ci(h); + case 'LineString': + case 'MultiLineString': + return (n = Ti(a, 'LineString' === r.type ? 0 : 1, u)), new yi(n, e); + case 'Polygon': + case 'MultiPolygon': + return (n = Ti(a, 'Polygon' === r.type ? 1 : 2, u)), new xi(n, e); + case 'GeometryCollection': + for (o = 0, s = r.geometries.length; o < s; o++) { + var c = bi({ geometry: r.geometries[o], type: 'Feature', properties: t.properties }, e); + c && h.push(c); + } + return new ci(h); + case 'FeatureCollection': + for (o = 0, s = r.features.length; o < s; o++) { + var d = bi(r.features[o], e); + d && h.push(d); + } + return new ci(h); + default: + throw new Error('Invalid GeoJSON object.'); + } + } + function Pi(t, e, i, n) { + return t ? t(e, i) : new mi(i, n && n.markersInheritOptions && n); + } + function Li(t) { + return new v(t[1], t[0], t[2]); + } + function Ti(t, e, i) { + for (var n, o = [], s = 0, r = t.length; s < r; s++) (n = e ? Ti(t[s], e - 1, i) : (i || Li)(t[s])), o.push(n); + return o; + } + function Mi(t, e) { + return void 0 !== (t = w(t)).alt ? [i(t.lng, e), i(t.lat, e), i(t.alt, e)] : [i(t.lng, e), i(t.lat, e)]; + } + function zi(t, e, i, n) { + for (var o = [], s = 0, r = t.length; s < r; s++) o.push(e ? zi(t[s], I(t[s]) ? 0 : e - 1, i, n) : Mi(t[s], n)); + return !e && i && 0 < o.length && o.push(o[0].slice()), o; + } + function Ci(t, e) { + return t.feature ? l({}, t.feature, { geometry: e }) : Zi(e); + } + function Zi(t) { + return 'Feature' === t.type || 'FeatureCollection' === t.type + ? t + : { type: 'Feature', properties: {}, geometry: t }; + } + Tt = { + toGeoJSON: function (t) { + return Ci(this, { type: 'Point', coordinates: Mi(this.getLatLng(), t) }); + }, + }; + function Si(t, e) { + return new wi(t, e); + } + mi.include(Tt), + vi.include(Tt), + gi.include(Tt), + yi.include({ + toGeoJSON: function (t) { + var e = !I(this._latlngs); + return Ci(this, { + type: (e ? 'Multi' : '') + 'LineString', + coordinates: zi(this._latlngs, e ? 1 : 0, !1, t), + }); + }, + }), + xi.include({ + toGeoJSON: function (t) { + var e = !I(this._latlngs), + i = e && !I(this._latlngs[0]), + t = zi(this._latlngs, i ? 2 : e ? 1 : 0, !0, t); + return Ci(this, { type: (i ? 'Multi' : '') + 'Polygon', coordinates: (t = e ? t : [t]) }); + }, + }), + ui.include({ + toMultiPoint: function (e) { + var i = []; + return ( + this.eachLayer(function (t) { + i.push(t.toGeoJSON(e).geometry.coordinates); + }), + Ci(this, { type: 'MultiPoint', coordinates: i }) + ); + }, + toGeoJSON: function (e) { + var i, + n, + t = this.feature && this.feature.geometry && this.feature.geometry.type; + return 'MultiPoint' === t + ? this.toMultiPoint(e) + : ((i = 'GeometryCollection' === t), + (n = []), + this.eachLayer(function (t) { + t.toGeoJSON && + ((t = t.toGeoJSON(e)), + i + ? n.push(t.geometry) + : 'FeatureCollection' === (t = Zi(t)).type + ? n.push.apply(n, t.features) + : n.push(t)); + }), + i + ? Ci(this, { geometries: n, type: 'GeometryCollection' }) + : { type: 'FeatureCollection', features: n }); + }, + }); + var Mt = Si, + Ei = o.extend({ + options: { + opacity: 1, + alt: '', + interactive: !1, + crossOrigin: !1, + errorOverlayUrl: '', + zIndex: 1, + className: '', + }, + initialize: function (t, e, i) { + (this._url = t), (this._bounds = g(e)), c(this, i); + }, + onAdd: function () { + this._image || (this._initImage(), this.options.opacity < 1 && this._updateOpacity()), + this.options.interactive && + (M(this._image, 'leaflet-interactive'), this.addInteractiveTarget(this._image)), + this.getPane().appendChild(this._image), + this._reset(); + }, + onRemove: function () { + T(this._image), this.options.interactive && this.removeInteractiveTarget(this._image); + }, + setOpacity: function (t) { + return (this.options.opacity = t), this._image && this._updateOpacity(), this; + }, + setStyle: function (t) { + return t.opacity && this.setOpacity(t.opacity), this; + }, + bringToFront: function () { + return this._map && fe(this._image), this; + }, + bringToBack: function () { + return this._map && ge(this._image), this; + }, + setUrl: function (t) { + return (this._url = t), this._image && (this._image.src = t), this; + }, + setBounds: function (t) { + return (this._bounds = g(t)), this._map && this._reset(), this; + }, + getEvents: function () { + var t = { zoom: this._reset, viewreset: this._reset }; + return this._zoomAnimated && (t.zoomanim = this._animateZoom), t; + }, + setZIndex: function (t) { + return (this.options.zIndex = t), this._updateZIndex(), this; + }, + getBounds: function () { + return this._bounds; + }, + getElement: function () { + return this._image; + }, + _initImage: function () { + var t = 'IMG' === this._url.tagName, + e = (this._image = t ? this._url : P('img')); + M(e, 'leaflet-image-layer'), + this._zoomAnimated && M(e, 'leaflet-zoom-animated'), + this.options.className && M(e, this.options.className), + (e.onselectstart = u), + (e.onmousemove = u), + (e.onload = a(this.fire, this, 'load')), + (e.onerror = a(this._overlayOnError, this, 'error')), + (!this.options.crossOrigin && '' !== this.options.crossOrigin) || + (e.crossOrigin = !0 === this.options.crossOrigin ? '' : this.options.crossOrigin), + this.options.zIndex && this._updateZIndex(), + t ? (this._url = e.src) : ((e.src = this._url), (e.alt = this.options.alt)); + }, + _animateZoom: function (t) { + var e = this._map.getZoomScale(t.zoom), + t = this._map._latLngBoundsToNewLayerBounds(this._bounds, t.zoom, t.center).min; + be(this._image, t, e); + }, + _reset: function () { + var t = this._image, + e = new f( + this._map.latLngToLayerPoint(this._bounds.getNorthWest()), + this._map.latLngToLayerPoint(this._bounds.getSouthEast()) + ), + i = e.getSize(); + Z(t, e.min), (t.style.width = i.x + 'px'), (t.style.height = i.y + 'px'); + }, + _updateOpacity: function () { + C(this._image, this.options.opacity); + }, + _updateZIndex: function () { + this._image && + void 0 !== this.options.zIndex && + null !== this.options.zIndex && + (this._image.style.zIndex = this.options.zIndex); + }, + _overlayOnError: function () { + this.fire('error'); + var t = this.options.errorOverlayUrl; + t && this._url !== t && ((this._url = t), (this._image.src = t)); + }, + getCenter: function () { + return this._bounds.getCenter(); + }, + }), + ki = Ei.extend({ + options: { autoplay: !0, loop: !0, keepAspectRatio: !0, muted: !1, playsInline: !0 }, + _initImage: function () { + var t = 'VIDEO' === this._url.tagName, + e = (this._image = t ? this._url : P('video')); + if ( + (M(e, 'leaflet-image-layer'), + this._zoomAnimated && M(e, 'leaflet-zoom-animated'), + this.options.className && M(e, this.options.className), + (e.onselectstart = u), + (e.onmousemove = u), + (e.onloadeddata = a(this.fire, this, 'load')), + t) + ) { + for (var i = e.getElementsByTagName('source'), n = [], o = 0; o < i.length; o++) n.push(i[o].src); + this._url = 0 < i.length ? n : [e.src]; + } else { + d(this._url) || (this._url = [this._url]), + !this.options.keepAspectRatio && + Object.prototype.hasOwnProperty.call(e.style, 'objectFit') && + (e.style.objectFit = 'fill'), + (e.autoplay = !!this.options.autoplay), + (e.loop = !!this.options.loop), + (e.muted = !!this.options.muted), + (e.playsInline = !!this.options.playsInline); + for (var s = 0; s < this._url.length; s++) { + var r = P('source'); + (r.src = this._url[s]), e.appendChild(r); + } + } + }, + }); + var Oi = Ei.extend({ + _initImage: function () { + var t = (this._image = this._url); + M(t, 'leaflet-image-layer'), + this._zoomAnimated && M(t, 'leaflet-zoom-animated'), + this.options.className && M(t, this.options.className), + (t.onselectstart = u), + (t.onmousemove = u); + }, + }); + var Ai = o.extend({ + options: { interactive: !1, offset: [0, 0], className: '', pane: void 0, content: '' }, + initialize: function (t, e) { + t && (t instanceof v || d(t)) ? ((this._latlng = w(t)), c(this, e)) : (c(this, t), (this._source = e)), + this.options.content && (this._content = this.options.content); + }, + openOn: function (t) { + return (t = arguments.length ? t : this._source._map).hasLayer(this) || t.addLayer(this), this; + }, + close: function () { + return this._map && this._map.removeLayer(this), this; + }, + toggle: function (t) { + return ( + this._map + ? this.close() + : (arguments.length ? (this._source = t) : (t = this._source), + this._prepareOpen(), + this.openOn(t._map)), + this + ); + }, + onAdd: function (t) { + (this._zoomAnimated = t._zoomAnimated), + this._container || this._initLayout(), + t._fadeAnimated && C(this._container, 0), + clearTimeout(this._removeTimeout), + this.getPane().appendChild(this._container), + this.update(), + t._fadeAnimated && C(this._container, 1), + this.bringToFront(), + this.options.interactive && + (M(this._container, 'leaflet-interactive'), this.addInteractiveTarget(this._container)); + }, + onRemove: function (t) { + t._fadeAnimated + ? (C(this._container, 0), (this._removeTimeout = setTimeout(a(T, void 0, this._container), 200))) + : T(this._container), + this.options.interactive && + (z(this._container, 'leaflet-interactive'), this.removeInteractiveTarget(this._container)); + }, + getLatLng: function () { + return this._latlng; + }, + setLatLng: function (t) { + return (this._latlng = w(t)), this._map && (this._updatePosition(), this._adjustPan()), this; + }, + getContent: function () { + return this._content; + }, + setContent: function (t) { + return (this._content = t), this.update(), this; + }, + getElement: function () { + return this._container; + }, + update: function () { + this._map && + ((this._container.style.visibility = 'hidden'), + this._updateContent(), + this._updateLayout(), + this._updatePosition(), + (this._container.style.visibility = ''), + this._adjustPan()); + }, + getEvents: function () { + var t = { zoom: this._updatePosition, viewreset: this._updatePosition }; + return this._zoomAnimated && (t.zoomanim = this._animateZoom), t; + }, + isOpen: function () { + return !!this._map && this._map.hasLayer(this); + }, + bringToFront: function () { + return this._map && fe(this._container), this; + }, + bringToBack: function () { + return this._map && ge(this._container), this; + }, + _prepareOpen: function (t) { + if (!(i = this._source)._map) return !1; + if (i instanceof ci) { + var e, + i = null, + n = this._source._layers; + for (e in n) + if (n[e]._map) { + i = n[e]; + break; + } + if (!i) return !1; + this._source = i; + } + if (!t) + if (i.getCenter) t = i.getCenter(); + else if (i.getLatLng) t = i.getLatLng(); + else { + if (!i.getBounds) throw new Error('Unable to get source layer LatLng.'); + t = i.getBounds().getCenter(); + } + return this.setLatLng(t), this._map && this.update(), !0; + }, + _updateContent: function () { + if (this._content) { + var t = this._contentNode, + e = 'function' == typeof this._content ? this._content(this._source || this) : this._content; + if ('string' == typeof e) t.innerHTML = e; + else { + for (; t.hasChildNodes(); ) t.removeChild(t.firstChild); + t.appendChild(e); + } + this.fire('contentupdate'); + } + }, + _updatePosition: function () { + var t, e, i; + this._map && + ((e = this._map.latLngToLayerPoint(this._latlng)), + (t = m(this.options.offset)), + (i = this._getAnchor()), + this._zoomAnimated ? Z(this._container, e.add(i)) : (t = t.add(e).add(i)), + (e = this._containerBottom = -t.y), + (i = this._containerLeft = -Math.round(this._containerWidth / 2) + t.x), + (this._container.style.bottom = e + 'px'), + (this._container.style.left = i + 'px')); + }, + _getAnchor: function () { + return [0, 0]; + }, + }), + Bi = + (A.include({ + _initOverlay: function (t, e, i, n) { + var o = e; + return o instanceof t || (o = new t(n).setContent(e)), i && o.setLatLng(i), o; + }, + }), + o.include({ + _initOverlay: function (t, e, i, n) { + var o = i; + return ( + o instanceof t + ? (c(o, n), (o._source = this)) + : (o = e && !n ? e : new t(n, this)).setContent(i), + o + ); + }, + }), + Ai.extend({ + options: { + pane: 'popupPane', + offset: [0, 7], + maxWidth: 300, + minWidth: 50, + maxHeight: null, + autoPan: !0, + autoPanPaddingTopLeft: null, + autoPanPaddingBottomRight: null, + autoPanPadding: [5, 5], + keepInView: !1, + closeButton: !0, + autoClose: !0, + closeOnEscapeKey: !0, + className: '', + }, + openOn: function (t) { + return ( + !(t = arguments.length ? t : this._source._map).hasLayer(this) && + t._popup && + t._popup.options.autoClose && + t.removeLayer(t._popup), + (t._popup = this), + Ai.prototype.openOn.call(this, t) + ); + }, + onAdd: function (t) { + Ai.prototype.onAdd.call(this, t), + t.fire('popupopen', { popup: this }), + this._source && + (this._source.fire('popupopen', { popup: this }, !0), + this._source instanceof fi || this._source.on('preclick', Ae)); + }, + onRemove: function (t) { + Ai.prototype.onRemove.call(this, t), + t.fire('popupclose', { popup: this }), + this._source && + (this._source.fire('popupclose', { popup: this }, !0), + this._source instanceof fi || this._source.off('preclick', Ae)); + }, + getEvents: function () { + var t = Ai.prototype.getEvents.call(this); + return ( + (void 0 !== this.options.closeOnClick + ? this.options.closeOnClick + : this._map.options.closePopupOnClick) && (t.preclick = this.close), + this.options.keepInView && (t.moveend = this._adjustPan), + t + ); + }, + _initLayout: function () { + var t = 'leaflet-popup', + e = (this._container = P( + 'div', + t + ' ' + (this.options.className || '') + ' leaflet-zoom-animated' + )), + i = (this._wrapper = P('div', t + '-content-wrapper', e)); + (this._contentNode = P('div', t + '-content', i)), + Ie(e), + Be(this._contentNode), + S(e, 'contextmenu', Ae), + (this._tipContainer = P('div', t + '-tip-container', e)), + (this._tip = P('div', t + '-tip', this._tipContainer)), + this.options.closeButton && + ((i = this._closeButton = P('a', t + '-close-button', e)).setAttribute('role', 'button'), + i.setAttribute('aria-label', 'Close popup'), + (i.href = '#close'), + (i.innerHTML = ''), + S( + i, + 'click', + function (t) { + O(t), this.close(); + }, + this + )); + }, + _updateLayout: function () { + var t = this._contentNode, + e = t.style, + i = ((e.width = ''), (e.whiteSpace = 'nowrap'), t.offsetWidth), + i = Math.min(i, this.options.maxWidth), + i = + ((i = Math.max(i, this.options.minWidth)), + (e.width = i + 1 + 'px'), + (e.whiteSpace = ''), + (e.height = ''), + t.offsetHeight), + n = this.options.maxHeight, + o = 'leaflet-popup-scrolled'; + (n && n < i ? ((e.height = n + 'px'), M) : z)(t, o), + (this._containerWidth = this._container.offsetWidth); + }, + _animateZoom: function (t) { + var t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center), + e = this._getAnchor(); + Z(this._container, t.add(e)); + }, + _adjustPan: function () { + var t, e, i, n, o, s, r, a; + this.options.autoPan && + (this._map._panAnim && this._map._panAnim.stop(), + this._autopanning + ? (this._autopanning = !1) + : ((t = this._map), + (e = parseInt(pe(this._container, 'marginBottom'), 10) || 0), + (e = this._container.offsetHeight + e), + (a = this._containerWidth), + (i = new p(this._containerLeft, -e - this._containerBottom))._add(Pe(this._container)), + (i = t.layerPointToContainerPoint(i)), + (o = m(this.options.autoPanPadding)), + (n = m(this.options.autoPanPaddingTopLeft || o)), + (o = m(this.options.autoPanPaddingBottomRight || o)), + (s = t.getSize()), + (r = 0), + i.x + a + o.x > s.x && (r = i.x + a - s.x + o.x), + i.x - r - n.x < (a = 0) && (r = i.x - n.x), + i.y + e + o.y > s.y && (a = i.y + e - s.y + o.y), + i.y - a - n.y < 0 && (a = i.y - n.y), + (r || a) && + (this.options.keepInView && (this._autopanning = !0), + t.fire('autopanstart').panBy([r, a])))); + }, + _getAnchor: function () { + return m(this._source && this._source._getPopupAnchor ? this._source._getPopupAnchor() : [0, 0]); + }, + })), + Ii = + (A.mergeOptions({ closePopupOnClick: !0 }), + A.include({ + openPopup: function (t, e, i) { + return this._initOverlay(Bi, t, e, i).openOn(this), this; + }, + closePopup: function (t) { + return (t = arguments.length ? t : this._popup) && t.close(), this; + }, + }), + o.include({ + bindPopup: function (t, e) { + return ( + (this._popup = this._initOverlay(Bi, this._popup, t, e)), + this._popupHandlersAdded || + (this.on({ + click: this._openPopup, + keypress: this._onKeyPress, + remove: this.closePopup, + move: this._movePopup, + }), + (this._popupHandlersAdded = !0)), + this + ); + }, + unbindPopup: function () { + return ( + this._popup && + (this.off({ + click: this._openPopup, + keypress: this._onKeyPress, + remove: this.closePopup, + move: this._movePopup, + }), + (this._popupHandlersAdded = !1), + (this._popup = null)), + this + ); + }, + openPopup: function (t) { + return ( + this._popup && + (this instanceof ci || (this._popup._source = this), + this._popup._prepareOpen(t || this._latlng) && this._popup.openOn(this._map)), + this + ); + }, + closePopup: function () { + return this._popup && this._popup.close(), this; + }, + togglePopup: function () { + return this._popup && this._popup.toggle(this), this; + }, + isPopupOpen: function () { + return !!this._popup && this._popup.isOpen(); + }, + setPopupContent: function (t) { + return this._popup && this._popup.setContent(t), this; + }, + getPopup: function () { + return this._popup; + }, + _openPopup: function (t) { + var e; + this._popup && + this._map && + (Re(t), + (e = t.layer || t.target), + this._popup._source !== e || e instanceof fi + ? ((this._popup._source = e), this.openPopup(t.latlng)) + : this._map.hasLayer(this._popup) + ? this.closePopup() + : this.openPopup(t.latlng)); + }, + _movePopup: function (t) { + this._popup.setLatLng(t.latlng); + }, + _onKeyPress: function (t) { + 13 === t.originalEvent.keyCode && this._openPopup(t); + }, + }), + Ai.extend({ + options: { + pane: 'tooltipPane', + offset: [0, 0], + direction: 'auto', + permanent: !1, + sticky: !1, + opacity: 0.9, + }, + onAdd: function (t) { + Ai.prototype.onAdd.call(this, t), + this.setOpacity(this.options.opacity), + t.fire('tooltipopen', { tooltip: this }), + this._source && + (this.addEventParent(this._source), + this._source.fire('tooltipopen', { tooltip: this }, !0)); + }, + onRemove: function (t) { + Ai.prototype.onRemove.call(this, t), + t.fire('tooltipclose', { tooltip: this }), + this._source && + (this.removeEventParent(this._source), + this._source.fire('tooltipclose', { tooltip: this }, !0)); + }, + getEvents: function () { + var t = Ai.prototype.getEvents.call(this); + return this.options.permanent || (t.preclick = this.close), t; + }, + _initLayout: function () { + var t = + 'leaflet-tooltip ' + + (this.options.className || '') + + ' leaflet-zoom-' + + (this._zoomAnimated ? 'animated' : 'hide'); + (this._contentNode = this._container = P('div', t)), + this._container.setAttribute('role', 'tooltip'), + this._container.setAttribute('id', 'leaflet-tooltip-' + h(this)); + }, + _updateLayout: function () {}, + _adjustPan: function () {}, + _setPosition: function (t) { + var e, + i = this._map, + n = this._container, + o = i.latLngToContainerPoint(i.getCenter()), + i = i.layerPointToContainerPoint(t), + s = this.options.direction, + r = n.offsetWidth, + a = n.offsetHeight, + h = m(this.options.offset), + l = this._getAnchor(), + i = + 'top' === s + ? ((e = r / 2), a) + : 'bottom' === s + ? ((e = r / 2), 0) + : ((e = + 'center' === s + ? r / 2 + : 'right' === s + ? 0 + : 'left' === s + ? r + : i.x < o.x + ? ((s = 'right'), 0) + : ((s = 'left'), r + 2 * (h.x + l.x))), + a / 2); + (t = t + .subtract(m(e, i, !0)) + .add(h) + .add(l)), + z(n, 'leaflet-tooltip-right'), + z(n, 'leaflet-tooltip-left'), + z(n, 'leaflet-tooltip-top'), + z(n, 'leaflet-tooltip-bottom'), + M(n, 'leaflet-tooltip-' + s), + Z(n, t); + }, + _updatePosition: function () { + var t = this._map.latLngToLayerPoint(this._latlng); + this._setPosition(t); + }, + setOpacity: function (t) { + (this.options.opacity = t), this._container && C(this._container, t); + }, + _animateZoom: function (t) { + t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center); + this._setPosition(t); + }, + _getAnchor: function () { + return m( + this._source && this._source._getTooltipAnchor && !this.options.sticky + ? this._source._getTooltipAnchor() + : [0, 0] + ); + }, + })), + Ri = + (A.include({ + openTooltip: function (t, e, i) { + return this._initOverlay(Ii, t, e, i).openOn(this), this; + }, + closeTooltip: function (t) { + return t.close(), this; + }, + }), + o.include({ + bindTooltip: function (t, e) { + return ( + this._tooltip && this.isTooltipOpen() && this.unbindTooltip(), + (this._tooltip = this._initOverlay(Ii, this._tooltip, t, e)), + this._initTooltipInteractions(), + this._tooltip.options.permanent && this._map && this._map.hasLayer(this) && this.openTooltip(), + this + ); + }, + unbindTooltip: function () { + return ( + this._tooltip && + (this._initTooltipInteractions(!0), this.closeTooltip(), (this._tooltip = null)), + this + ); + }, + _initTooltipInteractions: function (t) { + var e, i; + (!t && this._tooltipHandlersAdded) || + ((e = t ? 'off' : 'on'), + (i = { remove: this.closeTooltip, move: this._moveTooltip }), + this._tooltip.options.permanent + ? (i.add = this._openTooltip) + : ((i.mouseover = this._openTooltip), + (i.mouseout = this.closeTooltip), + (i.click = this._openTooltip), + this._map ? this._addFocusListeners() : (i.add = this._addFocusListeners)), + this._tooltip.options.sticky && (i.mousemove = this._moveTooltip), + this[e](i), + (this._tooltipHandlersAdded = !t)); + }, + openTooltip: function (t) { + return ( + this._tooltip && + (this instanceof ci || (this._tooltip._source = this), + this._tooltip._prepareOpen(t) && + (this._tooltip.openOn(this._map), + this.getElement + ? this._setAriaDescribedByOnLayer(this) + : this.eachLayer && this.eachLayer(this._setAriaDescribedByOnLayer, this))), + this + ); + }, + closeTooltip: function () { + if (this._tooltip) return this._tooltip.close(); + }, + toggleTooltip: function () { + return this._tooltip && this._tooltip.toggle(this), this; + }, + isTooltipOpen: function () { + return this._tooltip.isOpen(); + }, + setTooltipContent: function (t) { + return this._tooltip && this._tooltip.setContent(t), this; + }, + getTooltip: function () { + return this._tooltip; + }, + _addFocusListeners: function () { + this.getElement + ? this._addFocusListenersOnLayer(this) + : this.eachLayer && this.eachLayer(this._addFocusListenersOnLayer, this); + }, + _addFocusListenersOnLayer: function (t) { + var e = 'function' == typeof t.getElement && t.getElement(); + e && + (S( + e, + 'focus', + function () { + (this._tooltip._source = t), this.openTooltip(); + }, + this + ), + S(e, 'blur', this.closeTooltip, this)); + }, + _setAriaDescribedByOnLayer: function (t) { + t = 'function' == typeof t.getElement && t.getElement(); + t && t.setAttribute('aria-describedby', this._tooltip._container.id); + }, + _openTooltip: function (t) { + var e; + this._tooltip && + this._map && + (this._map.dragging && this._map.dragging.moving() && !this._openOnceFlag + ? ((this._openOnceFlag = !0), + (e = this)._map.once('moveend', function () { + (e._openOnceFlag = !1), e._openTooltip(t); + })) + : ((this._tooltip._source = t.layer || t.target), + this.openTooltip(this._tooltip.options.sticky ? t.latlng : void 0))); + }, + _moveTooltip: function (t) { + var e = t.latlng; + this._tooltip.options.sticky && + t.originalEvent && + ((t = this._map.mouseEventToContainerPoint(t.originalEvent)), + (t = this._map.containerPointToLayerPoint(t)), + (e = this._map.layerPointToLatLng(t))), + this._tooltip.setLatLng(e); + }, + }), + di.extend({ + options: { iconSize: [12, 12], html: !1, bgPos: null, className: 'leaflet-div-icon' }, + createIcon: function (t) { + var t = t && 'DIV' === t.tagName ? t : document.createElement('div'), + e = this.options; + return ( + e.html instanceof Element + ? (me(t), t.appendChild(e.html)) + : (t.innerHTML = !1 !== e.html ? e.html : ''), + e.bgPos && ((e = m(e.bgPos)), (t.style.backgroundPosition = -e.x + 'px ' + -e.y + 'px')), + this._setIconStyles(t, 'icon'), + t + ); + }, + createShadow: function () { + return null; + }, + })); + di.Default = _i; + var Ni = o.extend({ + options: { + tileSize: 256, + opacity: 1, + updateWhenIdle: b.mobile, + updateWhenZooming: !0, + updateInterval: 200, + zIndex: 1, + bounds: null, + minZoom: 0, + maxZoom: void 0, + maxNativeZoom: void 0, + minNativeZoom: void 0, + noWrap: !1, + pane: 'tilePane', + className: '', + keepBuffer: 2, + }, + initialize: function (t) { + c(this, t); + }, + onAdd: function () { + this._initContainer(), (this._levels = {}), (this._tiles = {}), this._resetView(); + }, + beforeAdd: function (t) { + t._addZoomLimit(this); + }, + onRemove: function (t) { + this._removeAllTiles(), + T(this._container), + t._removeZoomLimit(this), + (this._container = null), + (this._tileZoom = void 0); + }, + bringToFront: function () { + return this._map && (fe(this._container), this._setAutoZIndex(Math.max)), this; + }, + bringToBack: function () { + return this._map && (ge(this._container), this._setAutoZIndex(Math.min)), this; + }, + getContainer: function () { + return this._container; + }, + setOpacity: function (t) { + return (this.options.opacity = t), this._updateOpacity(), this; + }, + setZIndex: function (t) { + return (this.options.zIndex = t), this._updateZIndex(), this; + }, + isLoading: function () { + return this._loading; + }, + redraw: function () { + var t; + return ( + this._map && + (this._removeAllTiles(), + (t = this._clampZoom(this._map.getZoom())) !== this._tileZoom && + ((this._tileZoom = t), this._updateLevels()), + this._update()), + this + ); + }, + getEvents: function () { + var t = { + viewprereset: this._invalidateAll, + viewreset: this._resetView, + zoom: this._resetView, + moveend: this._onMoveEnd, + }; + return ( + this.options.updateWhenIdle || + (this._onMove || (this._onMove = j(this._onMoveEnd, this.options.updateInterval, this)), + (t.move = this._onMove)), + this._zoomAnimated && (t.zoomanim = this._animateZoom), + t + ); + }, + createTile: function () { + return document.createElement('div'); + }, + getTileSize: function () { + var t = this.options.tileSize; + return t instanceof p ? t : new p(t, t); + }, + _updateZIndex: function () { + this._container && + void 0 !== this.options.zIndex && + null !== this.options.zIndex && + (this._container.style.zIndex = this.options.zIndex); + }, + _setAutoZIndex: function (t) { + for (var e, i = this.getPane().children, n = -t(-1 / 0, 1 / 0), o = 0, s = i.length; o < s; o++) + (e = i[o].style.zIndex), i[o] !== this._container && e && (n = t(n, +e)); + isFinite(n) && ((this.options.zIndex = n + t(-1, 1)), this._updateZIndex()); + }, + _updateOpacity: function () { + if (this._map && !b.ielt9) { + C(this._container, this.options.opacity); + var t, + e = +new Date(), + i = !1, + n = !1; + for (t in this._tiles) { + var o, + s = this._tiles[t]; + s.current && + s.loaded && + ((o = Math.min(1, (e - s.loaded) / 200)), + C(s.el, o), + o < 1 ? (i = !0) : (s.active ? (n = !0) : this._onOpaqueTile(s), (s.active = !0))); + } + n && !this._noPrune && this._pruneTiles(), + i && (r(this._fadeFrame), (this._fadeFrame = x(this._updateOpacity, this))); + } + }, + _onOpaqueTile: u, + _initContainer: function () { + this._container || + ((this._container = P('div', 'leaflet-layer ' + (this.options.className || ''))), + this._updateZIndex(), + this.options.opacity < 1 && this._updateOpacity(), + this.getPane().appendChild(this._container)); + }, + _updateLevels: function () { + var t = this._tileZoom, + e = this.options.maxZoom; + if (void 0 !== t) { + for (var i in this._levels) + (i = Number(i)), + this._levels[i].el.children.length || i === t + ? ((this._levels[i].el.style.zIndex = e - Math.abs(t - i)), this._onUpdateLevel(i)) + : (T(this._levels[i].el), + this._removeTilesAtZoom(i), + this._onRemoveLevel(i), + delete this._levels[i]); + var n = this._levels[t], + o = this._map; + return ( + n || + (((n = this._levels[t] = {}).el = P( + 'div', + 'leaflet-tile-container leaflet-zoom-animated', + this._container + )), + (n.el.style.zIndex = e), + (n.origin = o.project(o.unproject(o.getPixelOrigin()), t).round()), + (n.zoom = t), + this._setZoomTransform(n, o.getCenter(), o.getZoom()), + u(n.el.offsetWidth), + this._onCreateLevel(n)), + (this._level = n) + ); + } + }, + _onUpdateLevel: u, + _onRemoveLevel: u, + _onCreateLevel: u, + _pruneTiles: function () { + if (this._map) { + var t, + e, + i, + n = this._map.getZoom(); + if (n > this.options.maxZoom || n < this.options.minZoom) this._removeAllTiles(); + else { + for (t in this._tiles) (i = this._tiles[t]).retain = i.current; + for (t in this._tiles) + (i = this._tiles[t]).current && + !i.active && + ((e = i.coords), + this._retainParent(e.x, e.y, e.z, e.z - 5) || this._retainChildren(e.x, e.y, e.z, e.z + 2)); + for (t in this._tiles) this._tiles[t].retain || this._removeTile(t); + } + } + }, + _removeTilesAtZoom: function (t) { + for (var e in this._tiles) this._tiles[e].coords.z === t && this._removeTile(e); + }, + _removeAllTiles: function () { + for (var t in this._tiles) this._removeTile(t); + }, + _invalidateAll: function () { + for (var t in this._levels) T(this._levels[t].el), this._onRemoveLevel(Number(t)), delete this._levels[t]; + this._removeAllTiles(), (this._tileZoom = void 0); + }, + _retainParent: function (t, e, i, n) { + var t = Math.floor(t / 2), + e = Math.floor(e / 2), + i = i - 1, + o = new p(+t, +e), + o = ((o.z = i), this._tileCoordsToKey(o)), + o = this._tiles[o]; + return o && o.active + ? (o.retain = !0) + : (o && o.loaded && (o.retain = !0), n < i && this._retainParent(t, e, i, n)); + }, + _retainChildren: function (t, e, i, n) { + for (var o = 2 * t; o < 2 * t + 2; o++) + for (var s = 2 * e; s < 2 * e + 2; s++) { + var r = new p(o, s), + r = ((r.z = i + 1), this._tileCoordsToKey(r)), + r = this._tiles[r]; + r && r.active + ? (r.retain = !0) + : (r && r.loaded && (r.retain = !0), i + 1 < n && this._retainChildren(o, s, i + 1, n)); + } + }, + _resetView: function (t) { + t = t && (t.pinch || t.flyTo); + this._setView(this._map.getCenter(), this._map.getZoom(), t, t); + }, + _animateZoom: function (t) { + this._setView(t.center, t.zoom, !0, t.noUpdate); + }, + _clampZoom: function (t) { + var e = this.options; + return void 0 !== e.minNativeZoom && t < e.minNativeZoom + ? e.minNativeZoom + : void 0 !== e.maxNativeZoom && e.maxNativeZoom < t + ? e.maxNativeZoom + : t; + }, + _setView: function (t, e, i, n) { + var o = Math.round(e), + o = + (void 0 !== this.options.maxZoom && o > this.options.maxZoom) || + (void 0 !== this.options.minZoom && o < this.options.minZoom) + ? void 0 + : this._clampZoom(o), + s = this.options.updateWhenZooming && o !== this._tileZoom; + (n && !s) || + ((this._tileZoom = o), + this._abortLoading && this._abortLoading(), + this._updateLevels(), + this._resetGrid(), + void 0 !== o && this._update(t), + i || this._pruneTiles(), + (this._noPrune = !!i)), + this._setZoomTransforms(t, e); + }, + _setZoomTransforms: function (t, e) { + for (var i in this._levels) this._setZoomTransform(this._levels[i], t, e); + }, + _setZoomTransform: function (t, e, i) { + var n = this._map.getZoomScale(i, t.zoom), + e = t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e, i)).round(); + b.any3d ? be(t.el, e, n) : Z(t.el, e); + }, + _resetGrid: function () { + var t = this._map, + e = t.options.crs, + i = (this._tileSize = this.getTileSize()), + n = this._tileZoom, + o = this._map.getPixelWorldBounds(this._tileZoom); + o && (this._globalTileRange = this._pxBoundsToTileRange(o)), + (this._wrapX = e.wrapLng && + !this.options.noWrap && [ + Math.floor(t.project([0, e.wrapLng[0]], n).x / i.x), + Math.ceil(t.project([0, e.wrapLng[1]], n).x / i.y), + ]), + (this._wrapY = e.wrapLat && + !this.options.noWrap && [ + Math.floor(t.project([e.wrapLat[0], 0], n).y / i.x), + Math.ceil(t.project([e.wrapLat[1], 0], n).y / i.y), + ]); + }, + _onMoveEnd: function () { + this._map && !this._map._animatingZoom && this._update(); + }, + _getTiledPixelBounds: function (t) { + var e = this._map, + i = e._animatingZoom ? Math.max(e._animateToZoom, e.getZoom()) : e.getZoom(), + i = e.getZoomScale(i, this._tileZoom), + t = e.project(t, this._tileZoom).floor(), + e = e.getSize().divideBy(2 * i); + return new f(t.subtract(e), t.add(e)); + }, + _update: function (t) { + var e = this._map; + if (e) { + var i = this._clampZoom(e.getZoom()); + if ((void 0 === t && (t = e.getCenter()), void 0 !== this._tileZoom)) { + var n, + e = this._getTiledPixelBounds(t), + o = this._pxBoundsToTileRange(e), + s = o.getCenter(), + r = [], + e = this.options.keepBuffer, + a = new f(o.getBottomLeft().subtract([e, -e]), o.getTopRight().add([e, -e])); + if (!(isFinite(o.min.x) && isFinite(o.min.y) && isFinite(o.max.x) && isFinite(o.max.y))) + throw new Error('Attempted to load an infinite number of tiles'); + for (n in this._tiles) { + var h = this._tiles[n].coords; + (h.z === this._tileZoom && a.contains(new p(h.x, h.y))) || (this._tiles[n].current = !1); + } + if (1 < Math.abs(i - this._tileZoom)) this._setView(t, i); + else { + for (var l = o.min.y; l <= o.max.y; l++) + for (var u = o.min.x; u <= o.max.x; u++) { + var c, + d = new p(u, l); + (d.z = this._tileZoom), + this._isValidTile(d) && + ((c = this._tiles[this._tileCoordsToKey(d)]) ? (c.current = !0) : r.push(d)); + } + if ( + (r.sort(function (t, e) { + return t.distanceTo(s) - e.distanceTo(s); + }), + 0 !== r.length) + ) { + this._loading || ((this._loading = !0), this.fire('loading')); + for (var _ = document.createDocumentFragment(), u = 0; u < r.length; u++) + this._addTile(r[u], _); + this._level.el.appendChild(_); + } + } + } + } + }, + _isValidTile: function (t) { + var e = this._map.options.crs; + if (!e.infinite) { + var i = this._globalTileRange; + if ( + (!e.wrapLng && (t.x < i.min.x || t.x > i.max.x)) || + (!e.wrapLat && (t.y < i.min.y || t.y > i.max.y)) + ) + return !1; + } + return !this.options.bounds || ((e = this._tileCoordsToBounds(t)), g(this.options.bounds).overlaps(e)); + }, + _keyToBounds: function (t) { + return this._tileCoordsToBounds(this._keyToTileCoords(t)); + }, + _tileCoordsToNwSe: function (t) { + var e = this._map, + i = this.getTileSize(), + n = t.scaleBy(i), + i = n.add(i); + return [e.unproject(n, t.z), e.unproject(i, t.z)]; + }, + _tileCoordsToBounds: function (t) { + (t = this._tileCoordsToNwSe(t)), (t = new s(t[0], t[1])); + return (t = this.options.noWrap ? t : this._map.wrapLatLngBounds(t)); + }, + _tileCoordsToKey: function (t) { + return t.x + ':' + t.y + ':' + t.z; + }, + _keyToTileCoords: function (t) { + var t = t.split(':'), + e = new p(+t[0], +t[1]); + return (e.z = +t[2]), e; + }, + _removeTile: function (t) { + var e = this._tiles[t]; + e && + (T(e.el), + delete this._tiles[t], + this.fire('tileunload', { tile: e.el, coords: this._keyToTileCoords(t) })); + }, + _initTile: function (t) { + M(t, 'leaflet-tile'); + var e = this.getTileSize(); + (t.style.width = e.x + 'px'), + (t.style.height = e.y + 'px'), + (t.onselectstart = u), + (t.onmousemove = u), + b.ielt9 && this.options.opacity < 1 && C(t, this.options.opacity); + }, + _addTile: function (t, e) { + var i = this._getTilePos(t), + n = this._tileCoordsToKey(t), + o = this.createTile(this._wrapCoords(t), a(this._tileReady, this, t)); + this._initTile(o), + this.createTile.length < 2 && x(a(this._tileReady, this, t, null, o)), + Z(o, i), + (this._tiles[n] = { el: o, coords: t, current: !0 }), + e.appendChild(o), + this.fire('tileloadstart', { tile: o, coords: t }); + }, + _tileReady: function (t, e, i) { + e && this.fire('tileerror', { error: e, tile: i, coords: t }); + var n = this._tileCoordsToKey(t); + (i = this._tiles[n]) && + ((i.loaded = +new Date()), + this._map._fadeAnimated + ? (C(i.el, 0), r(this._fadeFrame), (this._fadeFrame = x(this._updateOpacity, this))) + : ((i.active = !0), this._pruneTiles()), + e || (M(i.el, 'leaflet-tile-loaded'), this.fire('tileload', { tile: i.el, coords: t })), + this._noTilesToLoad() && + ((this._loading = !1), + this.fire('load'), + b.ielt9 || !this._map._fadeAnimated + ? x(this._pruneTiles, this) + : setTimeout(a(this._pruneTiles, this), 250))); + }, + _getTilePos: function (t) { + return t.scaleBy(this.getTileSize()).subtract(this._level.origin); + }, + _wrapCoords: function (t) { + var e = new p(this._wrapX ? H(t.x, this._wrapX) : t.x, this._wrapY ? H(t.y, this._wrapY) : t.y); + return (e.z = t.z), e; + }, + _pxBoundsToTileRange: function (t) { + var e = this.getTileSize(); + return new f(t.min.unscaleBy(e).floor(), t.max.unscaleBy(e).ceil().subtract([1, 1])); + }, + _noTilesToLoad: function () { + for (var t in this._tiles) if (!this._tiles[t].loaded) return !1; + return !0; + }, + }); + var Di = Ni.extend({ + options: { + minZoom: 0, + maxZoom: 18, + subdomains: 'abc', + errorTileUrl: '', + zoomOffset: 0, + tms: !1, + zoomReverse: !1, + detectRetina: !1, + crossOrigin: !1, + referrerPolicy: !1, + }, + initialize: function (t, e) { + (this._url = t), + (e = c(this, e)).detectRetina && b.retina && 0 < e.maxZoom + ? ((e.tileSize = Math.floor(e.tileSize / 2)), + e.zoomReverse + ? (e.zoomOffset--, (e.minZoom = Math.min(e.maxZoom, e.minZoom + 1))) + : (e.zoomOffset++, (e.maxZoom = Math.max(e.minZoom, e.maxZoom - 1))), + (e.minZoom = Math.max(0, e.minZoom))) + : e.zoomReverse + ? (e.minZoom = Math.min(e.maxZoom, e.minZoom)) + : (e.maxZoom = Math.max(e.minZoom, e.maxZoom)), + 'string' == typeof e.subdomains && (e.subdomains = e.subdomains.split('')), + this.on('tileunload', this._onTileRemove); + }, + setUrl: function (t, e) { + return this._url === t && void 0 === e && (e = !0), (this._url = t), e || this.redraw(), this; + }, + createTile: function (t, e) { + var i = document.createElement('img'); + return ( + S(i, 'load', a(this._tileOnLoad, this, e, i)), + S(i, 'error', a(this._tileOnError, this, e, i)), + (!this.options.crossOrigin && '' !== this.options.crossOrigin) || + (i.crossOrigin = !0 === this.options.crossOrigin ? '' : this.options.crossOrigin), + 'string' == typeof this.options.referrerPolicy && (i.referrerPolicy = this.options.referrerPolicy), + (i.alt = ''), + (i.src = this.getTileUrl(t)), + i + ); + }, + getTileUrl: function (t) { + var e = { r: b.retina ? '@2x' : '', s: this._getSubdomain(t), x: t.x, y: t.y, z: this._getZoomForUrl() }; + return ( + this._map && + !this._map.options.crs.infinite && + ((t = this._globalTileRange.max.y - t.y), this.options.tms && (e.y = t), (e['-y'] = t)), + q(this._url, l(e, this.options)) + ); + }, + _tileOnLoad: function (t, e) { + b.ielt9 ? setTimeout(a(t, this, null, e), 0) : t(null, e); + }, + _tileOnError: function (t, e, i) { + var n = this.options.errorTileUrl; + n && e.getAttribute('src') !== n && (e.src = n), t(i, e); + }, + _onTileRemove: function (t) { + t.tile.onload = null; + }, + _getZoomForUrl: function () { + var t = this._tileZoom, + e = this.options.maxZoom; + return (t = this.options.zoomReverse ? e - t : t) + this.options.zoomOffset; + }, + _getSubdomain: function (t) { + t = Math.abs(t.x + t.y) % this.options.subdomains.length; + return this.options.subdomains[t]; + }, + _abortLoading: function () { + var t, e, i; + for (t in this._tiles) + this._tiles[t].coords.z !== this._tileZoom && + (((i = this._tiles[t].el).onload = u), + (i.onerror = u), + i.complete || + ((i.src = K), + (e = this._tiles[t].coords), + T(i), + delete this._tiles[t], + this.fire('tileabort', { tile: i, coords: e }))); + }, + _removeTile: function (t) { + var e = this._tiles[t]; + if (e) return e.el.setAttribute('src', K), Ni.prototype._removeTile.call(this, t); + }, + _tileReady: function (t, e, i) { + if (this._map && (!i || i.getAttribute('src') !== K)) return Ni.prototype._tileReady.call(this, t, e, i); + }, + }); + function ji(t, e) { + return new Di(t, e); + } + var Hi = Di.extend({ + defaultWmsParams: { + service: 'WMS', + request: 'GetMap', + layers: '', + styles: '', + format: 'image/jpeg', + transparent: !1, + version: '1.1.1', + }, + options: { crs: null, uppercase: !1 }, + initialize: function (t, e) { + this._url = t; + var i, + n = l({}, this.defaultWmsParams); + for (i in e) i in this.options || (n[i] = e[i]); + var t = (e = c(this, e)).detectRetina && b.retina ? 2 : 1, + o = this.getTileSize(); + (n.width = o.x * t), (n.height = o.y * t), (this.wmsParams = n); + }, + onAdd: function (t) { + (this._crs = this.options.crs || t.options.crs), (this._wmsVersion = parseFloat(this.wmsParams.version)); + var e = 1.3 <= this._wmsVersion ? 'crs' : 'srs'; + (this.wmsParams[e] = this._crs.code), Di.prototype.onAdd.call(this, t); + }, + getTileUrl: function (t) { + var e = this._tileCoordsToNwSe(t), + i = this._crs, + i = _(i.project(e[0]), i.project(e[1])), + e = i.min, + i = i.max, + e = (1.3 <= this._wmsVersion && this._crs === li ? [e.y, e.x, i.y, i.x] : [e.x, e.y, i.x, i.y]).join( + ',' + ), + i = Di.prototype.getTileUrl.call(this, t); + return ( + i + U(this.wmsParams, i, this.options.uppercase) + (this.options.uppercase ? '&BBOX=' : '&bbox=') + e + ); + }, + setParams: function (t, e) { + return l(this.wmsParams, t), e || this.redraw(), this; + }, + }); + (Di.WMS = Hi), + (ji.wms = function (t, e) { + return new Hi(t, e); + }); + var Wi = o.extend({ + options: { padding: 0.1 }, + initialize: function (t) { + c(this, t), h(this), (this._layers = this._layers || {}); + }, + onAdd: function () { + this._container || (this._initContainer(), M(this._container, 'leaflet-zoom-animated')), + this.getPane().appendChild(this._container), + this._update(), + this.on('update', this._updatePaths, this); + }, + onRemove: function () { + this.off('update', this._updatePaths, this), this._destroyContainer(); + }, + getEvents: function () { + var t = { viewreset: this._reset, zoom: this._onZoom, moveend: this._update, zoomend: this._onZoomEnd }; + return this._zoomAnimated && (t.zoomanim = this._onAnimZoom), t; + }, + _onAnimZoom: function (t) { + this._updateTransform(t.center, t.zoom); + }, + _onZoom: function () { + this._updateTransform(this._map.getCenter(), this._map.getZoom()); + }, + _updateTransform: function (t, e) { + var i = this._map.getZoomScale(e, this._zoom), + n = this._map.getSize().multiplyBy(0.5 + this.options.padding), + o = this._map.project(this._center, e), + n = n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t, e)); + b.any3d ? be(this._container, n, i) : Z(this._container, n); + }, + _reset: function () { + for (var t in (this._update(), this._updateTransform(this._center, this._zoom), this._layers)) + this._layers[t]._reset(); + }, + _onZoomEnd: function () { + for (var t in this._layers) this._layers[t]._project(); + }, + _updatePaths: function () { + for (var t in this._layers) this._layers[t]._update(); + }, + _update: function () { + var t = this.options.padding, + e = this._map.getSize(), + i = this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round(); + (this._bounds = new f(i, i.add(e.multiplyBy(1 + 2 * t)).round())), + (this._center = this._map.getCenter()), + (this._zoom = this._map.getZoom()); + }, + }), + Fi = Wi.extend({ + options: { tolerance: 0 }, + getEvents: function () { + var t = Wi.prototype.getEvents.call(this); + return (t.viewprereset = this._onViewPreReset), t; + }, + _onViewPreReset: function () { + this._postponeUpdatePaths = !0; + }, + onAdd: function () { + Wi.prototype.onAdd.call(this), this._draw(); + }, + _initContainer: function () { + var t = (this._container = document.createElement('canvas')); + S(t, 'mousemove', this._onMouseMove, this), + S(t, 'click dblclick mousedown mouseup contextmenu', this._onClick, this), + S(t, 'mouseout', this._handleMouseOut, this), + (t._leaflet_disable_events = !0), + (this._ctx = t.getContext('2d')); + }, + _destroyContainer: function () { + r(this._redrawRequest), + delete this._ctx, + T(this._container), + k(this._container), + delete this._container; + }, + _updatePaths: function () { + if (!this._postponeUpdatePaths) { + for (var t in ((this._redrawBounds = null), this._layers)) this._layers[t]._update(); + this._redraw(); + } + }, + _update: function () { + var t, e, i, n; + (this._map._animatingZoom && this._bounds) || + (Wi.prototype._update.call(this), + (t = this._bounds), + (e = this._container), + (i = t.getSize()), + (n = b.retina ? 2 : 1), + Z(e, t.min), + (e.width = n * i.x), + (e.height = n * i.y), + (e.style.width = i.x + 'px'), + (e.style.height = i.y + 'px'), + b.retina && this._ctx.scale(2, 2), + this._ctx.translate(-t.min.x, -t.min.y), + this.fire('update')); + }, + _reset: function () { + Wi.prototype._reset.call(this), + this._postponeUpdatePaths && ((this._postponeUpdatePaths = !1), this._updatePaths()); + }, + _initPath: function (t) { + this._updateDashArray(t); + t = (this._layers[h(t)] = t)._order = { layer: t, prev: this._drawLast, next: null }; + this._drawLast && (this._drawLast.next = t), + (this._drawLast = t), + (this._drawFirst = this._drawFirst || this._drawLast); + }, + _addPath: function (t) { + this._requestRedraw(t); + }, + _removePath: function (t) { + var e = t._order, + i = e.next, + e = e.prev; + i ? (i.prev = e) : (this._drawLast = e), + e ? (e.next = i) : (this._drawFirst = i), + delete t._order, + delete this._layers[h(t)], + this._requestRedraw(t); + }, + _updatePath: function (t) { + this._extendRedrawBounds(t), t._project(), t._update(), this._requestRedraw(t); + }, + _updateStyle: function (t) { + this._updateDashArray(t), this._requestRedraw(t); + }, + _updateDashArray: function (t) { + if ('string' == typeof t.options.dashArray) { + for (var e, i = t.options.dashArray.split(/[, ]+/), n = [], o = 0; o < i.length; o++) { + if (((e = Number(i[o])), isNaN(e))) return; + n.push(e); + } + t.options._dashArray = n; + } else t.options._dashArray = t.options.dashArray; + }, + _requestRedraw: function (t) { + this._map && + (this._extendRedrawBounds(t), (this._redrawRequest = this._redrawRequest || x(this._redraw, this))); + }, + _extendRedrawBounds: function (t) { + var e; + t._pxBounds && + ((e = (t.options.weight || 0) + 1), + (this._redrawBounds = this._redrawBounds || new f()), + this._redrawBounds.extend(t._pxBounds.min.subtract([e, e])), + this._redrawBounds.extend(t._pxBounds.max.add([e, e]))); + }, + _redraw: function () { + (this._redrawRequest = null), + this._redrawBounds && (this._redrawBounds.min._floor(), this._redrawBounds.max._ceil()), + this._clear(), + this._draw(), + (this._redrawBounds = null); + }, + _clear: function () { + var t, + e = this._redrawBounds; + e + ? ((t = e.getSize()), this._ctx.clearRect(e.min.x, e.min.y, t.x, t.y)) + : (this._ctx.save(), + this._ctx.setTransform(1, 0, 0, 1, 0, 0), + this._ctx.clearRect(0, 0, this._container.width, this._container.height), + this._ctx.restore()); + }, + _draw: function () { + var t, + e, + i = this._redrawBounds; + this._ctx.save(), + i && + ((e = i.getSize()), + this._ctx.beginPath(), + this._ctx.rect(i.min.x, i.min.y, e.x, e.y), + this._ctx.clip()), + (this._drawing = !0); + for (var n = this._drawFirst; n; n = n.next) + (t = n.layer), (!i || (t._pxBounds && t._pxBounds.intersects(i))) && t._updatePath(); + (this._drawing = !1), this._ctx.restore(); + }, + _updatePoly: function (t, e) { + if (this._drawing) { + var i, + n, + o, + s, + r = t._parts, + a = r.length, + h = this._ctx; + if (a) { + for (h.beginPath(), i = 0; i < a; i++) { + for (n = 0, o = r[i].length; n < o; n++) + (s = r[i][n]), h[n ? 'lineTo' : 'moveTo'](s.x, s.y); + e && h.closePath(); + } + this._fillStroke(h, t); + } + } + }, + _updateCircle: function (t) { + var e, i, n, o; + this._drawing && + !t._empty() && + ((e = t._point), + (i = this._ctx), + (n = Math.max(Math.round(t._radius), 1)), + 1 != (o = (Math.max(Math.round(t._radiusY), 1) || n) / n) && (i.save(), i.scale(1, o)), + i.beginPath(), + i.arc(e.x, e.y / o, n, 0, 2 * Math.PI, !1), + 1 != o && i.restore(), + this._fillStroke(i, t)); + }, + _fillStroke: function (t, e) { + var i = e.options; + i.fill && + ((t.globalAlpha = i.fillOpacity), + (t.fillStyle = i.fillColor || i.color), + t.fill(i.fillRule || 'evenodd')), + i.stroke && + 0 !== i.weight && + (t.setLineDash && t.setLineDash((e.options && e.options._dashArray) || []), + (t.globalAlpha = i.opacity), + (t.lineWidth = i.weight), + (t.strokeStyle = i.color), + (t.lineCap = i.lineCap), + (t.lineJoin = i.lineJoin), + t.stroke()); + }, + _onClick: function (t) { + for (var e, i, n = this._map.mouseEventToLayerPoint(t), o = this._drawFirst; o; o = o.next) + (e = o.layer).options.interactive && + e._containsPoint(n) && + ((('click' === t.type || 'preclick' === t.type) && this._map._draggableMoved(e)) || (i = e)); + this._fireEvent(!!i && [i], t); + }, + _onMouseMove: function (t) { + var e; + !this._map || + this._map.dragging.moving() || + this._map._animatingZoom || + ((e = this._map.mouseEventToLayerPoint(t)), this._handleMouseHover(t, e)); + }, + _handleMouseOut: function (t) { + var e = this._hoveredLayer; + e && + (z(this._container, 'leaflet-interactive'), + this._fireEvent([e], t, 'mouseout'), + (this._hoveredLayer = null), + (this._mouseHoverThrottled = !1)); + }, + _handleMouseHover: function (t, e) { + if (!this._mouseHoverThrottled) { + for (var i, n, o = this._drawFirst; o; o = o.next) + (i = o.layer).options.interactive && i._containsPoint(e) && (n = i); + n !== this._hoveredLayer && + (this._handleMouseOut(t), + n && + (M(this._container, 'leaflet-interactive'), + this._fireEvent([n], t, 'mouseover'), + (this._hoveredLayer = n))), + this._fireEvent(!!this._hoveredLayer && [this._hoveredLayer], t), + (this._mouseHoverThrottled = !0), + setTimeout( + a(function () { + this._mouseHoverThrottled = !1; + }, this), + 32 + ); + } + }, + _fireEvent: function (t, e, i) { + this._map._fireDOMEvent(e, i || e.type, t); + }, + _bringToFront: function (t) { + var e, + i, + n = t._order; + n && + ((e = n.next), + (i = n.prev), + e && + ((e.prev = i) ? (i.next = e) : e && (this._drawFirst = e), + (n.prev = this._drawLast), + ((this._drawLast.next = n).next = null), + (this._drawLast = n), + this._requestRedraw(t))); + }, + _bringToBack: function (t) { + var e, + i, + n = t._order; + n && + ((e = n.next), + (i = n.prev) && + ((i.next = e) ? (e.prev = i) : i && (this._drawLast = i), + (n.prev = null), + (n.next = this._drawFirst), + (this._drawFirst.prev = n), + (this._drawFirst = n), + this._requestRedraw(t))); + }, + }); + function Ui(t) { + return b.canvas ? new Fi(t) : null; + } + var Vi = (function () { + try { + return ( + document.namespaces.add('lvml', 'urn:schemas-microsoft-com:vml'), + function (t) { + return document.createElement(''); + } + ); + } catch (t) {} + return function (t) { + return document.createElement('<' + t + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">'); + }; + })(), + zt = { + _initContainer: function () { + this._container = P('div', 'leaflet-vml-container'); + }, + _update: function () { + this._map._animatingZoom || (Wi.prototype._update.call(this), this.fire('update')); + }, + _initPath: function (t) { + var e = (t._container = Vi('shape')); + M(e, 'leaflet-vml-shape ' + (this.options.className || '')), + (e.coordsize = '1 1'), + (t._path = Vi('path')), + e.appendChild(t._path), + this._updateStyle(t), + (this._layers[h(t)] = t); + }, + _addPath: function (t) { + var e = t._container; + this._container.appendChild(e), t.options.interactive && t.addInteractiveTarget(e); + }, + _removePath: function (t) { + var e = t._container; + T(e), t.removeInteractiveTarget(e), delete this._layers[h(t)]; + }, + _updateStyle: function (t) { + var e = t._stroke, + i = t._fill, + n = t.options, + o = t._container; + (o.stroked = !!n.stroke), + (o.filled = !!n.fill), + n.stroke + ? ((e = e || (t._stroke = Vi('stroke'))), + o.appendChild(e), + (e.weight = n.weight + 'px'), + (e.color = n.color), + (e.opacity = n.opacity), + n.dashArray + ? (e.dashStyle = d(n.dashArray) + ? n.dashArray.join(' ') + : n.dashArray.replace(/( *, *)/g, ' ')) + : (e.dashStyle = ''), + (e.endcap = n.lineCap.replace('butt', 'flat')), + (e.joinstyle = n.lineJoin)) + : e && (o.removeChild(e), (t._stroke = null)), + n.fill + ? ((i = i || (t._fill = Vi('fill'))), + o.appendChild(i), + (i.color = n.fillColor || n.color), + (i.opacity = n.fillOpacity)) + : i && (o.removeChild(i), (t._fill = null)); + }, + _updateCircle: function (t) { + var e = t._point.round(), + i = Math.round(t._radius), + n = Math.round(t._radiusY || i); + this._setPath(t, t._empty() ? 'M0 0' : 'AL ' + e.x + ',' + e.y + ' ' + i + ',' + n + ' 0,23592600'); + }, + _setPath: function (t, e) { + t._path.v = e; + }, + _bringToFront: function (t) { + fe(t._container); + }, + _bringToBack: function (t) { + ge(t._container); + }, + }, + qi = b.vml ? Vi : ct, + Gi = Wi.extend({ + _initContainer: function () { + (this._container = qi('svg')), + this._container.setAttribute('pointer-events', 'none'), + (this._rootGroup = qi('g')), + this._container.appendChild(this._rootGroup); + }, + _destroyContainer: function () { + T(this._container), + k(this._container), + delete this._container, + delete this._rootGroup, + delete this._svgSize; + }, + _update: function () { + var t, e, i; + (this._map._animatingZoom && this._bounds) || + (Wi.prototype._update.call(this), + (e = (t = this._bounds).getSize()), + (i = this._container), + (this._svgSize && this._svgSize.equals(e)) || + ((this._svgSize = e), i.setAttribute('width', e.x), i.setAttribute('height', e.y)), + Z(i, t.min), + i.setAttribute('viewBox', [t.min.x, t.min.y, e.x, e.y].join(' ')), + this.fire('update')); + }, + _initPath: function (t) { + var e = (t._path = qi('path')); + t.options.className && M(e, t.options.className), + t.options.interactive && M(e, 'leaflet-interactive'), + this._updateStyle(t), + (this._layers[h(t)] = t); + }, + _addPath: function (t) { + this._rootGroup || this._initContainer(), + this._rootGroup.appendChild(t._path), + t.addInteractiveTarget(t._path); + }, + _removePath: function (t) { + T(t._path), t.removeInteractiveTarget(t._path), delete this._layers[h(t)]; + }, + _updatePath: function (t) { + t._project(), t._update(); + }, + _updateStyle: function (t) { + var e = t._path, + t = t.options; + e && + (t.stroke + ? (e.setAttribute('stroke', t.color), + e.setAttribute('stroke-opacity', t.opacity), + e.setAttribute('stroke-width', t.weight), + e.setAttribute('stroke-linecap', t.lineCap), + e.setAttribute('stroke-linejoin', t.lineJoin), + t.dashArray + ? e.setAttribute('stroke-dasharray', t.dashArray) + : e.removeAttribute('stroke-dasharray'), + t.dashOffset + ? e.setAttribute('stroke-dashoffset', t.dashOffset) + : e.removeAttribute('stroke-dashoffset')) + : e.setAttribute('stroke', 'none'), + t.fill + ? (e.setAttribute('fill', t.fillColor || t.color), + e.setAttribute('fill-opacity', t.fillOpacity), + e.setAttribute('fill-rule', t.fillRule || 'evenodd')) + : e.setAttribute('fill', 'none')); + }, + _updatePoly: function (t, e) { + this._setPath(t, dt(t._parts, e)); + }, + _updateCircle: function (t) { + var e = t._point, + i = Math.max(Math.round(t._radius), 1), + n = 'a' + i + ',' + (Math.max(Math.round(t._radiusY), 1) || i) + ' 0 1,0 ', + e = t._empty() ? 'M0 0' : 'M' + (e.x - i) + ',' + e.y + n + 2 * i + ',0 ' + n + 2 * -i + ',0 '; + this._setPath(t, e); + }, + _setPath: function (t, e) { + t._path.setAttribute('d', e); + }, + _bringToFront: function (t) { + fe(t._path); + }, + _bringToBack: function (t) { + ge(t._path); + }, + }); + function Ki(t) { + return b.svg || b.vml ? new Gi(t) : null; + } + b.vml && Gi.include(zt), + A.include({ + getRenderer: function (t) { + t = + (t = + t.options.renderer || + this._getPaneRenderer(t.options.pane) || + this.options.renderer || + this._renderer) || (this._renderer = this._createRenderer()); + return this.hasLayer(t) || this.addLayer(t), t; + }, + _getPaneRenderer: function (t) { + var e; + return ( + 'overlayPane' !== t && + void 0 !== t && + (void 0 === (e = this._paneRenderers[t]) && + ((e = this._createRenderer({ pane: t })), (this._paneRenderers[t] = e)), + e) + ); + }, + _createRenderer: function (t) { + return (this.options.preferCanvas && Ui(t)) || Ki(t); + }, + }); + var Yi = xi.extend({ + initialize: function (t, e) { + xi.prototype.initialize.call(this, this._boundsToLatLngs(t), e); + }, + setBounds: function (t) { + return this.setLatLngs(this._boundsToLatLngs(t)); + }, + _boundsToLatLngs: function (t) { + return [(t = g(t)).getSouthWest(), t.getNorthWest(), t.getNorthEast(), t.getSouthEast()]; + }, + }); + (Gi.create = qi), + (Gi.pointsToPath = dt), + (wi.geometryToLayer = bi), + (wi.coordsToLatLng = Li), + (wi.coordsToLatLngs = Ti), + (wi.latLngToCoords = Mi), + (wi.latLngsToCoords = zi), + (wi.getFeature = Ci), + (wi.asFeature = Zi), + A.mergeOptions({ boxZoom: !0 }); + var _t = n.extend({ + initialize: function (t) { + (this._map = t), + (this._container = t._container), + (this._pane = t._panes.overlayPane), + (this._resetStateTimeout = 0), + t.on('unload', this._destroy, this); + }, + addHooks: function () { + S(this._container, 'mousedown', this._onMouseDown, this); + }, + removeHooks: function () { + k(this._container, 'mousedown', this._onMouseDown, this); + }, + moved: function () { + return this._moved; + }, + _destroy: function () { + T(this._pane), delete this._pane; + }, + _resetState: function () { + (this._resetStateTimeout = 0), (this._moved = !1); + }, + _clearDeferredResetState: function () { + 0 !== this._resetStateTimeout && (clearTimeout(this._resetStateTimeout), (this._resetStateTimeout = 0)); + }, + _onMouseDown: function (t) { + if (!t.shiftKey || (1 !== t.which && 1 !== t.button)) return !1; + this._clearDeferredResetState(), + this._resetState(), + re(), + Le(), + (this._startPoint = this._map.mouseEventToContainerPoint(t)), + S( + document, + { + contextmenu: Re, + mousemove: this._onMouseMove, + mouseup: this._onMouseUp, + keydown: this._onKeyDown, + }, + this + ); + }, + _onMouseMove: function (t) { + this._moved || + ((this._moved = !0), + (this._box = P('div', 'leaflet-zoom-box', this._container)), + M(this._container, 'leaflet-crosshair'), + this._map.fire('boxzoomstart')), + (this._point = this._map.mouseEventToContainerPoint(t)); + var t = new f(this._point, this._startPoint), + e = t.getSize(); + Z(this._box, t.min), (this._box.style.width = e.x + 'px'), (this._box.style.height = e.y + 'px'); + }, + _finish: function () { + this._moved && (T(this._box), z(this._container, 'leaflet-crosshair')), + ae(), + Te(), + k( + document, + { + contextmenu: Re, + mousemove: this._onMouseMove, + mouseup: this._onMouseUp, + keydown: this._onKeyDown, + }, + this + ); + }, + _onMouseUp: function (t) { + (1 !== t.which && 1 !== t.button) || + (this._finish(), + this._moved && + (this._clearDeferredResetState(), + (this._resetStateTimeout = setTimeout(a(this._resetState, this), 0)), + (t = new s( + this._map.containerPointToLatLng(this._startPoint), + this._map.containerPointToLatLng(this._point) + )), + this._map.fitBounds(t).fire('boxzoomend', { boxZoomBounds: t }))); + }, + _onKeyDown: function (t) { + 27 === t.keyCode && (this._finish(), this._clearDeferredResetState(), this._resetState()); + }, + }), + Ct = + (A.addInitHook('addHandler', 'boxZoom', _t), + A.mergeOptions({ doubleClickZoom: !0 }), + n.extend({ + addHooks: function () { + this._map.on('dblclick', this._onDoubleClick, this); + }, + removeHooks: function () { + this._map.off('dblclick', this._onDoubleClick, this); + }, + _onDoubleClick: function (t) { + var e = this._map, + i = e.getZoom(), + n = e.options.zoomDelta, + i = t.originalEvent.shiftKey ? i - n : i + n; + 'center' === e.options.doubleClickZoom ? e.setZoom(i) : e.setZoomAround(t.containerPoint, i); + }, + })), + Zt = + (A.addInitHook('addHandler', 'doubleClickZoom', Ct), + A.mergeOptions({ + dragging: !0, + inertia: !0, + inertiaDeceleration: 3400, + inertiaMaxSpeed: 1 / 0, + easeLinearity: 0.2, + worldCopyJump: !1, + maxBoundsViscosity: 0, + }), + n.extend({ + addHooks: function () { + var t; + this._draggable || + ((t = this._map), + (this._draggable = new Xe(t._mapPane, t._container)), + this._draggable.on( + { dragstart: this._onDragStart, drag: this._onDrag, dragend: this._onDragEnd }, + this + ), + this._draggable.on('predrag', this._onPreDragLimit, this), + t.options.worldCopyJump && + (this._draggable.on('predrag', this._onPreDragWrap, this), + t.on('zoomend', this._onZoomEnd, this), + t.whenReady(this._onZoomEnd, this))), + M(this._map._container, 'leaflet-grab leaflet-touch-drag'), + this._draggable.enable(), + (this._positions = []), + (this._times = []); + }, + removeHooks: function () { + z(this._map._container, 'leaflet-grab'), + z(this._map._container, 'leaflet-touch-drag'), + this._draggable.disable(); + }, + moved: function () { + return this._draggable && this._draggable._moved; + }, + moving: function () { + return this._draggable && this._draggable._moving; + }, + _onDragStart: function () { + var t, + e = this._map; + e._stop(), + this._map.options.maxBounds && this._map.options.maxBoundsViscosity + ? ((t = g(this._map.options.maxBounds)), + (this._offsetLimit = _( + this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1), + this._map + .latLngToContainerPoint(t.getSouthEast()) + .multiplyBy(-1) + .add(this._map.getSize()) + )), + (this._viscosity = Math.min(1, Math.max(0, this._map.options.maxBoundsViscosity)))) + : (this._offsetLimit = null), + e.fire('movestart').fire('dragstart'), + e.options.inertia && ((this._positions = []), (this._times = [])); + }, + _onDrag: function (t) { + var e, i; + this._map.options.inertia && + ((e = this._lastTime = +new Date()), + (i = this._lastPos = this._draggable._absPos || this._draggable._newPos), + this._positions.push(i), + this._times.push(e), + this._prunePositions(e)), + this._map.fire('move', t).fire('drag', t); + }, + _prunePositions: function (t) { + for (; 1 < this._positions.length && 50 < t - this._times[0]; ) + this._positions.shift(), this._times.shift(); + }, + _onZoomEnd: function () { + var t = this._map.getSize().divideBy(2), + e = this._map.latLngToLayerPoint([0, 0]); + (this._initialWorldOffset = e.subtract(t).x), + (this._worldWidth = this._map.getPixelWorldBounds().getSize().x); + }, + _viscousLimit: function (t, e) { + return t - (t - e) * this._viscosity; + }, + _onPreDragLimit: function () { + var t, e; + this._viscosity && + this._offsetLimit && + ((t = this._draggable._newPos.subtract(this._draggable._startPos)), + (e = this._offsetLimit), + t.x < e.min.x && (t.x = this._viscousLimit(t.x, e.min.x)), + t.y < e.min.y && (t.y = this._viscousLimit(t.y, e.min.y)), + t.x > e.max.x && (t.x = this._viscousLimit(t.x, e.max.x)), + t.y > e.max.y && (t.y = this._viscousLimit(t.y, e.max.y)), + (this._draggable._newPos = this._draggable._startPos.add(t))); + }, + _onPreDragWrap: function () { + var t = this._worldWidth, + e = Math.round(t / 2), + i = this._initialWorldOffset, + n = this._draggable._newPos.x, + o = ((n - e + i) % t) + e - i, + n = ((n + e + i) % t) - e - i, + t = Math.abs(o + i) < Math.abs(n + i) ? o : n; + (this._draggable._absPos = this._draggable._newPos.clone()), (this._draggable._newPos.x = t); + }, + _onDragEnd: function (t) { + var e, + i, + n, + o, + s = this._map, + r = s.options, + a = !r.inertia || t.noInertia || this._times.length < 2; + s.fire('dragend', t), + !a && + (this._prunePositions(+new Date()), + (t = this._lastPos.subtract(this._positions[0])), + (a = (this._lastTime - this._times[0]) / 1e3), + (e = r.easeLinearity), + (a = (t = t.multiplyBy(e / a)).distanceTo([0, 0])), + (i = Math.min(r.inertiaMaxSpeed, a)), + (t = t.multiplyBy(i / a)), + (n = i / (r.inertiaDeceleration * e)), + (o = t.multiplyBy(-n / 2).round()).x || o.y) + ? ((o = s._limitOffset(o, s.options.maxBounds)), + x(function () { + s.panBy(o, { duration: n, easeLinearity: e, noMoveStart: !0, animate: !0 }); + })) + : s.fire('moveend'); + }, + })), + St = + (A.addInitHook('addHandler', 'dragging', Zt), + A.mergeOptions({ keyboard: !0, keyboardPanDelta: 80 }), + n.extend({ + keyCodes: { + left: [37], + right: [39], + down: [40], + up: [38], + zoomIn: [187, 107, 61, 171], + zoomOut: [189, 109, 54, 173], + }, + initialize: function (t) { + (this._map = t), + this._setPanDelta(t.options.keyboardPanDelta), + this._setZoomDelta(t.options.zoomDelta); + }, + addHooks: function () { + var t = this._map._container; + t.tabIndex <= 0 && (t.tabIndex = '0'), + S(t, { focus: this._onFocus, blur: this._onBlur, mousedown: this._onMouseDown }, this), + this._map.on({ focus: this._addHooks, blur: this._removeHooks }, this); + }, + removeHooks: function () { + this._removeHooks(), + k( + this._map._container, + { focus: this._onFocus, blur: this._onBlur, mousedown: this._onMouseDown }, + this + ), + this._map.off({ focus: this._addHooks, blur: this._removeHooks }, this); + }, + _onMouseDown: function () { + var t, e, i; + this._focused || + ((i = document.body), + (t = document.documentElement), + (e = i.scrollTop || t.scrollTop), + (i = i.scrollLeft || t.scrollLeft), + this._map._container.focus(), + window.scrollTo(i, e)); + }, + _onFocus: function () { + (this._focused = !0), this._map.fire('focus'); + }, + _onBlur: function () { + (this._focused = !1), this._map.fire('blur'); + }, + _setPanDelta: function (t) { + for (var e = (this._panKeys = {}), i = this.keyCodes, n = 0, o = i.left.length; n < o; n++) + e[i.left[n]] = [-1 * t, 0]; + for (n = 0, o = i.right.length; n < o; n++) e[i.right[n]] = [t, 0]; + for (n = 0, o = i.down.length; n < o; n++) e[i.down[n]] = [0, t]; + for (n = 0, o = i.up.length; n < o; n++) e[i.up[n]] = [0, -1 * t]; + }, + _setZoomDelta: function (t) { + for (var e = (this._zoomKeys = {}), i = this.keyCodes, n = 0, o = i.zoomIn.length; n < o; n++) + e[i.zoomIn[n]] = t; + for (n = 0, o = i.zoomOut.length; n < o; n++) e[i.zoomOut[n]] = -t; + }, + _addHooks: function () { + S(document, 'keydown', this._onKeyDown, this); + }, + _removeHooks: function () { + k(document, 'keydown', this._onKeyDown, this); + }, + _onKeyDown: function (t) { + if (!(t.altKey || t.ctrlKey || t.metaKey)) { + var e, + i, + n = t.keyCode, + o = this._map; + if (n in this._panKeys) + (o._panAnim && o._panAnim._inProgress) || + ((i = this._panKeys[n]), + t.shiftKey && (i = m(i).multiplyBy(3)), + o.options.maxBounds && (i = o._limitOffset(m(i), o.options.maxBounds)), + o.options.worldCopyJump + ? ((e = o.wrapLatLng(o.unproject(o.project(o.getCenter()).add(i)))), o.panTo(e)) + : o.panBy(i)); + else if (n in this._zoomKeys) o.setZoom(o.getZoom() + (t.shiftKey ? 3 : 1) * this._zoomKeys[n]); + else { + if (27 !== n || !o._popup || !o._popup.options.closeOnEscapeKey) return; + o.closePopup(); + } + Re(t); + } + }, + })), + Et = + (A.addInitHook('addHandler', 'keyboard', St), + A.mergeOptions({ scrollWheelZoom: !0, wheelDebounceTime: 40, wheelPxPerZoomLevel: 60 }), + n.extend({ + addHooks: function () { + S(this._map._container, 'wheel', this._onWheelScroll, this), (this._delta = 0); + }, + removeHooks: function () { + k(this._map._container, 'wheel', this._onWheelScroll, this); + }, + _onWheelScroll: function (t) { + var e = He(t), + i = this._map.options.wheelDebounceTime, + e = + ((this._delta += e), + (this._lastMousePos = this._map.mouseEventToContainerPoint(t)), + this._startTime || (this._startTime = +new Date()), + Math.max(i - (+new Date() - this._startTime), 0)); + clearTimeout(this._timer), (this._timer = setTimeout(a(this._performZoom, this), e)), Re(t); + }, + _performZoom: function () { + var t = this._map, + e = t.getZoom(), + i = this._map.options.zoomSnap || 0, + n = (t._stop(), this._delta / (4 * this._map.options.wheelPxPerZoomLevel)), + n = (4 * Math.log(2 / (1 + Math.exp(-Math.abs(n))))) / Math.LN2, + i = i ? Math.ceil(n / i) * i : n, + n = t._limitZoom(e + (0 < this._delta ? i : -i)) - e; + (this._delta = 0), + (this._startTime = null), + n && + ('center' === t.options.scrollWheelZoom + ? t.setZoom(e + n) + : t.setZoomAround(this._lastMousePos, e + n)); + }, + })), + kt = + (A.addInitHook('addHandler', 'scrollWheelZoom', Et), + A.mergeOptions({ tapHold: b.touchNative && b.safari && b.mobile, tapTolerance: 15 }), + n.extend({ + addHooks: function () { + S(this._map._container, 'touchstart', this._onDown, this); + }, + removeHooks: function () { + k(this._map._container, 'touchstart', this._onDown, this); + }, + _onDown: function (t) { + var e; + clearTimeout(this._holdTimeout), + 1 === t.touches.length && + ((e = t.touches[0]), + (this._startPos = this._newPos = new p(e.clientX, e.clientY)), + (this._holdTimeout = setTimeout( + a(function () { + this._cancel(), + this._isTapValid() && + (S(document, 'touchend', O), + S(document, 'touchend touchcancel', this._cancelClickPrevent), + this._simulateEvent('contextmenu', e)); + }, this), + 600 + )), + S(document, 'touchend touchcancel contextmenu', this._cancel, this), + S(document, 'touchmove', this._onMove, this)); + }, + _cancelClickPrevent: function t() { + k(document, 'touchend', O), k(document, 'touchend touchcancel', t); + }, + _cancel: function () { + clearTimeout(this._holdTimeout), + k(document, 'touchend touchcancel contextmenu', this._cancel, this), + k(document, 'touchmove', this._onMove, this); + }, + _onMove: function (t) { + t = t.touches[0]; + this._newPos = new p(t.clientX, t.clientY); + }, + _isTapValid: function () { + return this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance; + }, + _simulateEvent: function (t, e) { + t = new MouseEvent(t, { + bubbles: !0, + cancelable: !0, + view: window, + screenX: e.screenX, + screenY: e.screenY, + clientX: e.clientX, + clientY: e.clientY, + }); + (t._simulated = !0), e.target.dispatchEvent(t); + }, + })), + Ot = + (A.addInitHook('addHandler', 'tapHold', kt), + A.mergeOptions({ touchZoom: b.touch, bounceAtZoomLimits: !0 }), + n.extend({ + addHooks: function () { + M(this._map._container, 'leaflet-touch-zoom'), + S(this._map._container, 'touchstart', this._onTouchStart, this); + }, + removeHooks: function () { + z(this._map._container, 'leaflet-touch-zoom'), + k(this._map._container, 'touchstart', this._onTouchStart, this); + }, + _onTouchStart: function (t) { + var e, + i, + n = this._map; + !t.touches || + 2 !== t.touches.length || + n._animatingZoom || + this._zooming || + ((e = n.mouseEventToContainerPoint(t.touches[0])), + (i = n.mouseEventToContainerPoint(t.touches[1])), + (this._centerPoint = n.getSize()._divideBy(2)), + (this._startLatLng = n.containerPointToLatLng(this._centerPoint)), + 'center' !== n.options.touchZoom && + (this._pinchStartLatLng = n.containerPointToLatLng(e.add(i)._divideBy(2))), + (this._startDist = e.distanceTo(i)), + (this._startZoom = n.getZoom()), + (this._moved = !1), + (this._zooming = !0), + n._stop(), + S(document, 'touchmove', this._onTouchMove, this), + S(document, 'touchend touchcancel', this._onTouchEnd, this), + O(t)); + }, + _onTouchMove: function (t) { + if (t.touches && 2 === t.touches.length && this._zooming) { + var e = this._map, + i = e.mouseEventToContainerPoint(t.touches[0]), + n = e.mouseEventToContainerPoint(t.touches[1]), + o = i.distanceTo(n) / this._startDist; + if ( + ((this._zoom = e.getScaleZoom(o, this._startZoom)), + !e.options.bounceAtZoomLimits && + ((this._zoom < e.getMinZoom() && o < 1) || (this._zoom > e.getMaxZoom() && 1 < o)) && + (this._zoom = e._limitZoom(this._zoom)), + 'center' === e.options.touchZoom) + ) { + if (((this._center = this._startLatLng), 1 == o)) return; + } else { + i = i._add(n)._divideBy(2)._subtract(this._centerPoint); + if (1 == o && 0 === i.x && 0 === i.y) return; + this._center = e.unproject( + e.project(this._pinchStartLatLng, this._zoom).subtract(i), + this._zoom + ); + } + this._moved || (e._moveStart(!0, !1), (this._moved = !0)), r(this._animRequest); + n = a(e._move, e, this._center, this._zoom, { pinch: !0, round: !1 }, void 0); + (this._animRequest = x(n, this, !0)), O(t); + } + }, + _onTouchEnd: function () { + this._moved && this._zooming + ? ((this._zooming = !1), + r(this._animRequest), + k(document, 'touchmove', this._onTouchMove, this), + k(document, 'touchend touchcancel', this._onTouchEnd, this), + this._map.options.zoomAnimation + ? this._map._animateZoom( + this._center, + this._map._limitZoom(this._zoom), + !0, + this._map.options.zoomSnap + ) + : this._map._resetView(this._center, this._map._limitZoom(this._zoom))) + : (this._zooming = !1); + }, + })), + Xi = + (A.addInitHook('addHandler', 'touchZoom', Ot), + (A.BoxZoom = _t), + (A.DoubleClickZoom = Ct), + (A.Drag = Zt), + (A.Keyboard = St), + (A.ScrollWheelZoom = Et), + (A.TapHold = kt), + (A.TouchZoom = Ot), + (t.Bounds = f), + (t.Browser = b), + (t.CRS = ot), + (t.Canvas = Fi), + (t.Circle = vi), + (t.CircleMarker = gi), + (t.Class = et), + (t.Control = B), + (t.DivIcon = Ri), + (t.DivOverlay = Ai), + (t.DomEvent = mt), + (t.DomUtil = pt), + (t.Draggable = Xe), + (t.Evented = it), + (t.FeatureGroup = ci), + (t.GeoJSON = wi), + (t.GridLayer = Ni), + (t.Handler = n), + (t.Icon = di), + (t.ImageOverlay = Ei), + (t.LatLng = v), + (t.LatLngBounds = s), + (t.Layer = o), + (t.LayerGroup = ui), + (t.LineUtil = vt), + (t.Map = A), + (t.Marker = mi), + (t.Mixin = ft), + (t.Path = fi), + (t.Point = p), + (t.PolyUtil = gt), + (t.Polygon = xi), + (t.Polyline = yi), + (t.Popup = Bi), + (t.PosAnimation = Fe), + (t.Projection = wt), + (t.Rectangle = Yi), + (t.Renderer = Wi), + (t.SVG = Gi), + (t.SVGOverlay = Oi), + (t.TileLayer = Di), + (t.Tooltip = Ii), + (t.Transformation = at), + (t.Util = tt), + (t.VideoOverlay = ki), + (t.bind = a), + (t.bounds = _), + (t.canvas = Ui), + (t.circle = function (t, e, i) { + return new vi(t, e, i); + }), + (t.circleMarker = function (t, e) { + return new gi(t, e); + }), + (t.control = Ue), + (t.divIcon = function (t) { + return new Ri(t); + }), + (t.extend = l), + (t.featureGroup = function (t, e) { + return new ci(t, e); + }), + (t.geoJSON = Si), + (t.geoJson = Mt), + (t.gridLayer = function (t) { + return new Ni(t); + }), + (t.icon = function (t) { + return new di(t); + }), + (t.imageOverlay = function (t, e, i) { + return new Ei(t, e, i); + }), + (t.latLng = w), + (t.latLngBounds = g), + (t.layerGroup = function (t, e) { + return new ui(t, e); + }), + (t.map = function (t, e) { + return new A(t, e); + }), + (t.marker = function (t, e) { + return new mi(t, e); + }), + (t.point = m), + (t.polygon = function (t, e) { + return new xi(t, e); + }), + (t.polyline = function (t, e) { + return new yi(t, e); + }), + (t.popup = function (t, e) { + return new Bi(t, e); + }), + (t.rectangle = function (t, e) { + return new Yi(t, e); + }), + (t.setOptions = c), + (t.stamp = h), + (t.svg = Ki), + (t.svgOverlay = function (t, e, i) { + return new Oi(t, e, i); + }), + (t.tileLayer = ji), + (t.tooltip = function (t, e) { + return new Ii(t, e); + }), + (t.transformation = ht), + (t.version = '1.9.4'), + (t.videoOverlay = function (t, e, i) { + return new ki(t, e, i); + }), + window.L); + (t.noConflict = function () { + return (window.L = Xi), this; + }), + (window.L = t); +}); +//# sourceMappingURL=leaflet.js.map diff --git a/src/Files/Leaflet/README.MD b/src/Files/Leaflet/README.MD index 8bd6adc..7ace691 100644 --- a/src/Files/Leaflet/README.MD +++ b/src/Files/Leaflet/README.MD @@ -23,6 +23,12 @@ Store the files/addons to be used in runtime by Leaflet maps. - Github: https://github.com/Leaflet/Leaflet.Editable - NPM: https://www.npmjs.com/package/leaflet-editable +- **Leaflet.Path.Drag.min.js**: Drag handler for Leaflet vector features. It adds dragging API and events of L.Marker to L.Polygon and L.Polyline. + - Version: 1.9.5 + - Date: 17.02.2024 + - Github: https://github.com/w8r/Leaflet.Path.Drag + - NPM: https://www.npmjs.com/package/leaflet-path-drag + - **Leaflet.Routing.Machine.js + LeafletRouting.css**: Find the way from A to B on a Leaflet map. - Version: 3.2.12 - Date: 21.11.2018