开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 50

wolfbruce/MapGIS-WebClient-JavaScript

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (40)
标签 (9)
master
10.6.0.10
dev
10.6.0
yangkun
webclient_plot
10.5.6
yangkun_tiedi
yangkun_plot
10.5.5
master_fixbug
lzt_dev
dependabot/npm_and_yarn/website/follow-redirects-1.14.8
dependabot/npm_and_yarn/website/node-sass-7.0.0
dependabot/npm_and_yarn/website/postcss-7.0.39
cesium_1_84
ljy
yangkun_12_9
yangkun_12_3
mapvToMaster
10.6.0.10
10.5.6.10
10.5.5.14
10.5.5.13
onemap_10.5.4.10
v10.5.5.10
ceping
v10.5.4.10
10.5.3.10
master
分支 (40)
标签 (9)
master
10.6.0.10
dev
10.6.0
yangkun
webclient_plot
10.5.6
yangkun_tiedi
yangkun_plot
10.5.5
master_fixbug
lzt_dev
dependabot/npm_and_yarn/website/follow-redirects-1.14.8
dependabot/npm_and_yarn/website/node-sass-7.0.0
dependabot/npm_and_yarn/website/postcss-7.0.39
cesium_1_84
ljy
yangkun_12_9
yangkun_12_3
mapvToMaster
10.6.0.10
10.5.6.10
10.5.5.14
10.5.5.13
onemap_10.5.4.10
v10.5.5.10
ceping
v10.5.4.10
10.5.3.10
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (40)
标签 (9)
master
10.6.0.10
dev
10.6.0
yangkun
webclient_plot
10.5.6
yangkun_tiedi
yangkun_plot
10.5.5
master_fixbug
lzt_dev
dependabot/npm_and_yarn/website/follow-redirects-1.14.8
dependabot/npm_and_yarn/website/node-sass-7.0.0
dependabot/npm_and_yarn/website/postcss-7.0.39
cesium_1_84
ljy
yangkun_12_9
yangkun_12_3
mapvToMaster
10.6.0.10
10.5.6.10
10.5.5.14
10.5.5.13
onemap_10.5.4.10
v10.5.5.10
ceping
v10.5.4.10
10.5.3.10
MapExtend.js 4.84 KB
一键复制 编辑 原始数据 按行查看 历史
import mapboxgl from '@mapgis/mapbox-gl';
/**
* @function mapboxgl.Zondy.MapExtend
* @description 扩展了 mapboxgl.Map 对图层相关的操作。
* @private
*/
export var MapExtend = function () {
mapboxgl.Map.prototype.overlayLayersManager = {};
// mapboxgl.Map.prototype.addLayerBak = mapboxgl.Map.prototype.addLayerBak;
mapboxgl.Map.prototype.addLayer = function (layer, before) {
if (layer.source || layer.type === 'custom' || layer.type === "background") {
this.addLayerBak(layer, before);
return this;
}
if (this.overlayLayersManager[layer.id] || this.style._layers[layer.id]) {
this.fire('error', {
error: new Error('A layer with this id already exists.')
});
return;
}
// addLayer(layer, this);
this._addLayer(layer, this);
this.overlayLayersManager[layer.id] = layer;
return this;
};
mapboxgl.Map.prototype.getLayer = function (id) {
if (this.overlayLayersManager[id]) {
return this.overlayLayersManager[id];
}
return this.style.getLayer(id);
};
mapboxgl.Map.prototype.moveLayer = function (id, beforeId) {
if (this.overlayLayersManager[id]) {
moveLayer(id, beforeId);
return this;
}
if (this.style._layers[id]) {
this.style.moveLayer(id, beforeId);
this._update(true);
return this;
}
};
mapboxgl.Map.prototype.removeLayer = function (id) {
if (this.overlayLayersManager[id]) {
removeLayer(this.overlayLayersManager[id]);
delete this.overlayLayersManager[id];
return this;
}
this.style.removeLayer(id);
this._update(true);
return this;
};
//目前扩展的overlayer,只支持显示或隐藏图层操作
mapboxgl.Map.prototype.setLayoutProperty = function (layerID, name, value) {
if (this.overlayLayersManager[layerID]) {
if (name === "visibility") {
if (value === "visible") {
value = true;
} else {
value = false;
}
setVisibility(this.overlayLayersManager[layerID], value);
this.style.fire('data', {dataType: 'style'});
}
return this;
}
this.style.setLayoutProperty(layerID, name, value);
this._update(true);
return this;
};
mapboxgl.Map.prototype.updateTransform = function (units, originX, originY, centerX, centerY, width, height) {
this.transform.units = units;
this.transform.latRange = [this._tileExtent[1], this._tileExtent[3]];
this.transform.lngRange = [this._tileExtent[0], this._tileExtent[2]];
var mercatorZfromAltitude = this.mercatorZfromAltitude;
mapboxgl.MercatorCoordinate.fromLngLat = function (lngLatLike, altitude) {
altitude = altitude || 0;
const lngLat = mapboxgl.LngLat.convert(lngLatLike);
return new mapboxgl.MercatorCoordinate(
(lngLat.lng - originX) / width,
(originY - lngLat.lat) / height,
mercatorZfromAltitude(altitude, lngLat.lat));
};
mapboxgl.MercatorCoordinate.prototype.toLngLat = function () {
return new mapboxgl.LngLat(
this.x * width + originX,
originY - this.y * height);
};
this.customConvertPoint = window.URL.createObjectURL(new Blob(['customConvertPoint = {projectX:function(x){return (x - ' + centerX + ') / ' + width + ' + 0.5},projectY:function(y){y = 0.5 - ((y - ' + centerY + ') / ' + height + ');return y < 0 ? 0 : y > 1 ? 1 : y;},toY:function(y){return (0.5-y)*' + height + '+' + centerY + ';}}'],{type:"text/javascript"}));
}
function addLayer(layer, map) {
layer.onAdd && layer.onAdd(map);
}
/**
* @function mapboxgl.Zondy.MapExtend.prototype.removeFromMap
* @description 移除事件。
*/
function removeLayer(layer) {
layer.removeFromMap && layer.removeFromMap();
}
/**
* @function mapboxgl.Zondy.MapExtend.prototype.setVisibility
* @description 设置图层可见性,设置图层的隐藏,显示,重绘的相应的可见标记。
* @param {boolean} [visibility] - 是否显示图层(当前地图的 resolution 在最大最小 resolution 之间)。
*/
function setVisibility(layer, visibility) {
layer.setVisibility && layer.setVisibility(visibility);
}
/**
* @function mapboxgl.Zondy.MapExtend.prototype.moveTo
* @description 将图层移动到某个图层之前。
* @param {string} layerID -待插入的图层 ID。
* @param {boolean} [beforeLayerID] - 是否将本图层插入到图层 id 为 layerID 的图层之前(如果为 false 则将本图层插入到图层 id 为 layerID 的图层之后)。
*/
function moveLayer(layerID, beforeLayerID) {
var layer = document.getElementById(layerID);
// var beforeLayer;
if (beforeLayerID) {
var beforeLayer = document.getElementById(beforeLayerID);
if (!beforeLayer) {
mapboxgl.Evented.prototype.fire("error", {
error: new Error(`Layer with id "${beforeLayerID}" does not exist on this document.`)
});
}
}
if (layer && beforeLayer) {
beforeLayer.parentNode.insertBefore(layer, beforeLayer);
} else {
//当没有传入beforeLayerID ,则默认将图层移动到最上面
layer.parentNode.appendChild(layer);
}
}
}();
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

MapGIS Client for JavaScript:为云GIS网络客户端开发平台,将传统WebGIS与云GIS完美融合, 集成Cesium、MapboXGL,、Leaflet、OpenLayers四大主流地图开源框架和Echarts、MapV、D3等可视化库,进一步增强了大数据、实时流数据的高效可视化表达和分析功能。
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/wolfbruce/WebClient-JavaScript.git
git@gitee.com:wolfbruce/WebClient-JavaScript.git
wolfbruce
WebClient-JavaScript
MapGIS-WebClient-JavaScript
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /