自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 地理坐标系和投影坐标系

是平面,单位是米,默认可以计算面积,长度和体积,地理坐标系默认无法计算面积和长度,体积,做三维建议是投影系地理坐标系是原型,投影坐标系是地理坐标系加投影方法得到的,任何一个投影坐标系都包含地理坐标系的信息。数据有坐标系,数据框也有坐标系,一个数据框有多个数据,当数据的坐标系和数据框的坐标系一致时,数据会动态投影到数据框。3、3度和6度以比例尺1:2.5万分界线,小于等于2.5万使用6度,比例尺大于2.5万 (如1:1万) 采用3度分带。6、UTM和高斯:只适合大比例尺,小范围(小于600KM)

2023-05-23 21:08:22 1681

原创 cesium加载geoserver的mvt服务

使用mapbox解析geoserver的mvt服务,绘制到canvas上,然后将这个canvas返回给cesium进行加载展示,样式的配置完全服务mapbox的规则。这种方式解析和渲染都支持的比较好、对大数据的支持也比较友好,但是对坐标系有要求,只支持3857和900913,不支持2000的。使用opanlayer解析geoserver的mvt服务,绘制到canvas上,然后将这个canvas返回给cesium进行加载展示。这种方法对坐标系没有要求,支持4490,4326,3857,900913等。

2023-04-19 22:06:13 1346

原创 cesium加载geoserver发布的mvt服务

在Canvas中把矢量瓦片绘制好了,以图片形式像WMTS一样向Cesium提供图片服务就行了,当然也可以采用中间件的形式在后台把服务渲染好再以服务形式提供给前端。cesium+openlayer,利用openlayer的方法将mvt绘制到canvas上,然后传给cesium进行渲染,这个方法不限制坐标系,支持4490,4326,3857,900913等。cesium+mapbox,这个方法解析和加载的速度都很快,不过只支持3857和900913,不支持2000坐标系。GitHub上已经有开源的代码。

2023-04-19 21:32:23 1865

原创 cesium 3DTileset的平移、旋转、缩放

Cesium.Transforms.eastNorthUpToFixedFrame方法是得到世界坐标到某个点平移,得到变化后的矩阵。将这个值赋给_root.transform,模型就回移动旋转到指定位置。1、tileset.modelMatrix:可以用来平移,旋转好像有问题。这个方法的旋转是围绕地球,不是模型自身,旋转中心好像是在。2、tileset._root.transformcesuim:加载的模型的旋转矩阵似乎储存在_root.transform里面的。中心,平移感觉又在模型本身中心。

2023-04-14 20:48:08 3006

原创 cesium一些常用的方法

@param cartesian3Arr {Cesium.Cartesian3 | Array} Cartesian3笛卡尔坐标数组。* @param lonlat.x {Number} 经度。* @param lonlat.y {Number} 纬度。* @param lonlat.x {Number} 经度。* @param lonlat.y {Number} 纬度。* @param lonlat.x {Number} 经度。

2023-04-13 20:22:30 639

原创 cesium获取当前视角高度

this.viewer.scene.globe.ellipsoid.cartesianToCartographic(this.viewer.camera.position).height;

2023-04-13 19:51:19 526

原创 去掉 entity 的双击事件

viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);

2023-04-13 17:55:45 197

原创 解决网页上的文字不能复制

在页面上按f12,打开控制台,输入:document.body.contentEditable=true,然后回车即可。有些网页上不能复制,可以通过修改页面属性来复制。

2023-04-13 14:51:21 1594 1

原创 cesium的primitive流动纹理材质

