基于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 脚本执行批量操作

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值