vue+cesium汉化包

2023-11-11

把这个js放进你的项目里面然后调用就可以。我这个是vue项目,然后运用的是es6的导出语法

/**
 * cesium 可视化部分的中文汉化,包含内容如下:
 * 1、汉化方式非从源码层面进行,而是外挂了一个插件执行,使用方便,但是汉化程度不深,只汉化了cesium可见的控件部分
 * 2、汉化内容包括:
 *  1)、右上角所有工具,包括影像选择的显示标题,鼠标滑过title,帮助面板描述等
 *  2)、左下角动画面板
 *  3)、状态栏时间刻度线、全屏按钮
 *  4)、cesium 描述字符
 * 3、中文通过百度、谷歌翻译实现
 * 4、针对cesium 1.58版本汉化
 * 
 */


function getChineseMaps() {
	return {
		"Enter an address or landmark...": "请输入搜索地址...",
		"View Home": "初始视图",
		"Columbus View": "二维水平视图",
		"2D": "二维垂直视图",
		"3D": "三维视图",
		"Navigation Instructions": "帮助",
		//图层
		"Imagery": "影像",
		"Cesium ion": "推荐",
		"Other": "其他",
		"Terrain": "三维地形",
		"Bing Maps Aerial": "必应航空地图",
		"Bing Maps Aerial with Labels": "必应航空地图(带标注)",
		"Bing Maps Roads": "必应道路地图",
		"Sentinel-2": "哨兵卫星影像-2",
		"Blue Marble": "蓝色弹珠",
		"Earth at night": "地球之夜",
		"Natural Earth II": "自然地球II",
		"Mapbox Satellite": "Mapbox 卫星影像",
		"Mapbox Streets": "Mapbox 道路",
		"Mapbox Streets Classic": "Mapbox 道路(分类)",
		"ESRI World Imagery": "ESRI 影像",
		"ESRI World Street Map": "ESRI 道路",
		"ESRI National Geographic": "ESRI 自然地理",
		"Open­Street­Map": "Open­Street­Map矢量",
		"Stamen Watercolor": "雄蕊彩色",
		"Stamen Toner": "雄蕊黑白",
		"WGS84 Ellipsoid": "WGS84 椭球",
		"Cesium World Terrain": "Cesium 世界地形图",
		"Bing Maps aerial imagery, provided by Cesium ion": "必应航空地图,Cesium提供",
		"Bing Maps aerial imagery with labels, provided by Cesium ion": "必应航空地图(带标注),Cesium提供",
		"Bing Maps standard road maps, provided by Cesium ion": "必应道路地图,Cesium推荐",
		"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).": "哨兵卫星影像-2,由EOX IT服务有限公司提供无云话服务(包括修改2016-2017年的哥白尼定点数据)",
		"Blue Marble Next Generation July, 2004 imagery from NASA.": "蓝色弹珠影像,美国宇航局2004年拍摄",
		"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.": "地球之夜,也被称为黑色大理石,是美国宇航局发布的一个500米分辨率的全球复合图像层。",
		"Natural Earth II, darkened for contrast.\nhttp://www.naturalearthdata.com/": "自然地球II,变暗以形成对比\nhttp://www.naturalearthdata.com/",
		"Mapbox satellite imagery https://www.mapbox.com/maps/": "Mapbox 卫星影像 https://www.mapbox.com/maps/",
		"Mapbox streets imagery https://www.mapbox.com/maps/": "Mapbox 道路影像 https://www.mapbox.com/maps/",
		"Mapbox streets basic imagery https://www.mapbox.com/maps/": "Mapbox 道路影像(分类)https://www.mapbox.com/maps/",
		"World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide.  The map includes NASA Blue Marble: Next Generation 500m resolution imagery at small scales (above 1:1,000,000), i-cubed 15m eSAT imagery at medium-to-large scales (down to 1:70,000) for the world, and USGS 15m Landsat imagery for Antarctica. The map features 0.3m resolution imagery in the continental United States and 0.6m resolution imagery in parts of Western Europe from DigitalGlobe. In other parts of the world, 1 meter resolution imagery is available from GeoEye IKONOS, i-cubed Nationwide Prime, Getmapping, AeroGRID, IGN Spain, and IGP Portugal.  Additionally, imagery at different resolutions has been contributed by the GIS User Community.\nhttp://www.esri.com": "World Imagery在世界许多地方提供一米或更好的卫星和航空影像,并在全球范围内提供分辨率较低的卫星图像。 该地图包括美国宇航局蓝色大理石:小规模(1:1,000,000以上)的下一代500米分辨率图像,世界上大中型(低至1:70,000)的i-cubed 15米eSAT图像,以及USGS 15m Landsat 南极洲的图像。 该地图在美国大陆以0.3米分辨率图像为特色,在西欧部分地区以DigitalGlobe为0.6米分辨率图像。 在世界其他地方,可以从GeoEye IKONOS,i-cubed Nationwide Prime,Getmapping,AeroGRID,IGN Spain和IGP Portugal获得1米分辨率的图像。 此外,GIS用户社区也提供了不同分辨率的图像。\nhttp://www.esri.com",
		"This worldwide street map presents highway-level data for the world. Street-level data includes the United States; much of Canada; Japan; most countries in Europe; Australia and New Zealand; India; parts of South America including Argentina, Brazil, Chile, Colombia, and Venezuela; Ghana; and parts of southern Africa including Botswana, Lesotho, Namibia, South Africa, and Swaziland.\nhttp://www.esri.com": "这张全球街道地图显示了世界各地的公路级数据。 街道数据包括美国; 加拿大大部分地区 日本; 欧洲大部分国家; 澳大利亚和新西兰; 印度; 南美洲的部分地区包括阿根廷,巴西,智利,哥伦比亚和委内瑞拉; 加纳; 和南部非洲的部分地区,包括博茨瓦纳,莱索托,纳米比亚,南非和斯威士兰。\nhttp://www.esri.com",
		"This web map contains the National Geographic World Map service. This map service is designed to be used as a general reference map for informational and educational purposes as well as a basemap by GIS professionals and other users for creating web maps and web mapping applications.\nhttp://www.esri.com": "此Web地图包含国家地理世界地图服务。 此地图服务旨在用作信息和教育目的的一般参考地图,以及GIS专业人员和其他用户创建Web地图和Web地图应用程序的底图。\nhttp://www.esri.com",
		"OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world.\nhttp://www.openstreetmap.org": "OpenStreetMap(OSM)是一个协作项目,用于创建可自由编辑的世界地图。\nhttp://www.openstreetmap.org",
		"Reminiscent of hand drawn maps, Stamen watercolor maps apply raster effect area washes and organic edges over a paper texture to add warm pop to any map.\nhttp://maps.stamen.com": "让人联想到手绘地图,雄蕊水彩地图在纸张纹理上应用栅格效果区域清洗和有机边缘,为任何地图添加温暖的流行。\nhttp://maps.stamen.com",
		"A high contrast black and white map.\nhttp://maps.stamen.com": "高对比度的黑白地图。\nhttp://maps.stamen.com",
		"WGS84 standard ellipsoid, also known as EPSG:4326": "WGS84标准椭球,又称EPSG:4326",
		"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion": "高分辨率全球地形图块集由几个数据源组成,由Cesium ion托管",
		//帮助
		"Mouse": "鼠标",
		"Touch": "手势",
		"Pan view": "平移视图",
		"Left click + drag": "左键+拖拽",
		"Zoom view": "缩放视图",
		"Right click + drag, or": "右键+拖拽,或者",
		"Mouse wheel scroll": "鼠标滚动滚动",
		"Rotate view": "旋转视图",
		"Middle click + drag, or": "中间滚动按下拖拽,或者",
		"CTRL + Left/Right click + drag": "CTRL +左/右 单击+拖拽",
		"One finger drag": "单指拽",
		"Two finger pinch": "两指捏",
		"Tilt view": "倾斜视图",
		"Two finger drag, same direction": "双指拖动,方向相同",
		"Two finger drag, opposite direction": "双指拖动,方向相反",
		//全屏
		"Full screen": "全屏",
		"Exit full screen": "退出全屏",
		//动画控件
		"Today (real-time)": "今天(实际时间)",
		"Play Reverse": "逆时针播放",
		"Play Forward": "顺时针播放",
		"Pause": "暂停",
		"cesium_description": "此应用程序使用Cesium的默认令牌访问。 在进行任何Cesium API调用之前,请使用您的帐户为Cesium.Ion.defaultAccessToken分配访问令牌。 您可以注册免费的Cesium帐户",
		"Data attribution": "数据归属",
		//月份
		"Jan": "1月",
		"Feb": "2月",
		"Mar": "3月",
		"Apr": "4月",
		"May": "5月",
		"Jun": "6月",
		"Jul": "7月",
		"Aug": "8月",
		"Sep": "9月",
		"Oct": "10月",
		"Nov": "11月",
		"Dec": "12月",
	}
}

