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?

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);

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.