Для пакетного проецирования точек координат долготы и широты из таблицы Excel в слой и сохранения объектов в QGIS вы можете использовать для завершения программирование PyQGIS. Вот простой пример кода:
импортировать csv
из qgis.core импортировать QgsVectorLayer, QgsProject, QgsPointXY, QgsFields, QgsField, QgsFeature
# Установить путь к файлу Excel
excel_file = '/path/to/coordinates.xlsx'
# Установить путь к файлу выходного слоя
output_file = '/path/to/output_layer.shp'
# Использование Excel
с open(excel_file, 'r') as file:
reader = csv.DictReader(file)
координаты = [(float(row['Longitude']), float(row['Latitude'])) для строки в читателе]
# Создаем слой для хранения элементов
layer_fields = QgsFields()
layer_fields.append(QgsField('ID', QVariant.Int)) #Добавляем пользовательское поле для различения разных элементов
layer = QgsVectorLayer('Point?crs=epsg :4326', 'Выходной слой', 'память')
layer.dataProvider().addAttributes(layer_fields)
layer.updateFields()
# Добавляем координатные точки в качестве объектов в слой
для i, координаты в enumerate(coordinates):
feature = QgsFeature(layer.fields())
feature.setGeometry(QgsPointXY(coordinate[0], координата[1]))
feature.setAttribute( 'ID', i+1) # Установить значение пользовательского поля
layer.dataProvider().addFeatures([feature])
# 保存输出图层
QgsProject.instance().addMapLayer(layer)
layer.dataProvider().createSpatialIndex()
layer.dataProvider().commitChanges()
QgsVectorLayerExporter.exportLayer(layer, output_file, 'utf-8', layer.crs (), 'Шейп-файл ESRI', onlySelected=False)
# Обратите внимание, что приведенный выше код должен гарантировать, что среда QGIS Python была установлена и настроена правильно, а необходимые библиотеки были импортированы. Пожалуйста, измените путь к файлу в коде в соответствии с реальной ситуацией.
Код использует библиотеку csv Python для чтения данных таблицы Excel и преобразует точки координат долготы и широты в объект QgsPointXY QGIS в качестве геометрического атрибута объекта.