/**
 * 工具条汉化
 */
function loadToolbar() {
	//工具条鼠标悬浮提示汉化
	loadToolBarTitle();
	//图层选择汉化
	loadBaseLayerPickerOfToolbar();
	//帮助面板汉化
	loadToolBarHelp();
}

/**
 * 工具条鼠标悬浮提示汉化
 */
function loadToolBarTitle() {
	var titles = getChineseMaps();

	//搜索
	updateAttribute(document, titles, "cesium-geocoder-input", "placeholder");

	//模式切换鼠标滑过提示
	updateAttributeByEvent(document, titles, "cesium-sceneModePicker-button3D", "title", "onmouseover");
	updateAttribute(document, titles, "cesium-sceneModePicker-dropDown-icon", "title");

	//初始视图
	updateAttribute(document, titles, "cesium-home-button", "title");

	//帮助
	updateAttribute(document, titles, "cesium-navigation-help-button", "title");
}

/**
 * 图层选择汉化
 */
function loadBaseLayerPickerOfToolbar() {
	//图层选择需要汉化对象
	var layers = getChineseMaps();

	//获取容器
	var dropDownContainer = document.getElementsByClassName("cesium-baseLayerPicker-dropDown");
	if (dropDownContainer.length > 0) {
		dropDownContainer = dropDownContainer[0];
		//修改标题
		updateHtml(dropDownContainer, layers, "cesium-baseLayerPicker-sectionTitle");
		//副标题
		updateHtml(dropDownContainer, layers, "cesium-baseLayerPicker-categoryTitle");
		//具体标签
		updateHtml(dropDownContainer, layers, "cesium-baseLayerPicker-itemLabel");
		//具体地图描述
		updateAttribute(dropDownContainer, layers, "cesium-baseLayerPicker-item", "title");

		//鼠标悬浮事件监听,解决选择不同影像title 动态修改无法固定汉化问题
		var selectLayerToolbar = document.getElementsByClassName("cesium-baseLayerPicker-selected");
		if (selectLayerToolbar.length > 0) {
			selectLayerToolbar[0].parentElement.onmouseover = function (event) {
				var currentTitle = event.currentTarget.getAttribute("title");
				var currentTargets = currentTitle.split("\n");
				var tempTitle1 = "";
				var tempTitle2 = "";
				if (layers[currentTargets[0]])
					tempTitle1 += layers[currentTargets[0]];
				else
					tempTitle1 += currentTargets[0];

				if (layers[currentTargets[0]])
					tempTitle2 += layers[currentTargets[1]];
				else
					tempTitle2 += currentTargets[1];
				event.currentTarget.setAttribute("title", tempTitle1 + "\n" + tempTitle2);
			}
		}
	}
}

/**
 * 工具条帮助面板汉化
 */
function loadToolBarHelp() {
	var texts = getChineseMaps();

	//鼠标
	var mouseButton = document.getElementsByClassName("cesium-navigation-button-left");
	if (mouseButton.length > 0) {
		mouseButton = mouseButton[0];
		if (texts[mouseButton.textContent])
			mouseButton.innerHTML = mouseButton.children[0].outerHTML + texts[mouseButton.textContent];
	}

	var touchButton = document.getElementsByClassName("cesium-navigation-button-right");
	if (touchButton.length > 0) {
		touchButton = touchButton[0];
		if (texts[touchButton.textContent])
			touchButton.innerHTML = touchButton.children[0].outerHTML + texts[touchButton.textContent];
	}

	updateHtml(document, texts, "cesium-navigation-help-pan");
	updateHtml(document, texts, "cesium-navigation-help-details");
	updateHtml(document, texts, "cesium-navigation-help-zoom");
	updateHtml(document, texts, "cesium-navigation-help-rotate");
	updateHtml(document, texts, "cesium-navigation-help-tilt");
}

/**
 * 全屏显示汉化
 */
function loadFullExtent() {
	var titles = getChineseMaps();

	updateAttributeByEvent(document, titles, "cesium-fullscreenButton", "title", "onmouseover");
}

/**
 * 动画控件汉化
 */
