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.