├── .adonisrc.json ├── .editorconfig ├── .env.example ├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── ace ├── ace-manifest.json ├── app ├── Controllers │ └── Http │ │ ├── ImagesController.ts │ │ └── VideosController.ts ├── Exceptions │ └── Handler.ts ├── Models │ ├── File.ts │ ├── Image.ts │ ├── Video.ts │ └── VideoDataPoint.ts └── Services │ ├── FileService.ts │ └── MediaService.ts ├── commands └── index.ts ├── config ├── app.ts ├── bodyparser.ts ├── cors.ts ├── database.ts └── hash.ts ├── contracts ├── env.ts ├── events.ts └── hash.ts ├── database ├── factories │ └── index.ts └── migrations │ ├── 1623681218409_files.ts │ ├── 1623695892266_videos.ts │ ├── 1623700847990_video_data_points.ts │ └── 1624027532993_images.ts ├── docker-compose.yml ├── entry.sh ├── env.ts ├── frontend ├── assets │ └── thumbnail.png ├── image.html ├── image.js ├── index.html ├── index.js ├── openlayers │ ├── .gitignore │ ├── OpenLayers.debug.js │ ├── OpenLayers.js │ ├── OpenLayers.light.debug.js │ ├── OpenLayers.light.js │ ├── OpenLayers.mobile.debug.js │ ├── OpenLayers.mobile.js │ ├── apidoc_config │ │ ├── Languages.txt │ │ ├── Menu.txt │ │ ├── OL.css │ │ └── Topics.txt │ ├── art │ │ ├── arrows.svg │ │ ├── layer-switcher-maximize.svg │ │ ├── layer-switcher-minimize.svg │ │ ├── marker.svg │ │ ├── measuring-stick-off.svg │ │ ├── measuring-stick-on.svg │ │ ├── panning-hand-off.svg │ │ ├── panning-hand-on.svg │ │ ├── slider.svg │ │ ├── zoom-world.svg │ │ └── zoombar.svg │ ├── authors.txt │ ├── doc │ │ └── devdocs │ │ │ ├── index.html │ │ │ ├── index │ │ │ ├── Classes.html │ │ │ ├── Classes2.html │ │ │ ├── Constants.html │ │ │ ├── Constructor.html │ │ │ ├── Constructor2.html │ │ │ ├── Constructor3.html │ │ │ ├── Files.html │ │ │ ├── Functions.html │ │ │ ├── Functions10.html │ │ │ ├── Functions11.html │ │ │ ├── Functions12.html │ │ │ ├── Functions13.html │ │ │ ├── Functions14.html │ │ │ ├── Functions15.html │ │ │ ├── Functions16.html │ │ │ ├── Functions17.html │ │ │ ├── Functions18.html │ │ │ ├── Functions19.html │ │ │ ├── Functions2.html │ │ │ ├── Functions3.html │ │ │ ├── Functions4.html │ │ │ ├── Functions5.html │ │ │ ├── Functions6.html │ │ │ ├── Functions7.html │ │ │ ├── Functions8.html │ │ │ ├── Functions9.html │ │ │ ├── General.html │ │ │ ├── General10.html │ │ │ ├── General11.html │ │ │ ├── General12.html │ │ │ ├── General13.html │ │ │ ├── General14.html │ │ │ ├── General15.html │ │ │ ├── General16.html │ │ │ ├── General17.html │ │ │ ├── General18.html │ │ │ ├── General19.html │ │ │ ├── General2.html │ │ │ ├── General20.html │ │ │ ├── General21.html │ │ │ ├── General22.html │ │ │ ├── General23.html │ │ │ ├── General3.html │ │ │ ├── General4.html │ │ │ ├── General5.html │ │ │ ├── General6.html │ │ │ ├── General7.html │ │ │ ├── General8.html │ │ │ ├── General9.html │ │ │ ├── Properties.html │ │ │ ├── Properties10.html │ │ │ ├── Properties11.html │ │ │ ├── Properties12.html │ │ │ ├── Properties13.html │ │ │ ├── Properties14.html │ │ │ ├── Properties15.html │ │ │ ├── Properties16.html │ │ │ ├── Properties2.html │ │ │ ├── Properties3.html │ │ │ ├── Properties4.html │ │ │ ├── Properties5.html │ │ │ ├── Properties6.html │ │ │ ├── Properties7.html │ │ │ ├── Properties8.html │ │ │ └── Properties9.html │ │ │ ├── javascript │ │ │ ├── main.js │ │ │ ├── prettify.js │ │ │ └── searchdata.js │ │ │ ├── search │ │ │ ├── ClassesO.html │ │ │ ├── ClassesS.html │ │ │ ├── ClassesU.html │ │ │ ├── ConstantsB.html │ │ │ ├── ConstantsC.html │ │ │ ├── ConstantsD.html │ │ │ ├── ConstantsF.html │ │ │ ├── ConstantsI.html │ │ │ ├── ConstantsK.html │ │ │ ├── ConstantsL.html │ │ │ ├── ConstantsM.html │ │ │ ├── ConstantsO.html │ │ │ ├── ConstantsR.html │ │ │ ├── ConstantsS.html │ │ │ ├── ConstantsT.html │ │ │ ├── ConstantsU.html │ │ │ ├── ConstantsV.html │ │ │ ├── ConstantsX.html │ │ │ ├── ConstantsY.html │ │ │ ├── ConstantsZ.html │ │ │ ├── ConstructorA.html │ │ │ ├── ConstructorB.html │ │ │ ├── ConstructorC.html │ │ │ ├── ConstructorD.html │ │ │ ├── ConstructorE.html │ │ │ ├── ConstructorF.html │ │ │ ├── ConstructorG.html │ │ │ ├── ConstructorH.html │ │ │ ├── ConstructorI.html │ │ │ ├── ConstructorJ.html │ │ │ ├── ConstructorK.html │ │ │ ├── ConstructorL.html │ │ │ ├── ConstructorM.html │ │ │ ├── ConstructorN.html │ │ │ ├── ConstructorO.html │ │ │ ├── ConstructorP.html │ │ │ ├── ConstructorR.html │ │ │ ├── ConstructorS.html │ │ │ ├── ConstructorT.html │ │ │ ├── ConstructorU.html │ │ │ ├── ConstructorV.html │ │ │ ├── ConstructorW.html │ │ │ ├── ConstructorX.html │ │ │ ├── ConstructorY.html │ │ │ ├── ConstructorZ.html │ │ │ ├── FilesA.html │ │ │ ├── FilesC.html │ │ │ ├── FilesD.html │ │ │ ├── FilesI.html │ │ │ ├── FilesK.html │ │ │ ├── FilesO.html │ │ │ ├── FilesS.html │ │ │ ├── FilesV.html │ │ │ ├── FilesW.html │ │ │ ├── FunctionsA.html │ │ │ ├── FunctionsB.html │ │ │ ├── FunctionsC.html │ │ │ ├── FunctionsD.html │ │ │ ├── FunctionsE.html │ │ │ ├── FunctionsF.html │ │ │ ├── FunctionsG.html │ │ │ ├── FunctionsH.html │ │ │ ├── FunctionsI.html │ │ │ ├── FunctionsJ.html │ │ │ ├── FunctionsL.html │ │ │ ├── FunctionsM.html │ │ │ ├── FunctionsN.html │ │ │ ├── FunctionsO.html │ │ │ ├── FunctionsP.html │ │ │ ├── FunctionsQ.html │ │ │ ├── FunctionsR.html │ │ │ ├── FunctionsS.html │ │ │ ├── FunctionsSymbols.html │ │ │ ├── FunctionsT.html │ │ │ ├── FunctionsU.html │ │ │ ├── FunctionsV.html │ │ │ ├── FunctionsW.html │ │ │ ├── FunctionsZ.html │ │ │ ├── GeneralA.html │ │ │ ├── GeneralB.html │ │ │ ├── GeneralC.html │ │ │ ├── GeneralD.html │ │ │ ├── GeneralE.html │ │ │ ├── GeneralF.html │ │ │ ├── GeneralG.html │ │ │ ├── GeneralH.html │ │ │ ├── GeneralI.html │ │ │ ├── GeneralJ.html │ │ │ ├── GeneralK.html │ │ │ ├── GeneralL.html │ │ │ ├── GeneralM.html │ │ │ ├── GeneralN.html │ │ │ ├── GeneralO.html │ │ │ ├── GeneralP.html │ │ │ ├── GeneralQ.html │ │ │ ├── GeneralR.html │ │ │ ├── GeneralS.html │ │ │ ├── GeneralSymbols.html │ │ │ ├── GeneralT.html │ │ │ ├── GeneralU.html │ │ │ ├── GeneralV.html │ │ │ ├── GeneralW.html │ │ │ ├── GeneralX.html │ │ │ ├── GeneralY.html │ │ │ ├── GeneralZ.html │ │ │ ├── NoResults.html │ │ │ ├── PropertiesA.html │ │ │ ├── PropertiesB.html │ │ │ ├── PropertiesC.html │ │ │ ├── PropertiesD.html │ │ │ ├── PropertiesE.html │ │ │ ├── PropertiesF.html │ │ │ ├── PropertiesG.html │ │ │ ├── PropertiesH.html │ │ │ ├── PropertiesI.html │ │ │ ├── PropertiesJ.html │ │ │ ├── PropertiesK.html │ │ │ ├── PropertiesL.html │ │ │ ├── PropertiesM.html │ │ │ ├── PropertiesN.html │ │ │ ├── PropertiesO.html │ │ │ ├── PropertiesP.html │ │ │ ├── PropertiesQ.html │ │ │ ├── PropertiesR.html │ │ │ ├── PropertiesS.html │ │ │ ├── PropertiesSymbols.html │ │ │ ├── PropertiesT.html │ │ │ ├── PropertiesU.html │ │ │ ├── PropertiesV.html │ │ │ ├── PropertiesW.html │ │ │ ├── PropertiesX.html │ │ │ ├── PropertiesY.html │ │ │ └── PropertiesZ.html │ │ │ └── styles │ │ │ ├── 1.css │ │ │ ├── 2.css │ │ │ └── main.css │ ├── doc_config │ │ ├── Data │ │ │ ├── ClassHierarchy.nd │ │ │ ├── ConfigFileInfo.nd │ │ │ ├── FileInfo.nd │ │ │ ├── ImageFileInfo.nd │ │ │ ├── ImageReferenceTable.nd │ │ │ ├── IndexInfo.nd │ │ │ ├── PreviousMenuState.nd │ │ │ ├── PreviousSettings.nd │ │ │ └── SymbolTable.nd │ │ ├── Languages.txt │ │ ├── Menu.txt │ │ ├── OL.css │ │ └── Topics.txt │ ├── examples │ │ ├── Jugl.js │ │ ├── KMLParser.html │ │ ├── SLDSelect.html │ │ ├── WMSDescribeLayerParser.html │ │ ├── accelerometer.html │ │ ├── accessible-click-control.html │ │ ├── accessible-click-control.js │ │ ├── accessible-panel.html │ │ ├── accessible-panel.js │ │ ├── accessible.html │ │ ├── all-overlays-google.html │ │ ├── all-overlays-google.js │ │ ├── all-overlays.html │ │ ├── anchor-permalink.html │ │ ├── anchor-permalink.js │ │ ├── animated_panning.html │ │ ├── animator.js │ │ ├── arcgis93rest.html │ │ ├── arcgiscache_ags.html │ │ ├── arcgiscache_direct.html │ │ ├── arcgiscache_jsonp.html │ │ ├── arcims-thematic.html │ │ ├── arcims.html │ │ ├── attribution.html │ │ ├── behavior-fixed-http-gml.html │ │ ├── bing-tiles-restrictedzoom.html │ │ ├── bing-tiles-restrictedzoom.js │ │ ├── bing-tiles.html │ │ ├── bing-tiles.js │ │ ├── bing.html │ │ ├── bootstrap.html │ │ ├── bootstrap.js │ │ ├── boxes-vector.html │ │ ├── boxes.html │ │ ├── browser.html │ │ ├── browser.js │ │ ├── buffer.html │ │ ├── cache-read.html │ │ ├── cache-read.js │ │ ├── cache-write.html │ │ ├── cache-write.js │ │ ├── canvas-hit-detection.html │ │ ├── canvas-hit-detection.js │ │ ├── canvas-inspector.html │ │ ├── canvas-inspector.js │ │ ├── canvas.html │ │ ├── canvas.js │ │ ├── cartodb-geojson.html │ │ ├── click-handler.html │ │ ├── click.html │ │ ├── clientzoom.html │ │ ├── clientzoom.js │ │ ├── controls.html │ │ ├── cql-format.html │ │ ├── cql-format.js │ │ ├── cross-origin-xml.html │ │ ├── cross-origin-xml.js │ │ ├── cross-origin.html │ │ ├── cross-origin.js │ │ ├── custom-control.html │ │ ├── custom-style.html │ │ ├── data │ │ │ ├── 4_m_citylights_lg.gif │ │ │ ├── line.json │ │ │ ├── point.json │ │ │ ├── poly.json │ │ │ ├── roads.json │ │ │ └── tazdem.tiff │ │ ├── debug.html │ │ ├── document-drag.html │ │ ├── donut.html │ │ ├── donut.js │ │ ├── drag-feature.html │ │ ├── draw-feature.html │ │ ├── draw-undo-redo.html │ │ ├── draw-undo-redo.js │ │ ├── dynamic-text-layer.html │ │ ├── editing-methods.html │ │ ├── editing-methods.js │ │ ├── editingtoolbar-outside.html │ │ ├── editingtoolbar.html │ │ ├── encoded-polyline.html │ │ ├── events.html │ │ ├── example-list.html │ │ ├── example.html │ │ ├── example.js │ │ ├── feature-events.html │ │ ├── feature-events.js │ │ ├── filter-strategy.html │ │ ├── filter-strategy.js │ │ ├── filter.html │ │ ├── fractional-zoom.html │ │ ├── fullScreen.html │ │ ├── fullScreen.js │ │ ├── fusiontables.html │ │ ├── fusiontables.js │ │ ├── game-accel-ball.html │ │ ├── geojson-reprojected.html │ │ ├── geojson-reprojected.js │ │ ├── geojson-reprojected.json │ │ ├── geojson.html │ │ ├── geolocation.html │ │ ├── geolocation.js │ │ ├── georss-flickr.html │ │ ├── georss-markers.html │ │ ├── georss.html │ │ ├── georss.xml │ │ ├── getfeature-wfs.html │ │ ├── getfeatureinfo-control.html │ │ ├── getfeatureinfo-popup.html │ │ ├── gml-layer.html │ │ ├── gml │ │ │ ├── line.xml │ │ │ ├── multipoint.xml │ │ │ ├── multipolygon.xml │ │ │ ├── owls.xml │ │ │ ├── point.xml │ │ │ └── polygon.xml │ │ ├── google-static.html │ │ ├── google-static.js │ │ ├── google-v3-alloverlays.html │ │ ├── google-v3-alloverlays.js │ │ ├── google-v3.html │ │ ├── google-v3.js │ │ ├── google.html │ │ ├── graphic-name.html │ │ ├── graphic-name.js │ │ ├── graticule.html │ │ ├── gutter.html │ │ ├── highlight-feature.html │ │ ├── hover-handler.html │ │ ├── image-layer.html │ │ ├── img │ │ │ ├── check-round-green.png │ │ │ ├── check-round-grey.png │ │ │ ├── list.png │ │ │ ├── locate.png │ │ │ ├── marker_shadow.png │ │ │ ├── minus1.png │ │ │ ├── mobile-layers.png │ │ │ ├── mobile-loc.png │ │ │ ├── mobile-zoombar.png │ │ │ ├── openlayers.png │ │ │ ├── popupMatrix.jpg │ │ │ ├── small.jpg │ │ │ ├── thinlong.jpg │ │ │ ├── widelong.jpg │ │ │ └── wideshort.jpg │ │ ├── intersects.html │ │ ├── kamap.html │ │ ├── kamap.txt │ │ ├── kinetic.html │ │ ├── kinetic.js │ │ ├── kml-layer.html │ │ ├── kml-layer.js │ │ ├── kml-pointtrack.html │ │ ├── kml-pointtrack.js │ │ ├── kml-track.html │ │ ├── kml-track.js │ │ ├── kml-track.kml │ │ ├── kml │ │ │ ├── lines.kml │ │ │ ├── styles.kml │ │ │ └── sundials.kml │ │ ├── label-scale.html │ │ ├── label-scale.js │ │ ├── late-render.html │ │ ├── layer-opacity.html │ │ ├── layerLoadMonitoring.html │ │ ├── layerswitcher.html │ │ ├── light-basic.html │ │ ├── light-basic.js │ │ ├── lite.html │ │ ├── mapbox.html │ │ ├── mapbox.js │ │ ├── mapguide.html │ │ ├── mapquest.html │ │ ├── mapquest.js │ │ ├── mapserver.html │ │ ├── mapserver_untiled.html │ │ ├── marker-shadow.html │ │ ├── markerResize.html │ │ ├── markers.html │ │ ├── markersTextLayer.html │ │ ├── measure.html │ │ ├── mobile-base.js │ │ ├── mobile-drawing.html │ │ ├── mobile-drawing.js │ │ ├── mobile-jq.html │ │ ├── mobile-jq.js │ │ ├── mobile-layers.html │ │ ├── mobile-layers.js │ │ ├── mobile-navigation.html │ │ ├── mobile-navigation.js │ │ ├── mobile-sencha.html │ │ ├── mobile-sencha.js │ │ ├── mobile-wmts-vienna.css │ │ ├── mobile-wmts-vienna.html │ │ ├── mobile-wmts-vienna.js │ │ ├── mobile.html │ │ ├── mobile.js │ │ ├── modify-feature.html │ │ ├── mouse-position.html │ │ ├── mousewheel-interval.html │ │ ├── multiserver.html │ │ ├── multitouch.html │ │ ├── mvs.html │ │ ├── navigation-control.html │ │ ├── navigation-history.html │ │ ├── navtoolbar-alwaysZoom.html │ │ ├── navtoolbar-outsidemap.html │ │ ├── navtoolbar.html │ │ ├── offline-storage.html │ │ ├── offline-storage.js │ │ ├── openls.html │ │ ├── ordering.html │ │ ├── osm-google.html │ │ ├── osm-google.js │ │ ├── osm-grayscale.html │ │ ├── osm-marker-popup.html │ │ ├── osm-marker-popup.js │ │ ├── osm.html │ │ ├── osm │ │ │ └── sutton_coldfield.osm │ │ ├── overviewmap.html │ │ ├── pan-zoom-panels.html │ │ ├── panel.html │ │ ├── point-grid.html │ │ ├── point-grid.js │ │ ├── point-track-markers.html │ │ ├── polar-projections.html │ │ ├── polar-projections.js │ │ ├── popupMatrix.html │ │ ├── proxy.cgi │ │ ├── regular-polygons.html │ │ ├── resize-features.html │ │ ├── restricted-extent.html │ │ ├── rotate-features.html │ │ ├── select-feature-multilayer.html │ │ ├── select-feature-openpopup.html │ │ ├── select-feature.html │ │ ├── setextent.html │ │ ├── simplify-linestring.html │ │ ├── simplify-linestring.js │ │ ├── single-tile.html │ │ ├── single-tile.js │ │ ├── sld-parser.html │ │ ├── sld.html │ │ ├── sld.js │ │ ├── snap-grid.html │ │ ├── snap-grid.js │ │ ├── snap-split.html │ │ ├── snapping.html │ │ ├── sos.html │ │ ├── spherical-mercator.html │ │ ├── split-feature.html │ │ ├── strategy-bbox.html │ │ ├── strategy-cluster-extended.html │ │ ├── strategy-cluster-extended.js │ │ ├── strategy-cluster-threshold.html │ │ ├── strategy-cluster.html │ │ ├── strategy-paging.html │ │ ├── style-rules.html │ │ ├── style-rules.js │ │ ├── style.css │ │ ├── style.mobile-jq.css │ │ ├── stylemap.html │ │ ├── styles-context.html │ │ ├── styles-rotation.html │ │ ├── styles-unique.html │ │ ├── sundials-spherical-mercator.html │ │ ├── sundials.html │ │ ├── symbolizers-fill-stroke-graphic.html │ │ ├── tasmania │ │ │ ├── TasmaniaCities.xml │ │ │ ├── TasmaniaRoads.xml │ │ │ ├── TasmaniaStateBoundaries.xml │ │ │ ├── TasmaniaWaterBodies.xml │ │ │ └── sld-tasmania.xml │ │ ├── teleportation.html │ │ ├── textfile.txt │ │ ├── tile-origin.html │ │ ├── tile-origin.js │ │ ├── tilecache.html │ │ ├── tms.html │ │ ├── transform-feature.html │ │ ├── transition.html │ │ ├── using-proj4js.html │ │ ├── using-proj4js.js │ │ ├── utfgrid-geography-class.html │ │ ├── utfgrid-geography-class.js │ │ ├── utfgrid.html │ │ ├── utfgrid.js │ │ ├── utfgrid │ │ │ ├── bio_utfgrid │ │ │ │ └── 1 │ │ │ │ │ ├── 0 │ │ │ │ │ ├── 0.json │ │ │ │ │ ├── 1.json │ │ │ │ │ └── 2.json │ │ │ │ │ ├── 1 │ │ │ │ │ ├── 0.json │ │ │ │ │ ├── 1.json │ │ │ │ │ └── 2.json │ │ │ │ │ └── 2 │ │ │ │ │ ├── 0.json │ │ │ │ │ ├── 1.json │ │ │ │ │ └── 2.json │ │ │ ├── geography-class │ │ │ │ ├── 0 │ │ │ │ │ └── 0 │ │ │ │ │ │ └── 0.grid.json │ │ │ │ ├── 1 │ │ │ │ │ ├── 0 │ │ │ │ │ │ ├── 0.grid.json │ │ │ │ │ │ └── 1.grid.json │ │ │ │ │ └── 1 │ │ │ │ │ │ ├── 0.grid.json │ │ │ │ │ │ └── 1.grid.json │ │ │ │ └── 2 │ │ │ │ │ ├── 0 │ │ │ │ │ ├── 0.grid.json │ │ │ │ │ ├── 1.grid.json │ │ │ │ │ ├── 2.grid.json │ │ │ │ │ └── 3.grid.json │ │ │ │ │ ├── 1 │ │ │ │ │ ├── 0.grid.json │ │ │ │ │ ├── 1.grid.json │ │ │ │ │ ├── 2.grid.json │ │ │ │ │ └── 3.grid.json │ │ │ │ │ ├── 2 │ │ │ │ │ ├── 0.grid.json │ │ │ │ │ ├── 1.grid.json │ │ │ │ │ ├── 2.grid.json │ │ │ │ │ └── 3.grid.json │ │ │ │ │ └── 3 │ │ │ │ │ ├── 0.grid.json │ │ │ │ │ ├── 1.grid.json │ │ │ │ │ ├── 2.grid.json │ │ │ │ │ └── 3.grid.json │ │ │ └── world_utfgrid │ │ │ │ └── 1 │ │ │ │ ├── 0 │ │ │ │ ├── 0.json │ │ │ │ ├── 1.json │ │ │ │ └── 2.json │ │ │ │ ├── 1 │ │ │ │ ├── 0.json │ │ │ │ ├── 1.json │ │ │ │ └── 2.json │ │ │ │ └── 2 │ │ │ │ ├── 0.json │ │ │ │ ├── 1.json │ │ │ │ └── 2.json │ │ ├── utfgrid_twogrids.html │ │ ├── utfgrid_twogrids.js │ │ ├── vector-features-with-text.html │ │ ├── vector-features.html │ │ ├── vector-formats.html │ │ ├── web-mercator.html │ │ ├── web-mercator.js │ │ ├── wfs-filter.html │ │ ├── wfs-filter.js │ │ ├── wfs-protocol-transactions.html │ │ ├── wfs-protocol-transactions.js │ │ ├── wfs-protocol.html │ │ ├── wfs-reprojection.html │ │ ├── wfs-reprojection.js │ │ ├── wfs-snap-split.html │ │ ├── wfs-spatial-filter.html │ │ ├── wfs-spatial-filter.js │ │ ├── wfs-states.html │ │ ├── wfs-states.js │ │ ├── wmc.html │ │ ├── wms-long-url.html │ │ ├── wms-long-url.js │ │ ├── wms-untiled.html │ │ ├── wms-v13.html │ │ ├── wms.html │ │ ├── wmst.html │ │ ├── wmts-capabilities.html │ │ ├── wmts-capabilities.js │ │ ├── wmts-getfeatureinfo.html │ │ ├── wmts-getfeatureinfo.js │ │ ├── wmts.html │ │ ├── wmts.js │ │ ├── wps-client.html │ │ ├── wps-client.js │ │ ├── wps.html │ │ ├── wps.js │ │ ├── wrapDateLine.html │ │ ├── xhtml.html │ │ ├── xml.html │ │ ├── xml │ │ │ ├── features.xml │ │ │ ├── georss-flickr.xml │ │ │ ├── track1.xml │ │ │ └── wmsdescribelayer.xml │ │ ├── xyz-esri.html │ │ ├── yelp-georss.xml │ │ ├── zoom.html │ │ ├── zoom.js │ │ ├── zoomLevels.html │ │ └── zoomify.html │ ├── img │ │ ├── blank.gif │ │ ├── cloud-popup-relative.png │ │ ├── drag-rectangle-off.png │ │ ├── drag-rectangle-on.png │ │ ├── east-mini.png │ │ ├── imageMarker.png │ │ ├── layer-switcher-maximize.png │ │ ├── layer-switcher-minimize.png │ │ ├── marker-blue.png │ │ ├── marker-gold.png │ │ ├── marker-green.png │ │ ├── marker.png │ │ ├── measuring-stick-off.png │ │ ├── measuring-stick-on.png │ │ ├── north-mini.png │ │ ├── panning-hand-off.png │ │ ├── panning-hand-on.png │ │ ├── slider.png │ │ ├── south-mini.png │ │ ├── west-mini.png │ │ ├── zoom-minus-mini.png │ │ ├── zoom-plus-mini.png │ │ ├── zoom-world-mini.png │ │ └── zoombar.png │ ├── lib │ │ ├── Firebug │ │ │ ├── errorIcon.png │ │ │ ├── firebug.css │ │ │ ├── firebug.html │ │ │ ├── firebug.js │ │ │ ├── firebugx.js │ │ │ ├── infoIcon.png │ │ │ ├── license.txt │ │ │ ├── readme.txt │ │ │ └── warningIcon.png │ │ ├── OpenLayers.js │ │ ├── OpenLayers │ │ │ ├── Animation.js │ │ │ ├── BaseTypes.js │ │ │ ├── BaseTypes │ │ │ │ ├── Bounds.js │ │ │ │ ├── Class.js │ │ │ │ ├── Date.js │ │ │ │ ├── Element.js │ │ │ │ ├── LonLat.js │ │ │ │ ├── Pixel.js │ │ │ │ └── Size.js │ │ │ ├── Console.js │ │ │ ├── Control.js │ │ │ ├── Control │ │ │ │ ├── ArgParser.js │ │ │ │ ├── Attribution.js │ │ │ │ ├── Button.js │ │ │ │ ├── CacheRead.js │ │ │ │ ├── CacheWrite.js │ │ │ │ ├── DragFeature.js │ │ │ │ ├── DragPan.js │ │ │ │ ├── DrawFeature.js │ │ │ │ ├── EditingToolbar.js │ │ │ │ ├── Geolocate.js │ │ │ │ ├── GetFeature.js │ │ │ │ ├── Graticule.js │ │ │ │ ├── KeyboardDefaults.js │ │ │ │ ├── LayerSwitcher.js │ │ │ │ ├── Measure.js │ │ │ │ ├── ModifyFeature.js │ │ │ │ ├── MousePosition.js │ │ │ │ ├── NavToolbar.js │ │ │ │ ├── Navigation.js │ │ │ │ ├── NavigationHistory.js │ │ │ │ ├── OverviewMap.js │ │ │ │ ├── Pan.js │ │ │ │ ├── PanPanel.js │ │ │ │ ├── PanZoom.js │ │ │ │ ├── PanZoomBar.js │ │ │ │ ├── Panel.js │ │ │ │ ├── Permalink.js │ │ │ │ ├── PinchZoom.js │ │ │ │ ├── SLDSelect.js │ │ │ │ ├── Scale.js │ │ │ │ ├── ScaleLine.js │ │ │ │ ├── SelectFeature.js │ │ │ │ ├── Snapping.js │ │ │ │ ├── Split.js │ │ │ │ ├── TouchNavigation.js │ │ │ │ ├── TransformFeature.js │ │ │ │ ├── UTFGrid.js │ │ │ │ ├── WMSGetFeatureInfo.js │ │ │ │ ├── WMTSGetFeatureInfo.js │ │ │ │ ├── Zoom.js │ │ │ │ ├── ZoomBox.js │ │ │ │ ├── ZoomIn.js │ │ │ │ ├── ZoomOut.js │ │ │ │ ├── ZoomPanel.js │ │ │ │ └── ZoomToMaxExtent.js │ │ │ ├── Events.js │ │ │ ├── Events │ │ │ │ ├── buttonclick.js │ │ │ │ └── featureclick.js │ │ │ ├── Feature.js │ │ │ ├── Feature │ │ │ │ └── Vector.js │ │ │ ├── Filter.js │ │ │ ├── Filter │ │ │ │ ├── Comparison.js │ │ │ │ ├── FeatureId.js │ │ │ │ ├── Function.js │ │ │ │ ├── Logical.js │ │ │ │ └── Spatial.js │ │ │ ├── Format.js │ │ │ ├── Format │ │ │ │ ├── ArcXML.js │ │ │ │ ├── ArcXML │ │ │ │ │ └── Features.js │ │ │ │ ├── Atom.js │ │ │ │ ├── CQL.js │ │ │ │ ├── CSWGetDomain.js │ │ │ │ ├── CSWGetDomain │ │ │ │ │ └── v2_0_2.js │ │ │ │ ├── CSWGetRecords.js │ │ │ │ ├── CSWGetRecords │ │ │ │ │ └── v2_0_2.js │ │ │ │ ├── Context.js │ │ │ │ ├── EncodedPolyline.js │ │ │ │ ├── Filter.js │ │ │ │ ├── Filter │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_0_0.js │ │ │ │ │ └── v1_1_0.js │ │ │ │ ├── GML.js │ │ │ │ ├── GML │ │ │ │ │ ├── Base.js │ │ │ │ │ ├── v2.js │ │ │ │ │ └── v3.js │ │ │ │ ├── GPX.js │ │ │ │ ├── GeoJSON.js │ │ │ │ ├── GeoRSS.js │ │ │ │ ├── JSON.js │ │ │ │ ├── KML.js │ │ │ │ ├── OGCExceptionReport.js │ │ │ │ ├── OSM.js │ │ │ │ ├── OWSCommon.js │ │ │ │ ├── OWSCommon │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_0_0.js │ │ │ │ │ └── v1_1_0.js │ │ │ │ ├── OWSContext.js │ │ │ │ ├── OWSContext │ │ │ │ │ └── v0_3_1.js │ │ │ │ ├── QueryStringFilter.js │ │ │ │ ├── SLD.js │ │ │ │ ├── SLD │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_0_0.js │ │ │ │ │ └── v1_0_0_GeoServer.js │ │ │ │ ├── SOSCapabilities.js │ │ │ │ ├── SOSCapabilities │ │ │ │ │ └── v1_0_0.js │ │ │ │ ├── SOSGetFeatureOfInterest.js │ │ │ │ ├── SOSGetObservation.js │ │ │ │ ├── Text.js │ │ │ │ ├── WCSCapabilities.js │ │ │ │ ├── WCSCapabilities │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_0_0.js │ │ │ │ │ └── v1_1_0.js │ │ │ │ ├── WCSGetCoverage.js │ │ │ │ ├── WFS.js │ │ │ │ ├── WFSCapabilities.js │ │ │ │ ├── WFSCapabilities │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_0_0.js │ │ │ │ │ └── v1_1_0.js │ │ │ │ ├── WFSDescribeFeatureType.js │ │ │ │ ├── WFST.js │ │ │ │ ├── WFST │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_0_0.js │ │ │ │ │ └── v1_1_0.js │ │ │ │ ├── WKT.js │ │ │ │ ├── WMC.js │ │ │ │ ├── WMC │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_0_0.js │ │ │ │ │ └── v1_1_0.js │ │ │ │ ├── WMSCapabilities.js │ │ │ │ ├── WMSCapabilities │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_1.js │ │ │ │ │ ├── v1_1_0.js │ │ │ │ │ ├── v1_1_1.js │ │ │ │ │ ├── v1_1_1_WMSC.js │ │ │ │ │ ├── v1_3.js │ │ │ │ │ └── v1_3_0.js │ │ │ │ ├── WMSDescribeLayer.js │ │ │ │ ├── WMSDescribeLayer │ │ │ │ │ └── v1_1.js │ │ │ │ ├── WMSGetFeatureInfo.js │ │ │ │ ├── WMTSCapabilities.js │ │ │ │ ├── WMTSCapabilities │ │ │ │ │ └── v1_0_0.js │ │ │ │ ├── WPSCapabilities.js │ │ │ │ ├── WPSCapabilities │ │ │ │ │ └── v1_0_0.js │ │ │ │ ├── WPSDescribeProcess.js │ │ │ │ ├── WPSExecute.js │ │ │ │ ├── XLS.js │ │ │ │ ├── XLS │ │ │ │ │ ├── v1.js │ │ │ │ │ └── v1_1_0.js │ │ │ │ ├── XML.js │ │ │ │ └── XML │ │ │ │ │ └── VersionedOGC.js │ │ │ ├── Geometry.js │ │ │ ├── Geometry │ │ │ │ ├── Collection.js │ │ │ │ ├── Curve.js │ │ │ │ ├── LineString.js │ │ │ │ ├── LinearRing.js │ │ │ │ ├── MultiLineString.js │ │ │ │ ├── MultiPoint.js │ │ │ │ ├── MultiPolygon.js │ │ │ │ ├── Point.js │ │ │ │ └── Polygon.js │ │ │ ├── Handler.js │ │ │ ├── Handler │ │ │ │ ├── Box.js │ │ │ │ ├── Click.js │ │ │ │ ├── Drag.js │ │ │ │ ├── Feature.js │ │ │ │ ├── Hover.js │ │ │ │ ├── Keyboard.js │ │ │ │ ├── MouseWheel.js │ │ │ │ ├── Path.js │ │ │ │ ├── Pinch.js │ │ │ │ ├── Point.js │ │ │ │ ├── Polygon.js │ │ │ │ └── RegularPolygon.js │ │ │ ├── Icon.js │ │ │ ├── Kinetic.js │ │ │ ├── Lang.js │ │ │ ├── Lang │ │ │ │ ├── ar.js │ │ │ │ ├── be-tarask.js │ │ │ │ ├── bg.js │ │ │ │ ├── br.js │ │ │ │ ├── ca.js │ │ │ │ ├── cs-CZ.js │ │ │ │ ├── da-DK.js │ │ │ │ ├── de.js │ │ │ │ ├── el.js │ │ │ │ ├── en-CA.js │ │ │ │ ├── en.js │ │ │ │ ├── es.js │ │ │ │ ├── fi.js │ │ │ │ ├── fr.js │ │ │ │ ├── fur.js │ │ │ │ ├── gl.js │ │ │ │ ├── gsw.js │ │ │ │ ├── hr.js │ │ │ │ ├── hsb.js │ │ │ │ ├── hu.js │ │ │ │ ├── ia.js │ │ │ │ ├── id.js │ │ │ │ ├── io.js │ │ │ │ ├── is.js │ │ │ │ ├── it.js │ │ │ │ ├── ja.js │ │ │ │ ├── km.js │ │ │ │ ├── ksh.js │ │ │ │ ├── lt.js │ │ │ │ ├── nb.js │ │ │ │ ├── nds.js │ │ │ │ ├── nl.js │ │ │ │ ├── nn.js │ │ │ │ ├── oc.js │ │ │ │ ├── pl.js │ │ │ │ ├── pt-BR.js │ │ │ │ ├── pt.js │ │ │ │ ├── ro.js │ │ │ │ ├── ru.js │ │ │ │ ├── sk.js │ │ │ │ ├── sv-SE.js │ │ │ │ ├── te.js │ │ │ │ ├── vi.js │ │ │ │ ├── zh-CN.js │ │ │ │ └── zh-TW.js │ │ │ ├── Layer.js │ │ │ ├── Layer │ │ │ │ ├── ArcGIS93Rest.js │ │ │ │ ├── ArcGISCache.js │ │ │ │ ├── ArcIMS.js │ │ │ │ ├── Bing.js │ │ │ │ ├── Boxes.js │ │ │ │ ├── EventPane.js │ │ │ │ ├── FixedZoomLevels.js │ │ │ │ ├── GeoRSS.js │ │ │ │ ├── Google.js │ │ │ │ ├── Google │ │ │ │ │ └── v3.js │ │ │ │ ├── Grid.js │ │ │ │ ├── HTTPRequest.js │ │ │ │ ├── Image.js │ │ │ │ ├── KaMap.js │ │ │ │ ├── KaMapCache.js │ │ │ │ ├── MapGuide.js │ │ │ │ ├── MapServer.js │ │ │ │ ├── Markers.js │ │ │ │ ├── OSM.js │ │ │ │ ├── PointGrid.js │ │ │ │ ├── PointTrack.js │ │ │ │ ├── SphericalMercator.js │ │ │ │ ├── TMS.js │ │ │ │ ├── Text.js │ │ │ │ ├── TileCache.js │ │ │ │ ├── UTFGrid.js │ │ │ │ ├── Vector.js │ │ │ │ ├── Vector │ │ │ │ │ └── RootContainer.js │ │ │ │ ├── WMS.js │ │ │ │ ├── WMTS.js │ │ │ │ ├── WorldWind.js │ │ │ │ ├── XYZ.js │ │ │ │ └── Zoomify.js │ │ │ ├── Map.js │ │ │ ├── Marker.js │ │ │ ├── Marker │ │ │ │ └── Box.js │ │ │ ├── Popup.js │ │ │ ├── Popup │ │ │ │ ├── Anchored.js │ │ │ │ ├── Framed.js │ │ │ │ └── FramedCloud.js │ │ │ ├── Projection.js │ │ │ ├── Protocol.js │ │ │ ├── Protocol │ │ │ │ ├── CSW.js │ │ │ │ ├── CSW │ │ │ │ │ └── v2_0_2.js │ │ │ │ ├── HTTP.js │ │ │ │ ├── SOS.js │ │ │ │ ├── SOS │ │ │ │ │ └── v1_0_0.js │ │ │ │ ├── Script.js │ │ │ │ ├── WFS.js │ │ │ │ └── WFS │ │ │ │ │ ├── v1.js │ │ │ │ │ ├── v1_0_0.js │ │ │ │ │ └── v1_1_0.js │ │ │ ├── Renderer.js │ │ │ ├── Renderer │ │ │ │ ├── Canvas.js │ │ │ │ ├── Elements.js │ │ │ │ ├── SVG.js │ │ │ │ └── VML.js │ │ │ ├── Request.js │ │ │ ├── Request │ │ │ │ └── XMLHttpRequest.js │ │ │ ├── Rule.js │ │ │ ├── SingleFile.js │ │ │ ├── Spherical.js │ │ │ ├── Strategy.js │ │ │ ├── Strategy │ │ │ │ ├── BBOX.js │ │ │ │ ├── Cluster.js │ │ │ │ ├── Filter.js │ │ │ │ ├── Fixed.js │ │ │ │ ├── Paging.js │ │ │ │ ├── Refresh.js │ │ │ │ └── Save.js │ │ │ ├── Style.js │ │ │ ├── Style2.js │ │ │ ├── StyleMap.js │ │ │ ├── Symbolizer.js │ │ │ ├── Symbolizer │ │ │ │ ├── Line.js │ │ │ │ ├── Point.js │ │ │ │ ├── Polygon.js │ │ │ │ ├── Raster.js │ │ │ │ └── Text.js │ │ │ ├── Tile.js │ │ │ ├── Tile │ │ │ │ ├── Image.js │ │ │ │ ├── Image │ │ │ │ │ └── IFrame.js │ │ │ │ └── UTFGrid.js │ │ │ ├── TileManager.js │ │ │ ├── Tween.js │ │ │ ├── Util.js │ │ │ ├── Util │ │ │ │ └── vendorPrefix.js │ │ │ ├── WPSClient.js │ │ │ └── WPSProcess.js │ │ ├── Rico │ │ │ ├── Color.js │ │ │ ├── Corner.js │ │ │ └── license.js │ │ └── deprecated.js │ ├── license.txt │ ├── licenses │ │ ├── APACHE-2.0.txt │ │ ├── BSD-LICENSE.txt │ │ └── MIT-LICENSE.txt │ ├── marker.png │ ├── notes │ │ ├── 2.12.md │ │ └── 2.13.md │ ├── readme.md │ ├── tests │ │ ├── Animation.html │ │ ├── BaseTypes.html │ │ ├── BaseTypes │ │ │ ├── Bounds.html │ │ │ ├── Class.html │ │ │ ├── Date.html │ │ │ ├── Element.html │ │ │ ├── LonLat.html │ │ │ ├── Pixel.html │ │ │ └── Size.html │ │ ├── Console.html │ │ ├── Control.html │ │ ├── Control │ │ │ ├── ArgParser.html │ │ │ ├── Attribution.html │ │ │ ├── Button.html │ │ │ ├── CacheRead.html │ │ │ ├── CacheWrite.html │ │ │ ├── DragFeature.html │ │ │ ├── DragPan.html │ │ │ ├── DrawFeature.html │ │ │ ├── EditingToolbar.html │ │ │ ├── Geolocate.html │ │ │ ├── GetFeature.html │ │ │ ├── Graticule.html │ │ │ ├── KeyboardDefaults.html │ │ │ ├── LayerSwitcher.html │ │ │ ├── Measure.html │ │ │ ├── ModifyFeature.html │ │ │ ├── MousePosition.html │ │ │ ├── NavToolbar.html │ │ │ ├── Navigation.html │ │ │ ├── NavigationHistory.html │ │ │ ├── OverviewMap.html │ │ │ ├── Pan.html │ │ │ ├── PanPanel.html │ │ │ ├── PanZoom.html │ │ │ ├── PanZoomBar.html │ │ │ ├── Panel.html │ │ │ ├── Permalink.html │ │ │ ├── PinchZoom.html │ │ │ ├── SLDSelect.html │ │ │ ├── Scale.html │ │ │ ├── ScaleLine.html │ │ │ ├── SelectFeature.html │ │ │ ├── Snapping.html │ │ │ ├── Split.html │ │ │ ├── TouchNavigation.html │ │ │ ├── TransformFeature.html │ │ │ ├── UTFGrid.html │ │ │ ├── WMSGetFeatureInfo.html │ │ │ ├── WMTSGetFeatureInfo.html │ │ │ ├── Zoom.html │ │ │ ├── ZoomBox.html │ │ │ ├── ZoomIn.html │ │ │ ├── ZoomOut.html │ │ │ └── ZoomToMaxExtent.html │ │ ├── Events.html │ │ ├── Events │ │ │ ├── buttonclick.html │ │ │ └── featureclick.html │ │ ├── Extras.html │ │ ├── Feature.html │ │ ├── Feature │ │ │ └── Vector.html │ │ ├── Filter.html │ │ ├── Filter │ │ │ ├── Comparison.html │ │ │ ├── FeatureId.html │ │ │ ├── Logical.html │ │ │ └── Spatial.html │ │ ├── Format.html │ │ ├── Format │ │ │ ├── ArcXML.html │ │ │ ├── ArcXML │ │ │ │ └── Features.html │ │ │ ├── Atom.html │ │ │ ├── CQL.html │ │ │ ├── CSWGetDomain.html │ │ │ ├── CSWGetDomain │ │ │ │ ├── v2_0_2.html │ │ │ │ └── v2_0_2.js │ │ │ ├── CSWGetRecords.html │ │ │ ├── CSWGetRecords │ │ │ │ ├── v2_0_2.html │ │ │ │ └── v2_0_2.js │ │ │ ├── EncodedPolyline.html │ │ │ ├── Filter.html │ │ │ ├── Filter │ │ │ │ ├── v1.html │ │ │ │ ├── v1_0_0.html │ │ │ │ └── v1_1_0.html │ │ │ ├── GML.html │ │ │ ├── GML │ │ │ │ ├── cases.js │ │ │ │ ├── v2.html │ │ │ │ └── v3.html │ │ │ ├── GPX.html │ │ │ ├── GeoJSON.html │ │ │ ├── GeoRSS.html │ │ │ ├── JSON.html │ │ │ ├── KML.html │ │ │ ├── OGCExceptionReport.html │ │ │ ├── OSM.html │ │ │ ├── OWSCommon │ │ │ │ ├── v1_0_0.html │ │ │ │ └── v1_1_0.html │ │ │ ├── OWSContext │ │ │ │ └── v0_3_1.html │ │ │ ├── QueryStringFilter.html │ │ │ ├── SLD.html │ │ │ ├── SLD │ │ │ │ ├── v1_0_0.html │ │ │ │ └── v1_0_0_GeoServer.html │ │ │ ├── SOSCapabilities │ │ │ │ ├── v1_0_0.html │ │ │ │ └── v1_0_0.js │ │ │ ├── SOSGetFeatureOfInterest.html │ │ │ ├── SOSGetObservation.html │ │ │ ├── Text.html │ │ │ ├── WCSCapabilities.html │ │ │ ├── WCSCapabilities │ │ │ │ └── v1.html │ │ │ ├── WCSGetCoverage.html │ │ │ ├── WFS.html │ │ │ ├── WFSCapabilities.html │ │ │ ├── WFSCapabilities │ │ │ │ └── v1.html │ │ │ ├── WFSDescribeFeatureType.html │ │ │ ├── WFST.html │ │ │ ├── WFST │ │ │ │ ├── v1.html │ │ │ │ ├── v1_0_0.html │ │ │ │ └── v1_1_0.html │ │ │ ├── WKT.html │ │ │ ├── WMC.html │ │ │ ├── WMC │ │ │ │ ├── v1.html │ │ │ │ └── v1_1_0.html │ │ │ ├── WMSCapabilities.html │ │ │ ├── WMSCapabilities │ │ │ │ ├── v1_1_1.html │ │ │ │ ├── v1_1_1_WMSC.html │ │ │ │ └── v1_3_0.html │ │ │ ├── WMSDescribeLayer.html │ │ │ ├── WMSGetFeatureInfo.html │ │ │ ├── WMTSCapabilities.html │ │ │ ├── WMTSCapabilities │ │ │ │ └── v1_0_0.html │ │ │ ├── WPSCapabilities │ │ │ │ ├── v1_0_0.html │ │ │ │ └── v1_0_0.js │ │ │ ├── WPSDescribeProcess.html │ │ │ ├── WPSExecute.html │ │ │ ├── XLS │ │ │ │ └── v1_1_0.html │ │ │ ├── XML.html │ │ │ └── XML │ │ │ │ └── VersionedOGC.html │ │ ├── Geometry.html │ │ ├── Geometry │ │ │ ├── Collection.html │ │ │ ├── Curve.html │ │ │ ├── LineString.html │ │ │ ├── LinearRing.html │ │ │ ├── MultiLineString.html │ │ │ ├── MultiPoint.html │ │ │ ├── MultiPolygon.html │ │ │ ├── Point.html │ │ │ └── Polygon.html │ │ ├── Handler.html │ │ ├── Handler │ │ │ ├── Box.html │ │ │ ├── Click.html │ │ │ ├── Drag.html │ │ │ ├── Feature.html │ │ │ ├── Hover.html │ │ │ ├── Keyboard.html │ │ │ ├── MouseWheel.html │ │ │ ├── Path.html │ │ │ ├── Pinch.html │ │ │ ├── Point.html │ │ │ ├── Polygon.html │ │ │ └── RegularPolygon.html │ │ ├── Icon.html │ │ ├── Kinetic.html │ │ ├── Lang.html │ │ ├── Layer.html │ │ ├── Layer │ │ │ ├── ArcGIS93Rest.html │ │ │ ├── ArcGISCache.html │ │ │ ├── ArcGISCache.json │ │ │ ├── ArcIMS.html │ │ │ ├── Bing.html │ │ │ ├── EventPane.html │ │ │ ├── FixedZoomLevels.html │ │ │ ├── GeoRSS.html │ │ │ ├── Google.html │ │ │ ├── Google │ │ │ │ └── v3.html │ │ │ ├── Grid.html │ │ │ ├── HTTPRequest.html │ │ │ ├── Image.html │ │ │ ├── KaMap.html │ │ │ ├── MapGuide.html │ │ │ ├── MapServer.html │ │ │ ├── Markers.html │ │ │ ├── OSM.html │ │ │ ├── PointGrid.html │ │ │ ├── PointTrack.html │ │ │ ├── SphericalMercator.html │ │ │ ├── TMS.html │ │ │ ├── Text.html │ │ │ ├── TileCache.html │ │ │ ├── UTFGrid.html │ │ │ ├── Vector.html │ │ │ ├── Vector │ │ │ │ └── RootContainer.html │ │ │ ├── WMS.html │ │ │ ├── WMTS.html │ │ │ ├── WrapDateLine.html │ │ │ ├── XYZ.html │ │ │ ├── atom-1.0.xml │ │ │ ├── data_Layer_Text_textfile.txt │ │ │ ├── data_Layer_Text_textfile_2.txt │ │ │ ├── data_Layer_Text_textfile_overflow.txt │ │ │ └── georss.txt │ │ ├── Map.html │ │ ├── Marker.html │ │ ├── Marker │ │ │ └── Box.html │ │ ├── OLLoader.js │ │ ├── OpenLayers1.html │ │ ├── OpenLayers2.html │ │ ├── OpenLayers3.html │ │ ├── OpenLayers4.html │ │ ├── OpenLayersJsFiles.html │ │ ├── Popup.html │ │ ├── Popup │ │ │ ├── Anchored.html │ │ │ └── FramedCloud.html │ │ ├── Projection.html │ │ ├── Protocol.html │ │ ├── Protocol │ │ │ ├── CSW.html │ │ │ ├── HTTP.html │ │ │ ├── SOS.html │ │ │ ├── Script.html │ │ │ └── WFS.html │ │ ├── README.txt │ │ ├── Renderer.html │ │ ├── Renderer │ │ │ ├── Canvas.html │ │ │ ├── Elements.html │ │ │ ├── SVG.html │ │ │ └── VML.html │ │ ├── Request.html │ │ ├── Request │ │ │ └── XMLHttpRequest.html │ │ ├── Rule.html │ │ ├── SingleFile1.html │ │ ├── SingleFile2.html │ │ ├── SingleFile3.html │ │ ├── Strategy.html │ │ ├── Strategy │ │ │ ├── BBOX.html │ │ │ ├── Cluster.html │ │ │ ├── Filter.html │ │ │ ├── Fixed.html │ │ │ ├── Paging.html │ │ │ ├── Refresh.html │ │ │ └── Save.html │ │ ├── Style.html │ │ ├── Style2.html │ │ ├── StyleMap.html │ │ ├── Symbolizer.html │ │ ├── Symbolizer │ │ │ ├── Line.html │ │ │ ├── Point.html │ │ │ ├── Polygon.html │ │ │ ├── Raster.html │ │ │ └── Text.html │ │ ├── Test.AnotherWay.baseadditions.js │ │ ├── Test.AnotherWay.css │ │ ├── Test.AnotherWay.geom_eq.js │ │ ├── Test.AnotherWay.js │ │ ├── Test.AnotherWay.xml_eq.js │ │ ├── Tile.html │ │ ├── Tile │ │ │ ├── Image.html │ │ │ ├── Image │ │ │ │ └── IFrame.html │ │ │ └── UTFGrid.html │ │ ├── TileManager.html │ │ ├── Tween.html │ │ ├── Util.html │ │ ├── Util │ │ │ └── vendorPrefix.html │ │ ├── Util_common.js │ │ ├── Util_w3c.html │ │ ├── WPSClient.html │ │ ├── WPSProcess.html │ │ ├── atom-1.0.xml │ │ ├── auto-tests.html │ │ ├── data │ │ │ ├── geos_wkt_intersects.js │ │ │ ├── osm.js │ │ │ └── utfgrid │ │ │ │ ├── bio_utfgrid │ │ │ │ └── 1 │ │ │ │ │ ├── 0 │ │ │ │ │ ├── 0.json │ │ │ │ │ ├── 1.json │ │ │ │ │ └── 2.json │ │ │ │ │ ├── 1 │ │ │ │ │ ├── 0.json │ │ │ │ │ ├── 1.json │ │ │ │ │ └── 2.json │ │ │ │ │ └── 2 │ │ │ │ │ ├── 0.json │ │ │ │ │ ├── 1.json │ │ │ │ │ └── 2.json │ │ │ │ ├── demo-1.1.json │ │ │ │ └── world_utfgrid │ │ │ │ └── 1 │ │ │ │ ├── 0 │ │ │ │ ├── 0.json │ │ │ │ ├── 1.json │ │ │ │ └── 2.json │ │ │ │ ├── 1 │ │ │ │ ├── 0.json │ │ │ │ ├── 1.json │ │ │ │ └── 2.json │ │ │ │ └── 2 │ │ │ │ ├── 0.json │ │ │ │ ├── 1.json │ │ │ │ └── 2.json │ │ ├── data_Layer_Text_textfile.txt │ │ ├── data_Layer_Text_textfile_2.txt │ │ ├── data_Layer_Text_textfile_overflow.txt │ │ ├── deprecated │ │ │ ├── Ajax.html │ │ │ ├── BaseTypes │ │ │ │ ├── Class.html │ │ │ │ └── Element.html │ │ │ ├── Control │ │ │ │ └── MouseToolbar.html │ │ │ ├── Geometry │ │ │ │ └── Rectangle.html │ │ │ ├── Layer │ │ │ │ ├── GML.html │ │ │ │ ├── MapServer.html │ │ │ │ ├── MapServer │ │ │ │ │ └── Untiled.html │ │ │ │ ├── WFS.html │ │ │ │ ├── WMS.html │ │ │ │ ├── WMS │ │ │ │ │ └── Post.html │ │ │ │ ├── Yahoo.html │ │ │ │ ├── mice.xml │ │ │ │ └── owls.xml │ │ │ ├── Popup │ │ │ │ └── AnchoredBubble.html │ │ │ ├── Protocol │ │ │ │ ├── SQL.html │ │ │ │ └── SQL │ │ │ │ │ └── Gears.html │ │ │ ├── Renderer │ │ │ │ └── SVG2.html │ │ │ ├── Tile │ │ │ │ └── WFS.html │ │ │ └── Util.html │ │ ├── georss.txt │ │ ├── grid_inittiles.html │ │ ├── index.html │ │ ├── list-tests.html │ │ ├── manual │ │ │ ├── ajax.html │ │ │ ├── ajax.txt │ │ │ ├── alloverlays-mixed.html │ │ │ ├── arcims-2117.html │ │ │ ├── arkansas.rss │ │ │ ├── big-georss.html │ │ │ ├── box-quirks.html │ │ │ ├── box-strict.html │ │ │ ├── clip-features-svg.html │ │ │ ├── dateline-sketch.html │ │ │ ├── dateline-smallextent.html │ │ │ ├── draw-feature.html │ │ │ ├── feature-handler.html │ │ │ ├── geodesic.html │ │ │ ├── geojson-geomcoll-reprojection.html │ │ │ ├── google-fullscreen-overlay.html │ │ │ ├── google-panning.html │ │ │ ├── google-resize.html │ │ │ ├── google-tilt.html │ │ │ ├── google-v3-resize.html │ │ │ ├── loadend.html │ │ │ ├── map-events.html │ │ │ ├── memory │ │ │ │ ├── Marker-2258.html │ │ │ │ ├── PanZoom-2323.html │ │ │ │ ├── RemoveChild-2170.html │ │ │ │ └── VML-2170.html │ │ │ ├── multiple-google-layers.html │ │ │ ├── overviewmap-projection.html │ │ │ ├── page-position.html │ │ │ ├── pan-redraw-svg.html │ │ │ ├── popup-keepInMap.html │ │ │ ├── reflow.html │ │ │ ├── renderedDimensions.html │ │ │ ├── select-feature-right-click.html │ │ │ ├── select-feature.html │ │ │ ├── tiles-loading.html │ │ │ ├── tween.html │ │ │ ├── vector-features-performance.html │ │ │ └── vector-layer-zindex.html │ │ ├── mice.xml │ │ ├── node.js │ │ │ ├── mockdom.js │ │ │ ├── node-tests.cfg │ │ │ ├── node.js │ │ │ ├── run-test.js │ │ │ └── run.sh │ │ ├── owls.xml │ │ ├── run-tests.html │ │ ├── selenium │ │ │ └── remotecontrol │ │ │ │ ├── config.cfg │ │ │ │ ├── selenium.py │ │ │ │ ├── setup.txt │ │ │ │ └── test_ol.py │ │ ├── speed │ │ │ ├── geometry.html │ │ │ ├── string_format.html │ │ │ ├── vector-renderers.html │ │ │ ├── vector-renderers.js │ │ │ ├── wmc_speed.html │ │ │ ├── wmscaps.html │ │ │ ├── wmscaps.js │ │ │ └── wmscaps.xml │ │ └── throws.js │ ├── theme │ │ └── default │ │ │ ├── google.css │ │ │ ├── google.tidy.css │ │ │ ├── ie6-style.css │ │ │ ├── ie6-style.tidy.css │ │ │ ├── img │ │ │ ├── add_point_off.png │ │ │ ├── add_point_on.png │ │ │ ├── blank.gif │ │ │ ├── close.gif │ │ │ ├── drag-rectangle-off.png │ │ │ ├── drag-rectangle-on.png │ │ │ ├── draw_line_off.png │ │ │ ├── draw_line_on.png │ │ │ ├── draw_point_off.png │ │ │ ├── draw_point_on.png │ │ │ ├── draw_polygon_off.png │ │ │ ├── draw_polygon_on.png │ │ │ ├── editing_tool_bar.png │ │ │ ├── move_feature_off.png │ │ │ ├── move_feature_on.png │ │ │ ├── navigation_history.png │ │ │ ├── overview_replacement.gif │ │ │ ├── pan-panel-NOALPHA.png │ │ │ ├── pan-panel.png │ │ │ ├── pan_off.png │ │ │ ├── pan_on.png │ │ │ ├── panning-hand-off.png │ │ │ ├── panning-hand-on.png │ │ │ ├── remove_point_off.png │ │ │ ├── remove_point_on.png │ │ │ ├── ruler.png │ │ │ ├── save_features_off.png │ │ │ ├── save_features_on.png │ │ │ ├── view_next_off.png │ │ │ ├── view_next_on.png │ │ │ ├── view_previous_off.png │ │ │ ├── view_previous_on.png │ │ │ ├── zoom-panel-NOALPHA.png │ │ │ └── zoom-panel.png │ │ │ ├── style.css │ │ │ ├── style.mobile.css │ │ │ ├── style.mobile.tidy.css │ │ │ └── style.tidy.css │ └── tools │ │ ├── BeautifulSoup.py │ │ ├── README.txt │ │ ├── closure_library_jscompiler.py │ │ ├── closure_ws.py │ │ ├── exampleparser.py │ │ ├── jsmin.c │ │ ├── jsmin.py │ │ ├── mergejs.py │ │ ├── minimize.py │ │ ├── oldot.py │ │ ├── release.sh │ │ ├── shrinksafe.py │ │ ├── toposort.py │ │ ├── uglify_js.py │ │ └── update_dev_dir.sh ├── point.html ├── point.js ├── style │ ├── image.css │ ├── index.css │ └── point.css └── video.html ├── package-lock.json ├── package.json ├── providers └── AppProvider.ts ├── readme_assets ├── example.gif ├── image.png ├── map.png ├── point.png ├── sat.png └── video.png ├── server.ts ├── start ├── kernel.ts └── routes.ts └── tsconfig.json /.adonisrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript": true, 3 | "commands": [ 4 | "./commands", 5 | "@adonisjs/core/build/commands", 6 | "@adonisjs/repl/build/commands", 7 | "@adonisjs/lucid/build/commands" 8 | ], 9 | "exceptionHandlerNamespace": "App/Exceptions/Handler", 10 | "aliases": { 11 | "App": "app", 12 | "Config": "config", 13 | "Database": "database", 14 | "Contracts": "contracts" 15 | }, 16 | "preloads": [ 17 | "./start/routes", 18 | "./start/kernel" 19 | ], 20 | "providers": [ 21 | "./providers/AppProvider", 22 | "@adonisjs/core", 23 | "@adonisjs/lucid" 24 | ], 25 | "aceProviders": [ 26 | "@adonisjs/repl" 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | 2 | [*] 3 | indent_style = space 4 | indent_size = 2 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.json] 11 | insert_final_newline = ignore 12 | 13 | [*.md] 14 | trim_trailing_whitespace = false 15 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | PORT=3333 2 | HOST=0.0.0.0 3 | NODE_ENV=development 4 | APP_KEY=rOsXqkDuqIcnyzo9pcEhHZhECz80_bH0 5 | DB_CONNECTION=mysql 6 | MYSQL_HOST=localhost 7 | MYSQL_PORT=3306 8 | MYSQL_USER=lucid 9 | MYSQL_PASSWORD= 10 | MYSQL_DB_NAME=lucid 11 | FILE_ROOT=C:\example\dir 12 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build 2 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "plugin:adonis/typescriptApp" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | coverage 4 | .vscode 5 | .DS_STORE 6 | .env 7 | tmp 8 | files 9 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:lts 2 | 3 | ENV APP_NAME="dronemap" \ 4 | PORT=3333 \ 5 | HOST=0.0.0.0 \ 6 | NODE_ENV=production \ 7 | APP_KEY=t0c5GoBssSB1RIWf5jAsq_MU0q8Zf23j \ 8 | DB_CONNECTION=mysql \ 9 | MYSQL_HOST=localhost \ 10 | MYSQL_PORT=3306 \ 11 | MYSQL_USER=dronemap \ 12 | MYSQL_PASSWORD= \ 13 | MYSQL_DB_NAME=dronemap \ 14 | FILE_ROOT=/footage 15 | 16 | RUN mkdir /footage 17 | 18 | WORKDIR /app 19 | 20 | COPY build . 21 | COPY entry.sh . 22 | COPY frontend frontend 23 | 24 | RUN apt update && apt install -y ffmpeg 25 | EXPOSE 3333 26 | 27 | RUN npm ci --production 28 | ENTRYPOINT ["/bin/bash", "entry.sh"] 29 | -------------------------------------------------------------------------------- /ace: -------------------------------------------------------------------------------- 1 | /* 2 | |-------------------------------------------------------------------------- 3 | | Ace Commands 4 | |-------------------------------------------------------------------------- 5 | | 6 | | This file is the entry point for running ace commands. 7 | | 8 | */ 9 | 10 | require('reflect-metadata') 11 | require('source-map-support').install({ handleUncaughtExceptions: false }) 12 | 13 | const { Ignitor } = require('@adonisjs/core/build/standalone') 14 | new Ignitor(__dirname) 15 | .ace() 16 | .handle(process.argv.slice(2)) 17 | -------------------------------------------------------------------------------- /app/Controllers/Http/ImagesController.ts: -------------------------------------------------------------------------------- 1 | import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' 2 | import Image from 'App/Models/Image' 3 | import fs from 'fs' 4 | 5 | export default class ImagesController { 6 | 7 | public async show({params, response}: HttpContextContract) { 8 | 9 | const img = await Image.find(params.imageId) 10 | if (img == null) { 11 | response.status(404).send("File not found") 12 | return 13 | } 14 | 15 | await img.load('file') 16 | response.stream(fs.createReadStream(process.env.FILE_ROOT + img.file.filePath)) 17 | 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /app/Exceptions/Handler.ts: -------------------------------------------------------------------------------- 1 | /* 2 | |-------------------------------------------------------------------------- 3 | | Http Exception Handler 4 | |-------------------------------------------------------------------------- 5 | | 6 | | AdonisJs will forward all exceptions occurred during an HTTP request to 7 | | the following class. You can learn more about exception handling by 8 | | reading docs. 9 | | 10 | | The exception handler extends a base `HttpExceptionHandler` which is not 11 | | mandatory, however it can do lot of heavy lifting to handle the errors 12 | | properly. 13 | | 14 | */ 15 | 16 | import Logger from '@ioc:Adonis/Core/Logger' 17 | import HttpExceptionHandler from '@ioc:Adonis/Core/HttpExceptionHandler' 18 | 19 | export default class ExceptionHandler extends HttpExceptionHandler { 20 | constructor () { 21 | super(Logger) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /commands/index.ts: -------------------------------------------------------------------------------- 1 | import { listDirectoryFiles } from '@adonisjs/core/build/standalone' 2 | import Application from '@ioc:Adonis/Core/Application' 3 | 4 | /* 5 | |-------------------------------------------------------------------------- 6 | | Exporting an array of commands 7 | |-------------------------------------------------------------------------- 8 | | 9 | | Instead of manually exporting each file from this directory, we use the 10 | | helper `listDirectoryFiles` to recursively collect and export an array 11 | | of filenames. 12 | | 13 | | Couple of things to note: 14 | | 15 | | 1. The file path must be relative from the project root and not this directory. 16 | | 2. We must ignore this file to avoid getting into an infinite loop 17 | | 18 | */ 19 | export default listDirectoryFiles(__dirname, Application.appRoot, ['./commands/index']) 20 | -------------------------------------------------------------------------------- /contracts/env.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Contract source: https://git.io/JTm6U 3 | * 4 | * Feel free to let us know via PR, if you find something broken in this contract 5 | * file. 6 | */ 7 | 8 | declare module '@ioc:Adonis/Core/Env' { 9 | /* 10 | |-------------------------------------------------------------------------- 11 | | Getting types for validated environment variables 12 | |-------------------------------------------------------------------------- 13 | | 14 | | The `default` export from the "../env.ts" file exports types for the 15 | | validated environment variables. Here we merge them with the `EnvTypes` 16 | | interface so that you can enjoy intellisense when using the "Env" 17 | | module. 18 | | 19 | */ 20 | 21 | type CustomTypes = typeof import("../env").default; 22 | interface EnvTypes extends CustomTypes { 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /contracts/events.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Contract source: https://git.io/JfefG 3 | * 4 | * Feel free to let us know via PR, if you find something broken in this contract 5 | * file. 6 | */ 7 | 8 | declare module '@ioc:Adonis/Core/Event' { 9 | /* 10 | |-------------------------------------------------------------------------- 11 | | Define typed events 12 | |-------------------------------------------------------------------------- 13 | | 14 | | You can define types for events inside the following interface and 15 | | AdonisJS will make sure that all listeners and emit calls adheres 16 | | to the defined types. 17 | | 18 | | For example: 19 | | 20 | | interface EventsList { 21 | | 'new:user': UserModel 22 | | } 23 | | 24 | | Now calling `Event.emit('new:user')` will statically ensure that passed value is 25 | | an instance of the the UserModel only. 26 | | 27 | */ 28 | interface EventsList { 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /contracts/hash.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Contract source: https://git.io/Jfefs 3 | * 4 | * Feel free to let us know via PR, if you find something broken in this contract 5 | * file. 6 | */ 7 | 8 | declare module '@ioc:Adonis/Core/Hash' { 9 | interface HashersList { 10 | bcrypt: { 11 | config: BcryptConfig, 12 | implementation: BcryptContract, 13 | }, 14 | argon: { 15 | config: ArgonConfig, 16 | implementation: ArgonContract, 17 | }, 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /database/factories/index.ts: -------------------------------------------------------------------------------- 1 | // import Factory from '@ioc:Adonis/Lucid/Factory' 2 | -------------------------------------------------------------------------------- /database/migrations/1623681218409_files.ts: -------------------------------------------------------------------------------- 1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema' 2 | 3 | export default class Files extends BaseSchema { 4 | protected tableName = 'files' 5 | 6 | public async up () { 7 | this.schema.createTable(this.tableName, (table) => { 8 | table.uuid('id').primary() 9 | table.string('file_path').notNullable().unique() 10 | table.string('sha256').notNullable() 11 | table.bigInteger('size') 12 | table.timestamps(true, true) 13 | }) 14 | } 15 | 16 | public async down () { 17 | this.schema.dropTable(this.tableName) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /database/migrations/1623695892266_videos.ts: -------------------------------------------------------------------------------- 1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema' 2 | 3 | export default class Videos extends BaseSchema { 4 | protected tableName = 'videos' 5 | 6 | public async up () { 7 | this.schema.createTable(this.tableName, (table) => { 8 | table.uuid('id').primary() 9 | table.uuid('file_id').nullable() 10 | table.foreign('file_id').references('id').inTable('files').onDelete('CASCADE') 11 | table.string('extension') 12 | table.string('length') 13 | table.integer('resolution_width') 14 | table.integer('resolution_height') 15 | table.dateTime('date_shot') 16 | table.timestamps(true, true) 17 | }) 18 | } 19 | 20 | public async down () { 21 | this.schema.dropTable(this.tableName) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /database/migrations/1623700847990_video_data_points.ts: -------------------------------------------------------------------------------- 1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema' 2 | 3 | export default class VideoDataPoints extends BaseSchema { 4 | protected tableName = 'video_data_points' 5 | 6 | public async up () { 7 | this.schema.createTable(this.tableName, (table) => { 8 | table.uuid('id').primary() 9 | table.uuid('video_id').nullable() 10 | table.foreign('video_id').references('id').inTable('videos').onDelete('CASCADE') 11 | table.integer('sequence_number').notNullable() 12 | table.float('start_seconds').notNullable() 13 | table.float('focal_length') 14 | table.float('shutter_speed') 15 | table.integer('iso') 16 | table.float('ev') 17 | table.float('dzoom') 18 | table.float('gps_longitude', 8, 4) 19 | table.float('gps_lattitude', 8, 4) 20 | table.integer('gps_count') 21 | table.float('distance') 22 | table.float('height') 23 | table.float('horizontal_speed') 24 | table.float('vertical_speed') 25 | table.timestamps(true, true) 26 | }) 27 | } 28 | 29 | public async down () { 30 | this.schema.dropTable(this.tableName) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /database/migrations/1624027532993_images.ts: -------------------------------------------------------------------------------- 1 | import BaseSchema from '@ioc:Adonis/Lucid/Schema' 2 | 3 | export default class Images extends BaseSchema { 4 | protected tableName = 'images' 5 | 6 | public async up () { 7 | this.schema.createTable(this.tableName, (table) => { 8 | table.uuid('id').primary() 9 | table.uuid('file_id').nullable() 10 | table.foreign('file_id').references('id').inTable('files').onDelete('CASCADE') 11 | table.integer('width') 12 | table.integer('height') 13 | table.integer('x_dpi') 14 | table.integer('y_dpi') 15 | table.dateTime('shot_at') 16 | table.float('gps_longitude', 12, 8) 17 | table.float('gps_latitude', 12, 8) 18 | table.float('gps_altitude', 12, 8) 19 | table.float('f_stop') 20 | table.float('focal_length') 21 | table.float('exposure_time', 8, 4) 22 | table.integer('ISO') 23 | table.float('aperture', 8, 4) 24 | table.float('dzoom') 25 | table.float('white_balance') 26 | table.float('ev') 27 | table.float('shutter_speed') 28 | table.timestamps(true, true) 29 | }) 30 | } 31 | 32 | public async down () { 33 | this.schema.dropTable(this.tableName) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | dronemap: 3 | image: vimodev/dronemap:latest 4 | ports: 5 | - "3333:3333" 6 | restart: unless-stopped 7 | environment: 8 | - DB_CONNECTION=mysql 9 | - MYSQL_HOST=dronemap_database 10 | - MYSQL_PORT=3306 11 | - MYSQL_USER=dronemap 12 | - MYSQL_PASSWORD=2024cad0b930c 13 | - MYSQL_DB_NAME=dronemap 14 | - TZ=Europe/Amsterdam 15 | volumes: 16 | - "/path/to/your/files:/footage:ro" 17 | depends_on: 18 | - dronemap_database 19 | networks: 20 | - dronemap-network 21 | 22 | dronemap_database: 23 | image: mariadb:10 24 | environment: 25 | - MYSQL_DATABASE=dronemap 26 | - MYSQL_USER=dronemap 27 | - MYSQL_PASSWORD=2024cad0b930c 28 | - MYSQL_RANDOM_ROOT_PASSWORD=yes 29 | - TZ=Europe/Amsterdam 30 | networks: 31 | - dronemap-network 32 | ports: 33 | - "3306:3306" 34 | restart: unless-stopped 35 | 36 | 37 | networks: 38 | dronemap-network: 39 | driver: bridge 40 | enable_ipv6: false 41 | ipam: 42 | driver: default 43 | config: 44 | - subnet: 10.10.10.0/24 45 | -------------------------------------------------------------------------------- /entry.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | sleep 10 3 | node ace migration:run --force 4 | node server.js 5 | 6 | -------------------------------------------------------------------------------- /env.ts: -------------------------------------------------------------------------------- 1 | /* 2 | |-------------------------------------------------------------------------- 3 | | Validating Environment Variables 4 | |-------------------------------------------------------------------------- 5 | | 6 | | In this file we define the rules for validating environment variables. 7 | | By performing validation we ensure that your application is running in 8 | | a stable environment with correct configuration values. 9 | | 10 | | This file is read automatically by the framework during the boot lifecycle 11 | | and hence do not rename or move this file to a different location. 12 | | 13 | */ 14 | 15 | import Env from '@ioc:Adonis/Core/Env' 16 | 17 | export default Env.rules({ 18 | HOST: Env.schema.string({ format: 'host' }), 19 | PORT: Env.schema.number(), 20 | APP_KEY: Env.schema.string(), 21 | APP_NAME: Env.schema.string(), 22 | NODE_ENV: Env.schema.enum(['development', 'production', 'testing'] as const), 23 | FILE_ROOT: Env.schema.string(), 24 | }) 25 | -------------------------------------------------------------------------------- /frontend/assets/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/assets/thumbnail.png -------------------------------------------------------------------------------- /frontend/image.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Image info 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /frontend/openlayers/.gitignore: -------------------------------------------------------------------------------- 1 | /build/OpenLayers.js 2 | /tools/closure-compiler.jar 3 | /tools/*.pyc 4 | /apidoc_config/Data/ 5 | /doc/apidocs/ 6 | /examples/example-list.js 7 | /examples/example-list.xml 8 | -------------------------------------------------------------------------------- /frontend/openlayers/apidoc_config/OL.css: -------------------------------------------------------------------------------- 1 | p { 2 | text-indent: 0; margin-bottom: 1em; 3 | } 4 | 5 | .MGroup { 6 | font-variant: normal; 7 | margin: 0.4em 0 0em 10px 8 | } 9 | 10 | .MTitle { 11 | font-variant: normal; 12 | } 13 | 14 | .CGroup .CTitle { 15 | font-variant: normal; 16 | } 17 | 18 | .SGroup .SEntry { 19 | font-variant: normal; 20 | } -------------------------------------------------------------------------------- /frontend/openlayers/art/marker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | ]> 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /frontend/openlayers/authors.txt: -------------------------------------------------------------------------------- 1 | OpenLayers contributors: 2 | 3 | Antoine Abt 4 | Mike Adair 5 | Jeff Adams 6 | Seb Benthall 7 | Bruno Binet 8 | Stéphane Brunner 9 | Howard Butler 10 | Bertil Chaupis 11 | John Cole 12 | Tim Coulter 13 | Robert Coup 14 | Jeff Dege 15 | Roald de Wit 16 | Schuyler Erle 17 | Christian López Espínola 18 | John Frank 19 | Sean Gilles 20 | Pierre Giraud 21 | Ivan Grcic 22 | Andreas Hocevar 23 | Marc Jansen 24 | Ian Johnson 25 | Frédéric Junod 26 | Eric Lemoine 27 | Philip Lindsay 28 | Martijn van Oosterhout 29 | David Overstrom 30 | Corey Puffault 31 | Peter William Robins 32 | Gregers Rygg 33 | Tim Schaub 34 | Christopher Schmidt 35 | Cameron Shorter 36 | Pedro Simonetti 37 | Paul Spencer 38 | Paul Smith 39 | Glen Stampoultzis 40 | James Stembridge 41 | Erik Uzureau 42 | Bart van den Eijnden 43 | Ivan Willig 44 | Thomas Wood 45 | Bill Woodall 46 | Steve Woodbridge 47 | David Zwarg 48 | 49 | Some portions of OpenLayers are used under the Apache 2.0 license, available 50 | in doc/licenses/APACHE-2.0.txt. 51 | 52 | Some portions of OpenLayers are used under the MIT license, availabie in 53 | doc/licenses/MIT-LICENSE.txt. 54 | 55 | Some portions of OpenLayers are Copyright 2001 Robert Penner, and are used 56 | under the BSD license, available in doc/licenses/BSD-LICENSE.txt 57 | -------------------------------------------------------------------------------- /frontend/openlayers/doc/devdocs/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /frontend/openlayers/doc/devdocs/javascript/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/doc/devdocs/javascript/main.js -------------------------------------------------------------------------------- /frontend/openlayers/doc/devdocs/javascript/prettify.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/doc/devdocs/javascript/prettify.js -------------------------------------------------------------------------------- /frontend/openlayers/doc/devdocs/search/ClassesU.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
Loading...
Searching...
No Matches
-------------------------------------------------------------------------------- /frontend/openlayers/doc/devdocs/search/NoResults.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
No Matches
-------------------------------------------------------------------------------- /frontend/openlayers/doc/devdocs/styles/1.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/doc/devdocs/styles/1.css -------------------------------------------------------------------------------- /frontend/openlayers/doc/devdocs/styles/2.css: -------------------------------------------------------------------------------- 1 | p { 2 | text-indent: 0; margin-bottom: 1em; 3 | } 4 | 5 | .MGroup { 6 | font-variant: normal; 7 | margin: 0.4em 0 0em 10px 8 | } 9 | 10 | .MTitle { 11 | font-variant: normal; 12 | } 13 | 14 | .CGroup .CTitle { 15 | font-variant: normal; 16 | } 17 | 18 | .SGroup .SEntry { 19 | font-variant: normal; 20 | } -------------------------------------------------------------------------------- /frontend/openlayers/doc/devdocs/styles/main.css: -------------------------------------------------------------------------------- 1 | @import URL("1.css"); 2 | @import URL("2.css"); 3 | -------------------------------------------------------------------------------- /frontend/openlayers/doc_config/Data/ConfigFileInfo.nd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/doc_config/Data/ConfigFileInfo.nd -------------------------------------------------------------------------------- /frontend/openlayers/doc_config/Data/ImageFileInfo.nd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/doc_config/Data/ImageFileInfo.nd -------------------------------------------------------------------------------- /frontend/openlayers/doc_config/Data/ImageReferenceTable.nd: -------------------------------------------------------------------------------- 1 | 3=/tmp/openlayers/tools/OpenLayers-2.13.1/lib/OpenLayers/Layer/&OpenLayers.Util.getResolutionFromScaleK/tmp/openlayers/tools/OpenLayers-2.13.1/lib/OpenLayers/Layer/ArcGISCache.js=/tmp/openlayers/tools/OpenLayers-2.13.1/lib/OpenLayers/Layer/!ticket #327 for more information.J/tmp/openlayers/tools/OpenLayers-2.13.1/lib/OpenLayers/Layer/KaMapCache.jsE/tmp/openlayers/tools/OpenLayers-2.13.1/lib/OpenLayers/Layer/KaMap.js -------------------------------------------------------------------------------- /frontend/openlayers/doc_config/Data/IndexInfo.nd: -------------------------------------------------------------------------------- 1 | 3GeneralFunction ConstructorFileClassConstantProperty -------------------------------------------------------------------------------- /frontend/openlayers/doc_config/Data/PreviousSettings.nd: -------------------------------------------------------------------------------- 1 | 3+/tmp/openlayers/tools/OpenLayers-2.13.1/lib13/tmp/openlayers/tools/OpenLayers-2.13.1/doc/devdocsHTML -------------------------------------------------------------------------------- /frontend/openlayers/doc_config/Data/SymbolTable.nd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/doc_config/Data/SymbolTable.nd -------------------------------------------------------------------------------- /frontend/openlayers/doc_config/OL.css: -------------------------------------------------------------------------------- 1 | p { 2 | text-indent: 0; margin-bottom: 1em; 3 | } 4 | 5 | .MGroup { 6 | font-variant: normal; 7 | margin: 0.4em 0 0em 10px 8 | } 9 | 10 | .MTitle { 11 | font-variant: normal; 12 | } 13 | 14 | .CGroup .CTitle { 15 | font-variant: normal; 16 | } 17 | 18 | .SGroup .SEntry { 19 | font-variant: normal; 20 | } -------------------------------------------------------------------------------- /frontend/openlayers/examples/all-overlays-google.js: -------------------------------------------------------------------------------- 1 | var map; 2 | 3 | function init() { 4 | 5 | map = new OpenLayers.Map({ 6 | div: "map", 7 | allOverlays: true 8 | }); 9 | 10 | var osm = new OpenLayers.Layer.OSM(); 11 | var gmap = new OpenLayers.Layer.Google("Google Streets", {visibility: false}); 12 | 13 | // note that first layer must be visible 14 | map.addLayers([osm, gmap]); 15 | 16 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 17 | map.zoomToMaxExtent(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/anchor-permalink.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | AnchorPermalink Example 10 | 11 | 12 | 13 | 14 |