function loadFlyController() {
	var titles = getChineseMaps();
	var parentContainer = document.getElementsByClassName("cesium-viewer-animationContainer");
	if (parentContainer.length > 0) {
		parentContainer = parentContainer[0];
		updateHtmlByTagName(parentContainer, titles, "title");

		var datedes = parentContainer.getElementsByClassName("cesium-animation-svgText");
		for (var i = 0; i < datedes.length; i++) {
			var text = datedes[i].children[0].innerHTML;
			var texts = text.split(" ");
			if (texts.length == 3) {
				datedes[i].children[0].innerHTML = texts[2] + "年" + titles[texts[0]] + texts[1] + "日";
			}
			else if (texts.length == 2) {
				datedes[i].children[0].innerHTML = texts[0] + "标准时间";
				datedes[i].addEventListener('DOMNodeInserted', function (e) {
					e = e || event;
					e.target.nodeValue = e.target.nodeValue.split(" ")[0] + "标准时间";
				});
			}
		}
	}

	//修改底部描述
	var cesiumDescription = document.getElementsByClassName("cesium-credit-textContainer");
	if (cesiumDescription.length > 0) {
		var insertEvent = function () {
			// var insertEvent = function (e) {
			// e = e || event;
			cesiumDescription[0].removeEventListener("DOMNodeInserted", insertEvent);

			if (cesiumDescription[0].children.length > 0 && cesiumDescription[0].children[0].children.length > 0)
				cesiumDescription[0].children[0].children[0].innerHTML = titles["cesium_description"];
		};
		cesiumDescription[0].addEventListener('DOMNodeInserted', insertEvent);
	}

	//数据归属
	updateHtml(document, titles, "cesium-credit-expand-link");

	var timeLineBar = document.getElementsByClassName("cesium-timeline-bar");
	if (timeLineBar.length > 0) {
		timeLineBar = timeLineBar[0];
		timeLineBar.addEventListener('DOMNodeInserted', function (e) {
			e = e || event;
			if (e.target.nodeType == 3)
				return;
			if (e.target.getAttribute("class") == "cesium-timeline-ticLabel") {
				var texts = e.target.innerHTML.split(" ");
				if (texts.length > 3) {
					var resultText = texts[2] + "年" + titles[texts[0]] + texts[1] + "日 " + texts[3] + "";
					e.target.innerHTML = resultText;
				}
			}
		});

		var labels = timeLineBar.getElementsByClassName("cesium-timeline-ticLabel");
		for (var o = 0; o < labels.length; o++) {
			var longTexts = labels[o].innerHTML.split(" ");
			if (longTexts.length > 3) {
				var resultText = longTexts[2] + "年" + titles[longTexts[0]] + longTexts[1] + "日 " + longTexts[3] + "";
				labels[o].innerHTML = resultText;
			}
		}
	}
}

/**
 * 更新dom innerHtml
 * @param {*} parent 父容器对象
 * @param {*} map 汉化对象
 * @param {*} className class名称
 */
function updateHtml(parent, map, className) {
	if (!parent)
		parent = document;

	var doms = parent.getElementsByClassName(className);
	for (var i = 0; i < doms.length; i++) {
		if (map[doms[i].innerHTML])
			doms[i].innerHTML = map[doms[i].innerHTML];
	}
}

/**
 * 更新dom innerHtml
 * @param {*} parent 父容器对象
 * @param {*} map 汉化对象
 * @param {*} tagName 标签名称
 */
function updateHtmlByTagName(parent, map, tagName) {
	if (!parent)
		parent = document;

	var doms = parent.getElementsByTagName(tagName);
	for (var i = 0; i < doms.length; i++) {
		if (map[doms[i].innerHTML])
			doms[i].innerHTML = map[doms[i].innerHTML];
	}
}

/**
 * 更新dom innerHtml
 * @param {*} parent 父容器对象
 * @param {*} map 汉化对象
 * @param {*} className class名称
 * @param {*} attributeName 属性名称
 */
function updateAttribute(parent, map, className, attributeName) {
	if (!parent)
		parent = document;

	var doms = parent.getElementsByClassName(className);
	for (var i = 0; i < doms.length; i++) {
		if (map[doms[i].getAttribute(attributeName)])
			doms[i].setAttribute(attributeName, map[doms[i].getAttribute(attributeName)]);
	}
}

/**
 * 通过事件更新属性
 * @param {*} parent 父容器
 * @param {*} map 汉化对象
 * @param {*} className 样式名称
 * @param {*} attributeName 属性名称
 * @param {*} eventName 事件名称
 */
