Moved marker/polyline code to MarkerMgr class. Use location_id instead
of epoch for operations.
This commit is contained in:
@ -194,18 +194,18 @@ window.setLiveMap = ->
|
|||||||
else
|
else
|
||||||
$('#livemap_on').addClass('btn-default').removeClass('btn-primary').removeClass 'active'
|
$('#livemap_on').addClass('btn-default').removeClass('btn-primary').removeClass 'active'
|
||||||
|
|
||||||
window.geodecodeMarker = (tid, i) ->
|
window.geodecodeMarker = (lid) ->
|
||||||
console.log 'geodecodeMarker: %o, %o', tid, i
|
console.log 'geodecodeMarker: %o', lid
|
||||||
window.mymap.geodecodeMarker tid, i
|
window.mymap.geodecodeMarker lid
|
||||||
|
|
||||||
window.deleteMarker = (tid, i) ->
|
window.deleteMarker = (lid) ->
|
||||||
console.log 'deleteMarker: %o, %o', tid, i
|
console.log 'deleteMarker: %o', lid
|
||||||
if confirm "Do you really want to delete this marker for #{tid}?"
|
if confirm "Do you really want to delete this marker?"
|
||||||
console.log 'deleteMarker: Confirmation given'
|
console.log 'deleteMarker: Confirmation given'
|
||||||
window.mymap.deleteMarker tid, i
|
window.mymap.deleteMarker lid
|
||||||
|
|
||||||
window.showBoundingBox = (tid, i) ->
|
window.showBoundingBox = (lid) ->
|
||||||
console.log 'showBoundingBox: %o, %o', tid, i
|
console.log 'showBoundingBox: %o', lid
|
||||||
console.warn 'NOT YET IMPLEMENTED'
|
console.warn 'NOT YET IMPLEMENTED'
|
||||||
|
|
||||||
window.updateTrackerIDs = ->
|
window.updateTrackerIDs = ->
|
||||||
|
@ -7,6 +7,8 @@ class window.MarkerMgr
|
|||||||
@dateFrom = null
|
@dateFrom = null
|
||||||
@dateTo = null
|
@dateTo = null
|
||||||
@accuracy = null
|
@accuracy = null
|
||||||
|
@markers_drawn = {}
|
||||||
|
@lines_drawn = {}
|
||||||
|
|
||||||
fetchMarkers: (dateFromYMD, dateToYMD, accuracy) ->
|
fetchMarkers: (dateFromYMD, dateToYMD, accuracy) ->
|
||||||
console.log 'MarkerMgr::fetchMarkers(%o, %o, %o)', dateFromYMD, dateToYMD, accuracy
|
console.log 'MarkerMgr::fetchMarkers(%o, %o, %o)', dateFromYMD, dateToYMD, accuracy
|
||||||
@ -28,10 +30,24 @@ class window.MarkerMgr
|
|||||||
return @markers
|
return @markers
|
||||||
|
|
||||||
getMarkerBounds: ->
|
getMarkerBounds: ->
|
||||||
pass
|
max_lat = -90
|
||||||
|
min_lat = 90
|
||||||
|
max_lon = -180
|
||||||
|
min_lon = 180
|
||||||
|
|
||||||
getMarkerTooltip: (mid, marker) ->
|
for tid, tidmarkers of @markers
|
||||||
trackerIDString = "<br/>TrackerID: #{marker.tracker_id} / #{mid}"
|
# TODO: Implement some way of filtering by tid
|
||||||
|
for tidmarker, i in tidmarkers
|
||||||
|
if max_lat < tidmarker.latitude then max_lat = tidmarker.latitude
|
||||||
|
if min_lat > tidmarker.latitude then min_lat = tidmarker.latitude
|
||||||
|
if max_lon < tidmarker.longitude then max_lon = tidmarker.longitude
|
||||||
|
if min_lon > tidmarker.longitude then min_lon = tidmarker.longitude
|
||||||
|
|
||||||
|
return [[min_lat, min_lon], [max_lat, max_lon]]
|
||||||
|
|
||||||
|
getMarkerTooltip: (marker) ->
|
||||||
|
console.log 'MarkerMgr::getMarkerTooltip(%o)', marker
|
||||||
|
trackerIDString = "<br/>TrackerID: #{marker.tracker_id} / #{marker.lid}"
|
||||||
dateString = marker.dt
|
dateString = marker.dt
|
||||||
if marker.epoch != 0
|
if marker.epoch != 0
|
||||||
newDate = new Date()
|
newDate = new Date()
|
||||||
@ -43,24 +59,90 @@ class window.MarkerMgr
|
|||||||
velocityString = if marker.velocity? then "<br/>Velocity: #{marker.velocity} km/h" else ''
|
velocityString = if marker.velocity? then "<br/>Velocity: #{marker.velocity} km/h" else ''
|
||||||
locationString = ''
|
locationString = ''
|
||||||
if marker.display_name?
|
if marker.display_name?
|
||||||
locationString = "<br/>Location: <a href=\"#\" onclick=\"showBoundingBox('#{marker.tracker_id}', #{mid});\" title=\"Show location bounding box\">#{marker.display_name}</a>"
|
locationString = "<br/>Location: <a href=\"#\" onclick=\"showBoundingBox(#{marker.lid});\" title=\"Show location bounding box\">#{marker.display_name}</a>"
|
||||||
else
|
else
|
||||||
locationString = "<br/>Location: <span id=\"loc_#{marker.tracker_id}_#{mid}\"><a href=\"#\" onclick=\"geodecodeMarker('#{marker.tracker_id}', #{mid});\" title=\"Get location (geodecode)\">Get location</a></span>"
|
locationString = "<br/>Location: <span id=\"loc_#{marker.lid}\"><a href=\"#\" onclick=\"geodecodeMarker(#{marker.lid});\" title=\"Get location (geodecode)\">Get location</a></span>"
|
||||||
|
|
||||||
removeString = "<br/><br/><a href=\"#\" onclick=\"deleteMarker('#{marker.tracker_id}', #{mid});\">Delete marker</a>"
|
removeString = "<br/><br/><a href=\"#\" onclick=\"deleteMarker(#{marker.lid});\">Delete marker</a>"
|
||||||
|
|
||||||
# prepare popup HTML code for marker
|
# prepare popup HTML code for marker
|
||||||
popupString = dateString + trackerIDString + accuracyString + headingString + velocityString + locationString + removeString
|
popupString = dateString + trackerIDString + accuracyString + headingString + velocityString + locationString + removeString
|
||||||
return popupString
|
return popupString
|
||||||
|
|
||||||
|
getMarkerIcon: (tid, icon_is_first, icon_is_last) ->
|
||||||
|
console.log 'MarkerMgr::getMarkerIcon(%o, %o, %o)', tid, icon_is_first, icon_is_last
|
||||||
|
# TODO: make colour depending on tid?
|
||||||
|
#colours = ['blue', 'red', 'orange', 'green', 'purple', 'cadetblue', 'darkred', 'darkgreen', 'darkpurple']
|
||||||
|
#for fg, i in colours
|
||||||
|
# bg1 = if fg is 'green' then 'darkgreen' else 'green'
|
||||||
|
# bg2 = if fg is 'red' then 'darkred' else 'red'
|
||||||
|
colour = 'blue'
|
||||||
|
icon_type = 'user'
|
||||||
|
icon_colour = 'white'
|
||||||
|
if icon_is_first
|
||||||
|
icon_type = 'flag'
|
||||||
|
icon_colour = 'green'
|
||||||
|
else if icon_is_last
|
||||||
|
icon_type = 'flag-checkered'
|
||||||
|
icon_colour = 'red'
|
||||||
|
marker_icon = L.AwesomeMarkers.icon
|
||||||
|
icon: icon_type
|
||||||
|
prefix: 'fa'
|
||||||
|
markerColor: colour
|
||||||
|
iconColor: icon_colour
|
||||||
|
return marker_icon
|
||||||
|
|
||||||
addMarkersTo: (map) ->
|
addMarkersTo: (map) ->
|
||||||
console.log 'MarkerMgr::addMarkersTo(%o)', map
|
console.log 'MarkerMgr::addMarkersTo(%o)', map
|
||||||
mapid = map.getContainer().id
|
mapid = map.getContainer().id
|
||||||
|
if not @markers_drawn[mapid]?
|
||||||
|
@markers_drawn[mapid] = []
|
||||||
for tid, tidmarkers of @markers
|
for tid, tidmarkers of @markers
|
||||||
# TODO: Implement some way of filtering by tid
|
# TODO: Implement some way of filtering by tid
|
||||||
for i, tidmarker of tidmarkers
|
for tidmarker, i in tidmarkers
|
||||||
tooltip_txt = @getMarkerTooltip i, tidmarker
|
tooltip_txt = @getMarkerTooltip tidmarker
|
||||||
|
icon_is_first = i is 0
|
||||||
|
icon_is_last = i+1 is tidmarkers.length
|
||||||
|
icon = @getMarkerIcon tid, icon_is_first, icon_is_last
|
||||||
|
marker = L.marker [tidmarker.latitude, tidmarker.longitude], {icon: icon}
|
||||||
|
.bindPopup tooltip_txt
|
||||||
|
.addTo map
|
||||||
|
@markers_drawn[mapid].push marker
|
||||||
|
|
||||||
removeMarkersFrom: (map) ->
|
removeMarkersFrom: (map) ->
|
||||||
console.log 'MarkerMgr::removeMarkersFrom(%o)', map
|
console.log 'MarkerMgr::removeMarkersFrom(%o)', map
|
||||||
mapid = map.getContainer().id
|
mapid = map.getContainer().id
|
||||||
|
if @markers_drawn[mapid]?
|
||||||
|
while marker = @markers_drawn[mapid].shift()
|
||||||
|
marker.remove()
|
||||||
|
|
||||||
|
addLinesTo: (map) ->
|
||||||
|
console.log 'MarkerMgr::addLinesTo(%o)', map
|
||||||
|
mapid = map.getContainer().id
|
||||||
|
if not @lines_drawn[mapid]?
|
||||||
|
@lines_drawn[mapid] = []
|
||||||
|
for tid, tidmarkers of @markers
|
||||||
|
# TODO: Implement some way of filtering by tid
|
||||||
|
line_track = []
|
||||||
|
for tidmarker, i in tidmarkers
|
||||||
|
line_track.push [tidmarker.latitude, tidmarker.longitude, i]
|
||||||
|
|
||||||
|
line = L.hotline line_track,
|
||||||
|
min: 0
|
||||||
|
max: tidmarkers.length
|
||||||
|
palette:
|
||||||
|
0.0: 'green'
|
||||||
|
0.5: 'yellow'
|
||||||
|
1.0: 'red'
|
||||||
|
weight: 4
|
||||||
|
outlineColor: '#000000'
|
||||||
|
outlineWidth: 0.5
|
||||||
|
.addTo map
|
||||||
|
@lines_drawn[mapid].push line
|
||||||
|
|
||||||
|
removeLinesFrom: (map) ->
|
||||||
|
console.log 'MarkerMgr::removeLinesFrom(%o)', map
|
||||||
|
mapid = map.getContainer().id
|
||||||
|
if @lines_drawn[mapid]?
|
||||||
|
while line = @lines_drawn[mapid].shift()
|
||||||
|
line.remove()
|
||||||
|
@ -11,18 +11,6 @@ class window.OwnMap
|
|||||||
show_markers = Cookies.get 'show_markers'
|
show_markers = Cookies.get 'show_markers'
|
||||||
console.log 'initMap: show_markers = %o', show_markers
|
console.log 'initMap: show_markers = %o', show_markers
|
||||||
|
|
||||||
@marker_start_icons = {}
|
|
||||||
@marker_finish_icons = {}
|
|
||||||
@marker_icons = {}
|
|
||||||
|
|
||||||
colours = ['blue', 'red', 'orange', 'green', 'purple', 'cadetblue', 'darkred', 'darkgreen', 'darkpurple']
|
|
||||||
for fg, i in colours
|
|
||||||
bg1 = if fg is 'green' then 'darkgreen' else 'green'
|
|
||||||
bg2 = if fg is 'red' then 'darkred' else 'red'
|
|
||||||
@marker_start_icons[i] = L.AwesomeMarkers.icon({icon: 'play', prefix: 'fa', markerColor: fg, iconColor: bg1 })
|
|
||||||
@marker_finish_icons[i] = L.AwesomeMarkers.icon({icon: 'stop', prefix: 'fa', markerColor: fg, iconColor: bg2 })
|
|
||||||
@marker_icons[i] = L.AwesomeMarkers.icon({icon: 'user', prefix: 'fa', markerColor: fg })
|
|
||||||
|
|
||||||
# set checkbox
|
# set checkbox
|
||||||
if show_markers is '1'
|
if show_markers is '1'
|
||||||
# hideMarkers();
|
# hideMarkers();
|
||||||
@ -78,139 +66,25 @@ class window.OwnMap
|
|||||||
console.log 'OwnMap::fetchMarkers()'
|
console.log 'OwnMap::fetchMarkers()'
|
||||||
@markermgr.fetchMarkers window.dateFrom, window.dateTo, window.accuracy
|
@markermgr.fetchMarkers window.dateFrom, window.dateTo, window.accuracy
|
||||||
.done (data) =>
|
.done (data) =>
|
||||||
console.log '### data=%o', data
|
|
||||||
jsonMarkers = data
|
|
||||||
window.updateTrackerIDs()
|
window.updateTrackerIDs()
|
||||||
if @drawMap jsonMarkers
|
if @drawMap()
|
||||||
$('#mapid').css 'filter', 'blur(0px)'
|
$('#mapid').css 'filter', 'blur(0px)'
|
||||||
|
|
||||||
eraseMap: ->
|
|
||||||
console.log 'OwnMap::eraseMap()'
|
|
||||||
for own _tid, markers of @my_markers
|
|
||||||
if _tid of @polylines
|
|
||||||
@polylines[_tid].removeFrom @mymap
|
|
||||||
for own _index2, _marker of markers
|
|
||||||
_marker.remove()
|
|
||||||
return true
|
|
||||||
|
|
||||||
drawMap: ->
|
drawMap: ->
|
||||||
console.log 'OwnMap::drawMap()'
|
console.log 'OwnMap::drawMap()'
|
||||||
if @map_drawn
|
if @map_drawn
|
||||||
@markermgr.removeMarkersFrom @mymap
|
@markermgr.removeMarkersFrom @mymap
|
||||||
|
@markermgr.removeLinesFrom @mymap
|
||||||
|
@map_drawn = false
|
||||||
|
|
||||||
@markermgr.addMarkersTo @mymap
|
@markermgr.addMarkersTo @mymap
|
||||||
|
@markermgr.addLinesTo @mymap
|
||||||
|
|
||||||
# TODO: Handle polyline
|
# save default zoom scale
|
||||||
# TODO: Zoom to bounds
|
@setDefaultZoom()
|
||||||
|
# auto zoom scale based on all markers location
|
||||||
# LEGACY CODE:
|
@mymap.fitBounds @markermgr.getMarkerBounds()
|
||||||
tid_markers = @markermgr.getMarkers()
|
@map_drawn = true
|
||||||
trackerIDs = @markermgr.getTrackerIds()
|
|
||||||
try
|
|
||||||
console.log 'drawMap: tid_markers = %o', tid_markers
|
|
||||||
|
|
||||||
# vars for map bounding
|
|
||||||
max_lat = -1000
|
|
||||||
min_lat = 1000
|
|
||||||
max_lon = -1000
|
|
||||||
min_lon = 1000
|
|
||||||
|
|
||||||
if @map_drawn
|
|
||||||
@eraseMap()
|
|
||||||
|
|
||||||
nb_markers = 0 # global markers counter
|
|
||||||
|
|
||||||
@my_markers = {}
|
|
||||||
my_latlngs = []
|
|
||||||
@polylines = []
|
|
||||||
|
|
||||||
if trackerIDs.length is 0
|
|
||||||
console.error 'drawMap: No location data found for any trackerID!'
|
|
||||||
alert 'No location data found for any trackerID!'
|
|
||||||
|
|
||||||
for tid, j in trackerIDs
|
|
||||||
console.log 'Handling trackers: %o, %o', tid, j
|
|
||||||
my_latlngs[tid] = []
|
|
||||||
@my_markers[tid] = []
|
|
||||||
|
|
||||||
if window.trackerID is 'all' or window.trackerID is tid
|
|
||||||
markers = tid_markers[tid]
|
|
||||||
console.log 'Markers set is: %o', markers
|
|
||||||
if markers.length is 0
|
|
||||||
console.error 'drawMap: No location data for trackerID "%o" found!', window.trackerID
|
|
||||||
alert "No location data for trackerID '#{window.trackerID}' found!"
|
|
||||||
|
|
||||||
for marker, i in markers
|
|
||||||
nb_markers += 1
|
|
||||||
# prepare popup HTML code for marker
|
|
||||||
popupString = @markermgr.getMarkerTooltip i, marker
|
|
||||||
|
|
||||||
# create leaflet marker object with custom icon based on tid index in array
|
|
||||||
if i == 0
|
|
||||||
# first marker
|
|
||||||
my_marker = L.marker( [markers[i].latitude, markers[i].longitude], {icon: @marker_start_icons[j]} ).bindPopup(popupString)
|
|
||||||
else if i == markers.length-1
|
|
||||||
# last marker
|
|
||||||
my_marker = L.marker( [markers[i].latitude, markers[i].longitude], {icon: @marker_finish_icons[j]} ).bindPopup(popupString)
|
|
||||||
else
|
|
||||||
# all other markers
|
|
||||||
my_marker = L.marker( [markers[i].latitude, markers[i].longitude], {icon: @marker_icons[j]} ).bindPopup(popupString)
|
|
||||||
|
|
||||||
if max_lat < markers[i].latitude then max_lat = markers[i].latitude
|
|
||||||
if min_lat > markers[i].latitude then min_lat = markers[i].latitude
|
|
||||||
if max_lon < markers[i].longitude then max_lon = markers[i].longitude
|
|
||||||
if min_lon > markers[i].longitude then min_lon = markers[i].longitude
|
|
||||||
|
|
||||||
# add marker to map only if cookie 'show_markers' says to or if 1st or last marker
|
|
||||||
if show_markers != '0' or i == 0 or i == markers.length-1
|
|
||||||
my_marker.addTo @mymap
|
|
||||||
|
|
||||||
# collect all markers location to prepare drawing track, per trackerID
|
|
||||||
my_latlngs[tid][i] = [markers[i].latitude, markers[i].longitude, i]
|
|
||||||
|
|
||||||
|
|
||||||
# todo : onmouseover marker, display accuracy radius
|
|
||||||
# if(markers[i].acc > 0){
|
|
||||||
|
|
||||||
#if(i+1 == markers.length && markers[i].acc > 0){
|
|
||||||
# var circle = L.circle(my_latlngs[i], {
|
|
||||||
# opacity: 0.2,
|
|
||||||
# radius: markers[i].acc
|
|
||||||
# }).addTo(mymap);
|
|
||||||
#}
|
|
||||||
|
|
||||||
# array of all markers for display / hide markers + initial auto zoom scale
|
|
||||||
my_marker.epoch = markers[i].epoch # needed for geocoding/deleting
|
|
||||||
@my_markers[tid][i] = my_marker
|
|
||||||
|
|
||||||
# var polylines[tid] = L.polyline(my_latlngs[tid]).addTo(mymap);
|
|
||||||
@polylines[tid] = L.hotline(my_latlngs[tid],
|
|
||||||
min: 0
|
|
||||||
max: markers.length
|
|
||||||
palette:
|
|
||||||
0.0: 'green'
|
|
||||||
0.5: 'yellow'
|
|
||||||
1.0: 'red'
|
|
||||||
weight: 4
|
|
||||||
outlineColor: '#000000'
|
|
||||||
outlineWidth: 0.5
|
|
||||||
).addTo @mymap
|
|
||||||
|
|
||||||
# save default zoom scale
|
|
||||||
@setDefaultZoom()
|
|
||||||
# auto zoom scale based on all markers location
|
|
||||||
@mymap.fitBounds [
|
|
||||||
[min_lat, min_lon],
|
|
||||||
[max_lat, max_lon]
|
|
||||||
]
|
|
||||||
# set map drawn flag
|
|
||||||
@map_drawn = true
|
|
||||||
return true
|
|
||||||
catch err
|
|
||||||
console.error 'drawMap: %o', err
|
|
||||||
alert err.message
|
|
||||||
@map_drawn = false
|
|
||||||
return false
|
|
||||||
|
|
||||||
setDefaultZoom: ->
|
setDefaultZoom: ->
|
||||||
console.log 'OwnMap::setDefaultZoom()'
|
console.log 'OwnMap::setDefaultZoom()'
|
||||||
@ -256,13 +130,13 @@ class window.OwnMap
|
|||||||
clearTimeout @live_view_timer
|
clearTimeout @live_view_timer
|
||||||
return @live_view
|
return @live_view
|
||||||
|
|
||||||
geodecodeMarker: (tid, i) ->
|
geodecodeMarker: (lid) ->
|
||||||
console.log 'OwnMap::geodecodeMarker(%o, %o)', tid, i
|
console.log 'OwnMap::geodecodeMarker(%o)', lid
|
||||||
# ajax call to remove marker from backend
|
# ajax call to remove marker from backend
|
||||||
$.ajax
|
$.ajax
|
||||||
url: 'rpc.php'
|
url: 'rpc.php'
|
||||||
data:
|
data:
|
||||||
'epoch': @my_markers[tid][i].epoch
|
'lid': lid
|
||||||
'action': 'geoDecode'
|
'action': 'geoDecode'
|
||||||
type: 'get'
|
type: 'get'
|
||||||
dataType: 'json'
|
dataType: 'json'
|
||||||
@ -271,20 +145,20 @@ class window.OwnMap
|
|||||||
console.log 'geodecodeMarker: Status=%o, Data=%o', status, data
|
console.log 'geodecodeMarker: Status=%o, Data=%o', status, data
|
||||||
|
|
||||||
# update marker data
|
# update marker data
|
||||||
$("#loc_#{tid}_#{i}").html "<a href='javascript:showBoundingBox(#{tid}, #{i});' title='Show location bounding box'>#{data.location}</a>"
|
$("#loc_#{lid}").html "<a href='javascript:showBoundingBox(#{lid});' title='Show location bounding box'>#{data.location}</a>"
|
||||||
else
|
else
|
||||||
console.error 'geodecodeMarker: Status=%o, Data=%o', status, data
|
console.error 'geodecodeMarker: Status=%o, Data=%o', status, data
|
||||||
error: (xhr, desc, err) ->
|
error: (xhr, desc, err) ->
|
||||||
console.error 'geodecodeMarker: XHR=%o, Error=%o, Details=%o', xhr, err, desc
|
console.error 'geodecodeMarker: XHR=%o, Error=%o, Details=%o', xhr, err, desc
|
||||||
|
|
||||||
deleteMarker: (tid, i) ->
|
deleteMarker: (lid) ->
|
||||||
console.log 'OwnMap::deleteMarker(%o, %o)', tid, i
|
console.log 'OwnMap::deleteMarker(%o)', lid
|
||||||
|
|
||||||
# ajax call to remove marker from backend
|
# ajax call to remove marker from backend
|
||||||
$.ajax
|
$.ajax
|
||||||
url: 'rpc.php'
|
url: 'rpc.php'
|
||||||
data:
|
data:
|
||||||
'epoch': @my_markers[tid][i].epoch
|
'lid': lid
|
||||||
'action': 'deleteMarker'
|
'action': 'deleteMarker'
|
||||||
type: 'get'
|
type: 'get'
|
||||||
dataType: 'json'
|
dataType: 'json'
|
||||||
|
@ -73,24 +73,24 @@ class AbstractDatabase
|
|||||||
return $markers;
|
return $markers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getMarkerLatLon(int $epoch)
|
public function getMarkerLatLon(int $location_id)
|
||||||
{
|
{
|
||||||
$sql = 'SELECT latitude, longitude FROM ' . $this->prefix . 'locations WHERE epoch = ?';
|
$sql = 'SELECT latitude, longitude FROM ' . $this->prefix . 'locations WHERE lid = ?';
|
||||||
$result = $this->query($sql, array($epoch));
|
$result = $this->query($sql, array($location_id));
|
||||||
return $result[0];
|
return $result[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteMarker(int $epoch)
|
public function deleteMarker(int $location_id)
|
||||||
{
|
{
|
||||||
$sql = 'DELETE FROM ' . $this->prefix . 'locations WHERE epoch = ?';
|
$sql = 'DELETE FROM ' . $this->prefix . 'locations WHERE lid = ?';
|
||||||
$result = $this->execute($sql, array($epoch));
|
$result = $this->execute($sql, array($location_id));
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateLocationData(int $epoch, float $latitude, float $longitude, string $location_name, int $place_id, int $osm_id)
|
public function updateLocationData(int $location_id, float $latitude, float $longitude, string $location_name, int $place_id, int $osm_id)
|
||||||
{
|
{
|
||||||
$sql = 'UPDATE ' . $this->prefix . 'locations SET display_name = ?, place_id = ?, osm_id = ? WHERE epoch = ?';
|
$sql = 'UPDATE ' . $this->prefix . 'locations SET display_name = ?, place_id = ?, osm_id = ? WHERE lid = ?';
|
||||||
$params = array($location_name, $place_id, $osm_id, $epoch);
|
$params = array($location_name, $place_id, $osm_id, $location_id);
|
||||||
$result = $this->execute($sql, $params);
|
$result = $this->execute($sql, $params);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
16
lib/Rpc.php
16
lib/Rpc.php
@ -70,14 +70,14 @@ class Rpc
|
|||||||
|
|
||||||
public function deleteMarker()
|
public function deleteMarker()
|
||||||
{
|
{
|
||||||
if (!array_key_exists('epoch', $_REQUEST)) {
|
if (!array_key_exists('lid', $_REQUEST)) {
|
||||||
http_response_code(204);
|
http_response_code(204);
|
||||||
return array(
|
return array(
|
||||||
'status' => false,
|
'status' => false,
|
||||||
'error' => 'No epoch provided for marker removal',
|
'error' => 'No location_id provided for marker removal',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
$result = $this->sql->deleteMarker($_REQUEST['epoch']);
|
$result = $this->sql->deleteMarker($_REQUEST['lid']);
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
http_response_code(500);
|
http_response_code(500);
|
||||||
return array(
|
return array(
|
||||||
@ -95,15 +95,15 @@ class Rpc
|
|||||||
{
|
{
|
||||||
global $_config;
|
global $_config;
|
||||||
|
|
||||||
if (!array_key_exists('epoch', $_REQUEST)) {
|
if (!array_key_exists('lid', $_REQUEST)) {
|
||||||
http_response_code(204);
|
http_response_code(204);
|
||||||
return array(
|
return array(
|
||||||
'status' => false,
|
'status' => false,
|
||||||
'error' => 'No epoch provided for marker removal',
|
'error' => 'No location_id provided for marker removal',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// GET MARKER'S LAT & LONG DATA
|
// GET MARKER'S LAT & LONG DATA
|
||||||
$marker = $this->sql->getMarkerLatLon($_REQUEST['epoch']);
|
$marker = $this->sql->getMarkerLatLon($_REQUEST['lid']);
|
||||||
|
|
||||||
if ($marker === false) {
|
if ($marker === false) {
|
||||||
http_response_code(500);
|
http_response_code(500);
|
||||||
@ -129,8 +129,8 @@ class Rpc
|
|||||||
$location = @json_encode($geo_decode);
|
$location = @json_encode($geo_decode);
|
||||||
}
|
}
|
||||||
|
|
||||||
//UPDATE MARKER WITH GEODECODED LOCATION
|
// UPDATE MARKER WITH GEODECODED LOCATION
|
||||||
$result = $this->sql->updateLocationData((int)$_REQUEST['epoch'], (float)$latitude, (float)$longitude, $location, $place_id, $osm_id);
|
$result = $this->sql->updateLocationData((int)$_REQUEST['lid'], (float)$latitude, (float)$longitude, $location, $place_id, $osm_id);
|
||||||
|
|
||||||
if ($result === false) {
|
if ($result === false) {
|
||||||
http_response_code(500);
|
http_response_code(500);
|
||||||
|
Reference in New Issue
Block a user