AnchorPermalink Example

15 |
16 | anchor, permalink 17 |
18 |

19 | Place a permalink in the anchor of the url. 20 |

21 |
22 |
23 |

24 | See the anchor-permalink.js 25 | source to see how this is done. 26 |

27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/anchor-permalink.js: -------------------------------------------------------------------------------- 1 | function init() { 2 | var map = new OpenLayers.Map({ 3 | div: "map", 4 | projection: new OpenLayers.Projection("EPSG:900913"), 5 | displayProjection: new OpenLayers.Projection("EPSG:4326"), 6 | layers: [ 7 | new OpenLayers.Layer.OSM() 8 | ] 9 | }); 10 | if (!map.getCenter()) map.zoomToMaxExtent(); 11 | 12 | map.addControl(new OpenLayers.Control.Permalink({anchor: true})); 13 | } 14 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/arcgiscache_ags.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/arcgiscache_ags.html -------------------------------------------------------------------------------- /frontend/openlayers/examples/bing-tiles-restrictedzoom.js: -------------------------------------------------------------------------------- 1 | // API key for http://openlayers.org. Please get your own at 2 | // http://bingmapsportal.com/ and use that instead. 3 | var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf"; 4 | 5 | var map = new OpenLayers.Map('map', { 6 | controls: [ 7 | new OpenLayers.Control.Attribution(), 8 | new OpenLayers.Control.Navigation(), 9 | new OpenLayers.Control.PanZoomBar(), 10 | new OpenLayers.Control.LayerSwitcher() 11 | ] 12 | }); 13 | 14 | var road3 = new OpenLayers.Layer.Bing({ 15 | name: "Road tiles with 3 zoom levels", 16 | type: "Road", 17 | key: apiKey, 18 | maxResolution: 76.43702827453613, 19 | numZoomLevels: 3 20 | }); 21 | var road5 = new OpenLayers.Layer.Bing({ 22 | name: "Road tiles with 5 zoom levels", 23 | type: "Road", 24 | key: apiKey, 25 | numZoomLevels: 5 26 | }); 27 | var road = new OpenLayers.Layer.Bing({ 28 | name: "Road tiles with all zoom levels", 29 | type: "Road", 30 | key: apiKey 31 | }); 32 | 33 | map.addLayers([road3, road5, road]); 34 | map.setCenter(new OpenLayers.LonLat(-71.147, 42.472).transform( 35 | new OpenLayers.Projection("EPSG:4326"), 36 | map.getProjectionObject() 37 | ), 1); 38 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/bing-tiles.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers Bing Tiles Example 8 | 9 | 10 | 18 | 19 | 20 |

