测试
这是一个测试页面
WebGIS笔记
GML、SVG、VML的比较GML、SVG和VML都是基于XML的可用来描述矢量图形的标记语言,都是XML词表,它们的语法并不难理解,但它们都有各自不同的用途和特点,下面简单介绍一下。 GML(Geography Markup Language)是基于XML的空间信息编码标准,由OpenGIS Consortium (OGC)提出,得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。运用GML,封装的地理数据和图形解释是清楚分离的。
GML基于XML用文本表示地理信息
由于GML可看成是XML的一个具体的词表,熟悉了XML就比较容易理解GML。而且随着XML的应用日益广泛,GML也将受益。另外文本比较简单、直观,容易理解和编辑。
GML封装了地理信息及其属性
GML基于地理信息抽象模型,即空间实体特征及属性封装。地理特征包括一系列的属性和相应的几何信息,一般来说属性由名字、类型和值组成,几何信息由基本元素如点、线、面、曲线、多边形等组成。目前GML主要局限在二维应用,正扩展到二维半和三维空间以及特征间的拓扑关系。GML允许相当复杂的特 ...
OpenLayers概述
一、OpenLayers概述1.OpenLayers核心职责
OpenLayers最新大版本是openlayers4,它是一个基于h5的GIS前端库,地图渲染方式为Canvas和WebGL,常用Canvas展示二维地图,支持WebGL渲染显示出将来的OpenLayers有支持三维方向的可能。OpenLayers作为一个地图前端库主要负责GIS数据的展示与交互。 OpenLayers仅仅是开源GIS框架中的前端部分,并不等于是GIS系统,所以很多非GIS专业的前端使用OpenLayers常常会出现很多误区,如社区中每隔几天就有人问的问题:
请问怎样用ol加载几百万点啊?我现在加载了感觉很卡。
请问ol能实现路径分析吗?ol能实现缓冲区分析吗?
提问的人忽略了ol的核心职责是展示与交互,实际项目中也不可能有将几千万几百万数据推到前端展示和交互的,一般这种都是后端渲染图刷到前端展示,或者使用矢量切片抽希数据到前端展示,正如普通的web开发中的表单需要分页查询和分页展示是一个道理。至于分析一般是服务端或者空间数据库负责分析,分析结果提交前端展示。业务常常是复杂的,但是每个工具的职责是 ...
vue风格指南
[TOC]
1、组件名多单词(完整单词),每个组件单独分为文件,PascalCase风格命名12345678910111213<TodoList>components/ //以一般化描述单词开头,以修饰词结尾,方便查找组件|- TodoList.vue|- TodoItem.vue|- SearchButtonClear.vue|- SearchButtonRun.vue|- SearchInputQuery.vueps:单例组件:每个页面只使用一次:+The前缀紧密耦合的组件:组件只在某个父组件的场景下有意义:+父组件名当前缀自闭合组件:表示它们不仅没有内容,而且刻意没有内容:<MyComponent/>
2、data值返回函数123456data: function () { return { listTitle: '', todos: [] }}
3、prop 的定义应该尽量详细,至少需要指定其类型,camelCase风格命名123456789101112 ...
vue学习笔记2
[TOC]
一、vue目录结构中public与assets的区别1.相同点文件夹中的资源在html中使用都是可以的。
2.不同点
①public中的文件,是不会经过编译的,不会被webpack处理的,它们会被直接复制到最终的打包目录下面,且必须使用绝对路径来引用这些文件。打包后会生成dist文件夹,public中的文件只是复制一遍。因此,public建议放一些外部第三方,自己的文件放在assets,别人的放public中。②使用assets下面的资源,在js中使用的话,路径要经过webpack中的file-loader编译,路径不能直接写。在动态绑定中,assets路径的图片会加载失败(因为webpack使用的是commenJS规范,必须使用require才可以)。
12345678910111213141516<div class="myDemo"> <img src="/static/logo.png" title="public/static中的图片">//绝对路径访问 <img src="../assets/logo.png" titl ...
vue学习笔记
vue中template的三种写法第一种(字符串模板写法):直接写在vue构造器里,这种写法比较直观,适用于html代码不多的场景,但是如果模板里html代码太多,不便于维护,不建议这么写.第二种:直接写在template标签里,这种写法跟写html很像.
第三种:写在script标签里,这种写法官方推荐,vue官方推荐script中type属性加上”x-template”,即:
vue定义data的三种方式与区别在vue中,定义data可以有三种写法。
1.第一种写法,对象。
123456var app = new Vue({ el: '#yanggb', data: { yanggb: 'yanggb' }})
2.第二种写法,函数。
12345678var app = new Vue({ el: '#yanggb', data: function() { return { yanggb: 'yanggb ...
JS之Promise
Promise
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理且更强大。它最早由社区提出并实现,ES6将其写进了语言标准,统一了用法,并原生提供了Promise对象。
特点
对象的状态不受外界影响 (3种状态)
Pending状态(进行中)
Fulfilled状态(已成功)
Rejected状态(已失败)
一旦状态改变就不会再变 (两种状态改变:成功或失败)
Pending -> Fulfilled
Pending -> Rejected
用法创建Promise实例123456789var promise = new Promise(function(resolve, reject){ // ... some code 。 if (/* 异步操作成功 */) { resolve(value); } else { reject(error); }})
Promise构造函数接受一个函数作为参数,该函数 ...
antd富文本
富文本:
ps:(图片+中文bug未解决)
1、安装
cnpm install react-draft-wysiwyg --save
cnpm install draft-js --save
cnpm install draftjs-to-html --save
cnpm install html-to-draftjs --save
2、引用
import {convertToRaw,EditorState,ContentState } from 'draft-js'
import {Editor} from 'react-draft-wysiwyg'
import draftToHtml from 'draftjs-to-html' //获取编辑器html内容
import htmlToDraft from 'html-to-draftjs' //将html内容转为编辑器显示内容
//引入样式
import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css ...
antd相关记录
[TOC]
1、antd-Pro项目创建12345678910111213141516171819$ mkdir <your-project-name>$ cd <your-project-name>$ yarn create umi # or npm create umi---------------------推荐或者1、创建文件夹,用ide打开2、cnpm create umi# Choose ant-design-pro: Select the boilerplate type (Use arrow keys)❯ ant-design-pro - Create project with an layout-only ant-design-pro boilerplate, use together with umi block. app - Create project with a simple boilerplate, support typescript. block - Create a umi ...
antd——获取表格Table指定行的数据
前言:最近项目中,依然负责前端这一块,数据被装到Table表格里面,点击编辑需要自动获取到那一行的数据,然后自动打开一个Form表单窗口,把这一行的数据自动填上Form表单中作为初始值,最后你就可以通过Form表单修改内容,调用接口重新渲染一下数据,这就完成了编辑功能。
问题:如何获取那一行的数据查阅官网antd组件里面有个render函数,描述情况是:render——生成复杂数据的渲染函数,参数分别为当前行的值,当前行数据,行索引,@return 里面可以设置表格行/列合并——function(text, record, index) {}
我要使用record来获取那一行数据,于是按下面图片写代码就实现了
注:render一定要写两个参数(text, record),调用点击编辑函数onClick()一定要按上图所示,不然会报错!!!
这么简单就能成功,但是过程是十分艰辛的,花了好几个小时,百度了好多文章,再叨唠一下,参数一定要加上,而且一定要用 ()=> this.函数(record) 这样才能获取到行数据,百度到的this.函数.bind(rec)我是不 ...