learning_cesium/js/mapConfig.js

411 lines
11 KiB
JavaScript
Raw Normal View History

2024-03-19 18:06:25 +08:00
export const geoserverUrl = "http://121.33.231.74:5097/geoserver/";
export const workspace = "iot";
export const geoqConfig = {
"shiliang":{url:'http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer'},
"yingxiang":{url:'http://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer'},
}
export const geoserverConfig = {
enable: true,
url: geoserverUrl,
gwcUrl: geoserverUrl + "/iot/gwc/service/wmts",
wmsUrl: geoserverUrl + "/iot/wms",
getFeatureUrl: function (layerName, filter, srsname = "EPSG:3857") {
return (
this.url +
"/iot/ows?service=WFS&version=1.0.0&request=GetFeature&maxFeatures=99999&srsname=" +
srsname +
"&outputFormat=application/json&typeName=iot:" +
layerName +
(filter ? "&FILTER=" + filter : "")
);
},
worksapce: "iot",
layers: [
{
layerName: "sta_station",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "provinces84",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "china",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "province_mask",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
// 流域相关zhujiang为图层组用作显示区域范围zhujiang_river是水系数据用于高亮显示
{
layerName: "zhujiang",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "dongnan",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "xinan",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "neiluhe",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "songliaohe",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "haihe",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "huaihe",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "huanghe",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "changjiang",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "zhujiang_river",
wkid: 4326,
extent: {
xmin: 102.33435821533203,
ymin: 18.177719116210938,
xmax: 117.17308044433594,
ymax: 26.804235458374023,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "dongnan_river",
wkid: 4326,
extent: {
xmin: 116.44263458251953,
ymin: 21.90444564819336,
xmax: 122.82239532470703,
ymax: 30.850406646728516,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "xinan_river",
wkid: 4326,
extent: {
xmin: 78.3980712890625,
ymin: 21.18732261657715,
xmax: 105.90457153320312,
ymax: 33.8180046081543,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "neiluhe_river",
wkid: 4326,
extent: {
xmin: 73.55192565917969,
ymin: 29.696971893310547,
xmax: 119.57254028320312,
ymax: 49.177589416503906,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "songliaohe_river",
wkid: 4326,
extent: {
xmin: 115.52713012695312,
ymin: 38.738670349121094,
xmax: 135.08583068847656,
ymax: 53.55472946166992,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "haihe_river",
wkid: 4326,
extent: {
xmin: 112.16655731201172,
ymin: 35.0770263671875,
xmax: 119.81710052490234,
ymax: 42.49541091918945,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "huaihe_river",
wkid: 4326,
extent: {
xmin: 112.17137908935547,
ymin: 31.0460262298584,
xmax: 122.69775390625,
ymax: 38.39902114868164,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "huanghe_river",
wkid: 4326,
extent: {
xmin: 95.90158081054688,
ymin: 32.643367767333984,
xmax: 119.06564331054688,
ymax: 41.627845764160156,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "changjiang_river",
wkid: 4326,
extent: {
xmin: 90.49061584472656,
ymin: 24.5401554107666,
xmax: 121.90003967285156,
ymax: 35.90212631225586,
spatialReference: { wkid: 4326 },
},
},
{
layerName: "river2",
wkid: 4326,
extent: {
xmin: -180,
ymin: -90,
xmax: 180,
ymax: 90,
spatialReference: { wkid: 4326 },
},
},
],
filterTemplate: {
equals: (obj) => {
return `
<PropertyIsEqualTo>
<PropertyName>${obj.field}</PropertyName>
<Literal>${obj.value}</Literal>
</PropertyIsEqualTo>`;
},
like: (obj) => {
return `
<PropertyIsLike wildCard="*" singleChar="." escape="!">
<PropertyName>${obj.field}</PropertyName>
<Literal>${obj.value}</Literal>
</PropertyIsLike>
`;
},
},
/**
* 获取过滤的字符模版注意xml文本区分大小写
* [{type:'',field,:'',value:''}]
* @param Array params
*/
getFilter: (params) => {
if (!params || !Object.keys(params).length) {
return "";
}
return `<Filter xmlns="http://www.opengis.net/ogc">
${params
.map((param) => {
if (param.value instanceof Array) {
return (
"<Or>" +
param.value
.map((element) => {
// if(!param.type||param.type=='equals'){
return geoserverConfig.filterTemplate.equals({
field: param.field,
value: element,
});
// }else if(param.type=='like'){
// return geoserverConfig.filterTemplate.like({field:param.field,value:element})
// }
})
.join("") +
"</Or>"
);
} else {
if (!param.type || param.type == "equals") {
return geoserverConfig.filterTemplate.equals(param);
} else if (param.type == "like") {
return geoserverConfig.filterTemplate.like(param);
}
}
})
.join("")}
</Filter>`;
},
getSldBody(
layerName,
field,
value,
color,
opacity = 1,
otherColor = "#ffffff",
otherOpacity = 1,
borderColor = "#719cc6"
) {
let workspace = geoserverConfig.worksapce;
return `<StyledLayerDescriptor version="1.0.0">
<UserLayer>
<Name>${workspace}:${layerName}</Name>
<UserStyle>
<Name>UserSelection</Name>
<FeatureTypeStyle>
<Rule>
<Filter
xmlns:gml="http://www.opengis.net/gml">
<PropertyIsEqualTo>
<PropertyName>${field}</PropertyName>
<Literal>${value}</Literal>
</PropertyIsEqualTo>
</Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#${color}</CssParameter>
<CssParameter name="fill-opacity">${opacity}</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">${borderColor}</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
<CssParameter name="stroke-linejoin">bevel</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
<Rule>
<Filter
xmlns:gml="http://www.opengis.net/gml">
<Not>
<PropertyIsEqualTo>
<PropertyName>${field}</PropertyName>
<Literal>${value}</Literal>
</PropertyIsEqualTo>
</Not>
</Filter>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">${otherColor}</CssParameter>
<CssParameter name="fill-opacity">${otherOpacity}</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">${otherColor}</CssParameter>
<CssParameter name="stroke-width">1</CssParameter>
<CssParameter name="stroke-linejoin">bevel</CssParameter>
<CssParameter name="stroke-opacity">${otherOpacity}</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</UserLayer>
</StyledLayerDescriptor>`;
},
};
// 星图地球数据云
let geoviseToken = "dc79c1b6e483e04e3f1976eb420b02cf63698af3c8a160cf28052eb921ef4b4b";
export const geovisearthConfig = {
token:"dc79c1b6e483e04e3f1976eb420b02cf63698af3c8a160cf28052eb921ef4b4b",
yingxiang:"https://tiles.geovisearth.com/base/v1/wmts/GetCapabilities?tmsIds=w&token="+geoviseToken,
}
export const cesiumToken =
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI5ZjRjNTZkNC01NDYxLTRhMjQtOGEwZC1kZjA3YzQ5YTJlZDkiLCJpZCI6MjYwODQsInNjb3BlcyI6WyJhc3IiLCJnYyJdLCJpYXQiOjE1ODcxOTMwODN9.prGsSKyAW_9Ow5zHYPhbm3LsQL-ApQw5-5PNJkDaHi8";