Что касается QGIS в терминах границы слоя, на самом деле это огибающая или ограничивающая рамка геометрии.
Я задокументировал решение, которое, вероятно, является наиболее близким к автоматизации этого процесса (если не считать запрос об ошибке / функции).
Процесс работает на основе соотношения между площадью двух объектов: геометрии объекта и его ограничительной рамки).
Проверьте следующие шаги ниже:
Выберите слой, над которым вы хотите работать.
Выберите функцию, над которой вы хотите работать. Убедитесь, что больше ничего не выбрано.
Запустите следующий фрагмент в консоли Python.
layer = qgis.utils.iface.activeLayer()
features = layer.selectedFeatures()
feature = features[0]
geom = feature.geometry()
env_rect = geom.boundingBox()
env_geom = QgsGeometry.fromRect(env_rect)
env_geom.area() / geom.area()
Обязательно нажмите Enter, так как последняя строка не вернется автоматически.
Запустите Regular Points
инструмент еще раз, но введите желаемое количество точек в поле, умноженное на результат, полученный вашим сценарием.
В моем примере ниже, результат, который я получил от вывода, был значением ~ 2. Я попросил вывести 20 точек в процессе, где я на самом деле хотел только 10. Мне дали 8 взамен, что довольно близко. В зависимости от фактической формы вы используете результаты будут отличаться.
Если бы вы были так склонны, вы могли бы автоматизировать (рекурсивно) процесс Regular Points, изменяя переменные до тех пор, пока вы не получите желаемое число.