function updateAttributeByEvent(parent, map, className, attributeName, eventName) {
	var doms = parent.getElementsByClassName(className);
	if (doms.length > 0) {
		for (var i = 0; i < doms.length; i++) {
			doms[i][eventName] = function (event) {
				var attr = event.currentTarget.getAttribute(attributeName);
				if (map[attr])
					event.currentTarget.setAttribute(attributeName, map[attr]);
			}
		}
	}
}

var CesiumZh = {
	/**
	 * 调用汉化方法
	 * @param {*} viewer 
	 */
	load: function () {
		//工具条汉化
		loadToolbar();
		//全屏汉化
		loadFullExtent();
		//加载动画控件
		loadFlyController();
	}
}

export default CesiumZh

然后hello.vue里面就是调用。然后就成功了

import CesiumZh from "../utils/cesiumlocal";
console.warn('CesiumZh',CesiumZh)
CesiumZh.load();

在这里插入图片描述
代码参考于:https://blog.csdn.net/du_5pet/article/details/99716321
希望能帮到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue+cesium汉化包 的相关文章

  • 使用 Angular 将焦点捕获在 html 容器中

    我正在构建一个可访问的网站并尝试管理焦点 我需要打开一个模式 然后将焦点放在模式中的第一个元素上 然后捕获焦点 直到模式关闭 取消 或 接受 HTML a href Open Modal a div h3 Terms of Service
  • 打印带有图像的 html(每个图像在单独的页面上)

    我有一个带有图像的 HTML img img img img 打印时 我希望每个图像都位于单独的页面上 根据打印尺寸 现在我把图像从中间切掉了 有什么办法可以解决吗 您可以尝试以下方法 p p
  • 循环选项在 youtube js api 中不起作用

    我想知道为什么我的代码不循环播放视频 除了循环选项之外 一切正常 我真的需要它 多谢 div You need Flash player 8 and JavaScript enabled to view this video div
  • 将nodejs Express静态请求重定向到https

    我需要将所有 http 请求重定向到 https 包括对静态文件的请求 My code app use express static dirname public app get function req res if req secure
  • 禁用 chrome React DevTools 以进行生产

    我正在尝试使用 gulp 和 envify 对我的 React 应用程序进行浏览器化以设置 NODE ENV 因此 我可以删除反应警告 控制台中的错误报告 甚至我的代码来禁用某些功能 例如react addons perf的要求 而且效果很
  • (IE 特定)如何确定输入的文本是否比输入元素的宽度长

    这是所有版本 IE 特有的问题 在所有其他浏览器中 当文本溢出时 输入元素的scrollWidth 大于输入元素的clientWidth 有没有办法确定IE中输入字段中的文本超出了输入元素宽度的键 下面是一个检查 clientWidth 与
  • 当 img.crossOrigin="Anonymous" 时,Chrome MJPEG CORS“响应无效”

    Image from origin http 192 168 1 67 5555 has been blocked from loading by Cross Origin Resource Sharing policy Invalid r
  • 优化重叠矩形的绘制

    我有很多矩形 有些与其他矩形重叠 每个矩形都有一个绝对 z 顺序和一个colour 每个 矩形 实际上是粒子效果 网格或纹理的轴对齐边界框 并且可能是半透明的 但只要您不尝试剔除其他矩形后面的矩形 就更容易抽象地思考彩色矩形 所以我将在问题
  • 用于自由形式绘图的 javascript 库

    是否有一个 JavaScript 库可以让我在网页上绘图 然后保存该绘图的状态 我想使用鼠标绘制 2D 图像 然后如何存储和加载该绘图 使用 HTML5 画布 绘制图像的简单示例如下 http jsfiddle net ghostoy wT
  • 将 MVC 操作结果发送到打印机

    我有一个带有操作的控制器 SomeController ActionToBePrinted ActionToBePrinted 返回一个 html 视图 当按下按钮时 从普通的 mvc razor 视图调用此操作 当按下按钮时 我将如何将视
  • 如何在 Ionic 2 中动态创建具有特定类的模式?

    嗨 我已经被一个问题困扰好几天了 到目前为止还没有研究证明足够 我正在尝试在 Ionic 2 中创建一个具有特定类 或 id 的简单模式 我需要这样简单的东西
  • 如何验证单选按钮?

    我的 Rails 应用程序中有一个单选按钮 我想编写一个 java 脚本代码 在未选择任何选项时验证这一点 在你的 votes 类中做类似的事情 class Myvotes lt ActiveRecord Base validates vo
  • 无法将中间件与 Firebase 和 NuxtJS 3 一起使用

    我正在尝试在示例项目中使用 Firebase 身份验证 身份验证按预期工作 但是一旦我想使用中间件来阻止用户访问管理页面或在已经登录的情况下访问登录页面 这是不可能的 我已经尝试了几个小时 但没有任何效果 这是我的package json
  • ES6 Promises/在满足多个 Promise 后调用函数(不能使用 Promises.all)[重复]

    这个问题在这里已经有答案了 我正在编写 Javascript 它需要这些事件按以下顺序发生 同时触发多个 API 调用 所有调用完成且响应返回后 执行一行代码 听起来很简单 但棘手的部分是我不能使用 Promises all 因为我仍然希望
  • 为什么 if 语句中的赋值等于 true?

    首先我要说的是我理解两者之间的区别 and 第一个用于将右侧值分配给左侧变量 第二个用于比较两个值的等价性 第三个不仅用于等价性 还用于类型比较 即true 1会回来false 所以我知道almost任何时候你看到if 作者很有可能打算使用
  • 用于验证网络路径的正则表达式 PHP、jQuery、JavaScript、Ruby

    尝试找出用于验证网络路径的正则表达式 即 comp xyz or comp or comp x y z storage或者所有部分都更长的东西 但希望能够传达其要点 我目前拥有的是一个简单的输入字段 用户可以通过它传递信息 事情是我不希望他
  • 如何在没有查询参数的情况下重新加载页面?

    假设我想重新加载www domain com abc num 4 但我想重新加载www domain com abcONLY 问号后没有所有内容 window location window location href split 0
  • jQuery.ajax() 记录 HTTP 请求

    我有一个发送 HTTP POST 请求的函数 我想记录它以进行调试 这是函数 function serverRequest URL DATA callback ajax url URL type POST dataType text con
  • javascript捕获文本区域中的粘贴事件

    我目前有一个文本区域 我需要控制已粘贴的文本 本质上 我需要能够将用户想要粘贴到文本区域中的任何内容并将其放入变量中 然后我将计算出他们粘贴文本的位置和字符串的大小 以将其从文本区域中删除 然后最后用我自己的方式处理变量中的文本 我的问题
  • 来自 ajax 的 Bootstrap 表 json

    我有 ajax 和 bootstrap 表的问题 我有一个 ajax JSON 我用这个方法调用 document ready function ajax url php process php method fetchdata dataT

