Openlayers, Daten aus lokaler CSV darstellen

Hallo.

Bin grad dabei über eine OSM-Karte mit Hilfe von Openlayers statistische Daten eines ehrenamtlichen Vogelschutzprojektes darzustellen.
Dafür habe ich mich wiedereinmal bei Netzwolf bedient: www.netzwolf.info/kartografie/openlayers/circlepois3.htm
Die Daten werden im Beispiel von Wolfgang einer auf dem Server liegenden csv-Datei entnommen.

Wie kann ich das umstricken, damit der Benutzer eine lokale csv-Datei selber auswählen kann?

Auszug aus dem Script:

		strategies: [new OpenLayers.Strategy.Fixed()],

		protocol: new OpenLayers.Protocol.HTTP({

			url: 'BOST93N1.csv',

			format: new OpenLayers.Format.Text({extractStyles: false})
		})

ich glaube das geht nicht - weil es nicht gehen darf.

Dafür müsste ein Java-Script ein lokales File beim Anwender öffnen und genau das ist aus Sicherheitsgründen absolut unmöglich.

Gruss
walter

du könntest einen Upload zum Server einbauen und dann den Server “bitten”, das File zu verarbeiten.

Das Öffnen einer lokalen Datei geht dann, wenn das Javascript selbst auch schon vom lokalen Rechner kam, also z.B. mit

file:///mein/verzeichnis/index.html

  • in dem Fall kann die Seite auch eine “bla.csv” öffnen, die dann ebenfalls im gleichen Verzeichnis gesucht wird.

Eine Seite, die aus dem Netz geladen wird, darf das normalerweise nicht, aus den von Wambacher genannten Gründen. (Bei einigen Browsern kann man diesen Sicherheitsmechanismus abschalten.)

Eine Datei auf dem Rechner auswählen (im Sinne einer Auswahlliste) geht auch nicht browser-übergreifend -
aber was relativ einfach geht, ist der Trick mit dem Fragezeichen:

file:///mein/verzeichnis/index.html?my1234.csv

da kannst Du dann über window.location.search auf das hinter dem Fragezeichen zugreifen.

Bye
Frederik

hm, und wie machen das die Scripte, die dem Benutzer anbieten lokale gpx-Files als ol darzustellen?

Beispiel wieder von Wolfgang: http://www.netzwolf.info/kartografie/openlayers/localtracks

Unterm Strich sind beides ja nur Textdateien…

Genau so,wie ich es beschrieben habe: Da öffnet sich ein Fenster und danach wird die Datei HOCHGELADEN.
Und einmal “oben” kann der Script sie auch verarbeiten.

GRuss
walter

Das Beispiel ist doch quasi schon die Antwort? Man muss aber nach unten scrollen, um die Erklärung zu sehen. Dort ist auch ein Beispiel für CSV Dateien verlinkt.

Die Beispiele verwenden die HTML5 File API. Damit können lokale Dateien ohne Hochladen direkt im Browser per Datei-Dialog oder Drag&Drop gelesen werden. Das wird als unkritisch angesehen, weil das Öffnen vom Anwender initiiert wird und eine bewußte Interaktion erfordert.

Uii, wieder was dazu gelernt.

Hallo,
ist richtig, seit vergangener Nacht ist dies dort verlinkt :smiley:

Herzlichen Dank an Wolfgang freu

//------------------------------------------------------------------------------
//	$Id: localfeatures.js,v 1.2 2015/03/15 23:55:00 wolf Exp $
//------------------------------------------------------------------------------