Size: a a a

2021 January 06

НП

Николай Петров... in Mapbox чат
ага, спасибо, поизучаю 👍
источник

НП

Николай Петров... in Mapbox чат
друзья, а вот теперь действительно сложный вопрос.

Почему если я нажимаю на полигон, когда в bbox есть только часть полигона - draw делает редактируемой только эту часть, а всю оставшуюся площадь полигона отбрасывает? Так что если в таком состоянии нажать кнопку сохранить - исходная геометрия полигона будет потеряна.

Вот если сейчас не меняя зума на этом фидле нажать на полигон а потом отзумиться, то мы увидим что на самом деле в draw передался не весь полигон, а лишь его часть

Это реально баг, или недостаточная степень прямоты моих рук?

https://jsfiddle.net/petrovnn/w5ke6yn3/3/
источник

A

Alex CherryTea in Mapbox чат
я думаю дело в том что карта не рисует ту геометрию которая лежит за пределами экрана, вам надо по клику находить исходную геометрию а не фактическую на данный момент
источник

A

Alex CherryTea in Mapbox чат
Николай Петров
друзья, а вот теперь действительно сложный вопрос.

Почему если я нажимаю на полигон, когда в bbox есть только часть полигона - draw делает редактируемой только эту часть, а всю оставшуюся площадь полигона отбрасывает? Так что если в таком состоянии нажать кнопку сохранить - исходная геометрия полигона будет потеряна.

Вот если сейчас не меняя зума на этом фидле нажать на полигон а потом отзумиться, то мы увидим что на самом деле в draw передался не весь полигон, а лишь его часть

Это реально баг, или недостаточная степень прямоты моих рук?

https://jsfiddle.net/petrovnn/w5ke6yn3/3/
источник

НП

Николай Петров... in Mapbox чат
Alex CherryTea
я думаю дело в том что карта не рисует ту геометрию которая лежит за пределами экрана, вам надо по клику находить исходную геометрию а не фактическую на данный момент
по поводу "не рисует геометрию за пределами экрана" - есть такой нюанс.

Если нажимать в зачеркнутом прямоугольнике - то выделяется вообще не понятно какой кусок. И с viewport это выделение никогда не совпадает.

Но идея брать исходную геометрию кажется единственно правильной, просто еще не сообразил как это замутить
источник

A

Alex CherryTea in Mapbox чат
попробуйте как в примере по ссылке
источник

НП

Николай Петров... in Mapbox чат
да, спасибо, как раз изучаю!
источник

A

Alex in Mapbox чат
Всем доброго вечера! Может быть кто-то сможет подсказать? Я делаю карту на мапбоксе, данные проходят через геосервер и попадают на карту. Проблемы возникли с тем, что во всплывающем окне мне нужно отображать данные из нескольких столбцов, но пока получается только из одного, как сделать из нескольких одновременно?

map.on('click', 'Piemonte', function (e) {
new mapboxgl.Popup()
.setLngLat(e.lngLat)
.setHTML(e.features[0].properties.Region)
.addTo(map);
});
источник

НП

Николай Петров... in Mapbox чат
в общем сделал с помощью метода queryRenderedFeatures(), но лучше не стало. Тоже возвращает куски полигона.

Если отзумиться чтобы был виден полигон целиком - эта штука вообще перестает возвращать фичи.

https://jsfiddle.net/petrovnn/jLs1czoq/7/
источник

НП

Николай Петров... in Mapbox чат
Alex
Всем доброго вечера! Может быть кто-то сможет подсказать? Я делаю карту на мапбоксе, данные проходят через геосервер и попадают на карту. Проблемы возникли с тем, что во всплывающем окне мне нужно отображать данные из нескольких столбцов, но пока получается только из одного, как сделать из нескольких одновременно?

map.on('click', 'Piemonte', function (e) {
new mapboxgl.Popup()
.setLngLat(e.lngLat)
.setHTML(e.features[0].properties.Region)
.addTo(map);
});
не очень понятно что за столбцы. Это поля фичи?
источник

Ж

Женечка in Mapbox чат
‘${e.features[0].properties.region} ${e.features[1].properties.region}’
источник

f

fr1 in Mapbox чат
Николай Петров
в общем сделал с помощью метода queryRenderedFeatures(), но лучше не стало. Тоже возвращает куски полигона.

Если отзумиться чтобы был виден полигон целиком - эта штука вообще перестает возвращать фичи.

https://jsfiddle.net/petrovnn/jLs1czoq/7/
из рендера возьми ID полигона в который тыкают и найди уже его в исходном geojson
источник

f

fr1 in Mapbox чат
Alex
Всем доброго вечера! Может быть кто-то сможет подсказать? Я делаю карту на мапбоксе, данные проходят через геосервер и попадают на карту. Проблемы возникли с тем, что во всплывающем окне мне нужно отображать данные из нескольких столбцов, но пока получается только из одного, как сделать из нескольких одновременно?

map.on('click', 'Piemonte', function (e) {
new mapboxgl.Popup()
.setLngLat(e.lngLat)
.setHTML(e.features[0].properties.Region)
.addTo(map);
});
так это обычный текст, склей его как тебе надо
источник

НП

Николай Петров... in Mapbox чат
ну и да, в этом примере как я понял не выбор фичи как таковой, а второй слой, где рендерятся выбранные фичи просто с другим стилем (цвет полигона).

В этом примере фильтр может вернуть конкретную фичу? Ведь мне не просто показать нужно, а передать фичу в draw
источник

A

Alex in Mapbox чат
Это не текст, "Region" это названия столбца и в всплывающем окне автоматически данные показываются, которые относятся к этому полигону
источник

A

Alex in Mapbox чат
Помимо столбца Region, есть множество других
источник

f

fr1 in Mapbox чат
Alex
Это не текст, "Region" это названия столбца и в всплывающем окне автоматически данные показываются, которые относятся к этому полигону
но в нём то текст
источник

A

Alex in Mapbox чат
В нем текст. Я прислал код, который отвечает за открытие всплывающего окна, что мне в него добавить и куда, чтобы из других столбцов в этом же окне показывались данные?
источник

f

fr1 in Mapbox чат
Alex
В нем текст. Я прислал код, который отвечает за открытие всплывающего окна, что мне в него добавить и куда, чтобы из других столбцов в этом же окне показывались данные?
названия других столбцов, очевидно же
источник

НП

Николай Петров... in Mapbox чат
Alex
В нем текст. Я прислал код, который отвечает за открытие всплывающего окна, что мне в него добавить и куда, чтобы из других столбцов в этом же окне показывались данные?
не понятно для начала что подразумевается под столбцами?

Столбцы обычно в БД, а в объектах JS есть например свойства
источник