Ulotka JS dodaje kształt GeoJSON jako otwór w wielokącie

9

Mam zestaw danych, który już zawiera geojson. Mogę dodać go do mojej mapy za pomocą następującego wiersza kodu.

L.geoJson(data.geojson).addTo(map);

I rozumiem geojson narysowany na mapie

Ale chcę to osiągnąć, gdy otaczający obszar jest zakryty, a mój kształt geojsona jest dziurą pośrodku.

geojson jako dziura na mapie

Zgodnie z dokumentacją ulotki

Możesz również utworzyć wielokąt z otworami, przekazując tablicę tablic latlngów, przy czym pierwsza tablica latlngów reprezentuje zewnętrzny pierścień, a pozostałe reprezentują otwory w środku.

Więc teoretycznie coś takiego:

var scotland = [[60,-13],[60,0],[50,4],[50,-13]];
L.Polygon([scotland,coordinatesOfShapeHole].addTo(map);

Mój problem polega na tym, że ta funkcja nie wydaje mi się, żebym przekazywał dane.geojson lub data.geojson.coordinates jako drugi parametr (coordinatesOfShapeHole);

Czy istnieje sposób na konwersję data.geojson do formatu, z którego funkcja L.Polygon jest zadowolona?

Lub alternatywnie zrobić to samo, ale z L.geoJson?

elMarquis
źródło

Odpowiedzi:

7

To powinno działać. Z jakiej wersji Ulotki korzystasz?

Tutaj, spójrz na ten jsFiddle.

Ważne jest, aby poprawnie ustawić tablice.

Pierwszy układ to obiekt wielokąta [tutaj pierścień zewnętrzny [tutaj trochę [lat, lon], [,] zamknij pierścień zewnętrzny], a następnie pierścień wewnętrzny [tutaj trochę [lat, lon], [,] zamknij pierścień wewnętrzny] zamknij wielokąt].

scotland = L.polygon([[[60,-13],[60,0],[50,4],[50,-13]],
                  [[55.7,-4.5],[56,-4.5],[56,-4],[55.7,-4]]]);
scotland.addTo(map);
Dennis Bauszus
źródło
1
Cześć, dzięki. Działa to świetnie, jeśli mam do czynienia z prostym wielokątem, ale moje dane są w formacie geojson. Czy wiesz, czy istnieje sposób na przekształcenie geojsona we współrzędne wielokąta. Lub osiągnąć to przy pomocy L.geoJson?
elMarquis
To nie powinno być problemem. Rozwidliłem jsFiddle, aby użyć L.geoJson. jsfiddle.net/goldrydigital/xa6vg5zj
Dennis Bauszus
Świetne dzięki. Nie zdawałem sobie sprawy, że geojson zawiera definicję wielokąta, która może być przekazana do wielu tablic podobnych do standardowego wielokąta.
elMarquis