leaflet maps working
This commit is contained in:
@@ -686,6 +686,65 @@ def interactive_histoall(theworkouts):
|
|||||||
script, div = components(plot)
|
script, div = components(plot)
|
||||||
return [script,div]
|
return [script,div]
|
||||||
|
|
||||||
|
def leaflet_chart(lat,lon,name=""):
|
||||||
|
if lat.empty or lon.empty:
|
||||||
|
return [0,"invalid coordinate data"]
|
||||||
|
|
||||||
|
latmean = lat.mean()
|
||||||
|
lonmean = lon.mean()
|
||||||
|
latbegin = lat[lat.index[0]]
|
||||||
|
longbegin = lon[lon.index[0]]
|
||||||
|
latend = lat[lat.index[-1]]
|
||||||
|
longend = lon[lon.index[-1]]
|
||||||
|
|
||||||
|
coordinates = zip(lat,lon)
|
||||||
|
|
||||||
|
scoordinates = "["
|
||||||
|
|
||||||
|
for x,y in coordinates:
|
||||||
|
scoordinates += """[{x},{y}],
|
||||||
|
""".format(
|
||||||
|
x=x,
|
||||||
|
y=y
|
||||||
|
)
|
||||||
|
|
||||||
|
scoordinates += "]"
|
||||||
|
|
||||||
|
script = """
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var mymap = L.map('map_canvas').setView([{latmean},{lonmean}], 13);
|
||||||
|
|
||||||
|
L.tileLayer('https://api.tiles.mapbox.com/v4/{{id}}/{{z}}/{{x}}/{{y}}.png?access_token=pk.eyJ1Ijoic2FuZGVycm9vc2VuZGFhbCIsImEiOiJjajY3aTRkeWQwNmx6MzJvMTN3andlcnBlIn0.MFG8Xt0kDeSA9j7puZQ9hA', {{
|
||||||
|
maxZoom: 18,
|
||||||
|
id: 'mapbox.streets'
|
||||||
|
}}).addTo(mymap);
|
||||||
|
|
||||||
|
var marker = L.marker([{latbegin}, {longbegin}]).addTo(mymap);
|
||||||
|
marker.bindPopup("<b>Start</b>");
|
||||||
|
var emarker = new L.marker([{latend}, {longend}]).addTo(mymap);
|
||||||
|
emarker.bindPopup("<b>End</b>");
|
||||||
|
|
||||||
|
var latlongs = {scoordinates}
|
||||||
|
var polyline = L.polyline(latlongs, {{color:'red'}}).addTo(mymap)
|
||||||
|
mymap.fitBounds(polyline.getBounds())
|
||||||
|
|
||||||
|
</script>
|
||||||
|
""".format(
|
||||||
|
latmean=latmean,
|
||||||
|
lonmean=lonmean,
|
||||||
|
latbegin = latbegin,
|
||||||
|
latend=latend,
|
||||||
|
longbegin=longbegin,
|
||||||
|
longend=longend,
|
||||||
|
scoordinates=scoordinates,
|
||||||
|
)
|
||||||
|
|
||||||
|
div = """
|
||||||
|
<div id="map_canvas" style="width: 100%; height: 400px;"><p> </p></div>"""
|
||||||
|
|
||||||
|
return script,div
|
||||||
|
|
||||||
def googlemap_chart(lat,lon,name=""):
|
def googlemap_chart(lat,lon,name=""):
|
||||||
if lat.empty or lon.empty:
|
if lat.empty or lon.empty:
|
||||||
return [0,"invalid coordinate data"]
|
return [0,"invalid coordinate data"]
|
||||||
|
|||||||
@@ -225,36 +225,12 @@
|
|||||||
#map_canvas {position: relative; top: 0; right: 0; bottom: 0; left: 0;}
|
#map_canvas {position: relative; top: 0; right: 0; bottom: 0; left: 0;}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<div id="map_canvas" style="width: 100%; height: 400px;"><p> </p></div>
|
|
||||||
|
|
||||||
|
{{ mapdiv|safe }}
|
||||||
|
|
||||||
|
|
||||||
<script>
|
{{ mapscript|safe }}
|
||||||
|
|
||||||
var mymap = L.map('map_canvas').setView([{{ latmean }}, {{ longmean }}], 13);
|
|
||||||
|
|
||||||
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1Ijoic2FuZGVycm9vc2VuZGFhbCIsImEiOiJjajY3aTRkeWQwNmx6MzJvMTN3andlcnBlIn0.MFG8Xt0kDeSA9j7puZQ9hA', {
|
|
||||||
maxZoom: 18,
|
|
||||||
id: 'mapbox.streets'
|
|
||||||
}).addTo(mymap);
|
|
||||||
|
|
||||||
var marker = L.marker([{{ latbegin }}, {{ longbegin }}]).addTo(mymap);
|
|
||||||
marker.bindPopup("<b>Start</b>");
|
|
||||||
var emarker = L.marker([{{ latend }}, {{ longend }}]).addTo(mymap);
|
|
||||||
emarker.bindPopup("<b>End</b>");
|
|
||||||
var coordinates = {{ coordinates|safe }};
|
|
||||||
|
|
||||||
|
|
||||||
var latlongs = [];
|
|
||||||
|
|
||||||
coordinates.forEach(function(entry){
|
|
||||||
var xy = [entry.x,entry,y];
|
|
||||||
latlongs.push(xy);
|
|
||||||
});
|
|
||||||
|
|
||||||
var line = L.PolyLine(latlongs, {color: 'blue'}).addTo(mymap);
|
|
||||||
mymap.fitBounds(line.getBounds());
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6220,36 +6220,19 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
|
|||||||
|
|
||||||
|
|
||||||
if hascoordinates:
|
if hascoordinates:
|
||||||
|
mapscript,mapdiv = leaflet_chart(rowdata.df[' latitude'],
|
||||||
|
rowdata.df[' longitude'],
|
||||||
|
row.name)
|
||||||
|
|
||||||
#res = googlemap_chart(rowdata.df[' latitude'],
|
#res = googlemap_chart(rowdata.df[' latitude'],
|
||||||
# rowdata.df[' longitude'],
|
# rowdata.df[' longitude'],
|
||||||
# row.name)
|
# row.name)
|
||||||
#gmscript = res[0]
|
#gmscript = res[0]
|
||||||
#gmdiv = res[1]
|
#gmdiv = res[1]
|
||||||
latmean = rowdata.df[' latitude'].mean()
|
|
||||||
longmean = rowdata.df[' longitude'].mean()
|
|
||||||
latbegin = rowdata.df[' latitude'][rowdata.df.index[0]]
|
|
||||||
latend = rowdata.df[' latitude'][rowdata.df.index[-1]]
|
|
||||||
longbegin = rowdata.df[' longitude'][rowdata.df.index[0]]
|
|
||||||
longend = rowdata.df[' longitude'][rowdata.df.index[1]]
|
|
||||||
coordinates = pd.DataFrame({
|
|
||||||
'x':rowdata.df[' latitude'].values,
|
|
||||||
'y':rowdata.df[' longitude'].values,
|
|
||||||
}).to_json()
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
latmean = 51.505
|
mapscript = ""
|
||||||
longmean = -0.09
|
mapdiv = ""
|
||||||
latbegin = 0
|
|
||||||
latend = 0
|
|
||||||
longbegin = 0
|
|
||||||
longend = 0
|
|
||||||
coordinates = pd.DataFrame({
|
|
||||||
'x':[0,0],
|
|
||||||
'y':[0,0]
|
|
||||||
}).to_json()
|
|
||||||
|
|
||||||
#gmscript = ""
|
|
||||||
#gmdiv = ""
|
|
||||||
|
|
||||||
|
|
||||||
# render page
|
# render page
|
||||||
@@ -6259,11 +6242,8 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
|
|||||||
'workout':row,
|
'workout':row,
|
||||||
'teams':get_my_teams(request.user),
|
'teams':get_my_teams(request.user),
|
||||||
'graphs1':g[0:3],
|
'graphs1':g[0:3],
|
||||||
'latmean':latmean,
|
'mapscript':mapscript,
|
||||||
'longmean':longmean,
|
'mapdiv':mapdiv,
|
||||||
'latbegin':latbegin,
|
|
||||||
'longbegin':longbegin,
|
|
||||||
'coordinates':coordinates,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
else:
|
else:
|
||||||
@@ -6273,11 +6253,8 @@ def workout_edit_view(request,id=0,message="",successmessage=""):
|
|||||||
'workout':row,
|
'workout':row,
|
||||||
'graphs1':g[0:3],
|
'graphs1':g[0:3],
|
||||||
'graphs2':g[3:6],
|
'graphs2':g[3:6],
|
||||||
'latmean':latmean,
|
'mapscript':mapscript,
|
||||||
'longmean':longmean,
|
'mapdiv':mapdiv,
|
||||||
'latbegin':latbegin,
|
|
||||||
'longbegin':longbegin,
|
|
||||||
'coordinates':coordinates,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user