Broşür JS, bir çokgendeki delik olarak GeoJSON şeklini ekler


9

Zaten geojson içeren bir veri setim var. Aşağıdaki kod satırı ile haritama ekleyebilirim.

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

Ve bunu anladım harita üzerinde çizilen geojson

Ama bunu başarmak istiyorum, çevreleyen alanın örtülü olduğu ve geojson şeklimin ortasında bir delik var.

haritadaki bir delik olarak geojson

Göre broşür belgelerin

Ayrıca, bir dizi latlray dizisini geçirerek delikli bir çokgen oluşturabilirsiniz; ilk latlngs dizisi dış halkayı temsil ederken, kalanlar içindeki delikleri temsil eder.

Yani teoride şöyle bir şey:

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

Benim sorunum bu fonksiyon ikinci parametre olarak data.geojson veya data.geojson.coordinates geçen koordinat gibi görünmüyor (coordinatesOfShapeHole);

Data.geojson dosyasını L.Polygon işlevinin mutlu olduğu bir biçime dönüştürmenin bir yolu var mı?

Ya da alternatif olarak L.geoJson ile aynı şeyi mi yapıyorsunuz?

Yanıtlar:


7

Bu çalışmalı. Hangi Leaflet sürümünü kullanıyorsunuz?

İşte, bu jsFiddle'a bir göz atın .

Dizileri doğru bir şekilde almanız önemlidir.

İlk dizi çokgen nesnesidir [burada dış halka [burada bazı [lat, lon], [,] dış halkayı kapat], sonra iç halka [burada bazı [lat, lon], [,] iç halka] çokgeni kapatın].

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
Merhaba teşekkürler. Basit bir çokgenle uğraşıyorsam, bu harika çalışıyor, ancak verilerim geojson biçiminde. Geojson'u çokgen koordinatlarına dönüştürmenin bir yolu olup olmadığını biliyor musunuz? Veya L.geoJson kullanarak başarmak?
elMarquis

Bu bir sorun olmamalı. JsFiddle'ı L.geoJson'u kullanması için çatalladım. jsfiddle.net/goldrydigital/xa6vg5zj
Dennis Bauszus

Harika teşekkürler. Geojson'un standart çokgene benzer çok dizili bir çokgen tanımını içerdiğini fark etmemiştim.
elMarquis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.