Skip to content

Commit f5adb7e

Browse files
committed
First beta working version.
Photo upload, gallery and markers and popups on map.
1 parent 3da3102 commit f5adb7e

File tree

25 files changed

+1168
-1216
lines changed

25 files changed

+1168
-1216
lines changed

.idea/.name

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

uploader/.idea/jQuery-File-Upload-9.12.5.iml renamed to .idea/htdocs.iml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/jsLibraryMappings.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/DroneMapper.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 282 additions & 256 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

getimages.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
$dir = "uploader/server/php/files";
3+
$result = array();
4+
$files = scandir($dir);
5+
foreach($files as $file) {
6+
switch(ltrim(strstr($file, '.'), '.')) {
7+
case "jpg": case "jpeg":case "JPG":
8+
$result[] = $dir . "/" . $file;
9+
}
10+
}
11+
$resultJson = json_encode($result);
12+
echo($resultJson);
13+
?>

index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<script src="https://domoritz.github.io/leaflet-locatecontrol/dist/L.Control.Locate.min.js"
2727
charset="utf-8"></script>
2828
<script src='https://api.mapbox.com/mapbox.js/plugins/leaflet-fullscreen/v1.0.1/Leaflet.fullscreen.min.js'></script>
29-
29+
<script src="../scripts/libs/exif.js"></script>
3030

3131
</head>
3232

@@ -47,7 +47,7 @@
4747
<div id="navbar" class="collapse navbar-collapse">
4848
<ul class="nav navbar-nav">
4949
<li class="active"><a href="#">Home</a></li>
50-
<li><a href="uploader">Upload</a></li>
50+
<li><a href="uploader/uploader.html">Upload</a></li>
5151

5252
</ul>
5353
</div><!--/.nav-collapse -->

scripts/app.js

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ let streets = L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/streets-v9/ti
55
dark = L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/dark-v9/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiYmlza2F6eiIsImEiOiJjaXJkOTFkb3owMDdxaTltZ21vemsxcGViIn0.70mwo4YYnbxY_BJoEsGYxw', {attribution: '&copy; <a href="https://www.mapbox.com">Mapbox</a> Dark'}),
66
light = L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/light-v9/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiYmlza2F6eiIsImEiOiJjaXJkOTFkb3owMDdxaTltZ21vemsxcGViIn0.70mwo4YYnbxY_BJoEsGYxw', {attribution: '&copy; <a href="https://www.mapbox.com">Mapbox</a> Light'}),
77
satelite = L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiYmlza2F6eiIsImEiOiJjaXJkOTFkb3owMDdxaTltZ21vemsxcGViIn0.70mwo4YYnbxY_BJoEsGYxw', {attribution: '&copy; <a href="https://www.mapbox.com">Mapbox</a> Satelite'}),
8-
sateliteStreets = L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiYmlza2F6eiIsImEiOiJjaXJkOTFkb3owMDdxaTltZ21vemsxcGViIn0.70mwo4YYnbxY_BJoEsGYxw', {attribution: '&copy; <a href="https://www.mapbox.com">Mapbox</a> Satelite Streets'});
8+
sateliteStreets = L.tileLayer('https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v9/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoiYmlza2F6eiIsImEiOiJjaXJkOTFkb3owMDdxaTltZ21vemsxcGViIn0.70mwo4YYnbxY_BJoEsGYxw', {attribution: '&copy; <a href="https://www.mapbox.com">Mapbox</a> Satelite Streets'}),
9+
OpenStreetMap = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {attribution: '&copy; <a href="http://openstreetmap.org">OpenStreetMap</a> OpenStreetMap'});
910

1011
let map = L.map('map', {
1112
center: [0, 0],
12-
zoom: 14,
13+
zoom: 8,
1314
layers: outdoors,
1415
fullscreenControl: true,
1516
});
@@ -26,14 +27,64 @@ lc.start();
2627
map.zoomControl.setPosition('bottomright');
2728

2829
let baseMaps = {
29-
"Streets": streets,
3030
"Outdoors": outdoors,
31+
"Streets": streets,
3132
"Dark": dark,
3233
"Light": light,
3334
"Satelite": satelite,
34-
"Satelite Streets": sateliteStreets
35+
"Satelite Streets": sateliteStreets,
36+
"OpenStreetMap": OpenStreetMap
3537
};
3638

3739
L.control.layers(baseMaps).addTo(map);
3840

39-
console.log(map.getBounds());
41+
42+
$.get("/getimages.php", function (data) {
43+
let result = JSON.parse(data);
44+
loadImages(result);
45+
});
46+
47+
48+
function loadImages(images) {
49+
let imgArray = [];
50+
let imgObjectArray = [];
51+
52+
images.forEach((src, index) => {
53+
let img = new Image();
54+
img.src = src;
55+
imgArray.push(img);
56+
});
57+
58+
imgArray.forEach((img) => {
59+
img.onload = function () {
60+
EXIF.getData(img, function () {
61+
let imageLat = EXIF.getTag(this, 'GPSLatitude');
62+
let imageLong = EXIF.getTag(this, 'GPSLongitude');
63+
let imageAlt = EXIF.getTag(this, 'GPSAltitude');
64+
let imageName = this.src.split("/").reverse()[0];
65+
66+
let realImageLat = imageLat[0].numerator + imageLat[1].numerator /
67+
(60 * imageLat[1].denominator) + imageLat[2].numerator / (3600 * imageLat[2].denominator);
68+
let realImageLong = imageLong[0].numerator + imageLong[1].numerator /
69+
(60 * imageLong[1].denominator) + imageLong[2].numerator / (3600 * imageLong[2].denominator);
70+
let realImageAlt = imageAlt.numerator / imageAlt.denominator;
71+
72+
let imgObject = {};
73+
imgObject.realImageLat = realImageLat;
74+
imgObject.realImageLong = realImageLong;
75+
imgObject.realImageAlt = realImageAlt;
76+
imgObject.imageName = imageName;
77+
imgObjectArray.push(imgObject);
78+
console.log(imgObject);
79+
console.log(imgObjectArray);
80+
let imageDisplayString = '<img src="' + this.src + '" alt="Cool Photo" height="281" width="500">';
81+
L.marker([realImageLat, realImageLong])
82+
.addTo(map)
83+
.bindPopup(imageDisplayString, {
84+
maxWidth: 1920,
85+
autoPanPadding: L.point(50, 50)
86+
})();
87+
});
88+
};
89+
});
90+
}

0 commit comments

Comments
 (0)