Karte nur mit der Landmasse von Deutschland und Bundesländer

Naja ich hatte jetzt die Shapes von Wambacher so in das Beispiel eingebunden wie dort die Countries drin waren.
Das Ergebnis ist natürlich das die Flächen einen leichten Blauton haben und die Rändern mit einem 5 pixel straßen dunkelblauen Rand versehen sind.
Ich hätte jetzt gerne stattdessen einen Grauton und die Grenze mit einem Pixel schwarz/dunkelgrau. Die Frage ist natürlich wo muss ich da ran? Ist das in der leafletdatei oder reicht es wenn ich beim Layer irgendwelche Werte mitgebe.

Laut README.md:

kann man das mit den “options” mitgeben, analog zum L.Geojson Layer, Beispiel aus dem Tutorial:


var myStyle = {
    "color": "#ff7800",
    "weight": 5,
    "opacity": 0.65
};

L.geoJson(myLines, {
    style: myStyle
}).addTo(map);

Statt “L.geoJson” müsste das dann “L.shapefile” heißen.

Wie Ikonor schon schrieb, ist das das Styling. Wenn du die optische Erscheinung von irgendwas ändern willst, was du auf die Karte bringst, musst du den Style ändern.
Das ganze kannst du dann abhängig von den in den Objekten enthaltenen Parametern machen (z.B. alle AL2 Pink ohne Füllung, ohne Namen und alle AL4 grau transparent mit schwarzem Rand und Namen). Ziemlich kompliziert wird das dann zoom-abhängig - aber es geht.

Bei OpenLayers ist das ganz genau so.

Gruss
walter

Die Richtung stimmt schon. Aber ganz zufrieden bin ich noch nicht.


                var m = L.map('map').setView([53.396,11.140], 7);
		var myStyle = {
                "color": "#000000",
	        "fillColor": "#000000",
                "weight": 1,
                "opacity": 1
};

		var shpfile = new L.Shapefile('landareas_deu_al4.zip', {style: myStyle
			
		});
		shpfile.addTo(m);
		shpfile.once("data:loaded", function() {
			console.log("finished loaded shapefile");
		});

allerdings ist die Flächenfarbe nicht schwarz, sondern grau.

nur geraten: l.shapefile ruft laut doku l.geojson auf.

http://leafletjs.com/reference.html#geojson

und l.geojson braucht eine funktion, die die gewünschte farbe zurückgibt. ich würde eine basteln, die halt immer “schwarz” zurückgibt. oder das grau, was du ja eigentlich haben willst.

Eventuell liegt das daran?

Gruss
walter

Dann noch

"fillOpacity": 1

setzen.

http://leafletjs.com/reference.html#path