Skip to content

Commit 98956ec

Browse files
committed
【bug】提交restData,restMap,标注图层,wms图层对接
1 parent e57d08e commit 98956ec

File tree

6 files changed

+553
-158
lines changed

6 files changed

+553
-158
lines changed

dist/openlayers/iclient9-openlayers-es6.js

Lines changed: 171 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -72514,8 +72514,8 @@ class core_Util_Util {
7251472514
var canvas = document.createElement('canvas');
7251572515
return Boolean(canvas && canvas.getContext("webgl2"));
7251672516
}
72517-
static getRootUrl(url = window.location.href) {
72518-
/*let tempRootUrl = {};
72517+
static getRootUrl(url) {
72518+
let tempRootUrl = {};
7251972519
let onlineUrl = 'https://www.supermapol.com/', itestUrl = 'https://itest.supermapol.com/';
7252072520
if (tempRootUrl[url]) return tempRootUrl[url];
7252172521
let rootUrl = "";
@@ -72533,8 +72533,41 @@ class core_Util_Util {
7253372533
}
7253472534
}
7253572535
tempRootUrl[url] = rootUrl;
72536-
return rootUrl;*/
72537-
return 'http://127.0.0.1:8090/iportal/';
72536+
return rootUrl;
72537+
// return 'http://127.0.0.1:8090/iportal/';
72538+
}
72539+
/**
72540+
* 获取https或http域名
72541+
* @param url
72542+
* @returns {*}
72543+
*/
72544+
static getAnchor(url) {
72545+
let tempAnchor = {};
72546+
if (tempAnchor[url]) {
72547+
return tempAnchor[url];
72548+
}
72549+
let anchor = document.createElement('a');
72550+
anchor.href = url;
72551+
tempAnchor[url] = anchor;
72552+
return anchor;
72553+
}
72554+
/**
72555+
* 获取端口号
72556+
*
72557+
* @param url {string} url地址
72558+
* @returns {*|string|string}
72559+
*/
72560+
static getHost(url) {
72561+
let anchor = this.getAnchor(url);
72562+
if (!anchor) {
72563+
return null;
72564+
}
72565+
let port = anchor.port, host = anchor.host;
72566+
//IE下会自动给host添加http(80), https(443)
72567+
if (port === "80" || port === "443") {
72568+
return host.split(":")[0];
72569+
}
72570+
return host;
7253872571
}
7253972572
/**
7254072573
* 是否为字符串
@@ -80352,26 +80385,49 @@ const DatavizWebMap_mapInfo ={
8035280385
},
8035380386
"layers": [
8035480387
{
80355-
"layerType": "VECOTR",
80356-
"featureType": "LINE",
80388+
"layerType": "UNIQUE",
8035780389
"visible": true,
80358-
"name": "Jingjin:BaseMap_L",
80359-
"dataTypes":{},
80390+
"name": "浙江高等院校",
80391+
"featureType": "POINT",
80392+
"xyField": {
80393+
"xField": "经度",
80394+
"yField": "纬度"
80395+
},
8036080396
"style": {
80361-
"strokeWidth": 2,
80397+
"colors": [
80398+
"#D53E4F",
80399+
"#FC8D59",
80400+
"#FEE08B",
80401+
"#FFFFBF",
80402+
"#E6F598",
80403+
"#99D594",
80404+
"#3288BD"
80405+
],
80406+
"customSettings": {
80407+
"http://www.qzu.zj.cn": "#bd10e0",
80408+
"www.qzct.net": "#7ed321"
80409+
},
80410+
"themeField":"网址",
80411+
"fillColor": "#3288bd",
80412+
"fillOpacity": 0.9,
8036280413
"lineDash": "solid",
80363-
"strokeColor": "#4CC8A3",
80364-
"strokeOpacity": 0.9
80414+
"radius": 5,
80415+
"strokeColor": "#ffffff",
80416+
"strokeOpacity": 1,
80417+
"strokeWidth": 1
8036580418
},
80366-
"url": "http://192.168.12.58:8091/iserver/services/data-jingjin/rest/data",
80367-
"projection": "EPSG:4326"
80419+
"projection": "EPSG:4326",
80420+
"dataSource": {
80421+
"type": "PORTAL_DATA",
80422+
"serverId": "327767450"
80423+
}
8036880424
}
8036980425
],
8037080426
"description": "",
8037180427
"projection": "EPSG:3857",
8037280428
"title": "Unuqie",
8037380429
"version": "1.0"
80374-
}
80430+
};
8037580431
/**
8037680432
* @class ol.supermap.WebMap
8037780433
* @category iPortal/Online
@@ -80452,6 +80508,24 @@ class DatavizWebMap_DatavizWebMap extends external_ol_default.a.Observable {
8045280508
addBaseMap(mapInfo) {
8045380509
this.createView(mapInfo);
8045480510
this.map.addLayer(this.createBaseLayer(mapInfo));
80511+
/*if(mapInfo.baseLayer && mapInfo.baseLayer.isLabel) {
80512+
let layerInfo = mapInfo.baseLayer;
80513+
//存在天地图路网
80514+
let labelLayer = new ol.layer.Tile({
80515+
source: this.createTiandituSource(layerInfo, layerInfo.layerType, mapInfo.projection, true),
80516+
zIndex: layerInfo.zIndex || 0,
80517+
visible: layerInfo.visible
80518+
});
80519+
this.map.addLayer(labelLayer);
80520+
}*/
80521+
let layerInfo = mapInfo.baseLayer;
80522+
//存在天地图路网
80523+
let labelLayer = new external_ol_default.a.layer.Tile({
80524+
source: this.createTiandituSource(layerInfo, layerInfo.layerType, mapInfo.projection, true),
80525+
zIndex: layerInfo.zIndex || 0,
80526+
visible: layerInfo.visible
80527+
});
80528+
this.map.addLayer(labelLayer);
8045580529
}
8045680530
createView(options) {
8045780531
let view = this.map.getView(),
@@ -80629,9 +80703,10 @@ class DatavizWebMap_DatavizWebMap extends external_ol_default.a.Observable {
8062980703
let features;
8063080704
if(layers.length > 0) {
8063180705
layers.forEach(function (layer) {
80632-
if(layer.dataSource && layer.dataSource.serverId) {
80706+
if((layer.dataSource && layer.dataSource.serverId) || layer.layerType === "MARKER") {
8063380707
//数据存储到iportal上了
80634-
let url = `${core_Util_Util.getRootUrl()}web/datas/${layer.dataSource.serverId}/content.json?pageSize=9999999&currentPage=1`;
80708+
let serverId = layer.dataSource ? layer.dataSource.serverId : layer.serverId;
80709+
let url = `${core_Util_Util.getRootUrl(that.mapUrl)}web/datas/${serverId}/content.json?pageSize=9999999&currentPage=1`;
8063580710
FetchRequest.get(url, null, {withCredentials: true}).then(function (response) {
8063680711
return response.json()
8063780712
}).then(function (data) {
@@ -80647,28 +80722,26 @@ class DatavizWebMap_DatavizWebMap extends external_ol_default.a.Observable {
8064780722
that.addLayer(layer, features);
8064880723
}
8064980724
})
80650-
} else if(layer.url) {
80651-
if(layer.layerType === "SUPERMAP_REST") {
80652-
//从iserver获取的瓦片地图
80653-
this.map.addLayer(this.createBaseLayer(layer));
80654-
} else if(layer.layerType === "VECOTR") {
80655-
//从restData获取数据
80656-
core_Util_Util.getFeatureBySQL(layer.url, [layer.dataSourseName || layer.name], function(result) {
80657-
features = that.parseGeoJsonData2Feature({
80658-
allDatas: { features: result.result.features.features },
80659-
fileCode: layer.projection.split(':')[1],
80660-
featureProjection: that.baseProjection.split(':')[1]
80661-
});
80662-
80663-
/*if (!layerObj.layerInfo.dataTypes) {
80664-
let data = DataManager.assembleTableJSONData(result.result.features);
80665-
layerObj.layerInfo.dataTypes = Util.getFieldType(data.titles, data.rows[0]);
80666-
}*/
80667-
that.addLayer(layer, features);
80668-
}, function(err) {
80669-
console.log(err);
80725+
} else if(layer.layerType === "SUPERMAP_REST" || layer.layerType === "WMS" || layer.layerType === "WMTS") {
80726+
this.map.addLayer(this.createBaseLayer(layer));
80727+
} else if(layer.dataSource && layer.dataSource.type === "REST_DATA") {
80728+
let dataSource = layer.dataSource;
80729+
//从restData获取数据
80730+
core_Util_Util.getFeatureBySQL(dataSource.url, [dataSource.dataSourseName || layer.name], function(result) {
80731+
features = that.parseGeoJsonData2Feature({
80732+
allDatas: { features: result.result.features.features },
80733+
fileCode: layer.projection,
80734+
featureProjection: that.baseProjection
8067080735
});
80671-
}
80736+
80737+
/*if (!layerObj.layerInfo.dataTypes) {
80738+
let data = DataManager.assembleTableJSONData(result.result.features);
80739+
layerObj.layerInfo.dataTypes = Util.getFieldType(data.titles, data.rows[0]);
80740+
}*/
80741+
that.addLayer(layer, features);
80742+
}, function(err) {
80743+
console.log(err);
80744+
});
8067280745
}
8067380746
}, this);
8067480747
}
@@ -80839,6 +80912,8 @@ class DatavizWebMap_DatavizWebMap extends external_ol_default.a.Observable {
8083980912
layer = this.createRangeLayer(layerInfo, features, allFeatures);
8084080913
} else if(layerInfo.layerType === "HEAT") {
8084180914
layer = this.createHeatLayer(layerInfo, features);
80915+
} else if(layerInfo.layerType === "MARKER"){
80916+
layer = this.createMarkerLayer(layerInfo, features)
8084280917
}
8084380918
layer && this.map.addLayer(layer);
8084480919
if(layerInfo.labelStyle && layerInfo.labelStyle.labelField) {
@@ -80886,7 +80961,7 @@ class DatavizWebMap_DatavizWebMap extends external_ol_default.a.Observable {
8088680961
if(!imgDom) {
8088780962
imgDom = new Image();
8088880963
//要组装成完整的url
80889-
imgDom.src = core_Util_Util.getRootUrl() + imageInfo.url;
80964+
imgDom.src = core_Util_Util.getRootUrl(this.mapUrl) + imageInfo.url;
8089080965
}
8089180966
shape = new external_ol_default.a.style.Icon({
8089280967
img: imgDom,
@@ -81343,6 +81418,64 @@ class DatavizWebMap_DatavizWebMap extends external_ol_default.a.Observable {
8134381418
return false;
8134481419
}
8134581420
}
81421+
createMarkerLayer(layerInfo, features) {
81422+
features && this.setEachFeatureDefaultStyle(features);
81423+
return new external_ol_default.a.layer.Vector({
81424+
source: new external_ol_default.a.source.Vector({
81425+
features: features,
81426+
wrapX: false
81427+
})
81428+
});
81429+
}
81430+
/**
81431+
* @description 为feature设置样式
81432+
* @author gaozy
81433+
* @param {any} features
81434+
* @param {any} [style=null]
81435+
* @param {Number} 图层id
81436+
*/
81437+
setEachFeatureDefaultStyle(features, timeId) {
81438+
let that = this;
81439+
features = (core_Util_Util.isArray(features) || features instanceof external_ol_default.a.Collection) ? features : [features];
81440+
features.forEach(function (feature) {
81441+
let geomType = feature.getGeometry().getType().toUpperCase();
81442+
// let styleType = geomType === "POINT" ? 'MARKER' : geomType;
81443+
let defaultStyle = feature.getProperties().useStyle;
81444+
if(geomType === 'POINT' && defaultStyle.text) {
81445+
//说明是文字的feature类型
81446+
geomType = "TEXT";
81447+
}
81448+
let featureInfo = this.setFeatureInfo(feature);
81449+
feature.setProperties({ useStyle: defaultStyle, featureInfo:featureInfo});
81450+
//标注图层的feature上需要存一个layerId,为了之后样式应用到图层上使用
81451+
feature.layerId = timeId;
81452+
if(geomType === 'POINT' && defaultStyle.src &&
81453+
defaultStyle.src.indexOf('http://') === -1 && defaultStyle.src.indexOf('https://') === -1) {
81454+
//说明地址不完整
81455+
defaultStyle.src = core_Util_Util.getRootUrl(that.mapUrl) + defaultStyle.src;
81456+
}
81457+
feature.setStyle(StyleUtils_StyleUtils.toOpenLayersStyle(defaultStyle, geomType))
81458+
}, this)
81459+
}
81460+
setFeatureInfo(feature) {
81461+
let featureInfo;
81462+
if(feature.getProperties().featureInfo && feature.getProperties().featureInfo.dataViz_title !== undefined
81463+
&& feature.getProperties().featureInfo.dataViz_title != null) {
81464+
//有featureInfo信息就不需要再添加
81465+
featureInfo = feature.getProperties().featureInfo;
81466+
} else {
81467+
featureInfo = this.getDefaultAttribute();
81468+
}
81469+
let properties = feature.getProperties();
81470+
for(let key in featureInfo) {
81471+
if(properties[key]) {
81472+
featureInfo[key] = properties[key];
81473+
delete properties[key];
81474+
}
81475+
}
81476+
return featureInfo;
81477+
}
81478+
8134681479

8134781480
}
8134881481

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy