矢量数据

开源方案搭建可离线的精美矢量切片地图服务-7.Arcgis Pro企业级应用

匿名 (未验证) 提交于 2019-12-03 00:33:02
1.前言 上篇讲.pbf字体库的时候说到我们使用的字体通过Arcgis Pro 生成,Arcgis Pro样式基于Mapbox做的矢量切片地图渲染。这篇主要讲一下Arcgis Pro矢量切片生成的的具体方法,可以看一下企业级的矢量切片地图对比我们使用Geoserver进行切片的优点。 2.Arcgis Pro介绍 Arcgis Pro是esri公司推出新版arcgis系列软件。企业级矢量切片地图服务应用是新版本中新增的核心功能。矢量切片是区别于传统版本的Arcgis Server地图服务的要点,他可以将Arcmap的.mxd配图直接转为Mapbox的Style,对于已经有成熟的Arcmap配图方案的公司来说,转换到基于Mapbox的矢量切片地图服务可以大大减少配置Mapbox Style的工作量。下面是esri给出的技术路线图: 3.Arcgis Pro矢量切片过程 1.软件下载与试用申请 先注册,再下载软件即可,申请地址如下: https://www.esri.com/zh-cn/arcgis/products/arcgis-pro/trial 2.新建工程文件 3.加载已有的.mxd文件 点击导入地图,加载已有的mxd文件。 4.创建矢量切片索引 这个功能是Arcgis Pro的核心功能,他会根据空间数据的的密度构建矢量切片索引,简单来说对于数据稀疏的地区

OpenLayers 3 入门教程

匿名 (未验证) 提交于 2019-12-02 23:47:01
OpenLayers 3 入门教程 ժҪ OpenLayers 3对OpenLayers网络地图库进行了根本的重新设计。版本2虽然被广泛使用,但从JavaScript开发的早期发展阶段开始,已日益现实出它的落后。 OL3已运用现代的设计模式从底层重写。 最初的版本旨在支持第2版提供的功能,提供大量商业或免费的瓦片资源以及最流行的开源矢量数据格式。与版本2一样,数据可以被任意投影。最初的版本还增加了一些额外的功能,如能够方便地旋转地图以及显示地图动画。 OpenLayers 3同时设计了一些主要的新功能,如显示三维地图,或使用WebGL快速显示大型矢量数据集,这些功能将在以后的版本中加入。 Ŀ¼ 基本概念 4 Map 4 View 4 Source 5 Layer 5 总结 6 Openlayers 3实践 7 1 地图显示 7 1.1创建一副地图 7 1.2 剖析你的地图 8 1.3 Openlayers的资源 11 2 图层与资源 12 2.1 网络地图服务图层 12 2.2 瓦片缓存 14 2.3 专有栅格图层(Bing) 18 2.4 矢量图层 20 2.5 矢量影像 23 3 控件与交互 24 3.1 显示比例尺 24 3.2 选择要素 26 3.3 绘制要素 29 3.4 修改要素 31 4 矢量样式 33 4.1矢量图层格式 33 4.2矢量图层样式 35 4.3

实验楼Python破解验证码

匿名 (未验证) 提交于 2019-12-02 22:11:45
  本人大二,因为Python结业考试项目,又想要学习机器学习方向,但是由于接触时间不长,选择了实验楼的Python破解验证码这个项目作为我的项目, 我在原来的基础上加了一些代码用于完善,并且对功能如何实现记录在此,第一次接触到图像识别的项目。   这是项目需要的文件链接:https://pan.baidu.com/s/1qoJ5qvU9idmH0v7dnFkMCw     总体思想是将验证码变成黑白,然后切割成单字符,再与准备好的训练集相互比对,将相似度最高的字符输出。   第一步,先对一个验证码进行处理, ,①目标是将图片尽量简化成黑白,②然后切割出单字符,对此使用的是PIL的Image库。   ①导入图片,转换成8位像素的图片 #加载图片并且转换成8位像素 im = Image.open("./captcha.gif") im.convert("P")   我们需要知道验证码的颜色,拾色器工具是一种方法,但是我们通过数据说话,通过打印直方图 print(im.histogram()) 可以返回如下列表 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,

关于单体化和属性文件的说明

