Как изменить внутреннюю и внешнюю границы отдельно в листовке Многоугольник с дыркой

Есть ли способ изменить стили внутренней и внешней линии многоугольника/мультиполигона с отверстием?

Я использую листовку и l.geoJson.

Я нашел этот пример, но стиль линии остается одинаковым как для внутренних, так и для внешних границ, если вы измените цвет стиля.

"style": {
    color: "black",
    opacity: 1,
    fillColor: "white",
    fillOpacity: 1
 }

Пример


person Trautman    schedule 31.05.2016    source источник
comment
Вы должны вставить соответствующий код прямо сюда.   -  person Eiko    schedule 31.05.2016


Ответы (2)


Есть ли способ изменить стили внутренней и внешней линии многоугольника/мультиполигона с отверстием?

No.

Однако вы можете заранее извлечь внешнее кольцо и внутреннее кольцо. Затем используйте только стиль заливки для многоугольника, стиль линии для внешнего кольца и другой стиль линии для внутренних колец.

person IvanSanchez    schedule 31.05.2016
comment
Я не знаю, как извлечь внешнее кольцо мультиполигона. Есть ли у вас какие-либо советы? - person Trautman; 02.06.2016
comment
Это довольно тривиально — в координатах каждого полигона GeoJSON первый компонент — это внешнее кольцо, а все остальные компоненты — внутренние кольца. Для мультиполигонов просто выполните итерацию внутри каждого полигона и следуйте той же логике. Веб-страница mapsam.com/geojson-ring-visual прекрасно иллюстрирует эту концепцию. - person IvanSanchez; 02.06.2016

Насколько я знаю, без хаков этого не добиться. Если форма отображается с использованием SVG, используется один <g> (пример из эта ссылка на geojson.io):

<path stroke-linejoin="round" stroke-linecap="round" fill-rule="evenodd" stroke="#555555" stroke-opacity="1" stroke-width="2" fill="#555555" fill-opacity="0.5" class="leaflet-clickable" d="M340 -145L388 455L640 451L812 291zM437 230L628 258L602 331L537 370z"></path>

Если вам действительно нужно иметь разные цвета для внутренних краев, я думаю, вам следует извлечь внутренние кольца из фигур и добавить многоугольники с правильным цветом линии без заливки. Этот подход не будет работать, если вы хотите, чтобы ваши границы были прозрачными, потому что исходная граница будет просвечиваться.

person Jieter    schedule 31.05.2016