You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2018-05-01 16:34:08

Wegabschneider
Member
From: Palatina
Registered: 2010-02-07
Posts: 287

geojson-Datei einlesen und einer Variable zuweisen

Ich versuche mich per leaflet.Elevation und möchte Routen darstellen.

Hier weise ich der Variablen  "route" die geojson zu. Das klappt.



var route = {
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
                                                                                
"features": [
{ "type": "Feature", "properties": { }, "geometry": { "type": "LineString", "coordinates": [ [ 8.023832399999987, 49.270580399999965 ], [ 8.024321199999989, 49.270373399999976 ], [ 8.0244547, 49.2703166 ], [ 8.0245801, 49.270204 ], [ 8.0247885, 49.270086299999981 ], [ 8.025155899999987, 49.2699377 ], [ 8.0259489, 49.2695827 ], [ 8.0267242, 49.2691823 ], [ 8.0271222, 49.268825299999953 ], [ 8.0273064, 49.268358799999973 ], [ 8.0274012, 49.2679948] ] } }
]
}

;


var el = L.control.elevation();
		el.addTo(map);
		var gjl = L.geoJson(route,{
		    onEachFeature: el.addData.bind(el)
		}).addTo(map);

Wie kann ich nun eine geojson-Datei einlesen per: bspw. $.getJSON("ordner1/route2.geojson", function(json){};
und das der Variablen "route" zuweisen?

Gut möglich, dass die Zeile falsch ist. Einlesen möchte ich per jQuery $.getJSON.

Verständlich?

Offline

#2 2018-05-01 16:56:44

Harald Hartmann
Member
From: 98667 Schönbrunn
Registered: 2014-04-02
Posts: 3,123
Website

Re: geojson-Datei einlesen und einer Variable zuweisen

Hast du dir das leaflet.elevation Beispiel mal genauer angeschaut? Weiß gerade nicht, warum du es mit jQuery einlesen möchtest. Entweder würde ich den pure javascript Befehl require nehmen, oder da du ja leaflet nutzt den geojson Loader von leaflet, siehe leaflet Doku wink

Last edited by Harald Hartmann (2018-05-01 16:57:11)


Mein aktives Gebiet: Gemeinde Schleusegrund
Fingerprint meines Schlüssels: 71F7 3CD9 B647 9079 6B88 326E 8B8B 72AE 34F9 5AAD

Offline

#3 2018-05-01 17:08:56

dooley
Member
From: Landkreis Calw
Registered: 2013-11-04
Posts: 896

Re: geojson-Datei einlesen und einer Variable zuweisen

Wenn du aus Gründen jQuery verwendest, sollte das so gehen:

var el = L.control.elevation();
el.addTo(map);

var route = {};
var gjl = {};

$.getJSON("ordner1/route2.geojson", function(json) {
  route = json;
  gjl = L.geoJson(route, {
    onEachFeature: el.addData.bind(el)
  }).addTo(map);
});

Wobei die Variable "route" in obigem Beispiel nicht benötigt würde, hier könnte man direkt "json" verwenden.

Gruß, Frank

(Wie immer: Ungetestet und ohne Gewehr)


Zum Zustand des deutschen Forums vom geschätzten Netzwolf auch "Pamphlet" genannt
Mein Avatar ist ein Ausschnitt aus "Die Saporoger Kosaken schreiben dem türkischen Sultan einen Brief" (Ilja Repin, gemeinfrei)

Offline

#4 2018-05-02 07:29:47

Wegabschneider
Member
From: Palatina
Registered: 2010-02-07
Posts: 287

Re: geojson-Datei einlesen und einer Variable zuweisen

Harald Hartmann wrote:

Hast du dir das leaflet.elevation Beispiel mal genauer angeschaut? Weiß gerade nicht, warum du es mit jQuery einlesen möchtest. Entweder würde ich den pure javascript Befehl require nehmen, oder da du ja leaflet nutzt den geojson Loader von leaflet, siehe leaflet Doku wink


An anderer Stelle nutz ich schon jquery, daher war es für mich der erste Schritt es auch damit zu versuchen.

Ich mach mal weiter (wird dauern roll), danke ich beiden.

Offline

#5 2018-05-02 08:07:08

Harald Hartmann
Member
From: 98667 Schönbrunn
Registered: 2014-04-02
Posts: 3,123
Website

Re: geojson-Datei einlesen und einer Variable zuweisen

Ok. Dann sei z.B. auf load json into variable verwiesen. Wichtig ist halt zu wissen, dass jQuery.getJSON standardmäßig asynchron arbeitet, aber wie man das umschifft, siehe Link.

Auch das von mir vorgeschlagene "require" hat so seine Vor- und Nachteile, z.B. lädt es die Datei pro Browser Instanz nur ein einziges mal und verfrachtet den Inhalt in den Cache.


Mein aktives Gebiet: Gemeinde Schleusegrund
Fingerprint meines Schlüssels: 71F7 3CD9 B647 9079 6B88 326E 8B8B 72AE 34F9 5AAD

Offline

#6 2018-05-02 09:11:35

dooley
Member
From: Landkreis Calw
Registered: 2013-11-04
Posts: 896

Re: geojson-Datei einlesen und einer Variable zuweisen

Harald Hartmann wrote:

Ok. Dann sei z.B. auf load json into variable

Ohoh, anscheinend habe ich da jahrelang etwas falsch gemacht. Das

I know async:false is deprecated, but what if you need to only load the json data one time? If it is loaded asynchronously then it would load each time the data is needed, which means more requests.

wusste ich nämlich nicht.

Im Ernst: Besser, man schaut sich die Doku http://api.jquery.com/jquery.ajax/ an (insbesondere den Abschnitt unter "async") und versteht grundsätzlich, wann wo welche Javascript-Variablen sichtbar sind https://www.w3schools.com/js/js_scope.asp.

Gruß, Frank

PS: Falls nicht bekannt, .getJSON ist nur ein Wrapper für .ajax


Zum Zustand des deutschen Forums vom geschätzten Netzwolf auch "Pamphlet" genannt
Mein Avatar ist ein Ausschnitt aus "Die Saporoger Kosaken schreiben dem türkischen Sultan einen Brief" (Ilja Repin, gemeinfrei)

Offline

Board footer

Powered by FluxBB