Вопросы по JOSM

Всем всего хорошего!

Установил Lubuntu 22.04 вместо Lubuntu 20.04, и JOSM перестал запускаться. Пишет в почти самой верхней строке: “Handled by bug report queue: java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-18-openjdk-amd64/lib/libawt_xawt.so”. Искал эту библиотеку где бы скачать, но ничего хорошего не нашел. Не очень разбираюсь в тонкостях, подскажет может быть кто, что где подправить. Все возможные пакеты JAVA, вроде как, установлены.

переустановить openjdk-18-jre
указанная библиотека находится в составе этого пакета
https://packages.ubuntu.com/en/jammy/amd64/openjdk-18-jre/filelist

Спасибо! Заработало! Хоть я и написал, что “все” пакеты установлены, но вот как раз этот установлен не был, хотя openjdk-18-jre-headless был :frowning: .

jre-headless может запускать jar, но сколь помню только консольные утилиты и безинтерфейсные сервисы.

по идее джосм требует default-jre, которого нет в headless, и поверх headless он установлен быть не может.
какие-то несостыковки в связях пакетов. посмотри кто кроме openjdk-18-jre у тебя предоставляет default-jre.

уважаемые форумчане, вопрос новичка по josm:
в настройках отображения треков JOSM нашёл - включил дата трека. А дальше что можно делать с этим?
Есть возможность “выключить” отрисовку треков до некоторой даты? Где эту дату ввести?
Здесь https://www.openstreetmap.org/edit#map=17/67.56747/33.35340 несколько лет назад полностью перестроили улицу Жемчужная, сделали две двухполосные проезжие части. Но треки показываются сплошным ковром, большинство до ремонта, и свои треки просто скрываются в общей массе"

Правой кнопкой на слое с данными GPX там будет пункт про фильтрацию. В нём можно задать временные промежутки. Но надо учитывать, что не все владельцы треков решили поделится датой о треке.

freeExec, есть, нашёл, БлагоДарю!

Обновился до 18646 - теперь постоянно просит логин и пароль от 127.0.0.1.

Нужно выделить скачанные полигоны с площадью больше заданной. Как?

Поиск, и там есть подсказки, в числе прочих areasize:

Оно вроде работает, но что значат числа там, я не знаю (возможно, квадратные метры)

Спасибо,
Josm может создать центроиды полигонов? Может плагин есть?

Если достаточно центра bbox’a, то можно через плагин Scripting

import layers from 'josm/layers'
import {DataSetUtil} from 'josm/ds'
import {NodeBuilder} from 'josm/builder'

const ds = layers.activeLayer.getDataSet()
const dsutil = new DataSetUtil(ds)
const nbuilder = new NodeBuilder(ds)

const areas = dsutil.query('areasize:100-')
areas.forEach((area) => {
	const center = area.getBBox().getCenter()
	nbuilder.withPosition(center.lat(), center.lon()).withTags({type: 'center_of_something'}).create()
})

*конкретно для этого примера нужен GraalJS

Да, достаточно.
А автоматом перенести тэги с полигонального объекта на центроиды можно?
Там где то для полутора тысяч полигонов надо часть тэгов (адреса) перевести на точки. Хочу сделать точки building с адресами.

Вот пример

Как-то так

import layers from 'josm/layers'
import {DataSetUtil} from 'josm/ds'
import {NodeBuilder} from 'josm/builder'

const ds = layers.activeLayer.getDataSet()
const dsutil = new DataSetUtil(ds)
const nbuilder = new NodeBuilder(ds)

const areas = dsutil.query('areasize:10- and barrier=fence and ("addr:street" or "addr:housenumber")')
areas.forEach((area) => {
	const center = area.getBBox().getCenter()
	const addrTags = ['addr:country','addr:city','addr:street','addr:housenumber']
	let nodeTags = {'building': 'yes'}
	addrTags.forEach((tag) => {
		if (area.hasTag(tag)) {
			nodeTags[tag] = area.get(tag)
			area.remove(tag)
			area.setModified(true)
		}
	})
	nbuilder.withPosition(center.lat(), center.lon()).withTags(nodeTags).create()
})
1 Like

Где скачать российские пресеты? Что то не нахожу

1 Like

Коллеги, подскажите, как связаться с akks.

Как я понял, он когда-то разрабатывал инструменты выделения для модуля JOSM Utilplugins2. Интересует логика работы инструмента для выделения замкнутых контуров.

Как он работает в случае, если у нас много вариантов построения замкнутых контуров?
(Например, если у нас граница имеет на некоторых участках варианты.)

Я пытался экспериментировать, понял, что при нажатии Shift+/ последовательно перебираются только два замкнутого контура варианта, независимо от того, сколько их существует всего возможных. Но так и не понял, по какому принципу выбираются эти два варианта из общего множества возможных.

Описания к этому инструменту нет ни на josm ru wiki, ни на josm en wiki, а как найти точного автора и связаться с ним через github я не понял, т.к. далёк от этого инструмента.

На прошлой неделе я выложил лекцию (на русском) по работе с мультиполигонами. В комментариях мне справедливо сделали замечание, что без описания инструмента “Границы области” лекция выглядит незавершённой. Я с удовольствием опишу этот инструмент в дополнении, но мне надо понять логику его работы, а методом тыка мне это сделать не удалось.

Помогите связаться с автором инструмента.

Если ты про этот инструмент то можно просто почитать код.

Сначала я тут решил расписать по ходу кода логику, но получилась большая простыня. Поэтому всё выкинул и резюмирую в двух предложениях:

  1. Рандом;
  2. Вся логика построена на том, что берётся точка и дальше выбирается первая удовлетворяющая линия, в которую входит эта точка, а как они в памяти расположились не определено. Это может зависеть и от id линий-точек, и от порядка в котором они были загружены.
1 Like

Понятно. Рандом это не очень хорошо, при лоскутном зонировании оно может захватывать смежные территории.

А там в коде заложено, что при повторном нажатии переключение идёт между двумя разными вариантами? Между именно двумя.

Да, там что-то есть, что если выбрано много линий, то оно выберет последнюю использованную линию из предыдущего запуска инструмента и сменить направление угла.

1 Like