隐身守侯 提交于 2019-12-02 14:00:55
关于单体化 单体化效果做出来也有段时间了,可能还是有些问题没有讲清楚,我们这里再说下 单体化矢量的制作 单体化的原理就是一个通过矢量文件构造一个个封闭的几何体去附着到被分类的对象(倾斜或者地形),所以第一步我们需要制作这样的矢量。在GIS行业里,最常见的矢量数据就是shp格式,而arggis的arcmap就是编辑shp的官方工具,所以我们下来展示如何用arcmap制作一个 大雁塔的分层示例。 第一步,先要用arcgis另一个工具arccatalog 新建一个 shp数据图层 arccatalog新建矢量图层 新建矢量图层 注意这里选polygon类型,也就是多边形图层。 设置为wgs84坐标系统 然后右键属性 右键属性 增加字段 我们这里增加四个字段: name,类型为text,这个用来记录我们的 大雁塔级别的名称 minheight,类型为float,用来记录 这一层底面的绝对高程 maxheight,类型为float,用来记录 这一层顶面的绝对高程 height,类型为float,用来记录 这一层顶面相对底面的相对高度 也就是 height = maxheight - minheight 这里其实 maxheight 和 height 二选一就可以了,只是在cesiumlab处理的时候有一个选项可以来设定顶面高度是否是绝对高程。 第二步,在arcmap里绘制矢量面

CORDIC算法基本原理

▼魔方 西西 提交于 2019-12-02 08:40:31
引言 某些复杂的计算,例如三角函数和除法运算等涉及到大量浮点运算的计算任务,是数字电路天生的瓶颈所在。在某些场景下,可以使用查找表方法或者采用级数展开的方法来实现三角函数等运算功能。但是,这两种方法可能会占用大量的存储资源和硬件乘法计算单元,而想要节省资源,就要以牺牲精度为代价。 相对于前两种方法,CORDIC算法具有很大优势。首先,在计算过程中,它不使用任何的硬件乘法器单元,所涉及的只有移位和累加。然后,对于存储资源的占用,它仅仅需要少量的数据需要预先存储。在实际的数字电路设计中,可以将其设计为流水线方式或者是迭代复用方式,以提高运算速度或者是减少资源占用。 一、矢量旋转公式 CORDIC算法最最基本理论基础,是矢量旋转公式。即矢量 A ( x , y ) A\left( {x,y} \right) A ( x , y ) 顺时针旋转 θ \theta θ 之后,得到的矢量 ( x ′ , y ′ ) \left( {x',y'} \right) ( x ′ , y ′ ) 可以表示为 (式1) : x ′ = x cos ⁡ θ + y sin ⁡ θ , y ′ = y cos ⁡ θ − x sin ⁡ θ . \begin{array}{l} x' = x\cos \theta + y\sin \theta ,\\ y' = y\cos \theta - x\sin

加载矢量数据的代码优化

