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

OpenLayers源码解析8 ol/source/TileWMS.js

ol/source/TileWMS.js

父类

ol/source/TileImage-TileImage

主要功能

WMS服务提供的底图图层源。

参数:TileWMS({})

参数类型说明
paramsObject.<string, *>至少需要LAYER参数。
STYLE默认是’'
VERSION默认是‘1.3.0’
WIDTH,HEIGHT,BBOX,CRS会被动态设定
hidpiboolean (defaults to true)使用ol/Map#pixelRatio值请求数据
serverTypemodule:ol/source/WMSServerType
string
WMS服务的类型,当hidpi参数设置为true时才有效
urlstringWMS服务地址
transitionnumber渲染时不透明度转换的持续时间,要禁用不透明度转换,使用transition:0

方法

/*** @module ol/source/TileWMS*/import {DEFAULT_WMS_VERSION} from './common.js';import TileImage from './TileImage.js';
import WMSServerType from './WMSServerType.js';
import {appendParams} from '../uri.js';
import {assert} from '../asserts.js';
import {assign} from '../obj.js';
import {buffer, createEmpty} from '../extent.js';
import {buffer as bufferSize, scale as scaleSize, toSize} from '../size.js';
import {calculateSourceResolution} from '../reproj.js';
import {compareVersions} from '../string.js';
import {get as getProjection, transform, transformExtent} from '../proj.js';
import {modulo} from '../math.js';
import {hash as tileCoordHash} from '../tilecoord.js';/*** @typedef {Object} Options* @property {import("./Source.js").AttributionLike} [attributions] Attributions.* @property {boolean} [attributionsCollapsible=true] Attributions are collapsible.* @property {number} [cacheSize] Initial tile cache size. Will auto-grow to hold at least the number of tiles in the viewport.* @property {null|string} [crossOrigin] The `crossOrigin` attribute for loaded images.  Note that* you must provide a `crossOrigin` value if you want to access pixel data with the Canvas renderer.* See https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_enabled_image for more detail.* @property {boolean} [imageSmoothing=true] Enable image smoothing.* @property {Object<string,*>} params WMS request parameters.* At least a `LAYERS` param is required. `STYLES` is* `''` by default. `VERSION` is `1.3.0` by default. `WIDTH`, `HEIGHT`, `BBOX`* and `CRS` (`SRS` for WMS version < 1.3.0) will be set dynamically.* @property {number} [gutter=0]* The size in pixels of the gutter around image tiles to ignore. By setting* this property to a non-zero value, images will be requested that are wider* and taller than the tile size by a value of `2 x gutter`.* Using a non-zero value allows artifacts of rendering at tile edges to be* ignored. If you control the WMS service it is recommended to address* "artifacts at tile edges" issues by properly configuring the WMS service. For* example, MapServer has a `tile_map_edge_buffer` configuration parameter for* this. See https://mapserver.org/output/tile_mode.html.* @property {boolean} [hidpi=true] Use the `ol/Map#pixelRatio` value when requesting* the image from the remote server.* @property {import("../proj.js").ProjectionLike} [projection] Projection. Default is the view projection.* @property {number} [reprojectionErrorThreshold=0.5] Maximum allowed reprojection error (in pixels).* Higher values can increase reprojection performance, but decrease precision.* @property {typeof import("../ImageTile.js").default} [tileClass] Class used to instantiate image tiles.* Default is {@link module:ol/ImageTile~ImageTile}.* @property {import("../tilegrid/TileGrid.js").default} [tileGrid] Tile grid. Base this on the resolutions,* tilesize and extent supported by the server.* If this is not defined, a default grid will be used: if there is a projection* extent, the grid will be based on that; if not, a grid based on a global* extent with origin at 0,0 will be used..* @property {import("./WMSServerType.js").default|string} [serverType]* The type of the remote WMS server. Currently only used when `hidpi` is* `true`.* @property {import("../Tile.js").LoadFunction} [tileLoadFunction] Optional function to load a tile given a URL. The default is* ```js* function(imageTile, src) {*   imageTile.getImage().src = src;* };* ```* @property {string} [url] WMS service URL.* @property {Array<string>} [urls] WMS service urls.* Use this instead of `url` when the WMS supports multiple urls for GetMap requests.* @property {boolean} [wrapX=true] Whether to wrap the world horizontally.* When set to `false`, only one world* will be rendered. When `true`, tiles will be requested for one world only,* but they will be wrapped horizontally to render multiple worlds.* @property {number} [transition] Duration of the opacity transition for rendering.* To disable the opacity transition, pass `transition: 0`.* @property {number|import("../array.js").NearestDirectionFunction} [zDirection=0]* Choose whether to use tiles with a higher or lower zoom level when between integer* zoom levels. See {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution}.*//*** @classdesc* Layer source for tile data from WMS servers.* @api*/
class TileWMS extends TileImage {/*** @param {Options} [opt_options] Tile WMS options.*/constructor(opt_options) {const options = opt_options ? opt_options : /** @type {Options} */ ({});const params = options.params || {};const transparent = 'TRANSPARENT' in params ? params['TRANSPARENT'] : true;super({attributions: options.attributions,attributionsCollapsible: options.attributionsCollapsible,cacheSize: options.cacheSize,crossOrigin: options.crossOrigin,imageSmoothing: options.imageSmoothing,opaque: !transparent,projection: options.projection,reprojectionErrorThreshold: options.reprojectionErrorThreshold,tileClass: options.tileClass,tileGrid: options.tileGrid,tileLoadFunction: options.tileLoadFunction,url: options.url,urls: options.urls,wrapX: options.wrapX !== undefined ? options.wrapX : true,transition: options.transition,zDirection: options.zDirection,});/*** @private* @type {number}*/this.gutter_ = options.gutter !== undefined ? options.gutter : 0;/*** @private* @type {!Object}*/this.params_ = params;/*** @private* @type {boolean}*/this.v13_ = true;/*** @private* @type {import("./WMSServerType.js").default|undefined}*/this.serverType_ =/** @type {import("./WMSServerType.js").default|undefined} */ (options.serverType);/*** @private* @type {boolean}*/this.hidpi_ = options.hidpi !== undefined ? options.hidpi : true;/*** @private* @type {import("../extent.js").Extent}*/this.tmpExtent_ = createEmpty();this.updateV13_();this.setKey(this.getKeyForParams_());}/*** Return the GetFeatureInfo URL for the passed coordinate, resolution, and* projection. Return `undefined` if the GetFeatureInfo URL cannot be* constructed.* @param {import("../coordinate.js").Coordinate} coordinate Coordinate.* @param {number} resolution Resolution.* @param {import("../proj.js").ProjectionLike} projection Projection.* @param {!Object} params GetFeatureInfo params. `INFO_FORMAT` at least should*     be provided. If `QUERY_LAYERS` is not provided then the layers specified*     in the `LAYERS` parameter will be used. `VERSION` should not be*     specified here.* @return {string|undefined} GetFeatureInfo URL.* @api*/getFeatureInfoUrl(coordinate, resolution, projection, params) {const projectionObj = getProjection(projection);const sourceProjectionObj = this.getProjection();let tileGrid = this.getTileGrid();if (!tileGrid) {tileGrid = this.getTileGridForProjection(projectionObj);}const z = tileGrid.getZForResolution(resolution, this.zDirection);const tileCoord = tileGrid.getTileCoordForCoordAndZ(coordinate, z);if (tileGrid.getResolutions().length <= tileCoord[0]) {return undefined;}let tileResolution = tileGrid.getResolution(tileCoord[0]);let tileExtent = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent_);let tileSize = toSize(tileGrid.getTileSize(tileCoord[0]), this.tmpSize);const gutter = this.gutter_;if (gutter !== 0) {tileSize = bufferSize(tileSize, gutter, this.tmpSize);tileExtent = buffer(tileExtent, tileResolution * gutter, tileExtent);}if (sourceProjectionObj && sourceProjectionObj !== projectionObj) {tileResolution = calculateSourceResolution(sourceProjectionObj,projectionObj,coordinate,tileResolution);tileExtent = transformExtent(tileExtent,projectionObj,sourceProjectionObj);coordinate = transform(coordinate, projectionObj, sourceProjectionObj);}const baseParams = {'SERVICE': 'WMS','VERSION': DEFAULT_WMS_VERSION,'REQUEST': 'GetFeatureInfo','FORMAT': 'image/png','TRANSPARENT': true,'QUERY_LAYERS': this.params_['LAYERS'],};assign(baseParams, this.params_, params);const x = Math.floor((coordinate[0] - tileExtent[0]) / tileResolution);const y = Math.floor((tileExtent[3] - coordinate[1]) / tileResolution);baseParams[this.v13_ ? 'I' : 'X'] = x;baseParams[this.v13_ ? 'J' : 'Y'] = y;return this.getRequestUrl_(tileCoord,tileSize,tileExtent,1,sourceProjectionObj || projectionObj,baseParams);}/*** Return the GetLegendGraphic URL, optionally optimized for the passed* resolution and possibly including any passed specific parameters. Returns* `undefined` if the GetLegendGraphic URL cannot be constructed.** @param {number} [resolution] Resolution. If set to undefined, `SCALE`*     will not be calculated and included in URL.* @param {Object} [params] GetLegendGraphic params. If `LAYER` is set, the*     request is generated for this wms layer, else it will try to use the*     configured wms layer. Default `FORMAT` is `image/png`.*     `VERSION` should not be specified here.* @return {string|undefined} GetLegendGraphic URL.* @api*/getLegendUrl(resolution, params) {if (this.urls[0] === undefined) {return undefined;}const baseParams = {'SERVICE': 'WMS','VERSION': DEFAULT_WMS_VERSION,'REQUEST': 'GetLegendGraphic','FORMAT': 'image/png',};if (params === undefined || params['LAYER'] === undefined) {const layers = this.params_.LAYERS;const isSingleLayer = !Array.isArray(layers) || layers.length === 1;if (!isSingleLayer) {return undefined;}baseParams['LAYER'] = layers;}if (resolution !== undefined) {const mpu = this.getProjection()? this.getProjection().getMetersPerUnit(): 1;const pixelSize = 0.00028;baseParams['SCALE'] = (resolution * mpu) / pixelSize;}assign(baseParams, params);return appendParams(/** @type {string} */ (this.urls[0]), baseParams);}/*** @return {number} Gutter.*/getGutter() {return this.gutter_;}/*** Get the user-provided params, i.e. those passed to the constructor through* the "params" option, and possibly updated using the updateParams method.* @return {Object} Params.* @api*/getParams() {return this.params_;}/*** @param {import("../tilecoord.js").TileCoord} tileCoord Tile coordinate.* @param {import("../size.js").Size} tileSize Tile size.* @param {import("../extent.js").Extent} tileExtent Tile extent.* @param {number} pixelRatio Pixel ratio.* @param {import("../proj/Projection.js").default} projection Projection.* @param {Object} params Params.* @return {string|undefined} Request URL.* @private*/getRequestUrl_(tileCoord,tileSize,tileExtent,pixelRatio,projection,params) {const urls = this.urls;if (!urls) {return undefined;}params['WIDTH'] = tileSize[0];params['HEIGHT'] = tileSize[1];params[this.v13_ ? 'CRS' : 'SRS'] = projection.getCode();if (!('STYLES' in this.params_)) {params['STYLES'] = '';}if (pixelRatio != 1) {switch (this.serverType_) {case WMSServerType.GEOSERVER:const dpi = (90 * pixelRatio + 0.5) | 0;if ('FORMAT_OPTIONS' in params) {params['FORMAT_OPTIONS'] += ';dpi:' + dpi;} else {params['FORMAT_OPTIONS'] = 'dpi:' + dpi;}break;case WMSServerType.MAPSERVER:params['MAP_RESOLUTION'] = 90 * pixelRatio;break;case WMSServerType.CARMENTA_SERVER:case WMSServerType.QGIS:params['DPI'] = 90 * pixelRatio;break;default:assert(false, 52); // Unknown `serverType` configuredbreak;}}const axisOrientation = projection.getAxisOrientation();const bbox = tileExtent;if (this.v13_ && axisOrientation.substr(0, 2) == 'ne') {let tmp;tmp = tileExtent[0];bbox[0] = tileExtent[1];bbox[1] = tmp;tmp = tileExtent[2];bbox[2] = tileExtent[3];bbox[3] = tmp;}params['BBOX'] = bbox.join(',');let url;if (urls.length == 1) {url = urls[0];} else {const index = modulo(tileCoordHash(tileCoord), urls.length);url = urls[index];}return appendParams(url, params);}/*** Get the tile pixel ratio for this source.* @param {number} pixelRatio Pixel ratio.* @return {number} Tile pixel ratio.*/getTilePixelRatio(pixelRatio) {return !this.hidpi_ || this.serverType_ === undefined ? 1 : pixelRatio;}/*** @private* @return {string} The key for the current params.*/getKeyForParams_() {let i = 0;const res = [];for (const key in this.params_) {res[i++] = key + '-' + this.params_[key];}return res.join('/');}/*** Update the user-provided params.* @param {Object} params Params.* @api*/updateParams(params) {assign(this.params_, params);this.updateV13_();this.setKey(this.getKeyForParams_());}/*** @private*/updateV13_() {const version = this.params_['VERSION'] || DEFAULT_WMS_VERSION;this.v13_ = compareVersions(version, '1.3') >= 0;}/*** @param {import("../tilecoord.js").TileCoord} tileCoord The tile coordinate* @param {number} pixelRatio The pixel ratio* @param {import("../proj/Projection.js").default} projection The projection* @return {string|undefined} The tile URL* @override*/tileUrlFunction(tileCoord, pixelRatio, projection) {let tileGrid = this.getTileGrid();if (!tileGrid) {tileGrid = this.getTileGridForProjection(projection);}if (tileGrid.getResolutions().length <= tileCoord[0]) {return undefined;}if (pixelRatio != 1 && (!this.hidpi_ || this.serverType_ === undefined)) {pixelRatio = 1;}const tileResolution = tileGrid.getResolution(tileCoord[0]);let tileExtent = tileGrid.getTileCoordExtent(tileCoord, this.tmpExtent_);let tileSize = toSize(tileGrid.getTileSize(tileCoord[0]), this.tmpSize);const gutter = this.gutter_;if (gutter !== 0) {tileSize = bufferSize(tileSize, gutter, this.tmpSize);tileExtent = buffer(tileExtent, tileResolution * gutter, tileExtent);}if (pixelRatio != 1) {tileSize = scaleSize(tileSize, pixelRatio, this.tmpSize);}const baseParams = {'SERVICE': 'WMS','VERSION': DEFAULT_WMS_VERSION,'REQUEST': 'GetMap','FORMAT': 'image/png','TRANSPARENT': true,};assign(baseParams, this.params_);return this.getRequestUrl_(tileCoord,tileSize,tileExtent,pixelRatio,projection,baseParams);}
}export default TileWMS;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-35093.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

代码混淆之class-winter

郑重声明 class-winter是本人在学习完class-final(v1.1.9)后&#xff0c;仿照class-final进行编写的&#xff0c;整体思路与class-final一致&#xff0c;代码部分(约20%~30%)复用了class-final中的代码。可将class-winter看作是class-fianl的一个分支。 功能与特性 支持war加…...

百度、阿里、滴滴、新浪的面试心经总结,看这一篇就够了

直击面试 反正我是带着这些问题往下读的 说一下 JVM 运行时数据区吧&#xff0c;都有哪些区&#xff1f;分别是干什么的&#xff1f;Java 8 的内存分代改进举例栈溢出的情况&#xff1f;调整栈大小&#xff0c;就能保存不出现溢出吗&#xff1f;分配的栈内存越大越好吗&#…...

Nginx 配置二级域名(腾讯云)

根域名已被个人主站占用&#xff0c;想把做过的项目部署到二级域名&#xff0c;特此记录。 一、环境说明 系统&#xff1a; CentOS7.6 应用服务器&#xff1a;Nginx 1.16.1、Tomcat 9.0 安全组已开放端口&#xff1a; 22、80、443、3389 二、解析二级域名并申请 SSL 证书&a…...

星界矿池引领区块链挖矿新时代

近年来&#xff0c;区块链技术和产业在全球范围内快速发展&#xff0c;应用已延伸到数字金融、物联网、智能制造、供应链管理、数字资产交易等多个领域&#xff0c;即使目前与区块链相关的项目层出不穷&#xff0c;但还是暴露出了许多问题。 就拿区块链挖矿产业链来说&#xf…...

牛客网论坛最具争议的Java面试成神笔记,GitHub已下载量已过百万

程序员内部一直流传这一句话&#xff1a; 面试看牛客 刷题看力扣 牛客网作为国内最牛的程序员面试网站&#xff0c;一直在程序员内部颇负盛名&#xff0c;其中用户更是卧虎藏龙! 有国内一线大厂的企业招聘 还有一些低调的互联网大牛实力就和天龙八部里的扫地僧一样&#xff0…...

JAVA大数据的第二十一天——实用类介绍

一、枚举 二、包装类 三、装箱与拆箱 四、String类 五、Random类 l六、length类 七、要点...

PAT Basic Level 1062 最简分数 解题思路及AC代码 v1.0

PAT 乙级 1062 最简分数1. 题目简述及在线测试位置2. 基本思路3. 完整AC代码1. 题目简述及在线测试位置 1.1 给定两个正分数 和 一个正整数&#xff0c;从小到大打印 以正整数为分母 并 介于两个正分数之间的最简分数。最简分数&#xff1a;分子和分母没有公约数 1.2 在线测试…...

大牛:史上最大规模SPAC交易即将落地 腾讯或成幕后赢家

美东时间周四&#xff0c;一位消息人士透露&#xff0c;亿万富翁投资者比尔•阿克曼(Bill Ackman)的空白支票公司即将完成一笔收购环球音乐集团的交易&#xff0c;这将是有史以来规模最大的特殊目的公司收购&#xff08;SPAC&#xff09;交易&#xff0c;而在环球音乐占股20%的…...

循环依赖构造器方式

文章目录构造器方式例子构造器方式 例子 Component public class TestA {private TestB testB;public TestA(TestB testB) {this.testB testB;} } Component public class TestB {private TestA testA;public TestB(TestA testA) {this.testA testA;} }TestA开始&#xff0…...

Laravel Debug mode RCE(CVE-2021-3129)漏洞复现

Laravel Debug mode RCE&#xff08;CVE-2021-3129&#xff09;漏洞复现 前言 这个之前在VNCTF2021的时候遇到过&#xff0c;当时自己只是拿着脚本直接打&#xff0c;并没有对于原理好好了解一下。最近国赛&#xff0c;还有i春秋都出现了以yii和thinkphp为背景的关于日志写ph…...

验证排序算法是否稳定

思路&#xff1a;两个连续数字存储在数组中&#xff0c;内存地址是递增的&#xff0c;只需判断两个相同数字内存地址是否还是递增即可。 具体方案&#xff1a;需要自定义MyInteger对象&#xff0c;因为对象才可获取内存地址。此外&#xff0c;获取对象内存地址&#xff0c;需要…...

OnePlus是什么手机

OnePlus 是一家总部位于深圳的智能手机初创公司和生产商&#xff0c;成立于 2013 年 12 月。该公司声名鹊起&#xff0c;其目标是以实惠的价格提供其智能手机的旗舰级规格。OnePlus 最初仅通过邀请系统销售其智能手机&#xff0c;在该系统中&#xff0c;客户将被邀请购买智能手…...

SCI/SSCI

1. [Information Processing and Management](http://www.letpub.com.cn/index.php?pagejournalapp&viewdetail&journalid3564) (一区)...

倾情分享一个yolo3训练识别旗帜的例子

下列链接是一个yolo3识别旗子的例子 https://github.com/ZzzzzZXxxX/yolo3_keras_Flag_Detection 但是下载之后发现训练之后的模型并不好用&#xff0c;什么旗子都识别不了&#xff0c;于是换另外yolo发布版本训练这个Flag的数据 经过反复折腾终于成功。 链接&#xff1a;htt…...

Ensemble Learning

Ensemble Learning 1 高级集成技术 1.0 决策树 元素&#xff1a; 根结点&#xff1a;包含样本的全集内部节点&#xff1a;对应特征属性测试叶节点&#xff1a;代表决策结果 决策树构建一个二叉树来分割数据&#xff0c;预测时&#xff0c;在树的内部节点处用某一属性值进行判…...

真·杂项:资本论阅读笔记(随缘更新)

Chap1 商品与货币 商品的两个属性&#xff1a;使用价值和价值 商品是使用价值和价值的综合体。 使用价值&#xff1a;物品对人有用&#xff0c;价值分为质&#xff08;属性&#xff09;和量&#xff08;多少&#xff09; 交换价值&#xff1a;一种使用价值和另一种使用价值…...

C++STL算法 mismatch 中string.c_str()无法直接放到容器中

vs下的输出结果如下 .天地玄黄 日月盈昃 辰宿列张 寒来暑往 秋收冬藏 闰余成岁 闰余成岁 8 0 8 8 8 8 8 8 天地玄黄 日月盈昃 辰宿列张 寒来暑往 秋收冬藏 闰余成岁 律吕调阳 8 0 8 8 8 8 8 8 闰余成岁 7 律吕调阳 7 #include<iostream> #include<cstdlib> #includ…...

vue简单基础

引入vue 新建vue对象 绑定作用范围 {{}} 取值 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http…...

1688API、获得商品快递费用

本帖只展示部分代码及接口 需了解更多或开发系统请移步注册测试 http://console.open.onebound.cn/console/?iRookie 测试请求地址: http://open.onebound.cn/test/? { “item”: { “num_iid”: “591734471276”, “location”: null, “area_id”: “2274”, “shipping_…...

160. 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&#…...

Python IDE 详细攻略,拿去吧你~

本文介绍了多个 Python IDE&#xff0c;并评价其优缺点 读者可以参考此文列举的 Python IDE 列表&#xff0c;选择适合自己的编辑器 写 Python 代码最好的方式莫过于使用集成开发环境&#xff08;IDE&#xff09;了。它们不仅能使你的工作更加简单、更具逻辑性&#xff0c;还…...

元力参堂:《披荆斩棘的哥哥》一经上线,能否带动芒果TV会员数增长

随着芒果TV《披荆斩棘的哥哥》大热&#xff0c;播放量就占据了综艺热度榜榜首。芒果超媒发布了2021年半年报&#xff0c;公司2021年1-6月实现营业收入78.53亿元&#xff0c;同比增长36.02%。从财报来看&#xff0c;芒果超媒营收的增长&#xff0c;主要还是来源于其主要业务芒果…...

事件循环机制(Event Loop)刨根问底

事件循环是什么&#xff1f; 为什么有事件循环机制 因为js是单线程的&#xff0c;注意&#xff0c;浏览器是多线程的。浏览器只给一个线程给js渲染&#xff0c; 假设是多线程&#xff0c;可能会存在这种情况&#xff1a; 若一个线程要操作dom,另一个线程要删除dom&#xff0c;就…...

反射动态修改注解属性值

注解Two中有two属性表&#xff0c;在TestTwoAnno这个类初始化结束后&#xff0c;修改Two注解的two属性。 import com.enterprise.support.rocketmq.annotation.Two; import org.springframework.beans.factory.InitializingBean; import org.springframework.stereotype.Compo…...

SpringBoot - MyBatis-Plus使用详解(一)

1&#xff0c;什么是 MyBatis-Plus&#xff1f; &#xff08;1&#xff09;MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。我们可以理解为它已经封装好了一些…...

机器学习----支撑向量机(SVM)

SVM 支持向量机&#xff08;Support Vector Machine, SVM&#xff09; 图中是一个样本空间&#xff0c;里面有一些样本点&#xff0c;分成红色和蓝色两类。 逻辑回归是要找到一根决策边界&#xff0c;由决策边界把数据分成两类。但可能存在这样一些数据&#xff08;下图&…...

采坑记录之node-sass

node-sass这货很容易安装失败 下面是node-sass官网给出的对应node.js版本的图 一定要按照node-sass官网给出的对应node.js版本来安装&#xff0c;不然很容易安装失败 下面是sass-loader版本图 我自己安装的是node.js 14.x版本的&#xff0c;对应的node-sass的版本是4.14.x&a…...

Elasticsearch:使用 Debian 软件包安装 Elasticsearch

Elasticsearch 的 Debian 包可以从我们的网站或我们的 APT 仓库下载。 它可用于在任何基于 Debian 的系统上安装 Elasticsearch&#xff0c;例如 Debian 和 Ubuntu。 Elasticsearch 的最新稳定版本可以在下载 Elasticsearch 页面上找到。 其他版本可以在过去的版本页面上找到。…...

ZZULIOJ 1009: 求平均分

题目描述 已知某位学生的数学、英语和计算机课程的成绩&#xff0c;求该生三门课程的平均分。 输入 输入三个整数&#xff0c;数据之间由空格隔开。 输出 输出占一行&#xff0c;包含一个实数&#xff0c;为三门课的平均分&#xff0c;保留两位小数。 样例输入 87 73 93…...

后端返回状态码401, 获取不到怎么办?

传送门...

Syslog监控监控

Syslog监控概述Syslog常被称为系统日志或系统记录&#xff0c;是一种用来在互联网协定&#xff08;TCP/IP&#xff09;的网络中传递记录档讯息的标准。在监控易中&#xff0c;Syslog监测主要用于对路由器、交换机和防火墙等网络设备的监测&#xff0c;是指用户自定义网络设备监…...

微服务与监控(monitor)

传统的软件属于单块应用的世界。微服务的是多服务多应用的世界。要掌握单块应用的运行情况&#xff0c;只会发生单一的故障点&#xff0c;要追踪问题的发生和修订bug相对较易。而微服务的世界里&#xff0c;由于其运行个体多、部署方式多样&#xff0c;问题点会出现在各处&…...

Zabbix 主动/被动 监控

1、介绍 被动检测&#xff1a;相对于agent而言&#xff1b;agent, server向agent请求获取配置的各监控项相关的数据&#xff0c;agent接收请求、获取数据并响应给server&#xff1b; 主动检测&#xff1a;相对于agent而言&#xff1b;agent(active),agent向server请求与自己相…...

基于SiamMask网络的智能视频监控实时人员跟踪系统

实时视频监控系统广泛应用于公共区域、商业建筑和公共基础设施等各种环境中。在不同的视频监控应用中,人的检测、分割和跟踪是一个关键和关键的任务。研究人员提出了不同的图像处理和基于人工智能的方法(包括机器和深度学习)来检测和跟踪人,但主要包括正面视角相机视角。本文…...

监控知识体系介绍

监控知识体系介绍一、监控基本知识介绍二、监控工具的介绍三、zabbix监控流程四、面试时相关的监控知识一、监控基本知识介绍 1.监控目标 监控是需要站在公司的业务角度去考虑&#xff0c;而不是针对某个监控技术的使用。 1、对系统不间断实时监控&#xff1a;实际上是对系统…...

监控易:为医药行业解决IT运维与业务故障难题

&#xff08;图片来源网络&#xff09; 当前&#xff0c;中国的医药行业正面临新一轮变革&#xff0c;国内的政策环境、产业结构和病患需求都在发生快速变化。突如其来的新冠疫情更是加速了医药产业的数字化进程&#xff0c;为医药产业管理、医药资源配置以及创新药物科研等方面…...

美信“监控易”:海量秒级监控,实现一体化集中运维

随着云计算及物联网的到来&#xff0c;网络化、数字化、智能化成为企业发展的新方向&#xff0c;IT系统的建设成为重中之重&#xff0c;因此运维监控显得尤为重要。面对大量设备的指数型增长&#xff0c;使用传统监控方式的企事业单位普遍面临以下挑战&#xff1a; 挑战 1&…...

[展览人周刊]华展云20170531期

哈喽大家好&#xff0c;欢迎收看【展览人周刊】华展云20170531期 端午蜜粽飘香&#xff0c;工作愉快悠扬~ 小长假结束了&#xff0c;现在要开始加油努力工作了哦 ~ 时刻让自己走在完成目标的道路上&#xff0c;坚持冲破自己的底线~ 世界永远会向那些有目标和远见的人让路 希…...

[展览人周刊]华展云20170710期

哈喽大家好&#xff0c;欢迎收看【华展云20170710周刊】 出路在哪里&#xff1f;出路在于思路, 志在峰巅的攀登者&#xff0c;不会陶醉在沿途的某个脚印中. 早.工作先锋, 新的一周成功挥舞奋斗的大旗,我在华展云等你 【华展云】希望本期周刊&#xff0c;可以陪你度过美好…...

2019 TokenSky深圳站圆满落幕,共建TokenSky链盟大生态

7月26日由上方股份、CSDN、JLAB、华昶实业主办&#xff0c;BQEX、MagicNeWorld、琥珀实业协办的TokenSky区块链生态对接大会深圳站今日在波顿科技园圆满落幕。TokenSky主席、《链管理》学家、上方股份CEO王紫上做开场致辞&#xff0c;在她写的新书《链管理&#xff1a;从公司制…...

深圳市纳姆达科技公司 将全面亮相2022中国国际防伪溯源展及第十七届SDS

日前&#xff0c;深圳市纳姆达科技有限公司确认参与由中国国际科技促进会、中国国际科技促进会证卡票签专业委员会联合主办的2022中国国际防伪溯源技术展览会&#xff08;Track-Tech&#xff09;及第十七届证卡票签安全识别技术展览会暨高峰论坛&#xff08;SDS&#xff09;&am…...

2017年广州国际照明展览会(光亚展)会刊(参展商名录)

2017年广州国际照明展览会&#xff08;光亚展&#xff09;会刊&#xff08;参展商名录&#xff09;展会名称: 2017年第22届广州国际照明展览会    所属展馆: 中国进出口商品交易会展馆    开展时间: 2017-06-09 至 06-12参展商名录参展商共计2342个 华展云为您收集到23…...

钉钉企业内部应用授权免登+鉴权

一、创建应用 在钉钉管理后台-应用开发-企业内部开发-创建应用&#xff08;我们这边创建的是H5微应用&#xff09; 创建好了之后&#xff0c;会拿到应用凭证&#xff1a;AgentId&#xff0c;AppKey&#xff0c;AppSecret 这三个值在开发中会用到 二、授权免登流程 1、前端–…...

2.3 数据库-深入理解

2.3.1 索引 2.3.1.1 局部性原理 在CPU访问寄存器时&#xff0c;都趋于聚集在一片连续的区域中&#xff0c;这就被称为局部性原理。 局部性原理又分为时间局部性&#xff08;temporal locality&#xff09; 和空间局部性 &#xff08;spatial locality&#xff09; 。 时间局部…...

系统架构师论文-论企业应用集成(-集成ERP/PDM/E-mail)

论企业应用集成 -集成ERP/PDM/E-mail [摘要] 本文讨论了某公司的应用系统集成项目。某公司为了应对市场变化的需要&#xff0c;决定把公司几个主要的应用系统ERP系统&#xff0c;PDM系统&#xff0c;E-mail系统集成在一起&#xff0c;系统集成完成后&#xff0c;ERP系统可以…...

Unity 外部资源无法拖入Unity

我使用的是第二种方式 一 .unity 启动使用管理员方式启动 二 . explore.exe 使用管理员方式启动 1. 结束所有explorer.exe任务 2.运行新任务 explorer.exe /nouaccheck 三. cmd命令(管理员) 输入下面代码 explorer.exe /NOUACCHECK...

UNITY读取图片素材的URL并使用

首先获取了Image组件 //根据URL加载图片 cardImage.sprite Resources.Load<Sprite>(data.Url); 这里用的是Resources这个方法&#xff0c; 在这里犯了一个错误&#xff0c;导致获取不到素材 要注意&#xff0c;要在assests下创建一个resources文件夹 将素材…...

unity导入素材时材质丢失素材变成粉红色的解决方法

有很多时候&#xff0c;当我们通过unity asset store或者blender等等外源导入素材时&#xff0c;会出现材质缺失的bug&#xff0c;如下图所示 : 一个很可能的原因&#xff0c;是由于unity本身管线在每个版本的更新过程中&#xff0c;材质的渲染编码发生了改变。由于这种原因引…...

C语言通过宏定义实现便捷打印参数值和参数名

目录1、格式化打印变量名和值2、重定向printf3、头文件支持1、格式化打印变量名和值 Python 3.8以上的版本支持f字符串的变量打印功能1&#xff0c;比如&#xff1a; num 42 print(f{num})输出得到&#xff1a; num42这样的方法提高了调试效率。 我觉得这个方法不错&#…...

【U3D】推荐一些不错的Unity游戏开发素材资源

文章目录游研堂框架示例C#算法资源网络UI性能图形Shader动画特效工具打包序列化编辑器脚本游研堂 游研堂 框架 Unity 基础框架-MyUnityFrameWork Unity 游戏框架-GameFramework Unity 公用框架和工具-Moments Unity 基础框架-TEDCore Unity 小框架-Autoya Unity 公共代码…...