pyqgis — Географические координаты точек отображаются в неправильном месте на карте OSM с использованием QGIS Python

Я разрабатываю приложение для отслеживания местоположения на карте на основе географических координат широты и долготы с использованием QGIS Python.

Я попробовал эту концепцию, используя топографические листы с географической привязкой, которые показывают правильное местоположение. Но та же концепция не работает на карте OSM и карте Google.

координаты где-то на карте. Этим латынью является Бангалор, Индия.

Но он показывался на карте OSM и карте Google рядом с Африкой.

 по умолчанию load_map(self):
    диалог = self.sender().parent()
    map_service_combo = диалог.findChild(QComboBox)
    selected_map_service = map_service_combo.currentText()
    если selected_map_service == "OpenStreetMap":
        tile_url = "url=http://a.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png&zmax=19&zmin=0&type=xyz"
    elif selected_map_service == "Карты Google":
        tile_url = "type=xyz&zmin=0&zmax=19&url=https://mt1.
google.com/vt/lyrs%3Ds%26x%3D{x}%26y%3D{y}%26z%3D{z}" еще: возвращаться слой = QgsRasterLayer(tile_url, "Спутниковая карта", "wms") если не layer.isValid(): QMessageBox.warning(self, «Ошибка», «Не удалось загрузить спутниковую карту.») еще: # Установить CRS для слоя crs = QgsCoordinateReferenceSystem('EPSG:4326') слой.setCrs(crs) QgsProject.instance().addMapLayer(слой) self.canvas.setExtent(слой.extent()) self.canvas.setLayers([слой]) # Обновить метку CRS self.crs_label.setText("CRS: {}".format(layer.crs().authid())) # Закрываем диалоговое окно диалог.принять() определение plot_coordinates (я): # Получить значения широты и долготы из полей ввода latitude_str = self.latitude_lineedit.text() longitude_str = self.longitude_lineedit.text() # height_str = self.altitude_lineedit.text() # Преобразование значений широты и долготы в число с плавающей запятой широта = плавающая (широта_str) долгота = плавающая (долгота_str) # высота = поплавок (altitude_str) # Создаем точечный слой point_layer = QgsVectorLayer('Point?crs=EPSG:4326', 'Слой точек', 'память') если не point_layer.
isValid(): print('Не удалось создать точечный слой') возвращаться # Добавляем поля широты и долготы к точечному слою point_layer.dataProvider().addAttributes( [QgsField('Широта', QVariant.Double), QgsField('Долгота', QVariant.Double), QgsField('Высота', QВариант.Двойной)]) point_layer.updateFields() # Начать редактирование точечного слоя point_layer.startEditing() # Создаем точечный объект функция = QgsFeature(point_layer.fields()) feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(долгота, широта))) # Установите значения атрибутов широты и долготы feature.setAttribute('Широта', широта) feature.setAttribute('Долгота', долгота) # feature.setAttribute('Высота', высота над уровнем моря) # Зафиксировать изменения в точечном слое point_layer.addFeature(функция) point_layer.commitChanges() # Получить слои топографической карты topographic_layers = self.
get_topographic_map_layers() # Добавляем точечный слой на холст карты QgsProject.instance().addMapLayer(point_layer) # Установить слои на холсте карты self.canvas.setLayers([point_layer] + topographic_layers) защита get_topographic_map_layers (я): # Получить слои топографической карты с холста слои = self.canvas.layers() # Отфильтровать не растровые слои topographic_layers = [слой для слоя в слоях if isinstance(layer, QgsRasterLayer)] вернуть топографические_слои

выше Я поделился своим кодом.

Как решить эту проблему?

Путин утверждает, что карта доказывает, что Украина не настоящая, несмотря на то, что на ней написано «Украина»

  • Президент России Владимир Путин сказал, что старая карта доказывает, что Украина не настоящая страна.
  • Но на самом деле в документе указана территория под Киевом с пометкой «Украина».
  • В оправдание российского вторжения Путин сослался на свою широко критикуемую веру в то, что Украина не является реальной страной.
LoadingЧто-то загружается.

Спасибо за регистрацию!

Получайте доступ к своим любимым темам в персонализированной ленте, пока вы в пути.

900:02 Президент России Владимир Путин во вторник сослался на карту Европы 17-го века, чтобы обосновать свой дискредитированный тезис о том, что Украина не является реальной страной, утверждение, которое он использовал для оправдания неспровоцированного вторжения России.

Но даже с точки зрения путинского тезиса возникла проблема: в документе четко обозначена часть территории как «Украина».

На встрече с председателем Конституционного суда России Валерием Зорькиным они изучали карту, составленную картографом XVII века для французского короля Людовика XIV.

Кремль опубликовал видеозапись встречи, на которой Путин и Зорькин держат карту в качестве доказательства того, что украинская нация является исторической фикцией.

—max seddon (@maxseddon) 23 мая 2023 г.

Карта, которую изучил Путин, похоже, является копией карты, составленной в 1674 году французским картографом Юбером Жайо, на которой показаны части Восточной Европы и Азии с отмеченными городами и территориями.

Вот кадр из видео Кремля, а под ним более четкая копия карты из Национальной библиотеки Франции.

Владимир Путин и российский чиновник осматривают карту XVII века, на которой изображены Россия и Восточная Европа.
Кремль Карта XVII века, составленная картографом Юбером Жайо, на которой раздел «Украина» обведен красным. Национальная библиотека Франции/Skitch

Путин ухватился за карту, чтобы подкрепить один из основных аргументов, которые он привел в поддержку неспровоцированного вторжения России в Украину, — что это не настоящая страна, и поэтому она должна быть включена в состав России.

«Советская власть создала Советскую Украину. Это всем хорошо известно. До этого в истории человечества не было Украины», — сказал Путин.

На самом деле Украина четко обозначена на карте. Ниже приведена увеличенная версия раздела, выделенного красным выше.

Крупный план части французской карты XVII века, на которой изображена «Украина, земля казаков». Национальная библиотека Франции

Текст переводится как «Украина или земля казаков» и находится рядом с рекой Днепр, которая протекает через современную Украину. Столица Киев, которая на карте обозначена как Kiow, также видна неподалеку.

В то время то, что должно было стать Россией, было известно в некоторых частях Европы как Великое княжество Московское, в то время как польские дворяне правили большими участками территории, которая сейчас является Украиной.

Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *