From 55ef904286be426450b66be3b8754bd9faa0a2ce Mon Sep 17 00:00:00 2001 From: Jan-Lukas Else Date: Sat, 13 Nov 2021 20:40:25 +0100 Subject: [PATCH] Fix --- geoMap.go | 28 ++++++++++++++++++---------- templates/assets/js/geomap.js | 4 ++-- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/geoMap.go b/geoMap.go index 6a9edda..855039c 100644 --- a/geoMap.go +++ b/geoMap.go @@ -61,16 +61,24 @@ func (a *goBlog) serveGeoMap(w http.ResponseWriter, r *http.Request) { } } - locationsJsonBytes, err := json.Marshal(locations) - if err != nil { - a.serveError(w, r, err.Error(), http.StatusInternalServerError) - return + locationsJson := "" + if len(locations) > 0 { + locationsJsonBytes, err := json.Marshal(locations) + if err != nil { + a.serveError(w, r, err.Error(), http.StatusInternalServerError) + return + } + locationsJson = string(locationsJsonBytes) } - tracksJsonBytes, err := json.Marshal(tracks) - if err != nil { - a.serveError(w, r, err.Error(), http.StatusInternalServerError) - return + tracksJson := "" + if len(tracks) > 0 { + tracksJsonBytes, err := json.Marshal(tracks) + if err != nil { + a.serveError(w, r, err.Error(), http.StatusInternalServerError) + return + } + tracksJson = string(tracksJsonBytes) } mapPath := bc.getRelativePath(defaultIfEmpty(bc.Map.Path, defaultGeoMapPath)) @@ -78,8 +86,8 @@ func (a *goBlog) serveGeoMap(w http.ResponseWriter, r *http.Request) { BlogString: blog, Canonical: a.getFullAddress(mapPath), Data: map[string]interface{}{ - "locations": string(locationsJsonBytes), - "tracks": string(tracksJsonBytes), + "locations": locationsJson, + "tracks": tracksJson, }, }) } diff --git a/templates/assets/js/geomap.js b/templates/assets/js/geomap.js index 9258f33..e8eca8c 100644 --- a/templates/assets/js/geomap.js +++ b/templates/assets/js/geomap.js @@ -1,7 +1,7 @@ (function () { let mapEl = document.getElementById('map') - let locations = JSON.parse(mapEl.dataset.locations) - let tracks = JSON.parse(mapEl.dataset.tracks) + let locations = (mapEl.dataset.locations == "") ? [] : JSON.parse(mapEl.dataset.locations) + let tracks = (mapEl.dataset.tracks == "") ? [] : JSON.parse(mapEl.dataset.tracks) let map = L.map('map')