Basic Bing Tiles Example

21 | 22 |
23 | bing tiles, light 24 |
25 | 26 |
Use Bing with direct tile access
27 | 28 |
29 | 30 |
31 |

This example shows a very simple map with Bing layers that use 32 | direct tile access through Bing Maps REST Services.

See 33 | bing-tiles.js for the 34 | source code.

35 |
36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/bing-tiles.js: -------------------------------------------------------------------------------- 1 | // API key for http://openlayers.org. Please get your own at 2 | // http://bingmapsportal.com/ and use that instead. 3 | var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf"; 4 | 5 | var map = new OpenLayers.Map( 'map'); 6 | 7 | var road = new OpenLayers.Layer.Bing({ 8 | key: apiKey, 9 | type: "Road", 10 | // custom metadata parameter to request the new map style - only useful 11 | // before May 1st, 2011 12 | metadataParams: {mapVersion: "v1"} 13 | }); 14 | var aerial = new OpenLayers.Layer.Bing({ 15 | key: apiKey, 16 | type: "Aerial" 17 | }); 18 | var hybrid = new OpenLayers.Layer.Bing({ 19 | key: apiKey, 20 | type: "AerialWithLabels", 21 | name: "Bing Aerial With Labels" 22 | }); 23 | 24 | map.addLayers([road, aerial, hybrid]); 25 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 26 | // Zoom level numbering depends on metadata from Bing, which is not yet loaded. 27 | var zoom = map.getZoomForResolution(76.43702827453613); 28 | map.setCenter(new OpenLayers.LonLat(-71.147, 42.472).transform( 29 | new OpenLayers.Projection("EPSG:4326"), 30 | map.getProjectionObject() 31 | ), zoom); 32 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/bootstrap.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "map", 3 | projection: "EPSG:900913", 4 | layers: [ 5 | new OpenLayers.Layer.XYZ( 6 | "Imagery", 7 | [ 8 | "http://oatile1.mqcdn.com/naip/${z}/${x}/${y}.png", 9 | "http://oatile2.mqcdn.com/naip/${z}/${x}/${y}.png", 10 | "http://oatile3.mqcdn.com/naip/${z}/${x}/${y}.png", 11 | "http://oatile4.mqcdn.com/naip/${z}/${x}/${y}.png" 12 | ], 13 | { 14 | attribution: "Tiles Courtesy of MapQuest. Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency. ", 15 | transitionEffect: "resize", 16 | wrapDateLine: true 17 | } 18 | ) 19 | ], 20 | controls: [ 21 | new OpenLayers.Control.Navigation({ 22 | dragPanOptions: { 23 | enableKinetic: true 24 | } 25 | }), 26 | new OpenLayers.Control.Zoom(), 27 | new OpenLayers.Control.Attribution() 28 | ], 29 | center: [0, 0], 30 | zoom: 1 31 | }); 32 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/cache-read.js: -------------------------------------------------------------------------------- 1 | var map, cacheRead; 2 | function init() { 3 | map = new OpenLayers.Map({ 4 | div: "map", 5 | projection: "EPSG:900913", 6 | layers: [ 7 | new OpenLayers.Layer.WMS("OSGeo", "http://vmap0.tiles.osgeo.org/wms/vmap0", { 8 | layers: "basic" 9 | }, { 10 | eventListeners: { 11 | tileloaded: updateHits 12 | } 13 | }) 14 | ], 15 | center: [0, 0], 16 | zoom: 1 17 | }); 18 | cacheRead = new OpenLayers.Control.CacheRead(); 19 | map.addControl(cacheRead); 20 | 21 | 22 | 23 | // User interface 24 | var status = document.getElementById("status"), 25 | hits = 0; 26 | 27 | // update the number of cached tiles and detect local storage support 28 | function updateHits(evt) { 29 | hits += evt.tile.url.substr(0, 5) === "data:"; 30 | if (window.localStorage) { 31 | status.innerHTML = hits + " cache hits."; 32 | } else { 33 | status.innerHTML = "Local storage not supported. Try a different browser."; 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /frontend/openlayers/examples/canvas-hit-detection.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenLayers Canvas Hit Detection Example 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Feature Hit Detection with Canvas