随机推荐

  • String s = new String("abc");产生了几个对象?

    对于这个问题 老套路先上代码 public class StringTest public static void main String args String s1 Hello String s2 Hello String s3 new
  • ZooKeeper在Spark的使用

    摘抄一段 ZooKeeper 官网的一句话 大意就是 ZooKeeper 为分布式应用提供了高效可靠的分布式协调服务 提供了统一命名服务 配置管理和分布式锁等分布式的基础服务 ZooKeeper is a centralized servi
  • 数据结构实验6:二叉树的遍历,深度计算,度为1的个数

    题目 1 实现二叉树前序 中序 后序遍历的递归算法 2 计算二叉树的深度 递归和非递归算法 3 统计二叉树度为1的节点个数 递归和非递归算法
  • JS使用及mysql 查询语句

    目录 1 javascript的使用方式1 2 js的使用方式2 3 js中定义变量以及数据类型划分 4 Js之运算符 5 js之流程控制语句 6 js事件编程的三要素 7 javascript中如何定义函数以及调用函数 8 js中Date
  • 请问VARCHAR2(128)能存多少个汉字?

    Q 请问VARCHAR2 128 能存多少个汉字 A 看看什么字符集 或者看单个汉字几个字节lengthb Q 请问怎样查看你所提出的两个问题 A oracle中length 与lengthb 区别 SQL gt select length
  • 多个数计算最大公约数与最小公倍数的模板

    这是道计算两个数的最大公约数与最小公倍数的题目 辗转相除法实现计算最大公约数 多个数的最大公约数 计算多个数的最大公约数的算法思路 计算前两个数是最大公约数 记为gcd 再计算gcd与第三个数的最大公约数 更新gcd为本次计算的最大公约数
  • 如何检查 Docker 镜像是否存在漏洞

    Docker 可以将应用程序及其依赖项打包到一个虚拟容器中 该容器可以在任何 Linux Windows 或 macOS 计算机上运行 这使应用程序可以在各种位置运行 例如本地 公共 请参阅分散计算 分布式计算和云计算 或私有云 在 Lin
  • 正规式和正则表达式的异同

    正规式的定义及使用方法 转自正规式 设 是有穷字母表 并定义辅助字母表 都是 上的正规式 它们所表示的正规集为 任何a是一个正规式 若a 它所表示的正规集为 a 如果R1和R2是正规式 它们表示的正规集分别为L1和L2 则 R1 R2 R1
  • 滤波电容容值与所滤噪声频率的关系

    去耦电容的选择不存在与频率的精确对应关系 理论上越大越好 但现实中所有器件都不是理想器件 不论何种电容 ESL ESR都是必然存在的 于是实际电容的频响曲线明显呈非线性 仅在一定频率区间内基本符合纯电容的理论计算结果 超出一定界限后就与理论
  • Chaincode之间调用

    API InvokeChaincode 可以一个chaincode中调用另外一个chaincode中的函数 两个chaincode需要安装在相同的peer结点中 如果只需要查询被调链码的世界状态 可以在不同通道中进行 如果涉及更新操作 两个
  • QT中为生成的exe运行文件添加图标

    1 准备好ico图标文件名字为test ico 最好放在和 pro文件同一个文件夹中 2 创建一个叫icon rc的文件 里面写上文本信息IDI ICON1 ICON test ico 保存好 3 在pro文件中添加代码 RC FILE i
  • 09.Javascript设计模式之装饰器模式----Decorator

    09 Javascript设计模式之装饰器模式 Decorator 首先 我非常遗憾的要说一声 我花了两个小时整理的关于装饰器模式的笔记 因为一个不可预期的故障 ADoc文档上传到服务器后 文件损坏了 文件毫无备份 难道是我的笔记中包含法律
  • 数据结构--线性表详解(一)

    这里写链接内容1 前言 线性表是最常用且是最简单的一种数据结构 形如 A1 A2 A3 An这样含有有限的数据序列 我们就称之为线性表 2 线性表的两种表示形式 顺序表示 其实就是数组 链表表示 3 线性表一般操作的介绍 线性表一般包含如下
  • Swift语法学习--实用函数&关键词

    文章目录 abs min max swap filter map reduce Defer guard let 自定义运算符 abs min max swap filter map reduce Defer guard let 自定义运算符
  • 人脸识别系统具有哪些管理功能

    人脸识别系统是一个具有名单管理 资源管理 布控管理 任务管理的多功能系统 主要功能有 1 名单管理 对名单库及库内名单进行管理 支持用户新增 修改 删除名单库 也可以对库内名单进行新增 修改 删除等动作 2 资源管理 对布控点及布控点内的人
  • [学习flex] 1.利用flex实现文字和谐小程序

    灵感来自于09平台dota1 游戏选手对喷时经常互飙国粹 问候对方全家 后来09平台进行了聊天和谐 不和谐的文字都会被 替换 今天我就就用flex实现类似的效果 话不多说上flex代码 脏话 printf 国粹 printf printf
  • BF算法与KMP模式匹配算法(画图详解,C语言实现)

    KMP算法 1 BF算法 1 1BF算法定义 1 2BF算法举例 1 3BF算法代码实现 1 4BF算法性能分析 2 KMP算法 2 1KMP算法与BF算法的区别 2 2求KMP算法next数组 2 3KMP算法的过程举例 2 4KMP算法
  • attr 和 prop 的区别介绍

    attr 和 prop 的区别介绍 对于 HTML 元素本身就带有的固有属性 在处理时 使用 prop 方法 对于 HTML 元素我们自己自定义的 DOM 属性 在处理时 使用 attr 方法 实例 1 a href https www r
  • Cesium设置时间类

    场景时钟类 export default class SceneClock viewer multiplier constructor viewer this viewer viewer 设置场景时钟 param start 开始时间 pa
  • vue+cesium汉化包

    把这个js放进你的项目里面然后调用就可以 我这个是vue项目 然后运用的是es6的导出语法 cesium 可视化部分的中文汉化 包含内容如下 1 汉化方式非从源码层面进行 而是外挂了一个插件执行 使用方便 但是汉化程度不深 只汉化了cesi