自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张景源的博客

张景源的博客

  • 博客(61)
  • 收藏
  • 关注

原创 常用的前端地图框架(WebGIS框架)

1. LeafletLeaflet 是最著名的前端地图可视化库,它开源、体积小、结构清晰、简单易用。2. Mapbox GL JSMapbox GL JS 是目前最新潮的前端地图库,它的矢量压缩、动态样式和三维性能令人印象深刻。它本身是开源的,但一般依赖于Mapbox公司提供的底图服务。3. ArcGIS API for JSArcGIS API for JS 是较为学院派的前端地图库,它是ArcGIS开发套件中的一部分,和桌面端和服务器端ArcGIS软件有较好的协作。它不开源且收费不低,在学术场

2020-11-20 18:59:33 20365 4

原创 使用MCD12C1数据绘制全球土地覆盖类型图

使用MCD12C1数据绘制全球土地覆盖类型图MCD12数据是利用Terra和Aqua两颗卫星遥感获得的土地覆盖类型数据,MCD12C1是其中分辨率约为0.05°的版本,适合做全球尺度的绘图。MCD12Q1为与之相似的但精度更高的数据。 该数据可以在USGS或NASA中下载,格式为HDF。 使用matlab(R2017b)。clear;clc;首先读取数据(HDF格式) ...

2018-04-13 19:56:26 10588 13

原创 【Element-UI】el-cascader 组件删除异常

使用 Element-UI 的 el-cascader 组件时,删除回显的选项,会出现排列顺序的异常。中被修复,即升级 Element-UI 到 2.15.7 之后的版本即可。

2023-06-25 16:42:07 483

原创 使用 whistle 在 macOS 上进行抓包

使用 whistle 在 macOS 上进行抓包

2023-02-16 19:31:27 903 1

原创 nuxt 不支持 replaceAll 方法

nuxt 不支持 replaceAll 方法

2022-10-08 21:25:01 525

原创 微信小程序 FileSystemManager.rmdir 安卓兼容性问题

微信小程序 FileSystemManager.rmdir 安卓兼容性问题

2022-10-01 00:00:00 631

原创 JS Array 的 map() 方法和 await 一起使用