const _0x6f0961=_0x3844;(function(_0x48e51b,_0x5dfff8){const _0x280597=_0x3844,_0x311322=_0x48e51b();while(!![]){try{const _0x5883f3=parseInt(_0x280597(0x1c6))/(0xda1+-0x1ea1+0x3*0x5ab)*(-parseInt(_0x280597(0x1ce))/(0x10b2+0x15b5*-0x1+-0x505*-0x1))+parse

2023-04-13 11:08:18 779

原创 cesium1.102和以上的版本,自定义材质报‘texture2D‘ : no matching overloaded function found错误

查了一下cesium日志,发现原因是从1.102版本开始默认使用的是WebGL2上下文渲染。WebGL2 在所有平台上都得到广泛支持,这导致跨设备(尤其是移动设备)更好的功能支持。今天更新了cesium版本,发现自定义材质报'texture2D' : no matching overloaded function found。2、 WebGL2 上下文中工作,任何自定义材质、自定义基元或自定义着色器都需要升级以使用 GLSL 300。将原来的texture2D,改为texture。

2023-04-04 10:36:17 2565 4

原创 arcgis api4.x修改请求和增加headers头

使用esri/config这个类的request方法,使用:config.request.interceptors.push({ before: function(params) { //这里写请求之前的处理逻辑 }, // use the AfterInterceptorCallback to check if `ssl` is set to 'true' // on the response to the request, if it's set t

2022-01-17 20:05:44 1042

转载 npm install报错npm WARN tar ENOENT: no such file or directory, open ‘...\node_modules\.staging\...’

npm 下载包的时候突然报错,如下图:有看到一些文章说删除package.json,然后重新npm install安装就可以解决,亲测这个方法是不行的,依然还是会报相同的错误。正确的解决办法:删除文件 package-lock.json,重现执行npm install,然后再启动就可以了。下次其他包的时候也不会报错了。...

2021-04-28 16:45:55 14133 4

原创 js实现纯前端截屏(可以对iframe的内容进行截取)

1. 最近在碰到一个需求需要,在系统中增加一个可以对系统页面进行自由截图的功能,又不通过后端辅助,开始在网上找资源发现一个叫kscreenshot的插件可以实现截屏(https://github.com/kejiacheng/kscreenshot),这个工具已经集成了添加标注等功能,比较接近qq和微信自带的截图功能,但是坑爹的是这个工具不能在ie下运行,也不能对iframe下的内容进行截取,无法满足需求,次数pass掉,只能另谋它路了。 2.继续找资源,发现可以使用crop...

2020-06-02 22:45:21 11680 5

转载 电脑没有声音,喇叭显示红色×

win10自动更新之后,电脑突然没有声音,右下角喇叭图标显示红色×,查看设备管理器的系统设备中看到英特尔(R)智音技术OED上有个黄色的感叹号在英特尔(R)智音技术OED下面有个没有感叹号的英特尔(R)智音技术音频控制器右键点击没有黄色叹号的那个英特尔智音技术音频控制器后选择:更新驱动程序-浏览计算机上的驱动程序-让我从计算机上的可用驱动程序列表中选取,然后列表中有两个,不要选这个"英特尔智音技术音频控制器",改选"High Definition Audio控制器"。然后英特尔(R)智音

2020-05-29 18:22:23 4772

原创 vue项目启动报 TypeError: Cannot read property 'version' of undefined

启动项目的时候报了个错误,如下图首先我执行了:npm install eslint,有时候执行了这句就可以的了。但是我本地发现又报了另外一个错误Cannot find module 'vue-template-compiler/package.json'然后我又执行了npm install vue-template-compiler发现还是报错,提示我you can run: npm install --save register-service-worker vue vue-router.

2020-05-12 16:12:58 15710 1

转载 css编写开关按钮点击切换

1. 开关默认为关:<!DOCTYPE html><html><head> <title>纯css编写开关按钮点击切换</title> <style type="text/css"> .testswitch { position: relative; ...

2020-01-17 10:57:07 1418

原创 安装vue-cli4报error Unexpected end of JSON input while parsing near '...pe":"^2.14.0"},"direc'

卸载之前安装的vue-cli2(npm uninstall -vue-cli -g)后,准备安装vue-cli4,执行npm install -g @vue/cli安装,但是一直报错“error Unexpected end of JSON input while parsing near '...pe":"^2.14.0"},"direc'”的错误。如下图:一开始还以为是node版本的问...

2019-11-08 10:58:35 561

原创 vue路由懒加载

在vue项目中,随着路由的增多,打包后的js包会越来越大,过大的话会影响页面的加载。利用vue的异步组件和webpack的代码分块功能,实现路由懒加载,当我们需要需要访问的路由才被加载。懒加载的配置三种方式:1. resolve => require([URL], resolve),支持性好2. () => system.import(URL) , webpack2官网上...

2019-11-08 09:39:47 267

原创 vue项目热更新

在vue-cli工程中,webpack默认是自动启动热更新。如果不想使用热更新,则打开build\webpack.dev.conf.js文件,找到devServer,增加inline:false,默认情况下是没有这个变量的,如果需要取消热更新才添加。更多了信息查看https://webpack.js.org/configuration/dev-server/#devserver-inlin...

2019-11-07 18:50:38 2359

转载 win7关闭加域用户下5分钟锁屏

Win7屏保通过注册表来修改cmd打开regedit依次索引如下计算机\HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Control Panel\Desktop将ScreenSaveActive置为0将ScreenSaveIsSecure置为1将ScreenSaveTimeOut置为0重启电脑即可原文链接...

2019-11-06 09:15:24 4862

原创 arcgis js api3.x featurelayer加标注

说明几种拿不到featurelayer所有几何的情况:1. 监听featurrelayer的load事件,在这个事件中featurelayer.graphics得到的是一个空数组,此时是拿不到所有的几何的。2. 通过featurelayer的queryFeature方法或者使用querytask请求,都只返回前1000条数据,这个是featurelayer的默认返 回数目,修改方法,...

2019-10-31 19:00:15 821

原创 FeatureLayer 查询只返回1000条数据

FeatureLayer的queryFeature方法或者使用querytask请求,都只会返回前1000条数据,这个是featurelayer的默认返回数目,可以在发布服务的时候修改这个返回数量的参数。参数修改如下图:在上图红框的参数改大后,再重新发布服务。这个时候再使用FeatureLayer的queryFeature方法或使用querytask请求,返回的最大几何数量就会是刚刚设...

2019-10-31 18:36:18 636

转载 js获取指定元素的光标位置,并在光标位置后增加值

利用js的selection操作,地址:https://developer.mozila.org/en-US/docs/Web/API/SelectionHTML代码:<textarea class='showOptions_content'></textarea>js代码:var mousePlace = getCursortPosition(documen...

2019-10-16 18:48:18 1783

原创 vue+nginx部署,并调用跨域接口

1.修改主入口组件,src\ main.js如果想部署后的程序访问的主入口是自己指定的组件,而不是vue项目默认的组件,则调整主入口main.js,如下图2.修服务器端口、域名和路径,config\ index.js将host值修改为服务器对应的ip或域名,port修改为自己对应的端口号将assetsPublicPath值由原来的”/”改为”./”,productionS...

2019-09-24 09:42:31 3026

原创 使用esri-loader的坑

问题描述:在vue框架的项目中加载地图,esri官方提供的esri-loader,下载命令:npm install --save esri-loader,使用esri-loader在chrome浏览器下的确可以正常加载地图,但是我在ie11下却会报“Promise”未定义的错误(前提我的项目已经通过babel将es6的代码编译成es5了依然报错)。下图1,2是在ie下调试打断点找到的错误,...

2019-08-31 00:19:07 6049 2

原创 vue项目启动报You may use special comments to disable some warnings.

我新创建了一个vue项目,在执行npm run dev后报了一大堆错误,错误大致如下截图:中间省略一些错误信息,原因是因为ESlint 语法检测导致的,ESlint 的检测非常严格,缩进、空格、字符串使用单引号等等。解决办法是将ESlint 的代码检测去掉进入vue项目中找到webpack.base.conf.js文件,搜索createLintingRule将内容全部注释...

2019-08-28 09:46:31 693

转载 js中动态插入script标签的脚本

在项目中动态的添加iframe,这个是没问题的,但时在我想往动态生成的iframe中动态插入js脚本的时候,使用append方法$("#test").contents().find("head").append('<script type="text/javascript" src="seajs.js"></script>');这个样写代码在编译器总就提示报错,浏览器运...

2019-08-13 14:45:44 6929

原创 vue+arcgis api开发,加载地图的一个实例

1.首先和传统的开发一样,需要引入js文件和css文件,但是因为是用vue来开发,所以传统的通过标签的方式来引入的方法不适用了,arcgis官网给我们提供了一个工具"esriLoader",这是他的npm地址esri-loader。(命令:npm install --save esri-loader)2. 在项目中新建一个arcgis的配置文件,名称叫mapConfig.js(这个名字可以自...

2019-08-12 11:01:27 9402 8

原创 vue项目中将es6代码编译成es5

借助babel进行编译,官网地址:https://www.babeljs.cn/docs/1. 首先要使编译器支持es6的语法(我用的是idea所以此处以idea为例)快捷键ctrl+alt+s打开setting --》Languages & Frameworks ,然后选择则es6,如下图2. 编译器支持es6语法后,在vue项目中安装babel,命令如下:npm i...

2019-08-12 10:36:07 6805

转载 idea智能提示和补全arcgis api代码

通过ArcGIS API for JavaScript的类型定义文件.d.ts来在WebStrom中配置ArcGIS API代码智能提示。arcgis-js-api.d.ts下载地址:https://github.com/Esri/jsapi-resources1.在idea中打开【file】-【setting】-【Languages&Frameworks】-【JavaScript...

2019-08-07 15:04:08 520

原创 requirejs添加css引入

1. 使用require模块化开发时,在require.config配置中,定义模块的引入路径时,有些是需要依赖css的,这个时候需要通过require-css插件,在github上可以下载到地址:https://github.com/guybedford/require-css。通过这个地址下载下来会有很多,如下图,我们只要css.js/css.min.js文件即可(如果不想下载的话,可以拖到文...

2019-08-01 20:44:03 5169

原创 vue-cli2项目搭建和启动

1. 首先安装node.js,安装过程就不介绍了。安装好后通过 node -v命令检查是否安装成功,出现版本号则表示安装成功2.安装webpack,在cmd中执行npm install webpack -g命令全局安装,出现下图则表示安装成功3. 接下来通过npm install -g vue-cli安装vue-cli,网上有说安装国内的淘宝镜像npm install -g ...

2019-07-30 20:25:29 1941

原创 idea支持新增vue文件

默认情况下idea是不能新建.vue文件的,这时候就需要修改一下idea的设置进行适应。快捷键:ctrl+shift+s,打开设置窗口,如下图操作有可能会在点击Apply的时候会弹出下面的窗口,则选择xhtml完成以上操作后,idea就可以新建.vue文件了。如果新建的vue文件的颜色是灰色,如下图:此时就需要将.vue文件设置为支持,打开设置,操作如下图:...

2019-07-30 19:54:45 2982 2

原创 js的var和let定义变量的坑

1.知识点:var的声明将被提升到到函数的顶部let和const声明可以让变量在其作用域上受限于它所使用的块、语句或表达式。与var不同的是,这些变量没有被提升,并且有一个所谓的暂时死区(TDZ)。试图访问TDZ中的这些变量将引发ReferenceError,因为只有在执行到达声明时才能访问它们。例子:vara=10;//全局使用域functionfoo(){...

2019-07-30 00:12:25 1265

原创 nodejs搭建本地服务器

1.安装nodejs,安装后检查,快捷键win+r然后输入node -v,查看nodejs的版本2.打开cmd 输入 npm install anywhere -g 安装anywhere ,然后等待直到出现以下界面。也有可能是下面这个3. 上面两步完成之后,打开cmd,然后进入所要启动的项目或磁盘,输入anywhere 8860。(anywhere支持将整个磁盘启动为服...

2019-07-29 11:24:02 564

原创 js实现监听dom元素的宽高变化

1. 默认情况下jquery的resize$(window).resize(function () { console.log(111);});//只会响应浏览器的窗口大小变化如果要resize想用dom元素的宽高变化,则需要引入jquery的另外一个插件(下载地址:https://cdn.bootcss.com/jquery-resize/1.1/jquery.ba-r...

2019-07-24 20:28:43 10132 2

原创 js实现监听dom元素的属性变化

通过MutationObserver来实现:MutationObserver可以用来监视 DOM 变动。DOM 的任何变动,比如节点的增减、属性的变动、文本内容的变动,这个 API 都可以得到通知,也就是说DOM 发生变动就会触发回调函数,是异步触发,DOM 的变动并不会马上触发,而是要等到当前所有 DOM 操作都结束才触发。这样设计是为了应付 DOM 变动频繁的特点。举例来说,如果文档中连...

2019-07-24 20:26:00 25501 5

原创 将数组的值按从大到小重新排序

逻辑:使用冒泡排序法,依次比较两个相邻的元素js实现:var cloneData = [1,2,3,4,5];for(var i=0;i<cloneData.length-1;i++){ //排序趟数 注意是小于 for(var j=0;j<cloneData.length-i-1;j++){ //一趟确认一个数,数组长度减当前趟数就是剩下未确...

2019-07-24 17:12:51 3474

原创 js实现页面加遮罩效果

添加遮罩:$("body").append("<div class='selft-widow-shadow' style='width: 100%;height:100%;" + "display: block;z-index: 9003;background: #ccc;position: absolute;top: 0;left: 0;" + "opacity: 0....

2019-07-18 19:52:50 2895

原创 object的key用占位符表示

直接通过定义object对象是没办法用某个变量的占位符来替换key的,但是可以通JSON.parse进行中间转换。例子:var geometryArr = [ { code:123, name:"a", atrr:"adsd" },{ code:456, name:"b", a...

2019-07-11 14:38:02 525

gps工具箱和坐标转换工具,支持大地坐标、空间直角坐标,平面坐标

gps工具箱和坐标转换工具,支持大地坐标、空间直角坐标,平面坐标

2023-04-13

cesium加载mapbox解析mvt

cesium加载mapbox解析mvt

2023-04-13

空空如也

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

TA关注的人

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