0 votes
in SoSci Survey (dt.) by s226706 (170 points)
edited by SoSci Survey

Liebes Support Team,

per HTML Code möchte ich eine Karte implementieren, die (mit Erlaubnis), den Standort der teilnehmenden Person visualisiert und die GPS Koordinaten als Datenpunkte speichert.

Folgender Code funktioniert, jedoch wird die GPS Funktion durch SoSci "disabled by permission policy". Wie kann ich darauf reagieren bzw. worin besteht die Nichterfüllung der Anforderungen der Permission Policy?

Vielen Dank und beste Grüße,

<script src="https://cdn.jsdelivr.net/npm/leaflet@1.7.1/dist/leaflet.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.7.1/dist/leaflet.css" />
<div id="map" style="height: 500px;"></div>

<input type="hidden" id="gps_latitude" name="gps_latitude">
<input type="hidden" id="gps_longitude" name="gps_longitude">

<script src="https://cdn.jsdelivr.net/npm/leaflet@1.7.1/dist/leaflet.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.7.1/dist/leaflet.css" />


<script>
    var map = L.map('map').setView([51.505, -0.09], 13);

    L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        attribution: 'Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors',
        maxZoom: 18,
    }).addTo(map);

    function onLocationFound(e) {
        var radius = e.accuracy / 2;
        L.marker(e.latlng).addTo(map);
        L.circle(e.latlng, radius).addTo(map);
        document.getElementById('lat').value = e.latlng.lat;
        document.getElementById('lng').value = e.latlng.lng;
    }

    function onLocationError(e) {
        alert(e.message);
    }

    map.on('locationfound', onLocationFound);
    map.on('locationerror', onLocationError);

    map.locate({ setView: true, maxZoom: 16 });
    

</script>

1 Answer

0 votes
by SoSci Survey (328k points)

Sie rufen da JavaScript-Dateien direkt von Drittservern auf:

<script src="https://cdn.jsdelivr.net/npm/leaflet@1.7.1/dist/leaflet.js"></script>

In dem Moment wird die IP-Adresse der Befragten an den Betreiber dieses Servers übermittelt, und Sie haben potenziell ein DSGVO-Problem. Vor allem, wenn der Drittanbieter nicht in Europa sitzt und/oder Sie keinen AVV mit dem vereinbart haben.

Laden Sie die JS-Datei doch einmal herunter, laden Sie sie in SoSci Survey als Mediendatei hoch, und binden Sie die Datei dann direkt vom Server ein.

Es kann außerdem sein, dass der Fragebogen die Notwendigkeit zum Positionsabruf nicht an den Browser mitteilt. Posten Sie gerne mal einen Pretest-Link, damit ich in der Fehlerkonsole direkt nachsehen kann, welche Permission da fehlt.

by s226706 (170 points)
Vielen Dank für die schnelle Rückmeldung!

Hier schicke ich Ihnen einen Pretest-Link und bin Ihnen sehr dankbar: https://www.soscisurvey.de/stadtoasenmuc/?act=zXRYQKe18tctCD3OMGAMj9SZ
by SoSci Survey (328k points)
Wenn ich den Link in Firefox aufrufe, und 3 Seiten "Weiter" klicke, bekomme ich von Firefox eine Frage, ob ich den Zugriff zulassen will, und anschließend bekomme ich eine Karte angezeigt.

Allerdings erzeugt diese Zeile im JavaScript-Code einen Fehler:

document.getElementById('lat').value = e.latlng.lat;

Es scheint da kein Element mit der HTML-ID "lat" zu geben. Könnte es sein, dass Sie hier eigentlich mit einer internen Variable arbeiten möchten? https://www.soscisurvey.de/help/doku.php/de:create:questions:internal
by s226706 (170 points)
Da muss ich mich erstmal schlau machen. Meine Coding-Kenntnisse sind nicht so ausgeprägt. Ich melde mich, vielen Dank!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...