14 |

15 | Demonstrates detection of feature hits with the canvas renderer. 16 |

17 |
18 |
19 |

20 | Click on the features above to see them selected. This example 21 | uses the Canvas renderer so it only works on browsers where 22 | canvas is supported. 23 |

24 |

25 | View the canvas-hit-detection.js 26 | source to see how this is done. 27 |

28 |
29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/cross-origin-xml.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "map", 3 | layers: [ 4 | new OpenLayers.Layer.OSM(), 5 | new OpenLayers.Layer.Vector("Vectors", { 6 | projection: new OpenLayers.Projection("EPSG:4326"), 7 | strategies: [new OpenLayers.Strategy.Fixed()], 8 | protocol: new OpenLayers.Protocol.Script({ 9 | url: "http://query.yahooapis.com/v1/public/yql", 10 | params: { 11 | q: "select * from xml where url='http://www.topografix.com/fells_loop.gpx'" 12 | }, 13 | format: new OpenLayers.Format.GPX(), 14 | parseFeatures: function(data) { 15 | return this.format.read(data.results[0]); 16 | } 17 | }), 18 | eventListeners: { 19 | "featuresadded": function () { 20 | this.map.zoomToExtent(this.getDataExtent()); 21 | } 22 | } 23 | }) 24 | ] 25 | }); 26 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/data/4_m_citylights_lg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/data/4_m_citylights_lg.gif -------------------------------------------------------------------------------- /frontend/openlayers/examples/data/point.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "features": [ 4 | {"type":"Feature", "id":"OpenLayers.Feature.Vector_1721", "properties":{}, "geometry":{"type":"Point", "coordinates":[-89.296875, -14.4140625]}, "crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}}, 5 | {"type":"Feature", "id":"OpenLayers.Feature.Vector_1715", "properties":{}, "geometry":{"type":"Point", "coordinates":[-25.3125, -54.4921875]}, "crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}}, 6 | {"type":"Feature", "id":"OpenLayers.Feature.Vector_1709", "properties":{}, "geometry":{"type":"Point", "coordinates":[73.828125, -23.5546875]}, "crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}} 7 | ] 8 | } -------------------------------------------------------------------------------- /frontend/openlayers/examples/data/poly.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "features": [ 4 | {"type":"Feature", "id":"OpenLayers.Feature.Vector_1489", "properties":{}, "geometry":{"type":"Polygon", "coordinates":[[[-109.6875, 63.6328125], [-112.5, 35.5078125], [-85.078125, 34.8046875], [-68.90625, 39.7265625], [-68.203125, 67.1484375], [-109.6875, 63.6328125]]]}, "crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}}, 5 | {"type":"Feature", "id":"OpenLayers.Feature.Vector_1668", "properties":{}, "geometry":{"type":"Polygon", "coordinates":[[[-40.78125, 65.0390625], [-40.078125, 34.8046875], [-12.65625, 25.6640625], [21.09375, 17.2265625], [22.5, 58.0078125], [-40.78125, 65.0390625]]]}, "crs":{"type":"OGC", "properties":{"urn":"urn:ogc:def:crs:OGC:1.3:CRS84"}}} 6 | ] 7 | } 8 | 9 | 10 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/data/roads.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/data/roads.json -------------------------------------------------------------------------------- /frontend/openlayers/examples/data/tazdem.tiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/data/tazdem.tiff -------------------------------------------------------------------------------- /frontend/openlayers/examples/donut.js: -------------------------------------------------------------------------------- 1 | // allow testing of specific renderers via "?renderer=Canvas", etc 2 | var renderer = OpenLayers.Util.getParameters(window.location.href).renderer; 3 | renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; 4 | 5 | var map = new OpenLayers.Map({ 6 | div: "map", 7 | layers: [ 8 | new OpenLayers.Layer.OSM(), 9 | new OpenLayers.Layer.Vector("Vector Layer", { 10 | renderers: renderer 11 | }) 12 | ], 13 | center: new OpenLayers.LonLat(0, 0), 14 | zoom: 1 15 | }); 16 | 17 | var draw = new OpenLayers.Control.DrawFeature( 18 | map.layers[1], 19 | OpenLayers.Handler.Polygon, 20 | {handlerOptions: {holeModifier: "altKey"}} 21 | ); 22 | map.addControl(draw); 23 | 24 | // optionally listen for sketch events on the layer 25 | var output = document.getElementById("output"); 26 | function updateOutput(event) { 27 | window.setTimeout(function() { 28 | output.innerHTML = event.type + " " + event.feature.id; 29 | }, 100); 30 | } 31 | map.layers[1].events.on({ 32 | sketchmodified: updateOutput, 33 | sketchcomplete: updateOutput 34 | }); 35 | 36 | // add behavior to UI elements 37 | function toggleControl(element) { 38 | if (element.value === "polygon" && element.checked) { 39 | draw.activate(); 40 | } else { 41 | draw.deactivate(); 42 | } 43 | } 44 | document.getElementById("noneToggle").checked = true; 45 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/draw-undo-redo.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "map", 3 | layers: [ 4 | new OpenLayers.Layer.WMS( 5 | "Global Imagery", 6 | "http://maps.opengeo.org/geowebcache/service/wms", 7 | {layers: "bluemarble"}, 8 | {tileOrigin: new OpenLayers.LonLat(-180, -90)} 9 | ), 10 | new OpenLayers.Layer.Vector() 11 | ], 12 | center: new OpenLayers.LonLat(0, 0), 13 | zoom: 1 14 | }); 15 | 16 | var draw = new OpenLayers.Control.DrawFeature( 17 | map.layers[1], OpenLayers.Handler.Path 18 | ); 19 | map.addControl(draw); 20 | draw.activate(); 21 | 22 | OpenLayers.Event.observe(document, "keydown", function(evt) { 23 | var handled = false; 24 | switch (evt.keyCode) { 25 | case 90: // z 26 | if (evt.metaKey || evt.ctrlKey) { 27 | draw.undo(); 28 | handled = true; 29 | } 30 | break; 31 | case 89: // y 32 | if (evt.metaKey || evt.ctrlKey) { 33 | draw.redo(); 34 | handled = true; 35 | } 36 | break; 37 | case 27: // esc 38 | draw.cancel(); 39 | handled = true; 40 | break; 41 | } 42 | if (handled) { 43 | OpenLayers.Event.stop(evt); 44 | } 45 | }); -------------------------------------------------------------------------------- /frontend/openlayers/examples/example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers Example 8 | 9 | 10 | 11 | 12 |

OpenLayers Example

13 |
simple, basic, light
14 |

