当前位置: 首页 > news >正文

Matlab 从全国 shp 中扣出某一省份的shp并画图 函数

1、全代码

function varargout=drawsheng(varargin)
%% 此函数用于从全国 shp 中扣出某一省份的 shp 并画图
% 输入:
%   file    shp文件路径
%   str     要扣的东西的名字
%   1 or 01国家0,默省
% 输出:
%   sheng   搞出来的 shp 结构体
%   ex      经纬极值,后续用sheng 画图,有可能会用
% 调用:
%   P2file='D:\下载\Useful\shp\国家基础地理数据\bou2_4m\bou2_4p.shp';%省界多边形
%   str='河南省';
%   [sheng,ex]=drawsheng(P2file,str);
%    -------------------
%   Sjfile='D:\下载\Useful\shp\国家基础地理数据\世界国家\世界国家.shp';%国界
%   str='中国';
%   [sheng,ex]=drawsheng(file,str,1);
%    -------------------
%   drawsheng(file,str);
%   sheng=drawsheng(file,str);
%   [sheng]=drawsheng(file,str);
%   [sheng,ex]=drawsheng(file,str,1 or 0);  %1国家0
%-------------------------------------------------------------------
    %%%%    Authors:   Bill O'Hanlon
    %%%%    EMAIL:     ohanlon@qq.com
    %%%%    DATE:      24-08-2020
%% 输入
disp('--------function drawsheng--------');
mode=1;%mode指示裁剪省或国家,省1国家0
t=0;   %t指示是否是第一次找到目标结构
if nargin<2
    disp('参数不足!');
    return;
elseif nargin==2
    file=varargin{1};
    str=varargin{2};
elseif nargin==3
    file=varargin{1};
    str=varargin{2};
    mode=varargin{3};
else
    disp('参数过多!');
    return;
end
P2=shaperead(file);
n=size(P2,1);
%% 得到省的结构体
sheng=struct;
if mode==1
    for i=1:n
        if strcmp(str,P2(i).NAME)
            if t==0
                sheng=P2(i);%找到第一个多边形
                t=1;
            else
                a=P2(i);
                sheng(end+(1:length(a))) = a;
            end
        end
    end
else if mode==0
        for i=1:n
            if strcmp(str,P2(i).FCNAME)
                if t==0
                    sheng=P2(i);%找到第一个多边形
                    t=1;
                else
                    a=P2(i);
                    sheng(end+(1:length(a))) = a;
                end
            end
        end
    else
        disp('第三个参数错误!');
        return;
    end
end
disp('shp OK!');
%% 开始画图
subplot(121);
% 下面搞定横纵坐标注释
XArray=[P2(:).X];%所有多边形的经度
YArray=[P2(:).Y];%%所有多边形的纬度
[x,x1,y,y1]=getxy(XArray,YArray);
disp('drawing...');
mapshow(P2,'FaceColor','w');
mapshow(sheng,'FaceColor','r');
set(gca,'XTick',x,'XTicklabel',x1);   %设置x,y轴
set(gca,'YTick',y,'YTicklabel',y1);
box on;
title([str '的位置']);
axis equal

subplot(122);
% 下面搞定横纵坐标注释
XArray=[sheng(:).X];%所有多边形的经度
YArray=[sheng(:).Y];%%所有多边形的纬度
[x,x1,y,y1,ex]=getxy(XArray,YArray);
mapshow(sheng,'FaceColor','r');
set(gca,'XTick',x,'XTicklabel',x1);   %设置x,y轴
set(gca,'YTick',y,'YTicklabel',y1);
box on;
title([str '行政规划图']);
axis equal
%% 输出
if nargout==0
    return;
elseif nargout==1
    varargout{1}=sheng;
elseif nargout==2
    varargout{1}=sheng;
    varargout{2}=ex;
end
disp('--------Finished!--------');
end

依赖:

https://blog.csdn.net/Gou_Hailong/article/details/108208442

2、调用

P2file='D:\下载\Useful\shp\国家基础地理数据\bou2_4m\bou2_4p.shp';%省界多边形
str='北京市';
[sheng,ex]=drawsheng(P2file,str);

在这里插入图片描述

CSDN 脑子秀逗了,说图片违规,dd,
博客园链接:https://www.cnblogs.com/Gou-Hailong/p/13559150.html

相关文章:

  • Matlab 根据 shp 裁剪矩阵/图像 函数
  • 误差理论与平差基础学习笔记(Ⅱ)
  • Linux bash 编程笔记(基础篇)
  • 基于C语言 的实现数学上常用的功能
  • C++ 编程笔记【1】(基础篇)
  • 对各种单位的汇总
  • Linux Vim 编辑器的使用笔记
  • GNSS 常用缩略语汇总
  • Origin 使用笔记
  • 对 VIIRS/NPP 夜光数据的解读
  • matlab 对数组/矩阵 的一些常用操作+如何判断两个含有nan的矩阵是否相等?
  • Matlab 计算年积日
  • Matlab 填补缺失数据
  • Linux 中 awk 与 sed 操作
  • Linux Shell 及常用命令
  • 自己简单写的 事件订阅机制
  • @jsonView过滤属性
  • Docker下部署自己的LNMP工作环境
  • JS 面试题总结
  • js数组之filter
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • vue中实现单选
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 多线程 start 和 run 方法到底有什么区别?
  • 反思总结然后整装待发
  • 复习Javascript专题(四):js中的深浅拷贝
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 前端_面试
  • 微信小程序填坑清单
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (ros//EnvironmentVariables)ros环境变量
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)ssm码农论坛 毕业设计 231126
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (七)Java对象在Hibernate持久化层的状态
  • (正则)提取页面里的img标签
  • .describe() python_Python-Win32com-Excel
  • .NET Core WebAPI中封装Swagger配置
  • .NET Core跨平台微服务学习资源
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net网站发布-允许更新此预编译站点
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • @RequestBody与@ResponseBody的使用
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [ActionScript][AS3]小小笔记
  • [BIZ] - 1.金融交易系统特点