基于shp点数据下载Google影像


前言

基于shp点数据下载Google影像


一、先建立缓冲区

将shp文件导入QGIS软件,选中该图层再打开Python控制台,把以下代码复制粘贴。

layer = iface.activeLayer()

feats = [ feat for feat in layer.getFeatures() ]

epsg = layer.crs().postgisSrid()

uri = "Polygon?crs=epsg:" + str(epsg) + "&field=id:integer&field=x:real&field=y:real&field=point_id:integer""&index=yes"

mem_layer = QgsVectorLayer(uri,
                           'square_buffer',
                           'memory')

prov = mem_layer.dataProvider()

for i, feat in enumerate(feats):
    point = feat.geometry().asPoint()
    new_feat = QgsFeature()
    new_feat.setAttributes([i, point[0], point[1], feat.id()])
    tmp_feat = feat.geometry().buffer(0.001, -1).boundingBox().asWktPolygon()
    new_feat.setGeometry(QgsGeometry.fromWkt(tmp_feat))
    prov.addFeatures([new_feat])


##### QGIS 3.x の場合
QgsProject.instance().addMapLayer(mem_layer)

二、基于缓冲区下载

1.安装QuickMapServices插件

下载插件
打开在线地图

2.开始下载

打开Python控制台,代码如下:

import processing
import geopandas as gpd
import numpy as np
import os

#选择目标shp文件,注意投影坐标系要和底图一致,不一致的话改一下就好
data = gpd.read_file('D:/MyDownloads/Data/Export_Output_3.shp')
image_paved_out_dir = 'D:/MyDownloads/Data/images/'


for i in range(len(data)):
    out_path = image_paved_out_dir + str(i) + '.tif'
    xx, yy = data['geometry'][i].exterior.coords.xy
    extent_0 = np.unique(np.array(xx))[0] 
    extent_1 = np.unique(np.array(xx))[1] 
    extent_2 = np.unique(np.array(yy))[0] 
    extent_3 = np.unique(np.array(yy))[1] 
    extent = str(extent_0) + ',' + str(extent_1) + ',' +  str(extent_2) + ',' + str(extent_3) + ' [EPSG:3857]'
    
    #重要的是TILE_SIZE表示基准分辨率,MAP_UNITS_PER_PIXEL表示影像精度0.3m
    processing.run("native:rasterize", {
    
    'EXTENT':extent,'EXTENT_BUFFER':0,'TILE_SIZE':512,'MAP_UNITS_PER_PIXEL':0.3,'MAKE_BACKGROUND_TRANSPARENT':False,'MAP_THEME':None,'LAYERS':['type=xyz&zmin=0&zmax=20&url=https://mt1.google.com/vt/lyrs%3Ds%26x%3D{x}%26y%3D{y}%26z%3D{z}'],'OUTPUT':out_path})

总结

如何基于OSM点数据获取对应的遥感影像,这是一个解决方法。


引用
链接: https://www.codenong.com/9a9324390b9fd0eadd93/
链接: 使用 QGIS python 脚本执行批量操作

猜你喜欢

转载自blog.csdn.net/qq_45734610/article/details/131719889