15 | Demonstrate a simple map with an overlay that includes layer switching controls. 16 |

17 |
18 |
19 |

This is a basic example demonstrating the use of a map with two layers and a few controls.

20 |

View the example.js source to see how this is done.

21 |
22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/example.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map("map"); 2 | 3 | var ol_wms = new OpenLayers.Layer.WMS( 4 | "OpenLayers WMS", 5 | "http://vmap0.tiles.osgeo.org/wms/vmap0", 6 | {layers: "basic"} 7 | ); 8 | 9 | var dm_wms = new OpenLayers.Layer.WMS( 10 | "Canadian Data", 11 | "http://www2.dmsolutions.ca/cgi-bin/mswms_gmap", 12 | { 13 | layers: "bathymetry,land_fn,park,drain_fn,drainage," + 14 | "prov_bound,fedlimit,rail,road,popplace", 15 | transparent: "true", 16 | format: "image/png" 17 | }, 18 | {isBaseLayer: false, visibility: false} 19 | ); 20 | 21 | map.addLayers([ol_wms, dm_wms]); 22 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 23 | map.zoomToMaxExtent(); 24 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/fullScreen.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "map", 3 | layers: [ 4 | new OpenLayers.Layer.OSM("OSM (without buffer)"), 5 | new OpenLayers.Layer.OSM("OSM (with buffer)", null, {buffer: 2}) 6 | ], 7 | controls: [ 8 | new OpenLayers.Control.Navigation({ 9 | dragPanOptions: { 10 | enableKinetic: true 11 | } 12 | }), 13 | new OpenLayers.Control.PanZoom(), 14 | new OpenLayers.Control.Attribution() 15 | ], 16 | center: [0, 0], 17 | zoom: 3 18 | }); 19 | 20 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 21 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/geojson-reprojected.js: -------------------------------------------------------------------------------- 1 | // API key for http://openlayers.org. Please get your own at 2 | // http://bingmapsportal.com/ and use that instead. 3 | var apiKey = "AqTGBsziZHIJYYxgivLBf0hVdrAk9mWO5cQcb8Yux8sW5M8c8opEC2lZqKR1ZZXf"; 4 | 5 | var hybrid = new OpenLayers.Layer.Bing({ 6 | key: apiKey, 7 | type: "AerialWithLabels", 8 | name: "Bing Aerial With Labels" 9 | }); 10 | 11 | var vector = new OpenLayers.Layer.Vector("GeoJSON", { 12 | projection: "EPSG:4326", 13 | strategies: [new OpenLayers.Strategy.Fixed()], 14 | protocol: new OpenLayers.Protocol.HTTP({ 15 | url: "geojson-reprojected.json", 16 | format: new OpenLayers.Format.GeoJSON() 17 | }) 18 | }); 19 | 20 | var center = new OpenLayers.LonLat(-109.6, 46.7).transform("EPSG:4326", "EPSG:900913"); 21 | 22 | var map = new OpenLayers.Map({ 23 | div: "map", 24 | layers: [hybrid, vector], 25 | center: center, 26 | zoom: 4 27 | }); 28 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/geojson-reprojected.json: -------------------------------------------------------------------------------- 1 | {"type":"FeatureCollection","features":[{"type":"Feature","id":"USA-MT","properties":{"fips":"30","name":"Montana"},"geometry":{"type":"Polygon","coordinates":[[[-104.047534,49.000239],[-104.042057,47.861036],[-104.047534,45.944106],[-104.042057,44.996596],[-104.058488,44.996596],[-105.91517,45.002073],[-109.080842,45.002073],[-111.05254,45.002073],[-111.047063,44.476286],[-111.227803,44.580348],[-111.386634,44.75561],[-111.616665,44.547487],[-111.819312,44.509148],[-111.868605,44.563917],[-112.104113,44.520102],[-112.241036,44.569394],[-112.471068,44.481763],[-112.783254,44.48724],[-112.887315,44.394132],[-113.002331,44.448902],[-113.133778,44.772041],[-113.341901,44.782995],[-113.456917,44.865149],[-113.45144,45.056842],[-113.571933,45.128042],[-113.736241,45.330689],[-113.834826,45.522382],[-113.807441,45.604536],[-113.98818,45.703121],[-114.086765,45.593582],[-114.333228,45.456659],[-114.546828,45.560721],[-114.497536,45.670259],[-114.568736,45.774321],[-114.387997,45.88386],[-114.492059,46.037214],[-114.464674,46.272723],[-114.322274,46.645155],[-114.612552,46.639678],[-114.623506,46.705401],[-114.886399,46.809463],[-114.930214,46.919002],[-115.302646,47.187372],[-115.324554,47.258572],[-115.527201,47.302388],[-115.718894,47.42288],[-115.724371,47.696727],[-116.04751,47.976051],[-116.04751,49.000239],[-111.50165,48.994762],[-109.453274,49.000239],[-104.047534,49.000239]]]}}]} 2 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/google-v3-alloverlays.js: -------------------------------------------------------------------------------- 1 | var map; 2 | 3 | function init() { 4 | map = new OpenLayers.Map('map', {allOverlays: true}); 5 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 6 | 7 | // the SATELLITE layer has all 22 zoom level, so we add it first to 8 | // become the internal base layer that determines the zoom levels of the 9 | // map. 10 | var gsat = new OpenLayers.Layer.Google( 11 | "Google Satellite", 12 | {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22} 13 | ); 14 | var gphy = new OpenLayers.Layer.Google( 15 | "Google Physical", 16 | {type: google.maps.MapTypeId.TERRAIN, visibility: false} 17 | ); 18 | var gmap = new OpenLayers.Layer.Google( 19 | "Google Streets", // the default 20 | {numZoomLevels: 20, visibility: false} 21 | ); 22 | var ghyb = new OpenLayers.Layer.Google( 23 | "Google Hybrid", 24 | {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 22, visibility: false} 25 | ); 26 | 27 | map.addLayers([gsat, gphy, gmap, ghyb]); 28 | 29 | // Google.v3 uses EPSG:900913 as projection, so we have to 30 | // transform our coordinates 31 | map.setCenter(new OpenLayers.LonLat(10.2, 48.9).transform( 32 | new OpenLayers.Projection("EPSG:4326"), 33 | map.getProjectionObject() 34 | ), 5); 35 | } 36 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/google-v3.js: -------------------------------------------------------------------------------- 1 | var map; 2 | 3 | function init() { 4 | map = new OpenLayers.Map('map', { 5 | projection: 'EPSG:3857', 6 | layers: [ 7 | new OpenLayers.Layer.Google( 8 | "Google Physical", 9 | {type: google.maps.MapTypeId.TERRAIN} 10 | ), 11 | new OpenLayers.Layer.Google( 12 | "Google Streets", // the default 13 | {numZoomLevels: 20} 14 | ), 15 | new OpenLayers.Layer.Google( 16 | "Google Hybrid", 17 | {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20} 18 | ), 19 | new OpenLayers.Layer.Google( 20 | "Google Satellite", 21 | {type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 22} 22 | ) 23 | ], 24 | center: new OpenLayers.LonLat(10.2, 48.9) 25 | // Google.v3 uses web mercator as projection, so we have to 26 | // transform our coordinates 27 | .transform('EPSG:4326', 'EPSG:3857'), 28 | zoom: 5 29 | }); 30 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 31 | 32 | // add behavior to html 33 | var animate = document.getElementById("animate"); 34 | animate.onclick = function() { 35 | for (var i=map.layers.length-1; i>=0; --i) { 36 | map.layers[i].animationEnabled = this.checked; 37 | } 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/check-round-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/check-round-green.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/check-round-grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/check-round-grey.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/list.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/locate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/locate.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/marker_shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/marker_shadow.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/minus1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/minus1.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/mobile-layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/mobile-layers.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/mobile-loc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/mobile-loc.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/mobile-zoombar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/mobile-zoombar.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/openlayers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/openlayers.png -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/popupMatrix.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/popupMatrix.jpg -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/small.jpg -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/thinlong.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/thinlong.jpg -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/widelong.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/widelong.jpg -------------------------------------------------------------------------------- /frontend/openlayers/examples/img/wideshort.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/examples/img/wideshort.jpg -------------------------------------------------------------------------------- /frontend/openlayers/examples/kinetic.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "map", 3 | resolutions: [0.087890625, 0.0439453125, 0.02197265625, 0.010986328125], 4 | controls: [ 5 | new OpenLayers.Control.Navigation( 6 | {dragPanOptions: {enableKinetic: true}} 7 | ) 8 | ] 9 | }); 10 | var layer = new OpenLayers.Layer.TileCache("TileCache Layer", 11 | ["http://c0.tilecache.osgeo.org/wms-c/cache/", 12 | "http://c1.tilecache.osgeo.org/wms-c/cache/", 13 | "http://c2.tilecache.osgeo.org/wms-c/cache/", 14 | "http://c3.tilecache.osgeo.org/wms-c/cache/", 15 | "http://c4.tilecache.osgeo.org/wms-c/cache/"], 16 | "basic", 17 | { 18 | serverResolutions: [0.703125, 0.3515625, 0.17578125, 0.087890625, 19 | 0.0439453125, 0.02197265625, 0.010986328125, 20 | 0.0054931640625, 0.00274658203125, 0.001373291015625, 21 | 0.0006866455078125, 0.00034332275390625, 0.000171661376953125, 22 | 0.0000858306884765625, 0.00004291534423828125, 0.000021457672119140625], 23 | buffer: 4 24 | } 25 | ); 26 | map.addLayer(layer); 27 | map.setCenter(new OpenLayers.LonLat(0, 0), 0); -------------------------------------------------------------------------------- /frontend/openlayers/examples/kml-layer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

KML Layer Example

12 | 13 |
KML
14 | 15 |

16 | Demonstrates loading and displaying a KML file on top of a basemap. 17 |

18 | 19 |
20 | 21 |
22 |

23 | A vector layer can be populated with features from a KML document 24 | by configuring the layer with an HTTP protocol that points to the 25 | KML document and is configured with a KML format for parsing features. 26 | The fixed strategy is used to load all features at once. 27 |

28 |

29 | View the kml-layer.js 30 | source to see how this is done. 31 |

32 |
33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/kml-layer.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "map", 3 | layers: [ 4 | new OpenLayers.Layer.WMS( 5 | "WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", 6 | {layers: "basic"} 7 | ), 8 | new OpenLayers.Layer.Vector("KML", { 9 | strategies: [new OpenLayers.Strategy.Fixed()], 10 | protocol: new OpenLayers.Protocol.HTTP({ 11 | url: "kml/lines.kml", 12 | format: new OpenLayers.Format.KML({ 13 | extractStyles: true, 14 | extractAttributes: true, 15 | maxDepth: 2 16 | }) 17 | }) 18 | }) 19 | ], 20 | center: new OpenLayers.LonLat(-112.169, 36.099), 21 | zoom: 11 22 | }); 23 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/kml-track.js: -------------------------------------------------------------------------------- 1 | var map; 2 | 3 | function init() { 4 | 5 | var mercator = new OpenLayers.Projection("EPSG:900913"); 6 | var geographic = new OpenLayers.Projection("EPSG:4326"); 7 | 8 | map = new OpenLayers.Map({ 9 | div: "map", 10 | projection: mercator, 11 | layers: [ 12 | new OpenLayers.Layer.OSM(), 13 | new OpenLayers.Layer.Vector("Aircraft Locations", { 14 | projection: geographic, 15 | strategies: [new OpenLayers.Strategy.Fixed()], 16 | protocol: new OpenLayers.Protocol.HTTP({ 17 | url: "kml-track.kml", 18 | format: new OpenLayers.Format.KML({ 19 | extractTracks: true, 20 | trackAttributes: ["speed"] 21 | }) 22 | }), 23 | styleMap: new OpenLayers.StyleMap({ 24 | "default": new OpenLayers.Style({ 25 | graphicName: "circle", 26 | pointRadius: 2, 27 | fillOpacity: 0.5, 28 | fillColor: "#ffcc66", 29 | strokeColor: "#666633", 30 | strokeWidth: 1 31 | }) 32 | }) 33 | }) 34 | ], 35 | center: new OpenLayers.LonLat(-93.2735, 44.8349).transform(geographic, mercator), 36 | zoom: 8 37 | }); 38 | 39 | }; 40 | 41 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/kml/styles.kml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/label-scale.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers Scale Dependent Labels 8 | 9 | 10 | 11 | 12 | 13 |

Scale Dependent Labels Example

14 |
15 | label, scale, stylemap 16 |
17 |

18 | Demonstrates how to use a StyleMap for displaying scale dependent labels. 19 |

20 |
21 |
22 |

23 | This example uses rule based styling to change the how features are 24 | labeled at different scales. An OpenLayers.Rule object 25 | can have minScaleDenominator and 26 | maxScaleDenominator properties to control when the 27 | provided symbolizer should be used. 28 |

29 | View the source to see how this is done. 30 |

31 |
32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/lite.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers Basic Single WMS Example 8 | 9 | 10 | 11 | 22 | 23 | 24 |

Basic Single WMS Example

25 | 26 |
27 | basic, simple, minimal, cleanup 28 |
29 | 30 |
Show a Simple Map
31 | 32 |
33 | 34 |
35 |

This example shows a very simple layout with minimal controls. 36 | This example uses a single WMS base layer.

37 |
38 | 39 | 40 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/mapbox.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers MapBox Example 8 | 9 | 10 | 11 | 12 |

Basic MapBox OSM Example

13 |
mapbox xyz osm
14 | 15 |
Shows how to use MapBox tiles in an OpenLayers map.
16 | 17 |
18 | 19 |
20 |

This example demonstrates the use of an XYZ layer that accesses tiles from MapBox.

21 |

22 | See the mapbox.js source 23 | for details. Make sure to read the Terms of Service 24 | before using MapBox tiles in your application. 25 |

26 |
27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/mapbox.js: -------------------------------------------------------------------------------- 1 | var earth = new OpenLayers.Layer.XYZ( 2 | "Natural Earth", 3 | [ 4 | "http://a.tiles.mapbox.com/v3/mapbox.natural-earth-hypso-bathy/${z}/${x}/${y}.png", 5 | "http://b.tiles.mapbox.com/v3/mapbox.natural-earth-hypso-bathy/${z}/${x}/${y}.png", 6 | "http://c.tiles.mapbox.com/v3/mapbox.natural-earth-hypso-bathy/${z}/${x}/${y}.png", 7 | "http://d.tiles.mapbox.com/v3/mapbox.natural-earth-hypso-bathy/${z}/${x}/${y}.png" 8 | ], { 9 | attribution: "Tiles © MapBox", 10 | sphericalMercator: true, 11 | wrapDateLine: true, 12 | numZoomLevels: 5 13 | } 14 | ); 15 | 16 | var map = new OpenLayers.Map({ 17 | div: "map", 18 | layers: [earth], 19 | center: [0, 0], 20 | zoom: 1 21 | }); 22 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/mapquest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers MapQuest Demo 8 | 9 | 10 | 11 | 12 |

OpenLayers with MapQuest Tiles

13 |
14 | This example demonstrates the use of MapQuest tiles with OpenLayers. 15 |
16 |
17 | MapQuest, OSM, XYZ 18 |
19 |
20 |
21 |

22 | See the mapquest.js source for 23 | detail on using MapQuest tiles in OpenLayers. 24 |

25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/mobile-navigation.js: -------------------------------------------------------------------------------- 1 | var map; 2 | 3 | function init() { 4 | map = new OpenLayers.Map({ 5 | div: "map", 6 | theme: null, 7 | projection: new OpenLayers.Projection("EPSG:900913"), 8 | numZoomLevels: 18, 9 | controls: [ 10 | new OpenLayers.Control.TouchNavigation({ 11 | dragPanOptions: { 12 | enableKinetic: true 13 | } 14 | }), 15 | new OpenLayers.Control.Zoom() 16 | ], 17 | layers: [ 18 | new OpenLayers.Layer.OSM("OpenStreetMap", null, { 19 | transitionEffect: 'resize' 20 | }) 21 | ] 22 | }); 23 | map.setCenter(new OpenLayers.LonLat(0, 0), 3); 24 | } 25 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/mobile-wmts-vienna.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | City of Vienna WMTS with REST Encoding and Geolocate 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |

City of Vienna WMTS for Desktop and Mobile Devices

13 |
14 | mobile, vienna, ogdwien, rest, restful, wmts, geolocate, permalink 15 |
16 |

17 | A full-screen map for both desktop and mobile devices. Uses 18 | language dependent CSS content and the WMTSCapabilities format to 19 | retrieve layers from the ogdwien open data initiative of the City 20 | of Vienna. Also has a lightweight custom anchor permalink 21 | functionality and uses the Geolocate control. 22 |

23 |
24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/mobile.js: -------------------------------------------------------------------------------- 1 | // initialize map when page ready 2 | var map; 3 | 4 | // Get rid of address bar on iphone/ipod 5 | var fixSize = function() { 6 | window.scrollTo(0,0); 7 | document.body.style.height = '100%'; 8 | if (!(/(iphone|ipod)/.test(navigator.userAgent.toLowerCase()))) { 9 | if (document.body.parentNode) { 10 | document.body.parentNode.style.height = '100%'; 11 | } 12 | } 13 | }; 14 | setTimeout(fixSize, 700); 15 | setTimeout(fixSize, 1500); 16 | 17 | var init = function () { 18 | // create map 19 | map = new OpenLayers.Map({ 20 | div: "map", 21 | theme: null, 22 | controls: [ 23 | new OpenLayers.Control.Attribution(), 24 | new OpenLayers.Control.TouchNavigation({ 25 | dragPanOptions: { 26 | enableKinetic: true 27 | } 28 | }), 29 | new OpenLayers.Control.Zoom() 30 | ], 31 | layers: [ 32 | new OpenLayers.Layer.OSM("OpenStreetMap", null, { 33 | transitionEffect: 'resize' 34 | }) 35 | ], 36 | center: new OpenLayers.LonLat(742000, 5861000), 37 | zoom: 3 38 | }); 39 | }; 40 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/multitouch.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Multitouch Test 6 | 7 | 8 |
9 |
10 | Touch inside the box. On a touch enabled browser, you will get the number 11 | of detected touch events. If the box is red, your browser does not support 12 | touch events. 13 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/osm-google.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers OSM and Google Example 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |

OSM and Google Together

16 |

17 | Demonstrate use of an OSM layer and a Google layer as base layers. 18 |

19 |
20 | openstreetmap google light 21 |
22 |
23 |
24 |

25 | The Google(v3) layer and the OSM are both in the same projection 26 | - spherical mercator - and can be used on a map together. 27 | See the 28 | osm-google.js source to see how this is done. 29 |

30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/osm-google.js: -------------------------------------------------------------------------------- 1 | var map; 2 | 3 | function init() { 4 | map = new OpenLayers.Map({ 5 | div: "map", 6 | projection: new OpenLayers.Projection("EPSG:900913") 7 | }); 8 | 9 | var osm = new OpenLayers.Layer.OSM(); 10 | var gmap = new OpenLayers.Layer.Google("Google Streets"); 11 | 12 | map.addLayers([osm, gmap]); 13 | 14 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 15 | 16 | map.setCenter( 17 | new OpenLayers.LonLat(10.2, 48.9).transform( 18 | new OpenLayers.Projection("EPSG:4326"), 19 | map.getProjectionObject() 20 | ), 21 | 5 22 | ); 23 | } 24 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/osm-marker-popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers OSM and Google Example 8 | 9 | 10 | 11 | 12 | 13 | 14 |

OSM with Marker and Popup

15 |

16 | Demonstrate use of an OSM layer with a marker and a popup. 17 |

18 |
19 | openstreetmap osm marker popup 20 |
21 |
22 |
23 |

24 | A common use case for OpenLayers is to display a marker at a 25 | location on the map, and add some information in a popup. It 26 | is also easy to add a tooltip with a short description. 27 | See the 28 | osm-marker-popup.js source to see how this is done. 29 |

30 |
31 | 32 | 33 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/point-grid.js: -------------------------------------------------------------------------------- 1 | var points = new OpenLayers.Layer.PointGrid({ 2 | isBaseLayer: true, dx: 15, dy: 15 3 | }); 4 | 5 | var map = new OpenLayers.Map({ 6 | div: "map", 7 | layers: [points], 8 | center: new OpenLayers.LonLat(0, 0), 9 | zoom: 2 10 | }); 11 | 12 | var rotation = document.getElementById("rotation"); 13 | rotation.value = String(points.rotation); 14 | rotation.onchange = function() { 15 | points.setRotation(Number(rotation.value)); 16 | }; 17 | 18 | var dx = document.getElementById("dx"); 19 | var dy = document.getElementById("dy"); 20 | dx.value = String(points.dx); 21 | dy.value = String(points.dy); 22 | dx.onchange = function() { 23 | points.setSpacing(Number(dx.value), Number(dy.value)); 24 | }; 25 | dy.onchange = function() { 26 | points.setSpacing(Number(dx.value), Number(dy.value)); 27 | }; 28 | 29 | var max = document.getElementById("max"); 30 | max.value = String(points.maxFeatures); 31 | max.onchange = function() { 32 | points.setMaxFeatures(Number(max.value)); 33 | }; 34 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/single-tile.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "mapDiv", 3 | layers: [ 4 | new OpenLayers.Layer.WMS( 5 | "Single Tile", 6 | "http://vmap0.tiles.osgeo.org/wms/vmap0", 7 | {layers: "basic"}, 8 | {singleTile: true, ratio: 1} 9 | ), 10 | new OpenLayers.Layer.WMS( 11 | "Multiple Tiles", 12 | "http://vmap0.tiles.osgeo.org/wms/vmap0", 13 | {layers: "basic"} 14 | ) 15 | ], 16 | center: new OpenLayers.LonLat(6.5, 40.5), 17 | zoom: 4 18 | }); 19 | 20 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 21 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/sld.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

Styled Layer Descriptor (SLD) Example

15 |
16 | vector, feature, sld, styling, style 17 |
18 |

19 | Parsing SLD and applying styles to a vector layer. 20 |

21 |
22 |

This example uses a SLD 23 | file to style the vector features. To construct layers that use styles 24 | from SLD, create a StyleMap for the layer that uses one of the userStyles in the 25 | namedLayers object of the return from format.read(). Look at the sld.js source 26 | to see how this is done.

27 |

Select a new style for the WaterBodies layer below:

