try fix positioning

This commit is contained in:
Götz 2017-10-18 17:06:41 +02:00
parent 1aac4e1c15
commit 84c60a9402
4 changed files with 25 additions and 26 deletions

View File

@ -26,4 +26,5 @@ urlpatterns = [
# VGN # VGN
url(r'^bus/$', views.bus_connections, name='vgn-bus'), url(r'^bus/$', views.bus_connections, name='vgn-bus'),
url(r'^bus/(?P<vgn_coords>.+)/(?P<position>.+)/$', views.vgn_redirect, name='vgn-redirect'),
] ]

View File

@ -1,4 +1,4 @@
from django.shortcuts import render from django.shortcuts import render, redirect
from apps.donar.models import Room from apps.donar.models import Room
from apps.donar.models import VGN_Coords from apps.donar.models import VGN_Coords
@ -32,3 +32,7 @@ def show_room(request, room):
def bus_connections(request): def bus_connections(request):
locations = VGN_Coords.objects.all() locations = VGN_Coords.objects.all()
return render(request, 'donar/vgn_connections.jinja', {'locations': locations}) return render(request, 'donar/vgn_connections.jinja', {'locations': locations})
def vgn_redirect(request, position, vgn_coords):
return redirect('https://www.vgn.de/verbindungen/?to=' + position + '&td=' + vgn_coords)

View File

@ -3,25 +3,28 @@
*/ */
document.addEventListener('DOMContentLoaded', loadVGNPos); document.addEventListener('DOMContentLoaded', loadVGNPos);
function loadVGNPos() {
document.getElementById('vgn-links').style.visibility = "hidden";
getPos();
}
function getPos() { function getPos() {
var lat = 49.90734; lat = 49.90734;
var lon = 10.90459; lon = 10.90459;
if (navigator.geolocation) { if (navigator.geolocation) {
var geo_option = { var geo_option = {
enableHighAccuracy: true enableHighAccuracy: true
}; };
navigator.geolocation.getCurrentPosition(function (position) { navigator.geolocation.getCurrentPosition(function (position) {
lat = position.coords.latitude; getVGNCoords(position.coords.latitude, position.coords.longitude)
lon = position.coords.longitude;
document.getElementById('position').innerHTML = "Lat:" + pos['lat'] + " Lon: " + pos['lon']
}, function (err) { }, function (err) {
console.log(err);
document.getElementById('err').textContent = "Leider konnte Ihre Position nicht ermittelt werden.";
}, geo_option) }, geo_option)
} }
return {'lat': lat, 'lon': lon};
} }
function loadData(url) { function loadData(url) {
var address = document.getElementById('nav_data').getAttribute('data-address') console.log("LOAD DATA")
var xhttp = new XMLHttpRequest(); var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () { xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) { if (this.readyState == 4 && this.status == 200) {
@ -34,28 +37,19 @@ function loadData(url) {
function getVGNCoords(lat, lon) { function getVGNCoords(lat, lon) {
console.log("getVGNCoords: " + lat + "/" + lon) console.log("getVGNCoords: " + lat + "/" + lon);
var url = "https://www.vgn.de/ib/site/tools/VN_PointDetail.php?Edition=de&lat=" + lat + "&lon=" + lon + "&mode=fnSetFromEFA&mode2=origin&_=1508264908632"; var url = "https://www.vgn.de/ib/site/tools/VN_PointDetail.php?Edition=de&lat=" + lat + "&lon=" + lon + "&mode=fnSetFromEFA&mode2=origin&_=1508264908632";
loadData(url); loadData(url);
} }
function loadVGNPos() {
document.getElementsByTagName('body')[0].style.visibility = "hidden"
pos = getPos()
console.log(pos)
getVGNCoords(pos['lat'], pos['lon'])
}
function setVGNLinks(response) { function setVGNLinks(response) {
var type = response['ident']['type']; var type = response['ident']['type'];
var startpoint = response['ident']['name']; var startpoint = response['ident']['name'];
console.log("Startpoint" + startpoint) console.log("Startpoint" + startpoint);
var connections = document.getElementsByClassName('connection'); var connections = document.getElementsByClassName('connection');
var destinations = document.getElementsByClassName('destination')
for (var i = 0; i < connections.length; i++) { for (var i = 0; i < connections.length; i++) {
connections[i].href = 'https://www.vgn.de/verbindungen/?to=' + startpoint + '&td=' + destinations[i].innerHTML; connections[i].href = connections[i].href.replace('position', startpoint);
console.log(connections[i].href) console.log(connections[i].href)
} }
document.getElementsByTagName('body')[0].style.visibility = "visible" document.getElementById('vgn-links').style.visibility = "visible"
} }

View File

@ -7,14 +7,14 @@
<p class="text-center">Donar</p> <p class="text-center">Donar</p>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<p id="position"></p> <p id="err"></p>
<div class="row"> <div id="vgn-links" class="row">
{% if locations %} {% if locations %}
{% for location in locations %} {% for location in locations %}
<div class="col-12 p-1"> <div class="col-12 p-1">
<div class="p-2 border border-dark rounded-3 border border-dark rounded bg-light text-dark"> <div class="p-2 border border-dark rounded-3 border border-dark rounded bg-light text-dark">
<a class="connection" href="">{{ location.name }}</a> <a class="connection"
<p class="destination" hidden>{{ location.coords }}</p> href="{{ url('vgn-redirect', args=[location.coords, 'position']) }}">{{ location.name }}</a>
</div> </div>
</div> </div>
{% endfor %} {% endfor %}