Листочка JS додає форму GeoJSON як отвір у багатокутнику


9

У мене є набір даних, який вже містить geojson. Я можу додати його до своєї карти за допомогою наступного рядка коду.

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

І я це отримую Геойсон накреслив на карті

Але я хочу досягти цього, коли навколишня територія затоплена, а моя геоізонова форма - це отвір посередині неї.

геойсон як дірка в карті

Відповідно до листкової документації

Ви також можете створити багатокутник з отворами, пропустивши масив масивів latlngs, при цьому перший масив latlngs представляє зовнішнє кільце, а решта представляють отвори всередині.

Тож теоретично щось на зразок:

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

Моя проблема полягає в тому, що ця функція, схоже, мені не подобається передавати дані.geojson або data.geojson.coordinate як другий параметр (координатиOfShapeHole);

Чи є якийсь спосіб перетворити data.geojson у формат, яким задоволена функція L.Polygon?

Або альтернативно робити те саме, але з L.geoJson?

Відповіді:


7

Це має спрацювати. Яку версію Leaflet ви використовуєте?

Ось, подивіться на цей jsFiddle.

Важливо правильно набрати масиви.

Перший масив - це об'єкт багатокутника [тут зовнішнє кільце [сюди якесь [лат, лон], [,] закрити зовнішнє кільце], потім внутрішнє кільце [сюди якесь [лат, лон], [,] закрити внутрішнє кільце] закрити багатокутник].

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
Привіт спасибі Це чудово працює, якщо я маю справу з прямим багатокутником, але мої дані у форматі geojson. Чи знаєте ви, чи існує спосіб перетворення геойсона в координати багатокутника. Або досягти цього за допомогою L.geoJson?
elMarquis

Це не повинно бути проблемою. Я відправив jsFiddle використовувати L.geoJson. jsfiddle.net/goldrydigital/xa6vg5zj
Dennis Bauszus

Блискуча подяка. Я не розумів, що geojson містить визначення багатокутника, яке може бути передано багатомасивним аналогічно стандартному багатокутнику.
elMarquis
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.