28 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/style.mobile-jq.css: -------------------------------------------------------------------------------- 1 | html , 2 | body { 3 | margin: 0; 4 | padding: 0; 5 | height: 100%; 6 | } 7 | .ui-content { 8 | padding: 0; 9 | } 10 | .ui-footer { 11 | text-align: center; 12 | padding: 5px 0; 13 | } 14 | .portrait, .portrait #mappage { 15 | min-height: 0; 16 | } 17 | /*.portrait, .portrait .ui-page{*/ 18 | /*min-height: 0;*/ 19 | /*}*/ 20 | #mappage, #mappage .ui-content, #map { 21 | width: 100%; 22 | height: 100%; 23 | } 24 | .olControlAttribution { 25 | font-size: 10px; 26 | bottom: 5px; 27 | right: 5px; 28 | } 29 | #navigation { 30 | position: absolute; 31 | bottom: 70px; 32 | left: 10px; 33 | z-index: 1000; 34 | } 35 | #navigation .ui-btn-icon-notext { 36 | display: block; 37 | padding: 7px 6px 7px 8px; 38 | } 39 | #title, #tags, #shortdesc { 40 | display: none; 41 | } 42 | .ui-icon-check { 43 | opacity: 0.3; 44 | } 45 | .checked .ui-icon-check { 46 | opacity: 1; 47 | } 48 | .ui-icon-locate { 49 | background-image: url(img/locate.png); 50 | } 51 | .ui-icon-layers { 52 | background-image: url(img/openlayers.png); 53 | } 54 | .ui-content .ui-listview-inset, #search_results { 55 | margin: 1em; 56 | } 57 | .ui-content .ui-listview { 58 | margin: 0; 59 | } 60 | #details-list li{ 61 | padding:15px 10px; 62 | } 63 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/textfile.txt: -------------------------------------------------------------------------------- 1 | point title description icon 2 | 10,20 my orange title my orange description 3 | 2,4 my aqua title my aqua description 4 | 42,-71 my purple title my purple description
is great. http://www.openlayers.org/api/img/zoom-world-mini.png 5 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/tile-origin.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "map", 3 | maxExtent: new OpenLayers.Bounds(-130, 30, -80, 55), 4 | maxResolution: 360 / 256 / Math.pow(2, 4), 5 | numZoomLevels: 12, 6 | layers: [ 7 | new OpenLayers.Layer.WMS( 8 | "Global Imagery", 9 | "http://maps.opengeo.org/geowebcache/service/wms", 10 | {layers: "bluemarble"}, 11 | {tileOrigin: new OpenLayers.LonLat(-180, -90)} 12 | ) 13 | ], 14 | center: new OpenLayers.LonLat(-110, 45), 15 | zoom: 0 16 | }); 17 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/web-mercator.js: -------------------------------------------------------------------------------- 1 | // make map available for easy debugging 2 | var map; 3 | 4 | function init() { 5 | 6 | var options = { 7 | projection: new OpenLayers.Projection("EPSG:102113"), 8 | units: "m", 9 | numZoomLevels: 18, 10 | maxResolution: 156543.0339, 11 | maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 12 | 20037508, 20037508.34) 13 | }; 14 | map = new OpenLayers.Map('map', options); 15 | 16 | // create Google layer with EPSG:102113 code 17 | var gsat = new OpenLayers.Layer.Google("Google Imagery", { 18 | type: G_SATELLITE_MAP, 19 | sphericalMercator: true, 20 | projection: "EPSG:102113" 21 | }); 22 | 23 | // create WMS layer 24 | var wms = new OpenLayers.Layer.WMS( 25 | "Highways", 26 | "http://sampleserver1.arcgisonline.com/arcgis/services/Specialty/ESRI_StateCityHighway_USA/MapServer/WMSServer", 27 | {layers: "2", format: "image/gif", transparent: "true"}, 28 | { 29 | isBaseLayer: false, 30 | wrapDateLine: true 31 | } 32 | ); 33 | 34 | map.addLayers([gsat, wms]); 35 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 36 | map.setCenter(new OpenLayers.LonLat(-10723197, 4500612), 3); 37 | } 38 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/wfs-spatial-filter.js: -------------------------------------------------------------------------------- 1 | OpenLayers.ProxyHost= "proxy.cgi?url="; 2 | var map = new OpenLayers.Map('map'); 3 | var wms = new OpenLayers.Layer.WMS( 4 | "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", 5 | {layers: "basic"} 6 | ); 7 | 8 | var layer = new OpenLayers.Layer.Vector("WFS", { 9 | strategies: [new OpenLayers.Strategy.BBOX()], 10 | protocol: new OpenLayers.Protocol.WFS({ 11 | url: "http://demo.opengeo.org/geoserver/wfs", 12 | featureType: "tasmania_roads", 13 | featureNS: "http://www.openplans.org/topp" 14 | }) 15 | }); 16 | 17 | map.addLayers([wms, layer]); 18 | map.setCenter(new OpenLayers.LonLat(146.7, -41.8), 6); 19 | 20 | var drawings = new OpenLayers.Layer.Vector(); 21 | map.addLayer(drawings); 22 | var draw = new OpenLayers.Control.DrawFeature(drawings, OpenLayers.Handler.Polygon); 23 | map.addControl(draw); 24 | draw.activate(); 25 | 26 | drawings.events.on({ 27 | beforefeatureadded: function(event) { 28 | var geometry = event.feature.geometry; 29 | layer.filter = new OpenLayers.Filter.Spatial({ 30 | type: OpenLayers.Filter.Spatial.INTERSECTS, 31 | value: event.feature.geometry 32 | }); 33 | layer.refresh({force: true}); 34 | return false; 35 | } 36 | }); 37 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/wfs-states.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | WFS: United States (GeoServer) 10 | 11 | 12 | 13 | 14 |

WFS United States (GeoServer) Example

15 |
16 | wfs, vector 17 |
18 |

19 | Shows the use of the WFS United States (GeoServer). 20 |

21 |
22 |
23 |

24 | This example shows the basic use of a vector layer with the 25 | WFS protocol, and shows how to switch between a WMS and a vector 26 | layer at a certain scale. 27 |

28 |

29 | See the wfs-states.js 30 | source to see how this is done. 31 |

