remove dependence on gmap3

This commit is contained in:
2018-04-12 22:08:51 +02:00
parent aa4393746a
commit 1c8c9a2175
6 changed files with 63 additions and 80 deletions

View File

@@ -262,7 +262,7 @@ class Spot extends Main
$asExif = @exif_read_data($sPicPath, 0, true); $asExif = @exif_read_data($sPicPath, 0, true);
//Timestamp //Timestamp
if(array_key_exists('DateTimeOriginal', $asExif['EXIF'])) $iPicTimeStamp = strtotime($asExif['EXIF']['DateTimeOriginal']); if(!empty($asExif) && array_key_exists('DateTimeOriginal', $asExif['EXIF'])) $iPicTimeStamp = strtotime($asExif['EXIF']['DateTimeOriginal']);
else $iPicTimeStamp = $asExif['FILE']['FileDateTime']; else $iPicTimeStamp = $asExif['FILE']['FileDateTime'];
//Time Zone //Time Zone

View File

@@ -2,6 +2,7 @@
<div id="map"> <div id="map">
<div class="loader fa fa-map"></div> <div class="loader fa fa-map"></div>
</div> </div>
<div id="legend"></div>
<div id="feed"> <div id="feed">
<div id="poster"> <div id="poster">
<input id="post" name="post" type="text" /> <input id="post" name="post" type="text" />
@@ -24,22 +25,6 @@ oSpot.pageInit = function(asHash)
updateFeed(true); updateFeed(true);
//setInterval(updateFeed, 60 * 1000); //refresh every minute //setInterval(updateFeed, 60 * 1000); //refresh every minute
//Building messages
aoMessages = [];
$.each(oMessages, function(iKey, oMsg)
{
var sInfoWindow = $('<div>', {'class':'info-window'})
.append($('<h1>').append('Message '+oMsg.type+' #'+oMsg.id_message))
.append($('<p>', {'class':'time'}).addIcon('fa-clock-o').append(oMsg.formatted_time+' ('+oMsg.relative_time+')'))
.append($('<p>', {'class':'coordinates'}).addIcon('fa-compass').append(oMsg.latitude+' | '+oMsg.longitude))
.append($('<p>', {'class':'battery'}).addIcon('fa-battery-three-quarters').append(oMsg.battery_state))
.prop('outerHTML');
var sLatLng = [oMsg.latitude, oMsg.longitude];
var asData = {title:oMsg.timestamp, details:sInfoWindow};
var asOptions = {icon:(iKey%2==0)?'images/footprint_alt.png':'images/footprint.png'};
aoMessages.push({id:oMsg.id_message, latLng:sLatLng, data:asData, options:asOptions});
});
//Centering map on last message //Centering map on last message
var agCenter = {lat:0, lng:0}; var agCenter = {lat:0, lng:0};
var iZoom = 0; var iZoom = 0;
@@ -56,64 +41,64 @@ oSpot.pageInit = function(asHash)
agCenter.lng = 171; agCenter.lng = 171;
iZoom = 7; iZoom = 7;
} }
var $Map = $("#map").gmap3(
{ var oMap = new google.maps.Map(document.getElementById('map'), {
map: center: agCenter,
{ zoom: iZoom,
options: mapTypeId: google.maps.MapTypeId.SATELLITE,
{ scaleControl: true
center:agCenter,
zoom:iZoom,
mapTypeId:google.maps.MapTypeId.HYBRID,
scaleControl:true
}
},
kmllayer:
{
options:
{
url:'http://spot.lutran.fr/kml/TeAraroaTrail_simplified.kmz?v3',
opts:{preserveViewport: true}
}
},
marker:
{
values:aoMessages,
options:{draggable:false},
events:
{
mouseover: function(marker, event, context)
{
var map = $(this).gmap3("get"), infowindow = $(this).gmap3({get:{name:"infowindow"}});
if(infowindow)
{
infowindow.open(map, marker);
infowindow.setContent(context.data.details);
}
else $(this).gmap3({infowindow:{anchor:marker, options:{content: context.data.details}}});
},
mouseout: function()
{
var infowindow = $(this).gmap3({get:{name:"infowindow"}});
if(infowindow) infowindow.close();
}
}
},
panel:
{
options:
{
content:'<div id="legend">'+
'<div class="line green">Te Araroa</div>'+
'<div class="line blue">Routeburn Track</div>'+
'<div class="line red">Hors rando</div>'+
'</div>',
top: '10px',
left: '116px'
}
}
}); });
self.tmp('map', $Map.gmap3("get"));
var oKmlLayer = new google.maps.KmlLayer({
url: 'http://spot.lutran.fr/kml/TeAraroaTrail_simplified.kmz?v3',
preserveViewport: true,
map: oMap
});
//Building messages
$.each(oMessages, function(iKey, oMsg){
var oMarker = new google.maps.Marker({
id: oMsg.id_message,
position: {lat:Number(oMsg.latitude), lng:Number(oMsg.longitude)},
//animation: google.maps.Animation.DROP,
icon: (iKey%2==0)?'images/footprint_alt.png':'images/footprint.png',
map: oMap,
draggable: false
});
var oInfoWindow = new google.maps.InfoWindow({
content: $('<div>', {'class':'info-window'})
.append($('<h1>').append('Message '+oMsg.type+' #'+oMsg.id_message))
.append($('<p>', {'class':'time'}).addIcon('fa-clock-o').append(oMsg.formatted_time+' ('+oMsg.relative_time+')'))
.append($('<p>', {'class':'coordinates'}).addIcon('fa-compass').append(oMsg.latitude+' | '+oMsg.longitude))
.append($('<p>', {'class':'battery'}).addIcon('fa-battery-three-quarters').append(oMsg.battery_state))
.prop('outerHTML')
});
oMarker.addListener('mouseover', function(){
oInfoWindow.open(oMap, oMarker);
});
oMarker.addListener('mouseout', function(){
oInfoWindow.close(oMap, oMarker);
});
});
//Legend
var oLegend = document.getElementById('legend');
var asRoutes = {
teararoa: {'class': 'green', title: 'Te Araroa'},
routeburn: {'class': 'blue', title: 'Routeburn Track'},
offtrack: {'class': 'red', title: 'Hors rando'}
};
for(var sKey in asRoutes) {
var oDiv = document.createElement('div');
oDiv.className = 'line '+asRoutes[sKey]['class'];
oDiv.innerHTML = asRoutes[sKey].title;
oLegend.appendChild(oDiv);
}
oMap.controls[google.maps.ControlPosition.TOP_CENTER].push(oLegend);
self.tmp('map', oMap);
}); });
//Post //Post

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -29,6 +29,7 @@
background: rgba(255, 255, 255, 0.5); background: rgba(255, 255, 255, 0.5);
border-radius:3px; border-radius:3px;
padding: 1px 0 0 0; padding: 1px 0 0 0;
margin-top: 10px;
.line { .line {
display: inline-block; display: inline-block;
@@ -36,7 +37,7 @@
line-height: 2px; line-height: 2px;
padding-left: 0.5em; padding-left: 0.5em;
margin: 1em; margin: 1em;
font-size: 0.8em; font-size: 1em;
color: #222; color: #222;
&.green { &.green {