一世执手 提交于 2019-12-02 00:08:49
深入来看,依据 ESRI公司数据浏览架构 ,数据打开需要经历以下 流程 : 首先利用新建工作空间工厂的方法打开工作空间;然后强制转换为要素工作空间或者栅格工作空间;最后使用要素工作空间或者栅格工作空间的方法打开(要素/矢量或栅格)数据。 对于ShapeFile来说,工作空间就是它所在的文件夹,打开工作空间需要使用对应的工作空间工厂,即ShapeFileWorkspaceFactoryClass,然后调用IWorkspaceFactory的OpenFromFile方法,就可以得到一个工作空间,这也是设计模式中工厂方法的体现。工作空间工厂的打开方法返回的是一般意义的工作空间,根据具体数据还需要进行接口转换。因为ShapeFile是矢量数据,所以把工作空间接口跳转到IFeatureWorkspace,从而读取其中的要素类。 这一点对于多种格式的数据(如Coverage、GeoDatabase、ArcSDE数据格式)都是一样。 对比代码: 最简单的ArcGIS Engine应用程序(上) private void menuAddShp_Click(object sender, EventArgs e) { IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory(); IWorkspace pWorkspace1

计算几何基础算法几何C++实现

孤人 提交于 2019-12-01 16:56:12
This file is implementation of Common Common Computational Geometry Algorithms.Please please pay attention to input according to the specified data type. 个人实现的一些计算几何中常见的算法,包括点,线,多边形等;所有算法只依赖于C++标准库,不用包含任何其他第三方库,包含此头文件即可使用。使用时请注意按照规定的数据类型进行输入,目前只使用C++来实现算法,具体算法原理会陆续在Github上更新。 目前实现的算法包括点、向量、线段、直线、三角形、多边形、圆等基本计算几何模型。 // Copyright (C) Common Computational Geometry Algorithms e.U, ZutterHao // // This file is implementation of Common Common Computational Geometry Algorithms. // // Please please pay attention to input according to the specified data type. // // Author: ZutterHao .Nanjing University

面对对大体量矢量数据ArcGIS的优化方法

孤街浪徒 提交于 2019-11-29 00:19:23
大数据量矢量数据的可视化需要解决的问题,就是如何在可接受的短时间内,能展示大数据量的矢量地图。 解决方案一:采用预先渲染的切片进行展示 切片是预先渲染的数据集,也是响应最快的展示方式。目前ArcGIS提供栅格切片和矢量切片两种切片格式。这两种切片格式各有利弊,如下表所示: 栅格切片 矢量切片 支持ArcGIS Desktop所有符号 支持 仅部分 支持高分辨屏幕自适应 不支持 支持 支持小比例尺下展示全部数据 支持 不支持,会自动简化数据。 支持动态改变样式 不支持 支持 生产耗时 耗时长 耗时短 由上述表格,可以得出,只有栅格切片才能支持展示全部数据。因此对于大数据量的矢量数据的展示,建议在小比例尺下预先生产栅格切片,并设置合理的比例尺。 解决方案二:使用查询图层进行动态聚合展示 在把大数据量的矢量数据进行可视化时,当地图缩放到小比例尺时,往往会出现地图上叠加了过多的要素,失去了地图应该表达的实际业务意义。因此,这时可以考虑使用按区域聚合的方法,制作具有实际业务意义的专题地图。具体方法如下: 1、创建用于聚合的区域,可以使用行政区域,或者使用Generate Tessellation工具创建六边形或正方形格网。 2、添加查询图层。通过SQL进行数据的动态聚合。这里可以使用两种SQL思路,第一是使用属性字段进行关联,第二种是使用空间SQL函数。显然第一种方法速度上是更快的

Python:Shapefile矢量转化为GeoJSON格式

心已入冬 提交于 2019-11-28 00:46:41
在最近的项目中,完成了许多python处理矢量数据的算法程序,比如缓冲区分析、叠置分析、统计分析等,主要用到的是GDAL/OGR库,很多功能都参照了此链接中的示例: http://pcjericks.github.io/py-gdalogr-cookbook/# 由于完成的功能在上面链接中都能找到实现的代码,所以原来不打算写博客的,但是今天写的这个SHP转GeoJSON的算法把我坑得不轻,着实郁闷了好久才解决,因此就写一下权当纪念吧。有时候写程序真的是一件充满玄学的事情,原理上怎么看怎么对,但是运行起来却偏偏不是那回事,就算调试也给你不报错直接闪退,特别是处理空间数据时属性的编码问题,更是搞得人头皮发麻。这种情况下,能不能调的出来全靠运气,搞不好一个小问题卡一个星期都是正常,这可能也是程序员普遍发量稀少的原因吧。更加玄学的是,解决问题的方式又常常充满戏剧性,折腾了一个早上加半个下午没找到原因,起来喝杯水却突然灵感乍现,三四行代码调整一下顺序,一顿骚操作,点击运行,突然就能运行成功了,再看一下结果,卧槽! 还真是对的!山穷水尽疑无路,柳暗花明又一村,这种感觉真是刺激。 好了,将Shapefile转化为GeoJSON的完整代码如下: 1 # -*- coding: utf-8 -*- 2 from osgeo import ogr 3 import gdal 4 import sys

iPhone 6 / 6 Plus 设计·适配方案

≯℡__Kan透↙ 提交于 2019-11-27 16:32:49
iPhone 6 / 6 Plus 设计·适配方案 关于iPhone6/6+适配问题一直有争议,今天小编专门为大家整理了相关的有效方案,希望对大伙儿有帮助! 移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出一套iOS平台设计稿。随着苹果发布两种新尺寸的大屏iPhone 6,iOS平台尺寸适配问题终于还是来了,移动设计全面进入“杂屏”时代。看看下面三款iPhone尺寸和分辨率数据就知道屏幕有多杂了。 加上Android生态中纷繁复杂的各种奇葩尺寸,现在APP设计开发必须考虑适配大、中、小三种屏幕。所以如何做到交付一套设计稿解决适配大中小三屏的问题?设计和开发之间采用什么协作模式?一个基本思路是: 1、选择一种尺寸作为设计和开发基准; 2、定义一套适配规则,自动适配剩下两种尺寸; 3、特殊适配效果给出设计效果。 手机淘宝的iPhone 6/iPhone 6 Plus适配版本即将提交App store审核。先晒一下我们采用的协作模式,再慢慢说明原委。 第一步,视觉设计阶段,设计师按宽度750px(iPhone 6)做设计稿,除图片外所有设计元素用矢量路径来做。设计定稿后在750px的设计稿上做标注,输出标注图。同时等比放大1.5倍生成宽度1125px的设计稿,在1125px的稿子里切图。 第二步