32 |
33 | 34 | 35 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/wfs-states.js: -------------------------------------------------------------------------------- 1 | var map; 2 | OpenLayers.ProxyHost = "proxy.cgi?url="; 3 | 4 | function init() { 5 | // allow testing of specific renderers via "?renderer=Canvas", etc 6 | var renderer = OpenLayers.Util.getParameters(window.location.href).renderer; 7 | renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; 8 | 9 | map = new OpenLayers.Map({ 10 | div: "map", 11 | layers: [ 12 | new OpenLayers.Layer.WMS("OpenLayers WMS", 13 | "http://vmap0.tiles.osgeo.org/wms/vmap0", 14 | {layers: "basic"} 15 | ), 16 | new OpenLayers.Layer.WMS("States WMS", 17 | "http://demo.opengeo.org/geoserver/wms", 18 | {layers: "topp:states", format: "image/png", transparent: true}, 19 | {maxScale: 15000000} 20 | ), 21 | new OpenLayers.Layer.Vector("States", { 22 | minScale: 15000000, 23 | strategies: [new OpenLayers.Strategy.BBOX()], 24 | protocol: new OpenLayers.Protocol.WFS({ 25 | url: "http://demo.opengeo.org/geoserver/wfs", 26 | featureType: "states", 27 | featureNS: "http://www.openplans.org/topp" 28 | }), 29 | renderers: renderer 30 | }) 31 | ], 32 | center: [-95.8506355, 37.163851], 33 | zoom: 3 34 | }); 35 | } 36 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/wms-long-url.js: -------------------------------------------------------------------------------- 1 | // a long text that we set as dummy param (makeTheUrlLong) to make the url long 2 | var longText = new Array(205).join("1234567890"); 3 | 4 | var map = new OpenLayers.Map( 'map' ); 5 | var base = new OpenLayers.Layer.WMS( "OpenLayers WMS", 6 | "http://vmap0.tiles.osgeo.org/wms/vmap0", 7 | {layers: 'basic', makeTheUrlLong: longText}, 8 | {tileOptions: {maxGetUrlLength: 2048}, transitionEffect: 'resize'} 9 | ); 10 | var overlay = new OpenLayers.Layer.WMS("Overlay", 11 | "http://suite.opengeo.org/geoserver/wms", 12 | {layers: "usa:states", transparent: true, makeTheUrlLong: longText}, 13 | {ratio: 1, singleTile: true, tileOptions: {maxGetUrlLength: 2048}, transitionEffect: 'resize'} 14 | ); 15 | map.addLayers([base, overlay]); 16 | map.zoomToMaxExtent(); 17 | 18 | // add behavior to dom elements 19 | document.getElementById("longurl").onclick = function() { 20 | base.mergeNewParams({makeTheUrlLong: longText}); 21 | overlay.mergeNewParams({makeTheUrlLong: longText}); 22 | }; 23 | document.getElementById("shorturl").onclick = function() { 24 | base.mergeNewParams({makeTheUrlLong: null}); 25 | overlay.mergeNewParams({makeTheUrlLong: null}); 26 | }; 27 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/wmts.js: -------------------------------------------------------------------------------- 1 | var map; 2 | 3 | function init() { 4 | 5 | map = new OpenLayers.Map({ 6 | div: "map", 7 | projection: "EPSG:900913" 8 | }); 9 | 10 | var osm = new OpenLayers.Layer.OSM(); 11 | 12 | // If tile matrix identifiers differ from zoom levels (0, 1, 2, ...) 13 | // then they must be explicitly provided. 14 | var matrixIds = new Array(26); 15 | for (var i=0; i<26; ++i) { 16 | matrixIds[i] = "EPSG:900913:" + i; 17 | } 18 | 19 | var wmts = new OpenLayers.Layer.WMTS({ 20 | name: "Medford Buildings", 21 | url: "http://v2.suite.opengeo.org/geoserver/gwc/service/wmts/", 22 | layer: "medford:buildings", 23 | matrixSet: "EPSG:900913", 24 | matrixIds: matrixIds, 25 | format: "image/png", 26 | style: "_null", 27 | opacity: 0.7, 28 | isBaseLayer: false 29 | }); 30 | 31 | map.addLayers([osm, wmts]); 32 | map.addControl(new OpenLayers.Control.LayerSwitcher()); 33 | map.setCenter(new OpenLayers.LonLat(-13677832, 5213272), 13); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/wps-client.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | OpenLayers WPS Client Example 8 | 9 | 10 | 11 | 12 | 13 | 14 |

WPS Client Example

15 | 16 |
17 | wps 18 |
19 | 20 |
Shows the usage of the WPS Client
21 | 22 |
23 | 24 |
25 |

This example shows how simple it is to use the WPS Client. It 26 | buffers an intersection of a geometry and a feature, which is 27 | accomplished by chaining two processes. See 28 | wps-client.js to see how this is done.

29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/xml/wmsdescribelayer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /frontend/openlayers/examples/zoom.js: -------------------------------------------------------------------------------- 1 | var map = new OpenLayers.Map({ 2 | div: "map", 3 | layers: [new OpenLayers.Layer.OSM()], 4 | controls: [ 5 | new OpenLayers.Control.Navigation({ 6 | dragPanOptions: { 7 | enableKinetic: true 8 | } 9 | }), 10 | new OpenLayers.Control.Attribution(), 11 | new OpenLayers.Control.Zoom() 12 | ], 13 | center: [0, 0], 14 | zoom: 1 15 | }); 16 | 17 | var map2 = new OpenLayers.Map({ 18 | div: "map2", 19 | layers: [new OpenLayers.Layer.OSM()], 20 | controls: [ 21 | new OpenLayers.Control.Navigation({ 22 | dragPanOptions: { 23 | enableKinetic: true 24 | } 25 | }), 26 | new OpenLayers.Control.Attribution(), 27 | new OpenLayers.Control.Zoom({ 28 | zoomInId: "customZoomIn", 29 | zoomOutId: "customZoomOut" 30 | }) 31 | ], 32 | center: [0, 0], 33 | zoom: 1 34 | }); 35 | -------------------------------------------------------------------------------- /frontend/openlayers/img/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/blank.gif -------------------------------------------------------------------------------- /frontend/openlayers/img/cloud-popup-relative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/cloud-popup-relative.png -------------------------------------------------------------------------------- /frontend/openlayers/img/drag-rectangle-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/drag-rectangle-off.png -------------------------------------------------------------------------------- /frontend/openlayers/img/drag-rectangle-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/drag-rectangle-on.png -------------------------------------------------------------------------------- /frontend/openlayers/img/east-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/east-mini.png -------------------------------------------------------------------------------- /frontend/openlayers/img/imageMarker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/imageMarker.png -------------------------------------------------------------------------------- /frontend/openlayers/img/layer-switcher-maximize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/layer-switcher-maximize.png -------------------------------------------------------------------------------- /frontend/openlayers/img/layer-switcher-minimize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/layer-switcher-minimize.png -------------------------------------------------------------------------------- /frontend/openlayers/img/marker-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/marker-blue.png -------------------------------------------------------------------------------- /frontend/openlayers/img/marker-gold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/marker-gold.png -------------------------------------------------------------------------------- /frontend/openlayers/img/marker-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/marker-green.png -------------------------------------------------------------------------------- /frontend/openlayers/img/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/marker.png -------------------------------------------------------------------------------- /frontend/openlayers/img/measuring-stick-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/measuring-stick-off.png -------------------------------------------------------------------------------- /frontend/openlayers/img/measuring-stick-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/measuring-stick-on.png -------------------------------------------------------------------------------- /frontend/openlayers/img/north-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/north-mini.png -------------------------------------------------------------------------------- /frontend/openlayers/img/panning-hand-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/panning-hand-off.png -------------------------------------------------------------------------------- /frontend/openlayers/img/panning-hand-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/panning-hand-on.png -------------------------------------------------------------------------------- /frontend/openlayers/img/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/slider.png -------------------------------------------------------------------------------- /frontend/openlayers/img/south-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/south-mini.png -------------------------------------------------------------------------------- /frontend/openlayers/img/west-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/west-mini.png -------------------------------------------------------------------------------- /frontend/openlayers/img/zoom-minus-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/zoom-minus-mini.png -------------------------------------------------------------------------------- /frontend/openlayers/img/zoom-plus-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/zoom-plus-mini.png -------------------------------------------------------------------------------- /frontend/openlayers/img/zoom-world-mini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/zoom-world-mini.png -------------------------------------------------------------------------------- /frontend/openlayers/img/zoombar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/img/zoombar.png -------------------------------------------------------------------------------- /frontend/openlayers/lib/Firebug/errorIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/lib/Firebug/errorIcon.png -------------------------------------------------------------------------------- /frontend/openlayers/lib/Firebug/firebug.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | Firebug 8 | 9 | 10 | 11 | 12 |
13 | Clear 14 | 15 | Close 16 | 17 |
18 |
19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/Firebug/firebugx.js: -------------------------------------------------------------------------------- 1 | (function() { 2 | if (!window.console || !console.firebug) { 3 | var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", 4 | "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; 5 | 6 | window.console = {}; 7 | for (var i = 0; i < names.length; ++i) 8 | window.console[names[i]] = function() {} 9 | } 10 | })(); 11 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/Firebug/infoIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/lib/Firebug/infoIcon.png -------------------------------------------------------------------------------- /frontend/openlayers/lib/Firebug/readme.txt: -------------------------------------------------------------------------------- 1 | This directory contains the source for Firebug Lite 2 | (http://www.getfirebug.com/lite.html). This code is distributed with a 3 | BSD License, Copyright (c) 2007, Parakey Inc. See the included license.txt 4 | for the full text of the license. 5 | 6 | This is a patched version of the trunk from 7 | http://fbug.googlecode.com/svn/trunk. 8 | 9 | Revision 36 was patched to resolve the issue described here 10 | http://code.google.com/p/fbug/issues/detail?id=85 11 | 12 | When this issue is resolved, Firebug Lite can be used directly - no further 13 | modifications are needed for OpenLayers. -------------------------------------------------------------------------------- /frontend/openlayers/lib/Firebug/warningIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/lib/Firebug/warningIcon.png -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Control/Button.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Control.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Control.Button 12 | * The Button control is a very simple push-button, for use with 13 | * . 14 | * When clicked, the function trigger() is executed. 15 | * 16 | * Inherits from: 17 | * - 18 | * 19 | * Use: 20 | * (code) 21 | * var button = new OpenLayers.Control.Button({ 22 | * displayClass: "MyButton", trigger: myFunction 23 | * }); 24 | * panel.addControls([button]); 25 | * (end) 26 | * 27 | * Will create a button with CSS class MyButtonItemInactive, that 28 | * will call the function MyFunction() when clicked. 29 | */ 30 | OpenLayers.Control.Button = OpenLayers.Class(OpenLayers.Control, { 31 | /** 32 | * Property: type 33 | * {Integer} OpenLayers.Control.TYPE_BUTTON. 34 | */ 35 | type: OpenLayers.Control.TYPE_BUTTON, 36 | 37 | /** 38 | * Method: trigger 39 | * Called by a control panel when the button is clicked. 40 | */ 41 | trigger: function() {}, 42 | 43 | CLASS_NAME: "OpenLayers.Control.Button" 44 | }); 45 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Control/ZoomIn.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Control/Button.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Control.ZoomIn 12 | * The ZoomIn control is a button to increase the zoom level of a map. 13 | * 14 | * Inherits from: 15 | * - 16 | */ 17 | OpenLayers.Control.ZoomIn = OpenLayers.Class(OpenLayers.Control.Button, { 18 | 19 | /** 20 | * Method: trigger 21 | */ 22 | trigger: function(){ 23 | if (this.map) { 24 | this.map.zoomIn(); 25 | } 26 | }, 27 | 28 | CLASS_NAME: "OpenLayers.Control.ZoomIn" 29 | }); 30 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Control/ZoomOut.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Control/Button.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Control.ZoomOut 12 | * The ZoomOut control is a button to decrease the zoom level of a map. 13 | * 14 | * Inherits from: 15 | * - 16 | */ 17 | OpenLayers.Control.ZoomOut = OpenLayers.Class(OpenLayers.Control.Button, { 18 | 19 | /** 20 | * Method: trigger 21 | */ 22 | trigger: function(){ 23 | if (this.map) { 24 | this.map.zoomOut(); 25 | } 26 | }, 27 | 28 | CLASS_NAME: "OpenLayers.Control.ZoomOut" 29 | }); 30 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Control/ZoomToMaxExtent.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Control/Button.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Control.ZoomToMaxExtent 12 | * The ZoomToMaxExtent control is a button that zooms out to the maximum 13 | * extent of the map. It is designed to be used with a 14 | * . 15 | * 16 | * Inherits from: 17 | * - 18 | */ 19 | OpenLayers.Control.ZoomToMaxExtent = OpenLayers.Class(OpenLayers.Control.Button, { 20 | 21 | /** 22 | * Method: trigger 23 | * 24 | * Called whenever this control is being rendered inside of a panel and a 25 | * click occurs on this controls element. Actually zooms to the maximum 26 | * extent of this controls map. 27 | */ 28 | trigger: function() { 29 | if (this.map) { 30 | this.map.zoomToMaxExtent(); 31 | } 32 | }, 33 | 34 | CLASS_NAME: "OpenLayers.Control.ZoomToMaxExtent" 35 | }); 36 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Filter/Function.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Filter.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Filter.Function 12 | * This class represents a filter function. 13 | * We are using this class for creation of complex 14 | * filters that can contain filter functions as values. 15 | * Nesting function as other functions parameter is supported. 16 | * 17 | * Inherits from: 18 | * - 19 | */ 20 | OpenLayers.Filter.Function = OpenLayers.Class(OpenLayers.Filter, { 21 | 22 | /** 23 | * APIProperty: name 24 | * {String} Name of the function. 25 | */ 26 | name: null, 27 | 28 | /** 29 | * APIProperty: params 30 | * {Array( || String || Number)} Function parameters 31 | * For now support only other Functions, String or Number 32 | */ 33 | params: null, 34 | 35 | /** 36 | * Constructor: OpenLayers.Filter.Function 37 | * Creates a filter function. 38 | * 39 | * Parameters: 40 | * options - {Object} An optional object with properties to set on the 41 | * function. 42 | * 43 | * Returns: 44 | * {} 45 | */ 46 | 47 | CLASS_NAME: "OpenLayers.Filter.Function" 48 | }); 49 | 50 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Format/CSWGetDomain.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Format.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Format.CSWGetDomain 12 | * Default version is 2.0.2. 13 | * 14 | * Returns: 15 | * {} A CSWGetDomain format of the given version. 16 | */ 17 | OpenLayers.Format.CSWGetDomain = function(options) { 18 | options = OpenLayers.Util.applyDefaults( 19 | options, OpenLayers.Format.CSWGetDomain.DEFAULTS 20 | ); 21 | var cls = OpenLayers.Format.CSWGetDomain["v"+options.version.replace(/\./g, "_")]; 22 | if(!cls) { 23 | throw "Unsupported CSWGetDomain version: " + options.version; 24 | } 25 | return new cls(options); 26 | }; 27 | 28 | /** 29 | * Constant: DEFAULTS 30 | * {Object} Default properties for the CSWGetDomain format. 31 | */ 32 | OpenLayers.Format.CSWGetDomain.DEFAULTS = { 33 | "version": "2.0.2" 34 | }; 35 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Format/CSWGetRecords.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Format.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Format.CSWGetRecords 12 | * Default version is 2.0.2. 13 | * 14 | * Returns: 15 | * {} A CSWGetRecords format of the given version. 16 | */ 17 | OpenLayers.Format.CSWGetRecords = function(options) { 18 | options = OpenLayers.Util.applyDefaults( 19 | options, OpenLayers.Format.CSWGetRecords.DEFAULTS 20 | ); 21 | var cls = OpenLayers.Format.CSWGetRecords["v"+options.version.replace(/\./g, "_")]; 22 | if(!cls) { 23 | throw "Unsupported CSWGetRecords version: " + options.version; 24 | } 25 | return new cls(options); 26 | }; 27 | 28 | /** 29 | * Constant: DEFAULTS 30 | * {Object} Default properties for the CSWGetRecords format. 31 | */ 32 | OpenLayers.Format.CSWGetRecords.DEFAULTS = { 33 | "version": "2.0.2" 34 | }; 35 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Format/SLD/v1_0_0.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Format/SLD/v1.js 8 | * @requires OpenLayers/Format/Filter/v1_0_0.js 9 | */ 10 | 11 | /** 12 | * Class: OpenLayers.Format.SLD.v1_0_0 13 | * Write SLD version 1.0.0. 14 | * 15 | * Inherits from: 16 | * - 17 | */ 18 | OpenLayers.Format.SLD.v1_0_0 = OpenLayers.Class( 19 | OpenLayers.Format.SLD.v1, { 20 | 21 | /** 22 | * Constant: VERSION 23 | * {String} 1.0.0 24 | */ 25 | VERSION: "1.0.0", 26 | 27 | /** 28 | * Property: schemaLocation 29 | * {String} http://www.opengis.net/sld 30 | * http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd 31 | */ 32 | schemaLocation: "http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd", 33 | 34 | /** 35 | * Constructor: OpenLayers.Format.SLD.v1_0_0 36 | * Instances of this class are not created directly. Use the 37 | * constructor instead. 38 | * 39 | * Parameters: 40 | * options - {Object} An optional object whose properties will be set on 41 | * this instance. 42 | */ 43 | 44 | CLASS_NAME: "OpenLayers.Format.SLD.v1_0_0" 45 | 46 | }); 47 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Format/WCSCapabilities.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Format/XML/VersionedOGC.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Format.WCSCapabilities 12 | * Read WCS Capabilities. 13 | * 14 | * Inherits from: 15 | * - 16 | */ 17 | OpenLayers.Format.WCSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, { 18 | 19 | /** 20 | * APIProperty: defaultVersion 21 | * {String} Version number to assume if none found. Default is "1.1.0". 22 | */ 23 | defaultVersion: "1.1.0", 24 | 25 | /** 26 | * Constructor: OpenLayers.Format.WCSCapabilities 27 | * Create a new parser for WCS capabilities. 28 | * 29 | * Parameters: 30 | * options - {Object} An optional object whose properties will be set on 31 | * this instance. 32 | */ 33 | 34 | /** 35 | * APIMethod: read 36 | * Read capabilities data from a string, and return a list of coverages. 37 | * 38 | * Parameters: 39 | * data - {String} or {DOMElement} data to read/parse. 40 | * 41 | * Returns: 42 | * {Array} List of named coverages. 43 | */ 44 | 45 | CLASS_NAME: "OpenLayers.Format.WCSCapabilities" 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Format/WFSCapabilities.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Format/XML/VersionedOGC.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Format.WFSCapabilities 12 | * Read WFS Capabilities. 13 | * 14 | * Inherits from: 15 | * - 16 | */ 17 | OpenLayers.Format.WFSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, { 18 | 19 | /** 20 | * APIProperty: defaultVersion 21 | * {String} Version number to assume if none found. Default is "1.1.0". 22 | */ 23 | defaultVersion: "1.1.0", 24 | 25 | /** 26 | * Constructor: OpenLayers.Format.WFSCapabilities 27 | * Create a new parser for WFS capabilities. 28 | * 29 | * Parameters: 30 | * options - {Object} An optional object whose properties will be set on 31 | * this instance. 32 | */ 33 | 34 | /** 35 | * APIMethod: read 36 | * Read capabilities data from a string, and return a list of layers. 37 | * 38 | * Parameters: 39 | * data - {String} or {DOMElement} data to read/parse. 40 | * 41 | * Returns: 42 | * {Array} List of named layers. 43 | */ 44 | 45 | CLASS_NAME: "OpenLayers.Format.WFSCapabilities" 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Format/WFST.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Format.js 8 | */ 9 | 10 | /** 11 | * Function: OpenLayers.Format.WFST 12 | * Used to create a versioned WFS protocol. Default version is 1.0.0. 13 | * 14 | * Returns: 15 | * {} A WFST format of the given version. 16 | */ 17 | OpenLayers.Format.WFST = function(options) { 18 | options = OpenLayers.Util.applyDefaults( 19 | options, OpenLayers.Format.WFST.DEFAULTS 20 | ); 21 | var cls = OpenLayers.Format.WFST["v"+options.version.replace(/\./g, "_")]; 22 | if(!cls) { 23 | throw "Unsupported WFST version: " + options.version; 24 | } 25 | return new cls(options); 26 | }; 27 | 28 | /** 29 | * Constant: OpenLayers.Format.WFST.DEFAULTS 30 | * {Object} Default properties for the WFST format. 31 | */ 32 | OpenLayers.Format.WFST.DEFAULTS = { 33 | "version": "1.0.0" 34 | }; 35 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Format/WMSCapabilities/v1_3.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Format.WMSCapabilities/v1_3_0 12 | * Read WMS Capabilities version 1.3.0. 13 | * SLD 1.1.0 adds in the extra operations DescribeLayer and GetLegendGraphic, 14 | * see: http://schemas.opengis.net/sld/1.1.0/sld_capabilities.xsd 15 | * 16 | * Inherits from: 17 | * - 18 | */ 19 | OpenLayers.Format.WMSCapabilities.v1_3_0 = OpenLayers.Class( 20 | OpenLayers.Format.WMSCapabilities.v1_3, { 21 | 22 | /** 23 | * Property: version 24 | * {String} The specific parser version. 25 | */ 26 | version: "1.3.0", 27 | 28 | CLASS_NAME: "OpenLayers.Format.WMSCapabilities.v1_3_0" 29 | 30 | }); 31 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Format/WPSCapabilities.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Format/XML/VersionedOGC.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Format.WPSCapabilities 12 | * Read WPS Capabilities. 13 | * 14 | * Inherits from: 15 | * - 16 | */ 17 | OpenLayers.Format.WPSCapabilities = OpenLayers.Class(OpenLayers.Format.XML.VersionedOGC, { 18 | 19 | /** 20 | * APIProperty: defaultVersion 21 | * {String} Version number to assume if none found. Default is "1.0.0". 22 | */ 23 | defaultVersion: "1.0.0", 24 | 25 | /** 26 | * Constructor: OpenLayers.Format.WPSCapabilities 27 | * Create a new parser for WPS Capabilities. 28 | * 29 | * Parameters: 30 | * options - {Object} An optional object whose properties will be set on 31 | * this instance. 32 | */ 33 | 34 | /** 35 | * APIMethod: read 36 | * Read capabilities data from a string, and return information about 37 | * the service. 38 | * 39 | * Parameters: 40 | * data - {String} or {DOMElement} data to read/parse. 41 | * 42 | * Returns: 43 | * {Object} Info about the WPS 44 | */ 45 | 46 | CLASS_NAME: "OpenLayers.Format.WPSCapabilities" 47 | 48 | }); 49 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/ar.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Meno25 3 | * - Mutarjem horr 4 | */ 5 | 6 | /** 7 | * @requires OpenLayers/Lang.js 8 | */ 9 | 10 | /** 11 | * Namespace: OpenLayers.Lang["ar"] 12 | * Dictionary for العربية. Keys for entries are used in calls to 13 | * . Entry bodies are normal strings or 14 | * strings formatted for use with calls. 15 | */ 16 | OpenLayers.Lang["ar"] = OpenLayers.Util.applyDefaults({ 17 | 18 | 'Permalink': "وصلة دائمة", 19 | 20 | 'Base Layer': "الطبقة الاساسية", 21 | 22 | 'Scale = 1 : ${scaleDenom}': "النسبة = 1 : ${scaleDenom}", 23 | 24 | 'W': "غ", 25 | 26 | 'E': "شر", 27 | 28 | 'N': "شم", 29 | 30 | 'S': "ج" 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/bg.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - DCLXVI 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["bg"] 11 | * Dictionary for Български. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["bg"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'Permalink': "Постоянна препратка", 18 | 19 | 'Base Layer': "Основен слой", 20 | 21 | 'Scale = 1 : ${scaleDenom}': "Мащаб = 1 : ${scaleDenom}", 22 | 23 | 'methodDeprecated': "Този метод е остарял и ще бъде премахват в 3.0. Вместо него използвайте ${newMethod}." 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/el.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Omnipaedista 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["el"] 11 | * Dictionary for Ελληνικά. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["el"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'Scale = 1 : ${scaleDenom}': "Κλίμακα ~ 1 : ${scaleDenom}" 18 | 19 | }); 20 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/en-CA.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @requires OpenLayers/Lang/en.js 3 | */ 4 | 5 | /** 6 | * Namespace: OpenLayers.Lang["en-CA"] 7 | * Dictionary for English-CA. This dictionary inherits from the standard 8 | * English dictionary. Override only those entries with language specific 9 | * to the CA region. 10 | * 11 | * Keys for entries are used in calls to . Entry 12 | * bodies are normal strings or strings formatted for use with 13 | * calls. 14 | */ 15 | OpenLayers.Lang['en-CA'] = OpenLayers.Util.applyDefaults({ 16 | 17 | // add any entries specific for this region here 18 | // e.g. 19 | // "someKey": "Some regionally specific value" 20 | 21 | }, OpenLayers.Lang["en"]); 22 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/fi.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Nike 3 | * - Str4nd 4 | */ 5 | 6 | /** 7 | * @requires OpenLayers/Lang.js 8 | */ 9 | 10 | /** 11 | * Namespace: OpenLayers.Lang["fi"] 12 | * Dictionary for Suomi. Keys for entries are used in calls to 13 | * . Entry bodies are normal strings or 14 | * strings formatted for use with calls. 15 | */ 16 | OpenLayers.Lang["fi"] = OpenLayers.Util.applyDefaults({ 17 | 18 | 'Permalink': "Ikilinkki", 19 | 20 | 'Overlays': "Kerrokset", 21 | 22 | 'Base Layer': "Peruskerros", 23 | 24 | 'W': "L", 25 | 26 | 'E': "I", 27 | 28 | 'N': "P", 29 | 30 | 'S': "E" 31 | 32 | }); 33 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/fur.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Klenje 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["fur"] 11 | * Dictionary for Furlan. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["fur"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'Permalink': "Leam Permanent", 18 | 19 | 'Overlays': "Livei parsore", 20 | 21 | 'Base Layer': "Livel di base", 22 | 23 | 'browserNotSupported': "Il to sgarfadôr nol supuarte la renderizazion vetoriâl. Al moment a son supuartâts:\n${renderers}", 24 | 25 | 'Scale = 1 : ${scaleDenom}': "Scjale = 1 : ${scaleDenom}", 26 | 27 | 'W': "O", 28 | 29 | 'E': "E", 30 | 31 | 'N': "N", 32 | 33 | 'S': "S" 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/hr.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Mvrban 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["hr"] 11 | * Dictionary for Hrvatski. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["hr"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'unhandledRequest': "Nepodržani zahtjev ${statusText}", 18 | 19 | 'Permalink': "Permalink", 20 | 21 | 'Overlays': "Overlays", 22 | 23 | 'Base Layer': "Osnovna karta", 24 | 25 | 'noFID': "Ne mogu ažurirati značajku za koju ne postoji FID.", 26 | 27 | 'browserNotSupported': "Vaš preglednik ne podržava vektorsko renderiranje. Trenutno podržani rendereri su: ${renderers}", 28 | 29 | 'commitSuccess': "WFS Transakcija: USPJEŠNA ${response}", 30 | 31 | 'commitFailed': "WFS Transakcija: NEUSPJEŠNA ${response}", 32 | 33 | 'Scale = 1 : ${scaleDenom}': "Mjerilo = 1 : ${scaleDenom}", 34 | 35 | 'methodDeprecated': "Ova metoda nije odobrena i biti će maknuta u 3.0. Koristite ${newMethod}." 36 | 37 | }); 38 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/io.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Malafaya 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["io"] 11 | * Dictionary for Ido. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["io"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'Scale = 1 : ${scaleDenom}': "Skalo = 1 : ${scaleDenom}" 18 | 19 | }); 20 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/is.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Ævar Arnfjörð Bjarmason 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["is"] 11 | * Dictionary for Íslenska. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["is"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'Permalink': "Varanlegur tengill", 18 | 19 | 'Overlays': "Þekjur", 20 | 21 | 'Base Layer': "Grunnlag", 22 | 23 | 'Scale = 1 : ${scaleDenom}': "Skali = 1 : ${scaleDenom}", 24 | 25 | 'methodDeprecated': "Þetta fall hefur verið úrelt og verður fjarlægt í 3.0. Notaðu ${newMethod} í staðin." 26 | 27 | }); 28 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/km.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - វ័ណថារិទ្ធ 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["km"] 11 | * Dictionary for ភាសាខ្មែរ. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["km"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'Permalink': "តំណភ្ជាប់អចិន្ត្រៃយ៍", 18 | 19 | 'Base Layer': "ស្រទាប់បាត​", 20 | 21 | 'Scale = 1 : ${scaleDenom}': "មាត្រដ្ឋាន = ១ ៖ ${scaleDenom}" 22 | 23 | }); 24 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/lt.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @requires OpenLayers/Lang.js 3 | */ 4 | 5 | /** 6 | * Namespace: OpenLayers.Lang["lt"] 7 | * Dictionary for Lithuanian. Keys for entries are used in calls to 8 | * . Entry bodies are normal strings or 9 | * strings formatted for use with calls. 10 | */ 11 | OpenLayers.Lang['lt'] = OpenLayers.Util.applyDefaults({ 12 | 13 | 'unhandledRequest': "Neapdorota užklausa gražino ${statusText}", 14 | 15 | 'Permalink': "Pastovi nuoroda", 16 | 17 | 'Overlays': "Papildomi sluoksniai", 18 | 19 | 'Base Layer': "Pagrindinis sluoksnis", 20 | 21 | 'noFID': "Negaliu atnaujinti objekto, kuris neturi FID.", 22 | 23 | 'browserNotSupported': 24 | "Jūsų naršyklė nemoka parodyti vektorių. Šiuo metu galima naudotis tokiais rodymo varikliais:\n{renderers}", 25 | 26 | 'commitSuccess': "WFS Tranzakcija: PAVYKO ${response}", 27 | 28 | 'commitFailed': "WFS Tranzakcija: ŽLUGO ${response}", 29 | 30 | 'Scale = 1 : ${scaleDenom}': "Mastelis = 1 : ${scaleDenom}", 31 | 32 | //labels for the graticule control 33 | 'W': 'V', 34 | 'E': 'R', 35 | 'N': 'Š', 36 | 'S': 'P', 37 | 'Graticule': 'Tinklelis', 38 | 39 | // console message 40 | 'methodDeprecated': 41 | "Šis metodas yra pasenęs ir 3.0 versijoje bus pašalintas. " + 42 | "Prašome naudoti ${newMethod}.", 43 | 44 | // **** end **** 45 | 'end': '' 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/nds.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Slomox 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["nds"] 11 | * Dictionary for Plattdüütsch. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["nds"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'unhandledRequest': "Unbehannelt Trüchmellels för de Anfraag ${statusText}", 18 | 19 | 'Permalink': "Permalink", 20 | 21 | 'Overlays': "Overlays", 22 | 23 | 'Base Layer': "Achtergrundkoort", 24 | 25 | 'noFID': "En Feature, dat keen FID hett, kann nich aktuell maakt warrn.", 26 | 27 | 'browserNotSupported': "Dien Browser ünnerstütt keen Vektorbiller. Ünnerstütt Renderers:\n${renderers}", 28 | 29 | 'commitSuccess': "WFS-Transakschoon: hett klappt ${response}", 30 | 31 | 'commitFailed': "WFS-Transakschoon: hett nich klappt ${response}", 32 | 33 | 'Scale = 1 : ${scaleDenom}': "Skaal = 1 : ${scaleDenom}", 34 | 35 | 'methodDeprecated': "Disse Methood is oold un schall dat in 3.0 nich mehr geven. Bruuk dor man beter ${newMethod} för." 36 | 37 | }); 38 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/nn.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Harald Khan 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["nn"] 11 | * Dictionary for ‪Norsk (nynorsk)‬. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["nn"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'Scale = 1 : ${scaleDenom}': "Skala = 1 : ${scaleDenom}" 18 | 19 | }); 20 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Lang/te.js: -------------------------------------------------------------------------------- 1 | /* Translators (2009 onwards): 2 | * - Veeven 3 | */ 4 | 5 | /** 6 | * @requires OpenLayers/Lang.js 7 | */ 8 | 9 | /** 10 | * Namespace: OpenLayers.Lang["te"] 11 | * Dictionary for తెలుగు. Keys for entries are used in calls to 12 | * . Entry bodies are normal strings or 13 | * strings formatted for use with calls. 14 | */ 15 | OpenLayers.Lang["te"] = OpenLayers.Util.applyDefaults({ 16 | 17 | 'Permalink': "స్థిరలింకు", 18 | 19 | 'W': "ప", 20 | 21 | 'E': "తూ", 22 | 23 | 'N': "ఉ", 24 | 25 | 'S': "ద" 26 | 27 | }); 28 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Protocol/CSW.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Protocol.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Protocol.CSW 12 | * Used to create a versioned CSW protocol. Default version is 2.0.2. 13 | */ 14 | OpenLayers.Protocol.CSW = function(options) { 15 | options = OpenLayers.Util.applyDefaults( 16 | options, OpenLayers.Protocol.CSW.DEFAULTS 17 | ); 18 | var cls = OpenLayers.Protocol.CSW["v"+options.version.replace(/\./g, "_")]; 19 | if(!cls) { 20 | throw "Unsupported CSW version: " + options.version; 21 | } 22 | return new cls(options); 23 | }; 24 | 25 | /** 26 | * Constant: OpenLayers.Protocol.CSW.DEFAULTS 27 | */ 28 | OpenLayers.Protocol.CSW.DEFAULTS = { 29 | "version": "2.0.2" 30 | }; 31 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Protocol/SOS.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Protocol.js 8 | */ 9 | 10 | /** 11 | * Function: OpenLayers.Protocol.SOS 12 | * Used to create a versioned SOS protocol. Default version is 1.0.0. 13 | * 14 | * Returns: 15 | * {} An SOS protocol for the given version. 16 | */ 17 | OpenLayers.Protocol.SOS = function(options) { 18 | options = OpenLayers.Util.applyDefaults( 19 | options, OpenLayers.Protocol.SOS.DEFAULTS 20 | ); 21 | var cls = OpenLayers.Protocol.SOS["v"+options.version.replace(/\./g, "_")]; 22 | if(!cls) { 23 | throw "Unsupported SOS version: " + options.version; 24 | } 25 | return new cls(options); 26 | }; 27 | 28 | /** 29 | * Constant: OpenLayers.Protocol.SOS.DEFAULTS 30 | */ 31 | OpenLayers.Protocol.SOS.DEFAULTS = { 32 | "version": "1.0.0" 33 | }; 34 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/OpenLayers/Symbolizer/Raster.js: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2006-2013 by OpenLayers Contributors (see authors.txt for 2 | * full list of contributors). Published under the 2-clause BSD license. 3 | * See license.txt in the OpenLayers distribution or repository for the 4 | * full text of the license. */ 5 | 6 | /** 7 | * @requires OpenLayers/Symbolizer.js 8 | */ 9 | 10 | /** 11 | * Class: OpenLayers.Symbolizer.Raster 12 | * A symbolizer used to render raster images. 13 | */ 14 | OpenLayers.Symbolizer.Raster = OpenLayers.Class(OpenLayers.Symbolizer, { 15 | 16 | /** 17 | * Constructor: OpenLayers.Symbolizer.Raster 18 | * Create a symbolizer for rendering rasters. 19 | * 20 | * Parameters: 21 | * config - {Object} An object containing properties to be set on the 22 | * symbolizer. Any documented symbolizer property can be set at 23 | * construction. 24 | * 25 | * Returns: 26 | * A new raster symbolizer. 27 | */ 28 | initialize: function(config) { 29 | OpenLayers.Symbolizer.prototype.initialize.apply(this, arguments); 30 | }, 31 | 32 | CLASS_NAME: "OpenLayers.Symbolizer.Raster" 33 | 34 | }); 35 | -------------------------------------------------------------------------------- /frontend/openlayers/lib/Rico/license.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Apache 2 3 | * 4 | * Contains portions of Rico 5 | * 6 | * Copyright 2005 Sabre Airline Solutions 7 | * 8 | * Licensed under the Apache License, Version 2.0 (the "License"); you 9 | * may not use this file except in compliance with the License. You 10 | * may obtain a copy of the License at 11 | * 12 | * http://www.apache.org/licenses/LICENSE-2.0 13 | * 14 | * Unless required by applicable law or agreed to in writing, software 15 | * distributed under the License is distributed on an "AS IS" BASIS, 16 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 17 | * implied. See the License for the specific language governing 18 | * permissions and limitations under the License. 19 | */ 20 | -------------------------------------------------------------------------------- /frontend/openlayers/licenses/MIT-LICENSE.txt: -------------------------------------------------------------------------------- 1 | Permission is hereby granted, free of charge, to any person obtaining 2 | a copy of this software and associated documentation files (the 3 | "Software"), to deal in the Software without restriction, including 4 | without limitation the rights to use, copy, modify, merge, publish, 5 | distribute, sublicense, and/or sell copies of the Software, and to 6 | permit persons to whom the Software is furnished to do so, subject to 7 | the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be 10 | included in all copies or substantial portions of the Software. 11 | 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 13 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 14 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 15 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 16 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 17 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 18 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /frontend/openlayers/marker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/marker.png -------------------------------------------------------------------------------- /frontend/openlayers/tests/Console.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Control/ArgParser.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Control/Button.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Control/EditingToolbar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 29 | 30 | 31 |
32 | 33 | 34 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Extras.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 |
20 | 21 | 22 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Filter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format/CSWGetDomain.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 20 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format/CSWGetDomain/v2_0_2.js: -------------------------------------------------------------------------------- 1 | var csw_request = 2 | '' + 3 | 'type' + 4 | ''; 5 | 6 | var csw_response = 7 | '' + 8 | '' + 9 | '' + 10 | 'type' + 11 | '' + 12 | 'dataset' + 13 | 'service' + 14 | '' + 15 | '' + 16 | '' 17 | ; 18 | 19 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format/CSWGetRecords.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 20 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format/Filter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format/WFST.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 20 | 21 |
22 | 23 | 24 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format/WMSCapabilities.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format/WMTSCapabilities.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Format/WPSCapabilities/v1_0_0.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Layer/OSM.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 |
15 | 16 | 17 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Layer/atom-1.0.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | tumulus 6 | 8 | 9 | 10 | http://pleiades.stoa.org/places/tumulus 11 | 12 | 13 | Unnamed Tumulus 14 | 17 | http://pleiades.stoa.org/places/638896 18 | 19 | An ancient tumulus, attested during the Classical period (modern location: Karaburun). Its ancient name is not known. 20 | 36.7702 29.9805 21 | 22 | 23 | Unnamed Tumulus 24 | 27 | http://pleiades.stoa.org/places/638924 28 | 29 | An ancient tumulus, attested during the Classical period (modern location: Kızılbel). Its ancient name is not known. 30 | 36.7263 29.8619 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Layer/data_Layer_Text_textfile.txt: -------------------------------------------------------------------------------- 1 | point image 2 | 10,20 http://boston.openguides.org/markers/ORANGE.png 3 | 15,25 http://boston.openguides.org/markers/ORANGE.png 4 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Layer/data_Layer_Text_textfile_2.txt: -------------------------------------------------------------------------------- 1 | point title description image 2 | 10,20 a b http://boston.openguides.org/markers/ORANGE.png 3 | 15,25 c d http://boston.openguides.org/markers/ORANGE.png 4 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Layer/data_Layer_Text_textfile_overflow.txt: -------------------------------------------------------------------------------- 1 | overflow point title description image 2 | auto 10,20 a b http://boston.openguides.org/markers/ORANGE.png 3 | hidden 15,25 c d http://boston.openguides.org/markers/ORANGE.png 4 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/OLLoader.js: -------------------------------------------------------------------------------- 1 | // Adding a mode parameter with "build" as value in the run-tests.html will 2 | // make usage of the build version of the library. 3 | // get the OLLoader.js script location 4 | (function() { 5 | var r = new RegExp("(^|(.*?\\/))(" + "OLLoader.js" + ")(\\?|$)"), 6 | s = document.getElementsByTagName('script'), 7 | src, m, l = ""; 8 | for(var i=0, len=s.length; i"; 25 | document.write(scriptTag); 26 | })(); 27 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/OpenLayers1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/OpenLayers2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/OpenLayers3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/OpenLayers4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/OpenLayersJsFiles.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Popup/Anchored.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Popup/FramedCloud.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/README.txt: -------------------------------------------------------------------------------- 1 | This directory contains unit tests for the OpenLayers library. 2 | 3 | Tests use the Test.AnotherWay library from . The test 4 | runner is 'run-tests.html' and new test files need to be added to 5 | 'list-tests.html'. 6 | 7 | The following file naming conventions are used: 8 | 9 | * A filename that starts with `test_` and has an `.html` extension 10 | contains tests. These should contain tests for a specific class. 11 | 12 | * A filename starting with `page_` and has an `.html` extension is a 13 | supporting HTML file used in one or more tests. 14 | 15 | * A filename starting with 'data_` is a supporting data file used in one 16 | or more tests. 17 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/SingleFile1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/SingleFile2.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/tests/SingleFile2.html -------------------------------------------------------------------------------- /frontend/openlayers/tests/SingleFile3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Symbolizer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Symbolizer/Raster.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/Util_w3c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 23 | 24 | 25 | 31 | 32 | 33 |
34 | 35 | 36 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/atom-1.0.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | tumulus 6 | 8 | 9 | 10 | http://pleiades.stoa.org/places/tumulus 11 | 12 | 13 | Unnamed Tumulus 14 | 17 | http://pleiades.stoa.org/places/638896 18 | 19 | An ancient tumulus, attested during the Classical period (modern location: Karaburun). Its ancient name is not known. 20 | 36.7702 29.9805 21 | 22 | 23 | Unnamed Tumulus 24 | 27 | http://pleiades.stoa.org/places/638924 28 | 29 | An ancient tumulus, attested during the Classical period (modern location: Kızılbel). Its ancient name is not known. 30 | 36.7263 29.8619 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/data/utfgrid/demo-1.1.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/tests/data/utfgrid/demo-1.1.json -------------------------------------------------------------------------------- /frontend/openlayers/tests/data_Layer_Text_textfile.txt: -------------------------------------------------------------------------------- 1 | point image 2 | 10,20 http://boston.openguides.org/markers/ORANGE.png 3 | 15,25 http://boston.openguides.org/markers/ORANGE.png 4 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/data_Layer_Text_textfile_2.txt: -------------------------------------------------------------------------------- 1 | point title description image 2 | 10,20 a b http://boston.openguides.org/markers/ORANGE.png 3 | 15,25 c d http://boston.openguides.org/markers/ORANGE.png 4 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/data_Layer_Text_textfile_overflow.txt: -------------------------------------------------------------------------------- 1 | overflow point title description image 2 | auto 10,20 a b http://boston.openguides.org/markers/ORANGE.png 3 | hidden 15,25 c d http://boston.openguides.org/markers/ORANGE.png 4 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/deprecated/Ajax.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/deprecated/Protocol/SQL.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/deprecated/Util.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 9 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/grid_inittiles.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 24 | 25 | 26 |

Grid Test

27 |

Map should display with two centered tiles. If there appear to be a combination of two zoom levels, then this test is failed, and something is broken in OpenLayers.

28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/manual/ajax.txt: -------------------------------------------------------------------------------- 1 | one fake text file -------------------------------------------------------------------------------- /frontend/openlayers/tests/manual/big-georss.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | OpenLayers GML Layer Example 4 | 5 | 6 | 7 | 28 | 29 | 30 |

Does this map look like arkansas?

31 |
32 | 33 | 34 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/manual/memory/PanZoom-2323.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Memory Test - PanZoom.getSlideFactor 4 | 17 | 18 | 19 | 20 | 28 | 29 | 30 |

Memory Test - PanZoom.getSlideFactor

31 |

32 |     
33 |

34 | This test is a memory leak test for: PanZoom.getSlideFactor. 35 |

36 |

37 | Run this test in IE6/7 with JavaScript Memory Leak Detector v2 38 | and watch it identify a leak unless this is fixed. 39 |

40 | 41 | 42 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/node.js/node-tests.cfg: -------------------------------------------------------------------------------- 1 | # This build config is supposed to be used for the units tests with "mode=build" 2 | 3 | [first] 4 | mockdom.js 5 | [last] 6 | node.js 7 | 8 | [include] 9 | 10 | [exclude] 11 | OpenLayers.js 12 | Firebug/firebug.js 13 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/node.js/node.js: -------------------------------------------------------------------------------- 1 | exports.OpenLayers = OpenLayers; 2 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/node.js/run-test.js: -------------------------------------------------------------------------------- 1 | // Requires: 2 | /// 0. nodejs 3 | // 1. jsdom installed (npm install jsdom) 4 | // 2. A build profile with mockdom.js included in [first], and node.js 5 | // inclded in [last], at ../../build/OpenLayers.js , like node-tests.js. 6 | // 3. Run with node run-tests.js 7 | // 8 | // Missing: integration with a solid node.js testrunner. 9 | var jsdom = require('jsdom'); 10 | jsdom.env('', function(errors, window) { 11 | for (var i in window) { 12 | if (i == "console") { 13 | continue; 14 | } 15 | eval(i+"=window['"+i+"'];"); 16 | } 17 | OpenLayers = require("../../build/OpenLayers.js")['OpenLayers']; 18 | var map = new OpenLayers.Map(document.createElement("map")); 19 | map.addLayer(new OpenLayers.Layer("", {isBaseLayer:true})); 20 | map.setCenter(new OpenLayers.LonLat(-71,42), 10); 21 | var px = map.getPixelFromLonLat(map.getLonLatFromPixel(new OpenLayers.Pixel(100,100))); 22 | console.log(px); 23 | var px = map.getLonLatFromPixel(map.getPixelFromLonLat(new OpenLayers.LonLat(10,10))); 24 | console.log(px); 25 | 26 | }); 27 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/node.js/run.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | cp mockdom.js node.js ../../lib 3 | cp node-tests.cfg ../../build 4 | cd ../../build 5 | python build.py -c none node-tests 6 | cd ../tests/node.js/ 7 | 8 | node run-test.js 9 | rm ../../lib/mockdom.js 10 | rm ../../lib/node.js 11 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/selenium/remotecontrol/config.cfg: -------------------------------------------------------------------------------- 1 | [config] 2 | server=http://openlayers.org/ 3 | url=/dev/tests/run-tests.html?run=all&windows=none 4 | 5 | [local_ff] 6 | host=localhost 7 | browserCmd=firefox 8 | comment=Firefox on localhost 9 | 10 | [local_safari] 11 | host=localhost 12 | browserCmd=safari 13 | comment=Safari on localhost 14 | 15 | #[ie6-winxp] 16 | #host=208.80.142.184 17 | #browserCmd=iexploreproxy C:\Program Files\MultipleIEs\IE6\iexplore.exe 18 | #comment=IE6 on WinXP 19 | 20 | [ie7-winxp] 21 | host=208.80.142.184 22 | browserCmd=iexploreproxy 23 | comment=IE7 on WinXP 24 | 25 | # Running on alta: debian etch 26 | [opera-winxp] 27 | host=208.80.142.184 28 | browserCmd=opera C:\Program Files\Opera 9\Opera.exe 29 | comment=Opera on WinXP 30 | 31 | # Running on alta: debian etch 32 | [opera] 33 | host=208.80.142.140 34 | browserCmd=opera 35 | comment=Opera on Debian Etch 36 | 37 | # Running on alta: Debian Etch 38 | [firefox2] 39 | host=208.80.142.140 40 | browserCmd=firefox /usr/lib/iceweasel/firefox-bin 41 | comment=Iceweasel 2 on Debian Etch 42 | 43 | # Running on alta: Debian Etch 44 | [firefox3] 45 | host=208.80.142.105 46 | browserCmd=firefox /usr/lib/firefox-3.0.1/firefox-bin 47 | comment=FF3 on Ubuntu 48 | 49 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/selenium/remotecontrol/setup.txt: -------------------------------------------------------------------------------- 1 | * Install selenium remote control from the latest snapshot: 2 | 3 | http://nexus.openqa.org/content/repositories/snapshots/org/seleniumhq/selenium/selenium-remote-control/1.0-SNAPSHOT/ 4 | 5 | * Run the server with java -jar selenium-server.jar 6 | * Run the python script 7 | 8 | 9 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/speed/string_format.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 24 | 25 | 26 | Run 27 |
28 | 29 | 30 | -------------------------------------------------------------------------------- /frontend/openlayers/tests/speed/vector-renderers.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Vector Features Performance Test 5 | 6 | 7 | 8 | 9 | 10 |

Vector Rendering Performance

11 |
12 |

13 | This is a benchmark for vector rendering performance. Test results are 14 | written to the debug console. 15 | Select a renderer here: 16 |
17 | 18 |

19 | The benchmark shows the time needed to render the features, and how long a 20 | move (drag or zoom) takes. Drag and zoom around to produce move results. 21 |

22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/google.css: -------------------------------------------------------------------------------- 1 | .olLayerGoogleCopyright { 2 | right: 3px; 3 | bottom: 2px; 4 | left: auto; 5 | } 6 | .olLayerGooglePoweredBy { 7 | left: 2px; 8 | bottom: 2px; 9 | } 10 | -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/google.tidy.css: -------------------------------------------------------------------------------- 1 | .olLayerGoogleCopyright{right:3px;bottom:2px;left:auto;}.olLayerGooglePoweredBy{left:2px;bottom:2px;} -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/ie6-style.css: -------------------------------------------------------------------------------- 1 | .olControlZoomPanel div { 2 | background-image: url(img/zoom-panel-NOALPHA.png); 3 | } 4 | .olControlPanPanel div { 5 | background-image: url(img/pan-panel-NOALPHA.png); 6 | } 7 | .olControlEditingToolbar { 8 | width: 200px; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/ie6-style.tidy.css: -------------------------------------------------------------------------------- 1 | .olControlZoomPanel div{background-image:url(img/zoom-panel-NOALPHA.png);}.olControlPanPanel div{background-image:url(img/pan-panel-NOALPHA.png);}.olControlEditingToolbar{width:200px;} -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/add_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/add_point_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/add_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/add_point_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/blank.gif -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/close.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/close.gif -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/drag-rectangle-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/drag-rectangle-off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/drag-rectangle-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/drag-rectangle-on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/draw_line_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/draw_line_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/draw_line_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/draw_line_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/draw_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/draw_point_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/draw_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/draw_point_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/draw_polygon_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/draw_polygon_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/draw_polygon_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/draw_polygon_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/editing_tool_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/editing_tool_bar.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/move_feature_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/move_feature_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/move_feature_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/move_feature_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/navigation_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/navigation_history.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/overview_replacement.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/overview_replacement.gif -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/pan-panel-NOALPHA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/pan-panel-NOALPHA.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/pan-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/pan-panel.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/pan_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/pan_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/pan_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/pan_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/panning-hand-off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/panning-hand-off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/panning-hand-on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/panning-hand-on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/remove_point_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/remove_point_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/remove_point_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/remove_point_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/ruler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/ruler.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/save_features_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/save_features_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/save_features_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/save_features_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/view_next_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/view_next_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/view_next_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/view_next_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/view_previous_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/view_previous_off.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/view_previous_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/view_previous_on.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/zoom-panel-NOALPHA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/zoom-panel-NOALPHA.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/img/zoom-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/frontend/openlayers/theme/default/img/zoom-panel.png -------------------------------------------------------------------------------- /frontend/openlayers/theme/default/style.mobile.tidy.css: -------------------------------------------------------------------------------- 1 | div.olControlZoom{position:absolute;top:8px;left:8px;background:rgba(255,255,255,0.4);border-radius:4px;padding:2px;}*{-webkit-tap-highlight-color:rgba(0,0,0,0);}div.olControlZoom a{display:block;color:#FFF;font-size:28px;font-family:sans-serif;font-weight:700;text-decoration:none;text-align:center;height:32px;width:32px;line-height:28px;text-shadow:0 0 3px rgba(0,0,0,0.8);background:rgba(0,60,136,0.5);filter:alpha(opacity=80);margin:1px;padding:0;}a.olControlZoomIn{border-radius:4px 4px 0 0;}a.olControlZoomOut{border-radius:0 0 4px 4px;}div.olControlZoom a:hover{background:rgba(0,60,136,0.7);filter:alpha(opacity=100);}div.olMapViewport{-ms-touch-action:none;}.olLayerGrid .olTileImage{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear;}.olTileImage{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-o-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;-moz-perspective:1000;-ms-perspective:1000;perspective:1000;}@media only screen and max-width 600px{div.olControlZoom a:hover{background:rgba(0,60,136,0.5);}} -------------------------------------------------------------------------------- /frontend/openlayers/tools/README.txt: -------------------------------------------------------------------------------- 1 | This directory contains tools used in the packaging or deployment of OpenLayers. 2 | 3 | Javascript minimizing tools: 4 | 5 | * jsmin.c, jsmin.py: 6 | jsmin.py is a direct translation of the jsmin.c code into Python. jsmin.py 7 | will therefore run anyplace Python runs... but at significantly slower speed. 8 | 9 | * shrinksafe.py 10 | shrinksafe.py calls out to a third party javascript shrinking service. This 11 | creates file sizes about 4% smaller (as of commit 501) of the OpenLayers 12 | code. However, this also has the side effect of making you dependant on the 13 | web service -- and since that service sometimes goes dead, it's risky to 14 | depend on it. 15 | -------------------------------------------------------------------------------- /frontend/openlayers/tools/closure_ws.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import httplib, urllib, sys 4 | import time 5 | # Define the parameters for the POST request and encode them in 6 | # a URL-safe format. 7 | 8 | def minimize(code): 9 | 10 | params = urllib.urlencode([ 11 | ('js_code', code), 12 | ('compilation_level', 'SIMPLE_OPTIMIZATIONS'), 13 | ('output_format', 'text'), 14 | ('output_info', 'compiled_code'), 15 | ]) 16 | 17 | t = time.time() 18 | # Always use the following value for the Content-type header. 19 | headers = { "Content-type": "application/x-www-form-urlencoded" } 20 | conn = httplib.HTTPConnection('closure-compiler.appspot.com') 21 | conn.request('POST', '/compile', params, headers) 22 | response = conn.getresponse() 23 | data = response.read() 24 | conn.close() 25 | if data.startswith("Error"): 26 | raise Exception(data) 27 | print "%.3f seconds to compile" % (time.time() - t) 28 | return data 29 | -------------------------------------------------------------------------------- /frontend/openlayers/tools/oldot.py: -------------------------------------------------------------------------------- 1 | import re 2 | import os 3 | def run(): 4 | sourceDirectory = "../lib/OpenLayers" 5 | allFiles = [] 6 | SUFFIX_JAVASCRIPT = ".js" 7 | ## Find all the Javascript source files 8 | for root, dirs, files in os.walk(sourceDirectory): 9 | for filename in files: 10 | if filename.endswith(SUFFIX_JAVASCRIPT) and not filename.startswith("."): 11 | filepath = os.path.join(root, filename)[len(sourceDirectory)+1:] 12 | filepath = filepath.replace("\\", "/") 13 | data = open(os.path.join(sourceDirectory, filepath)).read() 14 | parents = re.search("OpenLayers.Class\((.*?){", data, 15 | re.DOTALL) 16 | if parents: 17 | parents = [x.strip() for x in parents.group(1).strip().strip(",").split(",")] 18 | else: 19 | parents = [] 20 | cls = "OpenLayers.%s" % filepath.strip(".js").replace("/", ".") 21 | allFiles.append([cls, parents]) 22 | return allFiles 23 | print """ 24 | digraph name { 25 | fontname = "Helvetica" 26 | fontsize = 8 27 | K = 0.6 28 | 29 | node [ 30 | fontname = "Helvetica" 31 | fontsize = 8 32 | shape = "plaintext" 33 | ] 34 | """ 35 | 36 | for i in run(): 37 | print i[0].replace(".", "_") 38 | for item in i[1]: 39 | if not item: continue 40 | print "%s -> %s" % (i[0].replace(".","_"), item.replace(".", "_")) 41 | print "; " 42 | 43 | print """}""" 44 | -------------------------------------------------------------------------------- /frontend/openlayers/tools/toposort.py: -------------------------------------------------------------------------------- 1 | """ 2 | toposort.py 3 | Sorts dictionary keys based on lists of dependencies. 4 | """ 5 | 6 | class MissingDependency(Exception): 7 | """Exception raised when a listed dependency is not in the dictionary.""" 8 | 9 | class Sorter(object): 10 | def __init__(self, dependencies): 11 | self.dependencies = dependencies 12 | self.visited = set() 13 | self.sorted = () 14 | 15 | def sort(self): 16 | for key in self.dependencies: 17 | self._visit(key) 18 | return self.sorted 19 | 20 | def _visit(self, key): 21 | if key not in self.visited: 22 | self.visited.add(key) 23 | if not self.dependencies.has_key(key): 24 | raise MissingDependency(key) 25 | for depends in self.dependencies[key]: 26 | self._visit(depends) 27 | self.sorted += (key,) 28 | 29 | def toposort(dependencies): 30 | """Returns a tuple of the dependencies dictionary keys sorted by entries 31 | in the dependency lists. Given circular dependencies, sort will impose 32 | an order. Raises MissingDependency if a key is not found. 33 | """ 34 | s = Sorter(dependencies) 35 | return s.sort() 36 | -------------------------------------------------------------------------------- /frontend/openlayers/tools/uglify_js.py: -------------------------------------------------------------------------------- 1 | """Utility to use the Uglify JS Compiler CLI from Python.""" 2 | 3 | import logging 4 | import subprocess 5 | 6 | 7 | def check_available(): 8 | """ Returns whether the uglify-js tool is available. """ 9 | subprocess.check_output(['which', 'uglifyjs']) 10 | 11 | 12 | def compile(source_paths, flags=None): 13 | """ 14 | Prepares command-line call to uglify-js compiler. 15 | 16 | Args: 17 | source_paths: Source paths to build, in order. 18 | flags: A list of additional flags to pass on to uglify-js. 19 | 20 | Returns: 21 | The compiled source, as a string, or None if compilation failed. 22 | """ 23 | 24 | args = ['uglifyjs'] 25 | args.extend(source_paths) 26 | args.extend(['-c', '-m']) 27 | if flags: 28 | args += flags 29 | 30 | logging.info('Compiling with the following command: %s', ' '.join(args)) 31 | 32 | try: 33 | return subprocess.check_output(args) 34 | except subprocess.CalledProcessError: 35 | return 36 | -------------------------------------------------------------------------------- /frontend/point.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Datapoint info 5 | 6 | 7 | 8 |
9 |
10 |
11 |
12 | 13 | 14 | 15 |
16 |
17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /frontend/style/image.css: -------------------------------------------------------------------------------- 1 | 2 | .thumbnailContainer { 3 | position:relative; 4 | } 5 | 6 | .imageContainer { 7 | position: absolute; 8 | margin:0 auto; 9 | left:50%; 10 | width: 30%; 11 | margin-left: -15%; 12 | } 13 | 14 | .customTable { 15 | width: 100%; 16 | border-collapse: collapse; 17 | border-width: 2px; 18 | border-color: #595959; 19 | border-style: solid; 20 | color: #000000; 21 | } 22 | 23 | .customTable td, table.customTable th { 24 | border-width: 2px; 25 | border-color: #595959; 26 | border-style: solid; 27 | padding: 5px; 28 | } 29 | 30 | #image { 31 | width:50%; 32 | margin-left:25%; 33 | box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 34 | } 35 | -------------------------------------------------------------------------------- /frontend/style/point.css: -------------------------------------------------------------------------------- 1 | 2 | .thumbnailContainer { 3 | position:relative; 4 | } 5 | 6 | .imageContainer { 7 | position: absolute; 8 | margin:0 auto; 9 | left:50%; 10 | width: 30%; 11 | margin-left: -15%; 12 | } 13 | 14 | .customTable { 15 | width: 100%; 16 | border-collapse: collapse; 17 | border-width: 2px; 18 | border-color: #595959; 19 | border-style: solid; 20 | color: #000000; 21 | } 22 | 23 | .customTable td, table.customTable th { 24 | border-width: 2px; 25 | border-color: #595959; 26 | border-style: solid; 27 | padding: 5px; 28 | } 29 | 30 | #thumbnail:hover { 31 | cursor: pointer; 32 | box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.5), 0 6px 20px 0 rgba(0, 0, 0, 0.49); 33 | } 34 | 35 | #thumbnail { 36 | box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 37 | } 38 | -------------------------------------------------------------------------------- /frontend/video.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HTTP Video Stream 6 | 7 | 8 | 11 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dronemap-backend", 3 | "version": "1.0.0", 4 | "private": true, 5 | "scripts": { 6 | "build": "node ace build --production", 7 | "start": "node server.js", 8 | "dev": "node ace serve --watch", 9 | "lint": "eslint . --ext=.ts" 10 | }, 11 | "devDependencies": { 12 | "@adonisjs/assembler": "^5.3.1", 13 | "adonis-preset-ts": "^2.1.0", 14 | "eslint": "^7.28.0", 15 | "eslint-plugin-adonis": "^1.3.2", 16 | "pino-pretty": "^5.0.2", 17 | "typescript": "^4.2.4", 18 | "youch": "^2.2.2", 19 | "youch-terminal": "^1.1.1" 20 | }, 21 | "dependencies": { 22 | "@adonisjs/core": "^5.1.8", 23 | "@adonisjs/lucid": "^15.0.1", 24 | "@adonisjs/repl": "^3.1.3", 25 | "exif-parser": "^0.1.12", 26 | "fluent-ffmpeg": "^2.1.2", 27 | "luxon": "^1.27.0", 28 | "mysql": "^2.18.1", 29 | "proxy-addr": "^2.0.7", 30 | "reflect-metadata": "^0.1.13", 31 | "source-map-support": "^0.5.19", 32 | "uuid": "^8.3.2" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /providers/AppProvider.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationContract } from '@ioc:Adonis/Core/Application' 2 | 3 | export default class AppProvider { 4 | constructor (protected app: ApplicationContract) { 5 | } 6 | 7 | public register () { 8 | // Register your own bindings 9 | } 10 | 11 | public async boot () { 12 | // IoC container is ready 13 | } 14 | 15 | public async ready () { 16 | // App is ready 17 | } 18 | 19 | public async shutdown () { 20 | // Cleanup, since app is going down 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /readme_assets/example.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/readme_assets/example.gif -------------------------------------------------------------------------------- /readme_assets/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/readme_assets/image.png -------------------------------------------------------------------------------- /readme_assets/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/readme_assets/map.png -------------------------------------------------------------------------------- /readme_assets/point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/readme_assets/point.png -------------------------------------------------------------------------------- /readme_assets/sat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/readme_assets/sat.png -------------------------------------------------------------------------------- /readme_assets/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vimodev/dronemap/210d54b32bbebf74fc1eab7c3f85eef92e30017d/readme_assets/video.png -------------------------------------------------------------------------------- /server.ts: -------------------------------------------------------------------------------- 1 | /* 2 | |-------------------------------------------------------------------------- 3 | | AdonisJs Server 4 | |-------------------------------------------------------------------------- 5 | | 6 | | The contents in this file is meant to bootstrap the AdonisJs application 7 | | and start the HTTP server to accept incoming connections. You must avoid 8 | | making this file dirty and instead make use of `lifecycle hooks` provided 9 | | by AdonisJs service providers for custom code. 10 | | 11 | */ 12 | 13 | import 'reflect-metadata' 14 | import sourceMapSupport from 'source-map-support' 15 | import { Ignitor } from '@adonisjs/core/build/standalone' 16 | 17 | sourceMapSupport.install({ handleUncaughtExceptions: false }) 18 | 19 | new Ignitor(__dirname) 20 | .httpServer() 21 | .start() 22 | -------------------------------------------------------------------------------- /start/kernel.ts: -------------------------------------------------------------------------------- 1 | /* 2 | |-------------------------------------------------------------------------- 3 | | Application middleware 4 | |-------------------------------------------------------------------------- 5 | | 6 | | This file is used to define middleware for HTTP requests. You can register 7 | | middleware as a `closure` or an IoC container binding. The bindings are 8 | | preferred, since they keep this file clean. 9 | | 10 | */ 11 | 12 | import Server from '@ioc:Adonis/Core/Server' 13 | 14 | /* 15 | |-------------------------------------------------------------------------- 16 | | Global middleware 17 | |-------------------------------------------------------------------------- 18 | | 19 | | An array of global middleware, that will be executed in the order they 20 | | are defined for every HTTP requests. 21 | | 22 | */ 23 | Server.middleware.register([ 24 | () => import('@ioc:Adonis/Core/BodyParser'), 25 | ]) 26 | 27 | /* 28 | |-------------------------------------------------------------------------- 29 | | Named middleware 30 | |-------------------------------------------------------------------------- 31 | | 32 | | Named middleware are defined as key-value pair. The value is the namespace 33 | | or middleware function and key is the alias. Later you can use these 34 | | alias on individual routes. For example: 35 | | 36 | | { auth: () => import('App/Middleware/Auth') } 37 | | 38 | | and then use it as follows 39 | | 40 | | Route.get('dashboard', 'UserController.dashboard').middleware('auth') 41 | | 42 | */ 43 | Server.middleware.registerNamed({ 44 | }) 45 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/adonis-preset-ts/tsconfig", 3 | "include": [ 4 | "**/*" 5 | ], 6 | "exclude": [ 7 | "node_modules", 8 | "build" 9 | ], 10 | "compilerOptions": { 11 | "outDir": "build", 12 | "rootDir": "./", 13 | "sourceMap": true, 14 | "paths": { 15 | "App/*": [ 16 | "./app/*" 17 | ], 18 | "Config/*": [ 19 | "./config/*" 20 | ], 21 | "Contracts/*": [ 22 | "./contracts/*" 23 | ], 24 | "Database/*": [ 25 | "./database/*" 26 | ] 27 | }, 28 | "types": [ 29 | "@adonisjs/core", 30 | "@adonisjs/repl", 31 | "@adonisjs/lucid" 32 | ] 33 | } 34 | } 35 | --------------------------------------------------------------------------------