在对数组进行逐个异步操作的时候,想使用 await 来获取操作后的数组,尝试了如下的写法:const resArr = await arr.map(async (item)=>{ const resItem = await query(item) // 异步操作 return resItem})这样的写法是不正确的,因为 Array.prototype.map() 不会返回一个 Promise。可以采用如下的写法const promiseArr = arr.map((item)=&gt

2022-04-28 22:12:09 1103

原创 前端使用 UserAgent 判断是否是移动端

直接上代码function isUserMobile() { const ua = navigator.userAgent.toLowerCase(); return /mobile|android|iphone|ipod|phone|ipad/i.test(ua);}

2022-03-16 23:28:29 1874

原创 npm install 报错 node_modules 中 no such file or directory 的一种可能原因

在 npm install 安装依赖时,始终出现node_modules 中 no such file or directory,经过切换 node 版本、删除重新 install 等操作后,不能解决问题。经过排查,发现是 npm workspaces 配置出现问题。在 npm 7.x 以上版本中,npm install 时会检查 package.json 中的’workspaces’字段,并将其中的子项目链接到 node_modules 中,相当于自动的 npm link。此时,若子项目未预先编译,则会

2022-01-26 11:40:24 11855 3

原创 npm 将全局安装的包安装在哪里?

使用npm root -g命令查看 npm 全局包安装的地址例如,在mac上使用 nvm 时,npm 全局包的安装地址为:➜ ~ npm root -g/Users/you/.nvm/versions/node/v14.18.3/lib/node_modules

2022-01-26 10:17:14 2663

原创 前端跨域问题

什么是跨域问题?跨域问题,即浏览器报 Error: Access to XMLHttpRequest at ‘http://example1.com’ from origin ‘http://example2.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. 这个错误。这是因为:处于安全原因,浏览器会限制由脚本发起的

2021-10-08 04:25:24 259

原创 使用 appendChild 添加 SVG 元素不生效

在使用 SVG 时,需要使用 appendChild 来添加元素。但是如下的写法是不生效的:let newElement = document.createElement('rect');newElement.setAttribute('fill','orange');newElement.setAttribute('width','200');newElement.setAttribute('height','200');document.getElementById('svg-drawing

2021-07-23 11:33:13 1178 1

原创 在 Next 页面中添加 meta 信息

Next.js 暴露了一个内置组件 head,用于将 HTML 标签添加到页面的 head 中,可以借用此添加 meta 信息。例如:import Head from 'next/head'function IndexPage() { return ( <div> <Head> <title>My page title</title> <meta name="viewport" conten

2021-05-12 14:50:58 1590

原创 2021 前端校招面试知识点(八股文)整理

1. JavaScript基本数据类型 (7种)this 的指向 (new, 隐式绑定, 显式绑定)Function 的 call, apply, bind 方法Promise, eventloop, 宏任务和微任务闭包 (概念, 用途, 手写)原型链继承 (extends, 原型链继承, 构造函数继承, 组合继承, 寄生组合继承)深拷贝和浅拷贝事件冒泡/捕获, 事件委托, 阻止冒泡, 哪些事件不能冒泡sort() 的复杂度2. 浏览器回流和重绘http 缓存, 协商缓存c

2021-04-12 14:06:55 12115

原创 [Mapbox v2] y is not defined / _createClass is not defined

在 React 或 Vue 使用 Mapbox GL JS v2 时出现了如下的错误:这是 Babel 的转译所导致的(Github 中的 Issue:Uncaught ReferenceError: _createClass is not defined (after transpiling with Babel))可以通过设置 webpack , 用 ! 来禁用所有 loaders 来避免,即,在 import 时在 mapbox-gl 前加一个 ‘!’(用上一行的 // eslint-d

2021-03-24 18:13:25 1203 1

原创 Python 爬取 Google Map POI

Google Map 的 API文档:https://developers.google.com/maps/documentation/places/web-service/search#PlaceSearchRequests这里使用的其中的 Place Search Requests 接口。需要先注册原理上是按照一定的格点来请求周围的POI。每次请求会返回大约十几个POI点信息,类似于一种采样,如果在POI比较密集的地区,格网比较大会漏过许多POI。下面这段代码爬取的是曼谷城区的部分POI# 从谷

2021-03-08 19:15:58 7333 30

原创 paramiko sftp 创建一个多级路径

在 linux 中我们可以通过 mkdir -p 路径 的方式来创建一个多级路径,但在 paramiko sftp 中似乎没有对应的方法可以直接使用。我们可以通过通过如下的方法来创建目录并存储文件。 mysftp = paramiko.Transport((SFTP_HOST,SFTP_PORT)) mysftp.connect(username=SFTP_USERNAME, password=SFTP_PASSWORD) sftpClient = paramiko.SFTPC

2021-02-24 10:39:00 2954

原创 在新线程中使用 apscheduler 时,报错: There is no current event loop in thread

在 Python 后端程序中需要使用定时任务时,我们考虑在一个新线程中使用 apscheduler 设置定时任务。出现了RuntimeError: There is no current event loop in thread 'Dummy-1'.的错误。而在主线程中使用 apscheduler 则不会。这是因为,apscheduler 中使用了 asyncio.get_event_loop() ,而此时不存在 event loop。默认情况下,在主线程中时,若没有event loop

2021-02-02 15:27:40 5546

原创 Python Flask 后端动态生成 csv 文件并返回

# 测试数据data = [ ['Jack','[email protected]'], ['Ben','[email protected]'], ['jerry','[email protected]'] ]@app.route('/api/exportEmails', methods=['GET'])def exportEmails(): # 定义一个生成器 (generate),逐行生成,实现流式传输 def generate(): # 用 StringIO 在内存中写,不会生成实际文件

2021-01-29 12:10:19 2827

原创 Vue 报错 Unexpected side effect in “...“ computed property

Vue 的 计算属性 (computed) 中应当仅包含用于返回值的计算,不应该包含 DOM操作,修改外部变量,异步操作 等。这些操作应该在 侦听器 (watch) 中实现

2021-01-27 11:28:46 18405 3

原创 nginx: 413 Request Entity Too Large

Request 的体积超过了 Nginx 的限制在 nginx.conf 中的 http{} 中添加(或修改)client_max_body_size 10m;设置 request 的最大体积为 10m (或根据需要设置)参考文档 http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size...

2021-01-21 16:13:06 104

原创 React 中实现滚轮触发的横向滚动

在要滚动的组件上添加 onWheel事件回调函数yWheel <div ref={this.container} className={style.container} onWheel={this.yWheel}> {this.listDom()} </div>定义yWheel yWheel(e) { e.currentTarget.scrollLeft += e.deltaY; }...

2021-01-19 15:25:32 1525

原创 Axios 取消前一次请求

在对一些按钮点击或者输入事件绑定API请求的时候,当点击、输入过快时,可能出现后一次请求会比前一次请求先到达的情况,导致页面显示的信息没有更新到最后一个请求的结果。对于这种情况,Axios 提供了 cancel token,我们可以用它来实现:在发送后一个请求的时候,终止前一个请求的回调。Axios 的 cancel token 文档代码如下:import axios from 'axios'const CancelToken = axios.CancelToken;let cancel =

2021-01-18 16:36:42 2353

原创 v-charts 报错: Cannot read property ‘scale‘ of undefined

是 echarts 的版本问题,可以npm remove echarts再指定安装 echarts 4.9 版本npm install [email protected]即可解决问题

2021-01-11 15:56:48 845 1

原创 Canvas 获取点击事件的相对位置

function handleClick(e){ myCanvas = document.getElementById("myCanvas") const localXY = { x: e.clientX - myCanvas.getBoundingClientRect().left y: e.clientY - myCanvas.getBoundingClientRect().top }}

2021-01-07 11:59:43 1273

原创 Vue CLI 的 env 文件中定义的环境变量不生效

自定义的变量必须以 VUE_APP_ 开头官方文档:https://cli.vuejs.org/zh/guide/mode-and-env.html#环境变量

2020-12-30 15:41:36 6181 1

原创 Python 后端 Flask 返回静态文件

后端from flask import Flaskfrom flask import send_from_directoryapp = Flask(__name__)app.run(debug=False)#[email protected]('/getLogFile', methods=['GET'])def getLogFile(): try: return send_from_directory('','log.txt') else:

2020-12-29 10:15:17 7170

原创 向 Vuex 的 Actions 中的方法添加回调

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。在 Vuex 中,我们会使用 Actions 进行一些异步操作,例如 API 请求。在许多情况下,我们需要对这样的操作添加回调,在此,我以登录提示为例介绍三种方法:第一种(不推荐)App.vuemethods: { ...mapActions([ 'login' ]), logSuccess(){ cons

2020-12-23 11:46:27 2015

翻译 了不起的GIS:GIS相关软件、框架、代码、资源等的合集

本文的原文地址是 Awesome GIS,是由 sshuair 同学维护的GIS资源列表。该文件执行 MIT 开源协议,以下是其截至 2020年12月20日 的备份。十分感谢 sshuair 同学整理的资源。Awesome GIS 是一个地理空间相关资源的集合,包括制图工具、空间分析工具、开发工具、数据、会议和组织、新闻机构、开放课程、一些精美的地图网站。Please contribute. Let’s make this guide better! Please follow the Contrib

2020-12-20 20:06:10 4879 1

原创 在 React 项目中使用 Mapbox GL JS

Mapbox GL JS是有着出色显示效果的前端地图框架。它的相关信息可以在 Mapbox GL JS 英文文档 、Mapbox GL JS 中文文档 、Mapbox GL JS 的 Github 页面 中找到。需要注意的是,Mapbox GL JS的前端代码是开源的,但它一般依赖Mapbox的后端服务,这个服务是有免费限额的。所以在使用 Mapbox GL JS 之前我们一般需要注册 Mapbox 账号并在 账户页面 获得一个 token,这个 token 是一个 pk.开头的字符串。本文主要介绍如

2020-11-20 14:50:54 3217

原创 京东GIS岗位笔试的两道选择题

一段时间之前笔者参加了京东GIS岗位的笔试,有两道题选择题至今还没有想清楚,写在这里与大家讨论一下。第一题下面不属于地理信息系统输出产品的是:A. 元数据B. 图像C. 统计图表D. 地图这一题有同学选的是C,有的同学选的是A。B和D都是一般意义上地理信息系统的输出产品不解释。关于A,“元数据”这个词可能令人感到困惑,元数据即metedata,定义是指描述数据属性(property)的信息,广义上来说所有描述性的信息都是元数据,例如图名、图例、空间参照系等,具体来看,在ArcMap中栅

2020-10-12 00:11:39 688 6

原创 firefox 火狐浏览器 跨域设置

在用开发Web应用时,常常需要跨域请求资源,这就需要解除浏览器的跨域限制。否则会报已拦截跨源请求:同源策略禁止读取位于 ..... 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。这样的错误。对于Chrome浏览器,设置跨域很容易。例如:https://www.cnblogs.com/shihaiming/p/10984394.html 但对于firefox并不容易,许多人介绍了设置 security.fileuri.strict_

2020-09-29 16:15:04 9831

原创 Element Table 使用后端排序写法

html中: <el-table :data="tableData" @sort-change="sortChange" > <el-table-column prop="date" label="日期" sortable="custom" width="180"> </el-table-column> </el-table>motheds中:methods:

2020-09-16 13:50:07 974

原创 批量取消缩进 VSCode

shift + tab

2020-08-24 13:50:08 10138 4

原创 git clone 指定分支

git clone -b 分支名 仓库名

2020-08-13 16:25:35 146

原创 Unexpected string concatenation解决

拼接字符串报错 "Unexpected string concatenation"错误原因:ESLint推荐用ES6方法来拼接字符串,而不能使用加号。解决办法:拼接字符串使用形如:`字符串字符串字符串${变量名}字符串字符串字符串${返回字符串的方法}字符串字符串`的写法。...

2020-08-13 10:27:15 19657 1

原创 python批量替换文件夹内的文件内容

#Author:jingyuanimport osimport re#要改的文件夹dir ="E:\\testScript"#要改的文件类型(可以输入多个)file_type=[".htm"]#替换表(可以用python正则表达式)look_up_table=[[">ArcMap<",">SceneMap<"], ["ArcGIS Online","GeoScene Online"], ["colou

2020-07-08 19:14:01 885

原创 ArcGIS 10.8 帮助文件词频统计

对 ArcGIS 10.8 本地帮助文件(chm)做了统计。结果显示,帮助文件合计10398个页面(比想象中大好多),14358147个字,词频统计来看,出现最多的词是 ‘数据’ ,出现了48998次,其次是 ‘要素’,’使用’,和 ‘工具’。具体词频(出现10000次以上)是:数据 48998次要素 48818次使用 47706次工具 28835次如果 25669次创建 25529次属性 24679次地理 24554次单击 24165次ArcGIS 23419次图层 23060次

2020-07-08 14:25:20 436 1

原创 【ArcGIS Pro】解除布局视图中地图框内容锁定/关联的问题

问题描述:在 ArcGIS Pro 的页面布局中,如果两个或多个地图框架引用同一地图,则对地图图层的任何操作(例如打开或关闭任何图层)都会同时影响两个地图框。这会严重影响制图实践,例如无法轻易对一个地图框中的多波段影像的不同波段进行分别可视化。查阅官方文档可知,Esri官方非常清楚这一点,但并没有改的意思(笑在此,我描述一种较为简单的解除关联的做法。右击 “内容视图” 中你要解除关联的 “地图框” 下的 “地图” ,选择 “另存为地图文件”,把地图文件保存出来。再选择上方工具栏中的 “插入” 中

2020-05-21 05:42:36 8872 6

原创 MODIS 分带(行列) shapefile 下载

MODIS 正弦分带shapefile下载:MODIS_Grid.zip(由Luca Delucchi, Fondazione Edmund Mach提供)

2020-05-01 06:59:35 734

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除