样式以及地图性能优化
This commit is contained in:
parent
4f94e80dc8
commit
1309095602
|
|
@ -138,27 +138,31 @@ body {
|
||||||
/* bottom: 15px; */
|
/* bottom: 15px; */
|
||||||
top: 50px;
|
top: 50px;
|
||||||
left: 15px;
|
left: 15px;
|
||||||
width: 140px;
|
/* width: 140px; */
|
||||||
height: 280px;
|
/* height: 280px; */
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: space-around;
|
justify-content: space-between;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
.legend-box .legend-item {
|
.legend-box .legend-item {
|
||||||
padding: 0 6px;
|
padding: 4px 8px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
font-size: 14px;
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend-item-name {
|
||||||
|
margin: 0 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.legend-box .legend-item img {
|
.legend-box .legend-item img {
|
||||||
width: 20px;
|
width: 26px;
|
||||||
height: 20px;
|
height: 26px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* .legend-box .legend-item:nth-child(1) img,
|
/* .legend-box .legend-item:nth-child(1) img,
|
||||||
|
|
@ -213,12 +217,12 @@ body {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 35px;
|
bottom: 35px;
|
||||||
left: 15px;
|
left: 15px;
|
||||||
width: 260px;
|
width: 40%;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
background: rgba(0, 0, 0, 0.6);
|
background: rgba(0, 0, 0, 0.6);
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
visibility: visible;
|
visibility: hidden;
|
||||||
|
|
||||||
/* display: flex;
|
/* display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
@ -254,7 +258,7 @@ body {
|
||||||
|
|
||||||
.project-overview-title {
|
.project-overview-title {
|
||||||
padding-bottom: 10px 0;
|
padding-bottom: 10px 0;
|
||||||
font-size: 14px;
|
font-size: 20px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
@ -264,18 +268,18 @@ body {
|
||||||
text-indent: 2em;
|
text-indent: 2em;
|
||||||
/* max-height: 220px; */
|
/* max-height: 220px; */
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 14px;
|
font-size: 16px;
|
||||||
letter-spacing: 1px;
|
letter-spacing: 1px;
|
||||||
/* padding-bottom: 10px; */
|
/* padding-bottom: 10px; */
|
||||||
/* 设置溢出隐藏显示... */
|
/* 设置溢出隐藏显示... */
|
||||||
/* overflow: hidden;
|
/* overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap; */
|
white-space: nowrap; */
|
||||||
display: -webkit-box;
|
/* display: -webkit-box;
|
||||||
-webkit-line-clamp: 12; /* 限制显示的行数 */
|
-webkit-line-clamp: 12;
|
||||||
-webkit-box-orient: vertical;
|
-webkit-box-orient: vertical;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis; */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 索道信息窗口样式 */
|
/* 索道信息窗口样式 */
|
||||||
|
|
@ -369,6 +373,7 @@ body {
|
||||||
border-color: transparent #d7d7d7 transparent transparent;
|
border-color: transparent #d7d7d7 transparent transparent;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
transform: rotate(180deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
.close-drawer-btn {
|
.close-drawer-btn {
|
||||||
|
|
|
||||||
|
|
@ -12,55 +12,109 @@ let lineList = [];
|
||||||
|
|
||||||
const mapConfig = {
|
const mapConfig = {
|
||||||
scene: {
|
scene: {
|
||||||
|
// center: {
|
||||||
|
// lat: 31.686288,
|
||||||
|
// lng: 117.229619,
|
||||||
|
// alt: 12000, // 高度≈缩放级别
|
||||||
|
// },
|
||||||
|
|
||||||
|
// highDynamicRange: false, // 关闭HDR(可减少模糊)
|
||||||
|
|
||||||
|
// scene3DOnly: false,
|
||||||
|
// shadows: false,
|
||||||
|
// removeDblClick: true,
|
||||||
|
// sceneMode: 1,
|
||||||
|
// showSun: true,
|
||||||
|
// showMoon: true,
|
||||||
|
// showSkyBox: true,
|
||||||
|
// showSkyAtmosphere: true,
|
||||||
|
// fog: true,
|
||||||
|
// fxaa: false,
|
||||||
|
// requestRenderMode: false,
|
||||||
|
// globe: {
|
||||||
|
// depthTestAgainstTerrain: false,
|
||||||
|
// baseColor: "#546a53",
|
||||||
|
// // showGroundAtmosphere: true,
|
||||||
|
// showGroundAtmosphere: true,
|
||||||
|
// enableLighting: false,
|
||||||
|
// },
|
||||||
|
// cameraController: {
|
||||||
|
// zoomFactor: 3.0,
|
||||||
|
// minimumZoomDistance: 1,
|
||||||
|
// maximumZoomDistance: 50000000,
|
||||||
|
// enableRotate: true,
|
||||||
|
// enableTranslate: true,
|
||||||
|
// enableTilt: true,
|
||||||
|
// enableZoom: true,
|
||||||
|
// enableCollisionDetection: true,
|
||||||
|
// minimumCollisionTerrainHeight: 15000,
|
||||||
|
// },
|
||||||
|
|
||||||
center: {
|
center: {
|
||||||
lat: 31.686288,
|
lat: 31.686288,
|
||||||
lng: 117.229619,
|
lng: 117.229619,
|
||||||
// alt: 11333.9,
|
|
||||||
// heading: 359.2,
|
|
||||||
// pitch: -39.5,
|
|
||||||
alt: 12000, // 高度≈缩放级别
|
alt: 12000, // 高度≈缩放级别
|
||||||
// heading: 30, // 旋转30度
|
|
||||||
// pitch: -45, // 俯视角45度
|
|
||||||
},
|
},
|
||||||
|
// 强制2D模式
|
||||||
highDynamicRange: false, // 关闭HDR(可减少模糊)
|
sceneMode: 2, // 2表示2D模式,1是3D
|
||||||
|
|
||||||
scene3DOnly: false,
|
scene3DOnly: false,
|
||||||
|
|
||||||
|
// 简化渲染设置
|
||||||
|
highDynamicRange: false,
|
||||||
shadows: false,
|
shadows: false,
|
||||||
removeDblClick: true,
|
removeDblClick: true,
|
||||||
sceneMode: 1,
|
showSun: false, // 2D模式下不需要太阳月亮
|
||||||
showSun: true,
|
showMoon: false,
|
||||||
showMoon: true,
|
showSkyBox: false, // 2D模式不需要天空盒
|
||||||
showSkyBox: true,
|
showSkyAtmosphere: false,
|
||||||
showSkyAtmosphere: true,
|
fog: false, // 关闭雾化提升性能
|
||||||
fog: true,
|
|
||||||
fxaa: false,
|
fxaa: false,
|
||||||
requestRenderMode: false,
|
requestRenderMode: true, // 启用按需渲染提升性能
|
||||||
|
|
||||||
|
// 简化地球配置
|
||||||
globe: {
|
globe: {
|
||||||
depthTestAgainstTerrain: false,
|
depthTestAgainstTerrain: false,
|
||||||
baseColor: "#546a53",
|
baseColor: "#546a53",
|
||||||
showGroundAtmosphere: true,
|
showGroundAtmosphere: false,
|
||||||
enableLighting: false,
|
enableLighting: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 简化相机控制(仅保留2D必要操作)
|
||||||
cameraController: {
|
cameraController: {
|
||||||
zoomFactor: 3.0,
|
zoomFactor: 3.0,
|
||||||
minimumZoomDistance: 1,
|
minimumZoomDistance: 1,
|
||||||
maximumZoomDistance: 50000000,
|
maximumZoomDistance: 50000000,
|
||||||
enableRotate: true,
|
enableRotate: false, // 2D模式下不需要旋转
|
||||||
enableTranslate: true,
|
enableTranslate: true, // 允许平移
|
||||||
enableTilt: true,
|
enableTilt: false, // 2D模式下不需要倾斜
|
||||||
enableZoom: true,
|
enableZoom: true, // 允许缩放
|
||||||
enableCollisionDetection: true,
|
enableCollisionDetection: false, // 2D模式下不需要碰撞检测
|
||||||
minimumCollisionTerrainHeight: 15000,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
control: {
|
control: {
|
||||||
homeButton: true,
|
// homeButton: true,
|
||||||
baseLayerPicker: true,
|
// baseLayerPicker: true,
|
||||||
sceneModePicker: true,
|
// sceneModePicker: true,
|
||||||
vrButton: false,
|
// vrButton: false,
|
||||||
fullscreenButton: true,
|
// fullscreenButton: true,
|
||||||
navigationHelpButton: true,
|
// navigationHelpButton: true,
|
||||||
|
// animation: false,
|
||||||
|
// timeline: false,
|
||||||
|
// infoBox: false,
|
||||||
|
// geocoder: false,
|
||||||
|
// selectionIndicator: false,
|
||||||
|
// contextmenu: { hasDefault: false },
|
||||||
|
// mouseDownView: true,
|
||||||
|
// zoom: { insertIndex: 1 },
|
||||||
|
// compass: { bottom: "toolbar", left: "5px" },
|
||||||
|
// distanceLegend: { left: "10px", bottom: "2px" },
|
||||||
|
|
||||||
|
homeButton: true, // 保留首页按钮
|
||||||
|
baseLayerPicker: false, // 隐藏底图切换
|
||||||
|
sceneModePicker: false, // 隐藏2D/3D切换
|
||||||
|
vrButton: false, // 隐藏VR按钮
|
||||||
|
fullscreenButton: true, // 保留全屏按钮
|
||||||
|
navigationHelpButton: false, // 隐藏帮助按钮
|
||||||
animation: false,
|
animation: false,
|
||||||
timeline: false,
|
timeline: false,
|
||||||
infoBox: false,
|
infoBox: false,
|
||||||
|
|
@ -68,23 +122,19 @@ const mapConfig = {
|
||||||
selectionIndicator: false,
|
selectionIndicator: false,
|
||||||
contextmenu: { hasDefault: false },
|
contextmenu: { hasDefault: false },
|
||||||
mouseDownView: true,
|
mouseDownView: true,
|
||||||
zoom: { insertIndex: 1 },
|
zoom: { insertIndex: 1 }, // 保留缩放控件
|
||||||
compass: { bottom: "toolbar", left: "5px" },
|
compass: false, // 隐藏指南针(2D不需要)
|
||||||
distanceLegend: { left: "10px", bottom: "2px" },
|
distanceLegend: false, // 隐藏距离图例
|
||||||
locationBar: {
|
|
||||||
fps: true,
|
|
||||||
crs: "CGCS2000_GK_Zone_3",
|
|
||||||
crsDecimal: 0,
|
|
||||||
template:
|
|
||||||
"<div>经度:{lng}</div> <div>纬度:{lat}</div> <div class='hide1000'>横{crsx} 纵{crsy}</div> <div>海拔:{alt}米</div> <div class='hide700'>层级:{level}</div><div>方向:{heading}°</div> <div>俯仰角:{pitch}°</div><div class='hide700'>视高:{cameraHeight}米</div>",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
templateValues: {
|
templateValues: {
|
||||||
|
// dataServer: "//data.mars3d.cn",
|
||||||
|
// gltfServerUrl: "//data.mars3d.cn/gltf",
|
||||||
dataServer: "//data.mars3d.cn",
|
dataServer: "//data.mars3d.cn",
|
||||||
gltfServerUrl: "//data.mars3d.cn/gltf",
|
gltfServerUrl: "//data.mars3d.cn/gltf",
|
||||||
},
|
},
|
||||||
terrain: {
|
terrain: {
|
||||||
url: "//data.mars3d.cn/terrain",
|
// url: "//data.mars3d.cn/terrain",
|
||||||
|
// show: false,
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
basemaps: [
|
basemaps: [
|
||||||
|
|
@ -111,57 +161,6 @@ const mapConfig = {
|
||||||
{ name: "注记", type: "tdt", layer: "vec_z" },
|
{ name: "注记", type: "tdt", layer: "vec_z" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "高德影像",
|
|
||||||
type: "group",
|
|
||||||
icon: "../../../../img/mars-map-img/gaode_img.png",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "gaode", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "gaode", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "高德电子",
|
|
||||||
type: "gaode",
|
|
||||||
icon: "../../../../img/mars-map-img/gaode_vec.png",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "百度影像",
|
|
||||||
type: "group",
|
|
||||||
icon: "../../../../img/mars-map-img/bd-img.png",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "baidu", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "baidu", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "百度电子",
|
|
||||||
icon: "../../../../img/mars-map-img/bd-vec.png",
|
|
||||||
type: "baidu",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "腾讯影像",
|
|
||||||
icon: "../../../../img/mars-map-img/tencent_img.png",
|
|
||||||
type: "group",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "tencent", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "tencent", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "腾讯电子",
|
|
||||||
icon: "../../../../img/mars-map-img/tencent_vec.png",
|
|
||||||
type: "tencent",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
pid: 10,
|
pid: 10,
|
||||||
name: "ArcGIS影像",
|
name: "ArcGIS影像",
|
||||||
|
|
@ -232,7 +231,13 @@ function initData() {
|
||||||
intLat = list[0].proLat ? list[0].proLat : list[0].lat;
|
intLat = list[0].proLat ? list[0].proLat : list[0].lat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// initMap(list);
|
||||||
|
$(document).ready(function () {
|
||||||
|
// 延迟初始化,确保 DOM 已就绪
|
||||||
|
setTimeout(() => {
|
||||||
initMap(list);
|
initMap(list);
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -772,12 +777,21 @@ function saveData() {
|
||||||
.getElementsByTagName("iframe")[0];
|
.getElementsByTagName("iframe")[0];
|
||||||
frameId.contentWindow.savePointData(JSON.stringify(points));
|
frameId.contentWindow.savePointData(JSON.stringify(points));
|
||||||
parent.layer.msg("保存成功", { icon: 1 });
|
parent.layer.msg("保存成功", { icon: 1 });
|
||||||
|
destroyMap();
|
||||||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
parent.layer.close(index); //再执行关闭
|
parent.layer.close(index); //再执行关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭页面
|
// 关闭页面
|
||||||
function closePage() {
|
function closePage() {
|
||||||
|
destroyMap();
|
||||||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
parent.layer.close(index); //再执行关闭
|
parent.layer.close(index); //再执行关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function destroyMap() {
|
||||||
|
if (window.mapInstance) {
|
||||||
|
window.mapInstance.destroy();
|
||||||
|
window.mapInstance = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,61 +14,109 @@ let lineList = [];
|
||||||
|
|
||||||
const mapConfig = {
|
const mapConfig = {
|
||||||
scene: {
|
scene: {
|
||||||
|
// center: {
|
||||||
|
// lat: 31.686288,
|
||||||
|
// lng: 117.229619,
|
||||||
|
// alt: 12000, // 高度≈缩放级别
|
||||||
|
// },
|
||||||
|
|
||||||
|
// highDynamicRange: false, // 关闭HDR(可减少模糊)
|
||||||
|
|
||||||
|
// scene3DOnly: false,
|
||||||
|
// shadows: false,
|
||||||
|
// removeDblClick: true,
|
||||||
|
// sceneMode: 1,
|
||||||
|
// showSun: true,
|
||||||
|
// showMoon: true,
|
||||||
|
// showSkyBox: true,
|
||||||
|
// showSkyAtmosphere: true,
|
||||||
|
// fog: true,
|
||||||
|
// fxaa: false,
|
||||||
|
// requestRenderMode: false,
|
||||||
|
// globe: {
|
||||||
|
// depthTestAgainstTerrain: false,
|
||||||
|
// baseColor: "#546a53",
|
||||||
|
// // showGroundAtmosphere: true,
|
||||||
|
// showGroundAtmosphere: true,
|
||||||
|
// enableLighting: false,
|
||||||
|
// },
|
||||||
|
// cameraController: {
|
||||||
|
// zoomFactor: 3.0,
|
||||||
|
// minimumZoomDistance: 1,
|
||||||
|
// maximumZoomDistance: 50000000,
|
||||||
|
// enableRotate: true,
|
||||||
|
// enableTranslate: true,
|
||||||
|
// enableTilt: true,
|
||||||
|
// enableZoom: true,
|
||||||
|
// enableCollisionDetection: true,
|
||||||
|
// minimumCollisionTerrainHeight: 15000,
|
||||||
|
// },
|
||||||
|
|
||||||
center: {
|
center: {
|
||||||
lat: 31.686288,
|
lat: 31.686288,
|
||||||
lng: 117.229619,
|
lng: 117.229619,
|
||||||
// alt: 11333.9,
|
|
||||||
// heading: 359.2,
|
|
||||||
// pitch: -39.5,
|
|
||||||
alt: 12000, // 高度≈缩放级别
|
alt: 12000, // 高度≈缩放级别
|
||||||
// heading: 30, // 旋转30度
|
|
||||||
// pitch: -45, // 俯视角45度
|
|
||||||
},
|
},
|
||||||
|
// 强制2D模式
|
||||||
highDynamicRange: false, // 关闭HDR(可减少模糊)
|
sceneMode: 2, // 2表示2D模式,1是3D
|
||||||
|
|
||||||
scene3DOnly: false,
|
scene3DOnly: false,
|
||||||
|
|
||||||
|
// 简化渲染设置
|
||||||
|
highDynamicRange: false,
|
||||||
shadows: false,
|
shadows: false,
|
||||||
removeDblClick: true,
|
removeDblClick: true,
|
||||||
sceneMode: 1,
|
showSun: false, // 2D模式下不需要太阳月亮
|
||||||
showSun: true,
|
showMoon: false,
|
||||||
showMoon: true,
|
showSkyBox: false, // 2D模式不需要天空盒
|
||||||
showSkyBox: true,
|
showSkyAtmosphere: false,
|
||||||
showSkyAtmosphere: true,
|
fog: false, // 关闭雾化提升性能
|
||||||
|
|
||||||
// showSun: false, // 2D模式下可关闭
|
|
||||||
// showMoon: false, // 2D模式下可关闭
|
|
||||||
// showSkyBox: false, // 2D模式下可关闭
|
|
||||||
// fog: false, // 2D模式下可关闭
|
|
||||||
fog: true,
|
|
||||||
fxaa: false,
|
fxaa: false,
|
||||||
requestRenderMode: false,
|
requestRenderMode: true, // 启用按需渲染提升性能
|
||||||
|
|
||||||
|
// 简化地球配置
|
||||||
globe: {
|
globe: {
|
||||||
depthTestAgainstTerrain: false,
|
depthTestAgainstTerrain: false,
|
||||||
baseColor: "#546a53",
|
baseColor: "#546a53",
|
||||||
// showGroundAtmosphere: true,
|
showGroundAtmosphere: false,
|
||||||
showGroundAtmosphere: true,
|
|
||||||
enableLighting: false,
|
enableLighting: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 简化相机控制(仅保留2D必要操作)
|
||||||
cameraController: {
|
cameraController: {
|
||||||
zoomFactor: 3.0,
|
zoomFactor: 3.0,
|
||||||
minimumZoomDistance: 1,
|
minimumZoomDistance: 1,
|
||||||
maximumZoomDistance: 50000000,
|
maximumZoomDistance: 50000000,
|
||||||
enableRotate: true,
|
enableRotate: false, // 2D模式下不需要旋转
|
||||||
enableTranslate: true,
|
enableTranslate: true, // 允许平移
|
||||||
enableTilt: true,
|
enableTilt: false, // 2D模式下不需要倾斜
|
||||||
enableZoom: true,
|
enableZoom: true, // 允许缩放
|
||||||
enableCollisionDetection: true,
|
enableCollisionDetection: false, // 2D模式下不需要碰撞检测
|
||||||
minimumCollisionTerrainHeight: 15000,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
control: {
|
control: {
|
||||||
homeButton: true,
|
// homeButton: true,
|
||||||
baseLayerPicker: true,
|
// baseLayerPicker: true,
|
||||||
sceneModePicker: true,
|
// sceneModePicker: true,
|
||||||
vrButton: false,
|
// vrButton: false,
|
||||||
fullscreenButton: true,
|
// fullscreenButton: true,
|
||||||
navigationHelpButton: true,
|
// navigationHelpButton: true,
|
||||||
|
// animation: false,
|
||||||
|
// timeline: false,
|
||||||
|
// infoBox: false,
|
||||||
|
// geocoder: false,
|
||||||
|
// selectionIndicator: false,
|
||||||
|
// contextmenu: { hasDefault: false },
|
||||||
|
// mouseDownView: true,
|
||||||
|
// zoom: { insertIndex: 1 },
|
||||||
|
// compass: { bottom: "toolbar", left: "5px" },
|
||||||
|
// distanceLegend: { left: "10px", bottom: "2px" },
|
||||||
|
|
||||||
|
homeButton: true, // 保留首页按钮
|
||||||
|
baseLayerPicker: false, // 隐藏底图切换
|
||||||
|
sceneModePicker: false, // 隐藏2D/3D切换
|
||||||
|
vrButton: false, // 隐藏VR按钮
|
||||||
|
fullscreenButton: true, // 保留全屏按钮
|
||||||
|
navigationHelpButton: false, // 隐藏帮助按钮
|
||||||
animation: false,
|
animation: false,
|
||||||
timeline: false,
|
timeline: false,
|
||||||
infoBox: false,
|
infoBox: false,
|
||||||
|
|
@ -76,23 +124,19 @@ const mapConfig = {
|
||||||
selectionIndicator: false,
|
selectionIndicator: false,
|
||||||
contextmenu: { hasDefault: false },
|
contextmenu: { hasDefault: false },
|
||||||
mouseDownView: true,
|
mouseDownView: true,
|
||||||
zoom: { insertIndex: 1 },
|
zoom: { insertIndex: 1 }, // 保留缩放控件
|
||||||
compass: { bottom: "toolbar", left: "5px" },
|
compass: false, // 隐藏指南针(2D不需要)
|
||||||
distanceLegend: { left: "10px", bottom: "2px" },
|
distanceLegend: false, // 隐藏距离图例
|
||||||
locationBar: {
|
|
||||||
fps: true,
|
|
||||||
crs: "CGCS2000_GK_Zone_3",
|
|
||||||
crsDecimal: 0,
|
|
||||||
template:
|
|
||||||
"<div>经度:{lng}</div> <div>纬度:{lat}</div> <div class='hide1000'>横{crsx} 纵{crsy}</div> <div>海拔:{alt}米</div> <div class='hide700'>层级:{level}</div><div>方向:{heading}°</div> <div>俯仰角:{pitch}°</div><div class='hide700'>视高:{cameraHeight}米</div>",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
templateValues: {
|
templateValues: {
|
||||||
|
// dataServer: "//data.mars3d.cn",
|
||||||
|
// gltfServerUrl: "//data.mars3d.cn/gltf",
|
||||||
dataServer: "//data.mars3d.cn",
|
dataServer: "//data.mars3d.cn",
|
||||||
gltfServerUrl: "//data.mars3d.cn/gltf",
|
gltfServerUrl: "//data.mars3d.cn/gltf",
|
||||||
},
|
},
|
||||||
terrain: {
|
terrain: {
|
||||||
url: "//data.mars3d.cn/terrain",
|
// url: "//data.mars3d.cn/terrain",
|
||||||
|
// show: false,
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
basemaps: [
|
basemaps: [
|
||||||
|
|
@ -119,57 +163,6 @@ const mapConfig = {
|
||||||
{ name: "注记", type: "tdt", layer: "vec_z" },
|
{ name: "注记", type: "tdt", layer: "vec_z" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "高德影像",
|
|
||||||
type: "group",
|
|
||||||
icon: "../../../../img/mars-map-img/gaode_img.png",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "gaode", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "gaode", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "高德电子",
|
|
||||||
type: "gaode",
|
|
||||||
icon: "../../../../img/mars-map-img/gaode_vec.png",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "百度影像",
|
|
||||||
type: "group",
|
|
||||||
icon: "../../../../img/mars-map-img/bd-img.png",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "baidu", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "baidu", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "百度电子",
|
|
||||||
icon: "../../../../img/mars-map-img/bd-vec.png",
|
|
||||||
type: "baidu",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "腾讯影像",
|
|
||||||
icon: "../../../../img/mars-map-img/tencent_img.png",
|
|
||||||
type: "group",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "tencent", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "tencent", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "腾讯电子",
|
|
||||||
icon: "../../../../img/mars-map-img/tencent_vec.png",
|
|
||||||
type: "tencent",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
pid: 10,
|
pid: 10,
|
||||||
name: "ArcGIS影像",
|
name: "ArcGIS影像",
|
||||||
|
|
@ -240,7 +233,14 @@ function initData() {
|
||||||
intLat = list[0].proLat ? list[0].proLat : list[0].lat;
|
intLat = list[0].proLat ? list[0].proLat : list[0].lat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// initMap(list);
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
// 延迟初始化,确保 DOM 已就绪
|
||||||
|
setTimeout(() => {
|
||||||
initMap(list);
|
initMap(list);
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -778,12 +778,21 @@ function saveData() {
|
||||||
.getElementsByTagName("iframe")[0];
|
.getElementsByTagName("iframe")[0];
|
||||||
frameId.contentWindow.savePointData(JSON.stringify(points));
|
frameId.contentWindow.savePointData(JSON.stringify(points));
|
||||||
parent.layer.msg("保存成功", { icon: 1 });
|
parent.layer.msg("保存成功", { icon: 1 });
|
||||||
|
destroyMap();
|
||||||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
parent.layer.close(index); //再执行关闭
|
parent.layer.close(index); //再执行关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭页面
|
// 关闭页面
|
||||||
function closePage() {
|
function closePage() {
|
||||||
|
destroyMap();
|
||||||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
parent.layer.close(index); //再执行关闭
|
parent.layer.close(index); //再执行关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function destroyMap() {
|
||||||
|
if (window.mapInstance) {
|
||||||
|
window.mapInstance.destroy();
|
||||||
|
window.mapInstance = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,55 +12,109 @@ let lineList = [];
|
||||||
let graphicLayerList = [];
|
let graphicLayerList = [];
|
||||||
const mapConfig = {
|
const mapConfig = {
|
||||||
scene: {
|
scene: {
|
||||||
|
// center: {
|
||||||
|
// lat: 31.686288,
|
||||||
|
// lng: 117.229619,
|
||||||
|
// alt: 12000, // 高度≈缩放级别
|
||||||
|
// },
|
||||||
|
|
||||||
|
// highDynamicRange: false, // 关闭HDR(可减少模糊)
|
||||||
|
|
||||||
|
// scene3DOnly: false,
|
||||||
|
// shadows: false,
|
||||||
|
// removeDblClick: true,
|
||||||
|
// sceneMode: 1,
|
||||||
|
// showSun: true,
|
||||||
|
// showMoon: true,
|
||||||
|
// showSkyBox: true,
|
||||||
|
// showSkyAtmosphere: true,
|
||||||
|
// fog: true,
|
||||||
|
// fxaa: false,
|
||||||
|
// requestRenderMode: false,
|
||||||
|
// globe: {
|
||||||
|
// depthTestAgainstTerrain: false,
|
||||||
|
// baseColor: "#546a53",
|
||||||
|
// // showGroundAtmosphere: true,
|
||||||
|
// showGroundAtmosphere: true,
|
||||||
|
// enableLighting: false,
|
||||||
|
// },
|
||||||
|
// cameraController: {
|
||||||
|
// zoomFactor: 3.0,
|
||||||
|
// minimumZoomDistance: 1,
|
||||||
|
// maximumZoomDistance: 50000000,
|
||||||
|
// enableRotate: true,
|
||||||
|
// enableTranslate: true,
|
||||||
|
// enableTilt: true,
|
||||||
|
// enableZoom: true,
|
||||||
|
// enableCollisionDetection: true,
|
||||||
|
// minimumCollisionTerrainHeight: 15000,
|
||||||
|
// },
|
||||||
|
|
||||||
center: {
|
center: {
|
||||||
lat: 31.686288,
|
lat: 31.686288,
|
||||||
lng: 117.229619,
|
lng: 117.229619,
|
||||||
// alt: 11333.9,
|
|
||||||
// heading: 359.2,
|
|
||||||
// pitch: -39.5,
|
|
||||||
alt: 12000, // 高度≈缩放级别
|
alt: 12000, // 高度≈缩放级别
|
||||||
// heading: 30, // 旋转30度
|
|
||||||
// pitch: -45, // 俯视角45度
|
|
||||||
},
|
},
|
||||||
|
// 强制2D模式
|
||||||
highDynamicRange: false, // 关闭HDR(可减少模糊)
|
sceneMode: 2, // 2表示2D模式,1是3D
|
||||||
|
|
||||||
scene3DOnly: false,
|
scene3DOnly: false,
|
||||||
|
|
||||||
|
// 简化渲染设置
|
||||||
|
highDynamicRange: false,
|
||||||
shadows: false,
|
shadows: false,
|
||||||
removeDblClick: true,
|
removeDblClick: true,
|
||||||
sceneMode: 1,
|
showSun: false, // 2D模式下不需要太阳月亮
|
||||||
showSun: true,
|
showMoon: false,
|
||||||
showMoon: true,
|
showSkyBox: false, // 2D模式不需要天空盒
|
||||||
showSkyBox: true,
|
showSkyAtmosphere: false,
|
||||||
showSkyAtmosphere: true,
|
fog: false, // 关闭雾化提升性能
|
||||||
fog: true,
|
|
||||||
fxaa: false,
|
fxaa: false,
|
||||||
requestRenderMode: false,
|
requestRenderMode: true, // 启用按需渲染提升性能
|
||||||
|
|
||||||
|
// 简化地球配置
|
||||||
globe: {
|
globe: {
|
||||||
depthTestAgainstTerrain: false,
|
depthTestAgainstTerrain: false,
|
||||||
baseColor: "#546a53",
|
baseColor: "#546a53",
|
||||||
showGroundAtmosphere: true,
|
showGroundAtmosphere: false,
|
||||||
enableLighting: false,
|
enableLighting: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 简化相机控制(仅保留2D必要操作)
|
||||||
cameraController: {
|
cameraController: {
|
||||||
zoomFactor: 3.0,
|
zoomFactor: 3.0,
|
||||||
minimumZoomDistance: 1,
|
minimumZoomDistance: 1,
|
||||||
maximumZoomDistance: 50000000,
|
maximumZoomDistance: 50000000,
|
||||||
enableRotate: true,
|
enableRotate: false, // 2D模式下不需要旋转
|
||||||
enableTranslate: true,
|
enableTranslate: true, // 允许平移
|
||||||
enableTilt: true,
|
enableTilt: false, // 2D模式下不需要倾斜
|
||||||
enableZoom: true,
|
enableZoom: true, // 允许缩放
|
||||||
enableCollisionDetection: true,
|
enableCollisionDetection: false, // 2D模式下不需要碰撞检测
|
||||||
minimumCollisionTerrainHeight: 15000,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
control: {
|
control: {
|
||||||
homeButton: true,
|
// homeButton: true,
|
||||||
baseLayerPicker: true,
|
// baseLayerPicker: true,
|
||||||
sceneModePicker: true,
|
// sceneModePicker: true,
|
||||||
vrButton: false,
|
// vrButton: false,
|
||||||
fullscreenButton: true,
|
// fullscreenButton: true,
|
||||||
navigationHelpButton: true,
|
// navigationHelpButton: true,
|
||||||
|
// animation: false,
|
||||||
|
// timeline: false,
|
||||||
|
// infoBox: false,
|
||||||
|
// geocoder: false,
|
||||||
|
// selectionIndicator: false,
|
||||||
|
// contextmenu: { hasDefault: false },
|
||||||
|
// mouseDownView: true,
|
||||||
|
// zoom: { insertIndex: 1 },
|
||||||
|
// compass: { bottom: "toolbar", left: "5px" },
|
||||||
|
// distanceLegend: { left: "10px", bottom: "2px" },
|
||||||
|
|
||||||
|
homeButton: true, // 保留首页按钮
|
||||||
|
baseLayerPicker: false, // 隐藏底图切换
|
||||||
|
sceneModePicker: false, // 隐藏2D/3D切换
|
||||||
|
vrButton: false, // 隐藏VR按钮
|
||||||
|
fullscreenButton: true, // 保留全屏按钮
|
||||||
|
navigationHelpButton: false, // 隐藏帮助按钮
|
||||||
animation: false,
|
animation: false,
|
||||||
timeline: false,
|
timeline: false,
|
||||||
infoBox: false,
|
infoBox: false,
|
||||||
|
|
@ -68,23 +122,19 @@ const mapConfig = {
|
||||||
selectionIndicator: false,
|
selectionIndicator: false,
|
||||||
contextmenu: { hasDefault: false },
|
contextmenu: { hasDefault: false },
|
||||||
mouseDownView: true,
|
mouseDownView: true,
|
||||||
zoom: { insertIndex: 1 },
|
zoom: { insertIndex: 1 }, // 保留缩放控件
|
||||||
compass: { bottom: "toolbar", left: "5px" },
|
compass: false, // 隐藏指南针(2D不需要)
|
||||||
distanceLegend: { left: "10px", bottom: "2px" },
|
distanceLegend: false, // 隐藏距离图例
|
||||||
locationBar: {
|
|
||||||
fps: true,
|
|
||||||
crs: "CGCS2000_GK_Zone_3",
|
|
||||||
crsDecimal: 0,
|
|
||||||
template:
|
|
||||||
"<div>经度:{lng}</div> <div>纬度:{lat}</div> <div class='hide1000'>横{crsx} 纵{crsy}</div> <div>海拔:{alt}米</div> <div class='hide700'>层级:{level}</div><div>方向:{heading}°</div> <div>俯仰角:{pitch}°</div><div class='hide700'>视高:{cameraHeight}米</div>",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
templateValues: {
|
templateValues: {
|
||||||
|
// dataServer: "//data.mars3d.cn",
|
||||||
|
// gltfServerUrl: "//data.mars3d.cn/gltf",
|
||||||
dataServer: "//data.mars3d.cn",
|
dataServer: "//data.mars3d.cn",
|
||||||
gltfServerUrl: "//data.mars3d.cn/gltf",
|
gltfServerUrl: "//data.mars3d.cn/gltf",
|
||||||
},
|
},
|
||||||
terrain: {
|
terrain: {
|
||||||
url: "//data.mars3d.cn/terrain",
|
// url: "//data.mars3d.cn/terrain",
|
||||||
|
// show: false,
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
basemaps: [
|
basemaps: [
|
||||||
|
|
@ -111,57 +161,6 @@ const mapConfig = {
|
||||||
{ name: "注记", type: "tdt", layer: "vec_z" },
|
{ name: "注记", type: "tdt", layer: "vec_z" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "高德影像",
|
|
||||||
type: "group",
|
|
||||||
icon: "../../../../img/mars-map-img/gaode_img.png",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "gaode", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "gaode", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "高德电子",
|
|
||||||
type: "gaode",
|
|
||||||
icon: "../../../../img/mars-map-img/gaode_vec.png",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "百度影像",
|
|
||||||
type: "group",
|
|
||||||
icon: "../../../../img/mars-map-img/bd-img.png",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "baidu", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "baidu", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "百度电子",
|
|
||||||
icon: "../../../../img/mars-map-img/bd-vec.png",
|
|
||||||
type: "baidu",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "腾讯影像",
|
|
||||||
icon: "../../../../img/mars-map-img/tencent_img.png",
|
|
||||||
type: "group",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "tencent", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "tencent", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "腾讯电子",
|
|
||||||
icon: "../../../../img/mars-map-img/tencent_vec.png",
|
|
||||||
type: "tencent",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
pid: 10,
|
pid: 10,
|
||||||
name: "ArcGIS影像",
|
name: "ArcGIS影像",
|
||||||
|
|
@ -172,7 +171,6 @@ const mapConfig = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
function setParams(obj) {
|
function setParams(obj) {
|
||||||
objParams = JSON.parse(obj);
|
objParams = JSON.parse(obj);
|
||||||
layui.use(["form", "layer"], function () {
|
layui.use(["form", "layer"], function () {
|
||||||
|
|
@ -232,7 +230,13 @@ function initData() {
|
||||||
intLat = list[0].proLat ? list[0].proLat : list[0].lat;
|
intLat = list[0].proLat ? list[0].proLat : list[0].lat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// initMap(list);
|
||||||
|
$(document).ready(function () {
|
||||||
|
// 延迟初始化,确保 DOM 已就绪
|
||||||
|
setTimeout(() => {
|
||||||
initMap(list);
|
initMap(list);
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -771,12 +775,21 @@ function saveData() {
|
||||||
.getElementsByTagName("iframe")[0];
|
.getElementsByTagName("iframe")[0];
|
||||||
frameId.contentWindow.savePointData(JSON.stringify(points));
|
frameId.contentWindow.savePointData(JSON.stringify(points));
|
||||||
parent.layer.msg("保存成功", { icon: 1 });
|
parent.layer.msg("保存成功", { icon: 1 });
|
||||||
|
destroyMap();
|
||||||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
parent.layer.close(index); //再执行关闭
|
parent.layer.close(index); //再执行关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭页面
|
// 关闭页面
|
||||||
function closePage() {
|
function closePage() {
|
||||||
|
destroyMap();
|
||||||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
parent.layer.close(index); //再执行关闭
|
parent.layer.close(index); //再执行关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function destroyMap() {
|
||||||
|
if (window.mapInstance) {
|
||||||
|
window.mapInstance.destroy();
|
||||||
|
window.mapInstance = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,55 +12,109 @@ let lineList = [];
|
||||||
|
|
||||||
const mapConfig = {
|
const mapConfig = {
|
||||||
scene: {
|
scene: {
|
||||||
|
// center: {
|
||||||
|
// lat: 31.686288,
|
||||||
|
// lng: 117.229619,
|
||||||
|
// alt: 12000, // 高度≈缩放级别
|
||||||
|
// },
|
||||||
|
|
||||||
|
// highDynamicRange: false, // 关闭HDR(可减少模糊)
|
||||||
|
|
||||||
|
// scene3DOnly: false,
|
||||||
|
// shadows: false,
|
||||||
|
// removeDblClick: true,
|
||||||
|
// sceneMode: 1,
|
||||||
|
// showSun: true,
|
||||||
|
// showMoon: true,
|
||||||
|
// showSkyBox: true,
|
||||||
|
// showSkyAtmosphere: true,
|
||||||
|
// fog: true,
|
||||||
|
// fxaa: false,
|
||||||
|
// requestRenderMode: false,
|
||||||
|
// globe: {
|
||||||
|
// depthTestAgainstTerrain: false,
|
||||||
|
// baseColor: "#546a53",
|
||||||
|
// // showGroundAtmosphere: true,
|
||||||
|
// showGroundAtmosphere: true,
|
||||||
|
// enableLighting: false,
|
||||||
|
// },
|
||||||
|
// cameraController: {
|
||||||
|
// zoomFactor: 3.0,
|
||||||
|
// minimumZoomDistance: 1,
|
||||||
|
// maximumZoomDistance: 50000000,
|
||||||
|
// enableRotate: true,
|
||||||
|
// enableTranslate: true,
|
||||||
|
// enableTilt: true,
|
||||||
|
// enableZoom: true,
|
||||||
|
// enableCollisionDetection: true,
|
||||||
|
// minimumCollisionTerrainHeight: 15000,
|
||||||
|
// },
|
||||||
|
|
||||||
center: {
|
center: {
|
||||||
lat: 31.686288,
|
lat: 31.686288,
|
||||||
lng: 117.229619,
|
lng: 117.229619,
|
||||||
// alt: 11333.9,
|
|
||||||
// heading: 359.2,
|
|
||||||
// pitch: -39.5,
|
|
||||||
alt: 12000, // 高度≈缩放级别
|
alt: 12000, // 高度≈缩放级别
|
||||||
// heading: 30, // 旋转30度
|
|
||||||
// pitch: -45, // 俯视角45度
|
|
||||||
},
|
},
|
||||||
|
// 强制2D模式
|
||||||
highDynamicRange: false, // 关闭HDR(可减少模糊)
|
sceneMode: 2, // 2表示2D模式,1是3D
|
||||||
|
|
||||||
scene3DOnly: false,
|
scene3DOnly: false,
|
||||||
|
|
||||||
|
// 简化渲染设置
|
||||||
|
highDynamicRange: false,
|
||||||
shadows: false,
|
shadows: false,
|
||||||
removeDblClick: true,
|
removeDblClick: true,
|
||||||
sceneMode: 1,
|
showSun: false, // 2D模式下不需要太阳月亮
|
||||||
showSun: true,
|
showMoon: false,
|
||||||
showMoon: true,
|
showSkyBox: false, // 2D模式不需要天空盒
|
||||||
showSkyBox: true,
|
showSkyAtmosphere: false,
|
||||||
showSkyAtmosphere: true,
|
fog: false, // 关闭雾化提升性能
|
||||||
fog: true,
|
|
||||||
fxaa: false,
|
fxaa: false,
|
||||||
requestRenderMode: false,
|
requestRenderMode: true, // 启用按需渲染提升性能
|
||||||
|
|
||||||
|
// 简化地球配置
|
||||||
globe: {
|
globe: {
|
||||||
depthTestAgainstTerrain: false,
|
depthTestAgainstTerrain: false,
|
||||||
baseColor: "#546a53",
|
baseColor: "#546a53",
|
||||||
showGroundAtmosphere: true,
|
showGroundAtmosphere: false,
|
||||||
enableLighting: false,
|
enableLighting: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// 简化相机控制(仅保留2D必要操作)
|
||||||
cameraController: {
|
cameraController: {
|
||||||
zoomFactor: 3.0,
|
zoomFactor: 3.0,
|
||||||
minimumZoomDistance: 1,
|
minimumZoomDistance: 1,
|
||||||
maximumZoomDistance: 50000000,
|
maximumZoomDistance: 50000000,
|
||||||
enableRotate: true,
|
enableRotate: false, // 2D模式下不需要旋转
|
||||||
enableTranslate: true,
|
enableTranslate: true, // 允许平移
|
||||||
enableTilt: true,
|
enableTilt: false, // 2D模式下不需要倾斜
|
||||||
enableZoom: true,
|
enableZoom: true, // 允许缩放
|
||||||
enableCollisionDetection: true,
|
enableCollisionDetection: false, // 2D模式下不需要碰撞检测
|
||||||
minimumCollisionTerrainHeight: 15000,
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
control: {
|
control: {
|
||||||
homeButton: true,
|
// homeButton: true,
|
||||||
baseLayerPicker: true,
|
// baseLayerPicker: true,
|
||||||
sceneModePicker: true,
|
// sceneModePicker: true,
|
||||||
vrButton: false,
|
// vrButton: false,
|
||||||
fullscreenButton: true,
|
// fullscreenButton: true,
|
||||||
navigationHelpButton: true,
|
// navigationHelpButton: true,
|
||||||
|
// animation: false,
|
||||||
|
// timeline: false,
|
||||||
|
// infoBox: false,
|
||||||
|
// geocoder: false,
|
||||||
|
// selectionIndicator: false,
|
||||||
|
// contextmenu: { hasDefault: false },
|
||||||
|
// mouseDownView: true,
|
||||||
|
// zoom: { insertIndex: 1 },
|
||||||
|
// compass: { bottom: "toolbar", left: "5px" },
|
||||||
|
// distanceLegend: { left: "10px", bottom: "2px" },
|
||||||
|
|
||||||
|
homeButton: true, // 保留首页按钮
|
||||||
|
baseLayerPicker: false, // 隐藏底图切换
|
||||||
|
sceneModePicker: false, // 隐藏2D/3D切换
|
||||||
|
vrButton: false, // 隐藏VR按钮
|
||||||
|
fullscreenButton: true, // 保留全屏按钮
|
||||||
|
navigationHelpButton: false, // 隐藏帮助按钮
|
||||||
animation: false,
|
animation: false,
|
||||||
timeline: false,
|
timeline: false,
|
||||||
infoBox: false,
|
infoBox: false,
|
||||||
|
|
@ -68,23 +122,19 @@ const mapConfig = {
|
||||||
selectionIndicator: false,
|
selectionIndicator: false,
|
||||||
contextmenu: { hasDefault: false },
|
contextmenu: { hasDefault: false },
|
||||||
mouseDownView: true,
|
mouseDownView: true,
|
||||||
zoom: { insertIndex: 1 },
|
zoom: { insertIndex: 1 }, // 保留缩放控件
|
||||||
compass: { bottom: "toolbar", left: "5px" },
|
compass: false, // 隐藏指南针(2D不需要)
|
||||||
distanceLegend: { left: "10px", bottom: "2px" },
|
distanceLegend: false, // 隐藏距离图例
|
||||||
locationBar: {
|
|
||||||
fps: true,
|
|
||||||
crs: "CGCS2000_GK_Zone_3",
|
|
||||||
crsDecimal: 0,
|
|
||||||
template:
|
|
||||||
"<div>经度:{lng}</div> <div>纬度:{lat}</div> <div class='hide1000'>横{crsx} 纵{crsy}</div> <div>海拔:{alt}米</div> <div class='hide700'>层级:{level}</div><div>方向:{heading}°</div> <div>俯仰角:{pitch}°</div><div class='hide700'>视高:{cameraHeight}米</div>",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
templateValues: {
|
templateValues: {
|
||||||
|
// dataServer: "//data.mars3d.cn",
|
||||||
|
// gltfServerUrl: "//data.mars3d.cn/gltf",
|
||||||
dataServer: "//data.mars3d.cn",
|
dataServer: "//data.mars3d.cn",
|
||||||
gltfServerUrl: "//data.mars3d.cn/gltf",
|
gltfServerUrl: "//data.mars3d.cn/gltf",
|
||||||
},
|
},
|
||||||
terrain: {
|
terrain: {
|
||||||
url: "//data.mars3d.cn/terrain",
|
// url: "//data.mars3d.cn/terrain",
|
||||||
|
// show: false,
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
basemaps: [
|
basemaps: [
|
||||||
|
|
@ -111,57 +161,6 @@ const mapConfig = {
|
||||||
{ name: "注记", type: "tdt", layer: "vec_z" },
|
{ name: "注记", type: "tdt", layer: "vec_z" },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "高德影像",
|
|
||||||
type: "group",
|
|
||||||
icon: "../../../../img/mars-map-img/gaode_img.png",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "gaode", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "gaode", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "高德电子",
|
|
||||||
type: "gaode",
|
|
||||||
icon: "../../../../img/mars-map-img/gaode_vec.png",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "百度影像",
|
|
||||||
type: "group",
|
|
||||||
icon: "../../../../img/mars-map-img/bd-img.png",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "baidu", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "baidu", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "百度电子",
|
|
||||||
icon: "../../../../img/mars-map-img/bd-vec.png",
|
|
||||||
type: "baidu",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "腾讯影像",
|
|
||||||
icon: "../../../../img/mars-map-img/tencent_img.png",
|
|
||||||
type: "group",
|
|
||||||
layers: [
|
|
||||||
{ name: "底图", type: "tencent", layer: "img_d" },
|
|
||||||
{ name: "注记", type: "tencent", layer: "img_z" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
pid: 10,
|
|
||||||
name: "腾讯电子",
|
|
||||||
icon: "../../../../img/mars-map-img/tencent_vec.png",
|
|
||||||
type: "tencent",
|
|
||||||
layer: "vec",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
pid: 10,
|
pid: 10,
|
||||||
name: "ArcGIS影像",
|
name: "ArcGIS影像",
|
||||||
|
|
@ -232,7 +231,13 @@ function initData() {
|
||||||
intLat = list[0].proLat ? list[0].proLat : list[0].lat;
|
intLat = list[0].proLat ? list[0].proLat : list[0].lat;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// initMap(list);
|
||||||
|
$(document).ready(function () {
|
||||||
|
// 延迟初始化,确保 DOM 已就绪
|
||||||
|
setTimeout(() => {
|
||||||
initMap(list);
|
initMap(list);
|
||||||
|
}, 300);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -777,12 +782,21 @@ function saveData() {
|
||||||
.getElementsByTagName("iframe")[0];
|
.getElementsByTagName("iframe")[0];
|
||||||
frameId.contentWindow.savePointData(JSON.stringify(points));
|
frameId.contentWindow.savePointData(JSON.stringify(points));
|
||||||
parent.layer.msg("保存成功", { icon: 1 });
|
parent.layer.msg("保存成功", { icon: 1 });
|
||||||
|
destroyMap();
|
||||||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
parent.layer.close(index); //再执行关闭
|
parent.layer.close(index); //再执行关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关闭页面
|
// 关闭页面
|
||||||
function closePage() {
|
function closePage() {
|
||||||
|
destroyMap();
|
||||||
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
parent.layer.close(index); //再执行关闭
|
parent.layer.close(index); //再执行关闭
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function destroyMap() {
|
||||||
|
if (window.mapInstance) {
|
||||||
|
window.mapInstance.destroy();
|
||||||
|
window.mapInstance = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,21 +32,21 @@ function setParams(params) {
|
||||||
$("#crossPublicFields").hide();
|
$("#crossPublicFields").hide();
|
||||||
$("#crossRailwayFields").hide();
|
$("#crossRailwayFields").hide();
|
||||||
crossLineFields();
|
crossLineFields();
|
||||||
$('#setting').show();
|
$("#setting").show();
|
||||||
break;
|
break;
|
||||||
case "cross-public":
|
case "cross-public":
|
||||||
$("#crossLineFields").hide();
|
$("#crossLineFields").hide();
|
||||||
$("#crossPublicFields").show();
|
$("#crossPublicFields").show();
|
||||||
$("#crossRailwayFields").hide();
|
$("#crossRailwayFields").hide();
|
||||||
crossPublicFields();
|
crossPublicFields();
|
||||||
$('#setting').hide();
|
$("#setting").hide();
|
||||||
break;
|
break;
|
||||||
case "cross-railway":
|
case "cross-railway":
|
||||||
$("#crossLineFields").hide();
|
$("#crossLineFields").hide();
|
||||||
$("#crossPublicFields").hide();
|
$("#crossPublicFields").hide();
|
||||||
$("#crossRailwayFields").show();
|
$("#crossRailwayFields").show();
|
||||||
crossRailwayFields();
|
crossRailwayFields();
|
||||||
$('#setting').hide();
|
$("#setting").hide();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
form.render();
|
form.render();
|
||||||
|
|
@ -321,17 +321,19 @@ function getThreeSpanById() {
|
||||||
function (result) {
|
function (result) {
|
||||||
layer.close(loadingMsg);
|
layer.close(loadingMsg);
|
||||||
if (result.code === 200) {
|
if (result.code === 200) {
|
||||||
if(result.data && result.data.spanType){
|
if (result.data && result.data.spanType) {
|
||||||
$('.span-type-option').eq(parseInt(result.data.spanType) - 1).trigger('click');
|
$(".span-type-option")
|
||||||
if(result.data.spanType === '1'){
|
.eq(parseInt(result.data.spanType) - 1)
|
||||||
$('.span-type-option').eq(1).hide();
|
.trigger("click");
|
||||||
$('.span-type-option').eq(2).hide();
|
if (result.data.spanType === "1") {
|
||||||
}else if(result.data.spanType === '2'){
|
$(".span-type-option").eq(1).hide();
|
||||||
$('.span-type-option').eq(0).hide();
|
$(".span-type-option").eq(2).hide();
|
||||||
$('.span-type-option').eq(2).hide();
|
} else if (result.data.spanType === "2") {
|
||||||
}else if(result.data.spanType === '3'){
|
$(".span-type-option").eq(0).hide();
|
||||||
$('.span-type-option').eq(0).hide();
|
$(".span-type-option").eq(2).hide();
|
||||||
$('.span-type-option').eq(1).hide();
|
} else if (result.data.spanType === "3") {
|
||||||
|
$(".span-type-option").eq(0).hide();
|
||||||
|
$(".span-type-option").eq(1).hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
setFormData(result.data);
|
setFormData(result.data);
|
||||||
|
|
@ -469,10 +471,14 @@ function saveData(data) {
|
||||||
// 组装经纬度数据
|
// 组装经纬度数据
|
||||||
let tbSpanTowerList = [];
|
let tbSpanTowerList = [];
|
||||||
|
|
||||||
if (!pointsStr) {
|
if (
|
||||||
|
!pointsStr &&
|
||||||
|
$(".span-type-option.active").data("type") === "cross-line"
|
||||||
|
) {
|
||||||
return layer.msg("请配置跨越杆塔经纬度", { icon: 7 });
|
return layer.msg("请配置跨越杆塔经纬度", { icon: 7 });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($(".span-type-option.active").data("type") === "cross-line") {
|
||||||
tbSpanTowerList = JSON.parse(pointsStr).map((item) => {
|
tbSpanTowerList = JSON.parse(pointsStr).map((item) => {
|
||||||
return {
|
return {
|
||||||
id: item.id || null,
|
id: item.id || null,
|
||||||
|
|
@ -483,6 +489,8 @@ function saveData(data) {
|
||||||
sort: item.sort,
|
sort: item.sort,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// for (let i = 1; i <= 4; i++) {
|
// for (let i = 1; i <= 4; i++) {
|
||||||
// let lon = data[`crossTowerLongitude${i}`];
|
// let lon = data[`crossTowerLongitude${i}`];
|
||||||
// let lat = data[`crossTowerLatitude${i}`];
|
// let lat = data[`crossTowerLatitude${i}`];
|
||||||
|
|
|
||||||
|
|
@ -1375,7 +1375,7 @@ function getLegendData(id) {
|
||||||
innerHtml += `
|
innerHtml += `
|
||||||
<div class="legend-item">
|
<div class="legend-item">
|
||||||
<img src="${item.icon}" alt="">
|
<img src="${item.icon}" alt="">
|
||||||
<span>${item.name}</span>
|
<span class="legend-item-name">${item.name}</span>
|
||||||
<span>${item.value}</span>
|
<span>${item.value}</span>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
@ -1610,24 +1610,24 @@ document.addEventListener("DOMContentLoaded", function () {
|
||||||
const projectOverviewContent = document.querySelector(
|
const projectOverviewContent = document.querySelector(
|
||||||
".project-overview-content"
|
".project-overview-content"
|
||||||
);
|
);
|
||||||
const projectOverviewPreviewBox = document.querySelector(
|
// const projectOverviewPreviewBox = document.querySelector(
|
||||||
".project-overview-preview-box"
|
// ".project-overview-preview-box"
|
||||||
);
|
// );
|
||||||
projectOverviewBox.addEventListener("mouseenter", function () {
|
// projectOverviewBox.addEventListener("mouseenter", function () {
|
||||||
if (
|
// if (
|
||||||
projectOverviewContent.scrollHeight >
|
// projectOverviewContent.scrollHeight >
|
||||||
projectOverviewContent.clientHeight
|
// projectOverviewContent.clientHeight
|
||||||
) {
|
// ) {
|
||||||
projectOverviewPreviewBox.style.display = "block";
|
// projectOverviewPreviewBox.style.display = "block";
|
||||||
projectOverviewPreviewBox.innerHTML =
|
// projectOverviewPreviewBox.innerHTML =
|
||||||
projectOverviewContent.innerHTML;
|
// projectOverviewContent.innerHTML;
|
||||||
} else {
|
// } else {
|
||||||
projectOverviewPreviewBox.style.display = "none";
|
// projectOverviewPreviewBox.style.display = "none";
|
||||||
projectOverviewPreviewBox.innerHTML = "";
|
// projectOverviewPreviewBox.innerHTML = "";
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
projectOverviewBox.addEventListener("mouseleave", function () {
|
// projectOverviewBox.addEventListener("mouseleave", function () {
|
||||||
projectOverviewPreviewBox.style.display = "none";
|
// projectOverviewPreviewBox.style.display = "none";
|
||||||
projectOverviewPreviewBox.innerHTML = "";
|
// projectOverviewPreviewBox.innerHTML = "";
|
||||||
});
|
// });
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -25,11 +25,11 @@
|
||||||
<script src="http://mars3d.cn/lib/mars3d/mars3d.js" type="text/javascript"></script>
|
<script src="http://mars3d.cn/lib/mars3d/mars3d.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<!--引入mars3d库插件lib(按需引入)-->
|
<!--引入mars3d库插件lib(按需引入)-->
|
||||||
<script src="http://mars3d.cn/lib/mars3d/plugins/space/mars3d-space.js" type="text/javascript"></script>
|
<!-- <script src="http://mars3d.cn/lib/mars3d/plugins/space/mars3d-space.js" type="text/javascript"></script> -->
|
||||||
|
|
||||||
<!--第三方lib,非必须-->
|
<!--第三方lib,非必须-->
|
||||||
<link rel="stylesheet" href="http://mars3d.cn/lib/fonts/font-awesome/css/font-awesome.min.css">
|
<!-- <link rel="stylesheet" href="http://mars3d.cn/lib/fonts/font-awesome/css/font-awesome.min.css"> -->
|
||||||
<script type="text/javascript" src="http://mars3d.cn/lib/hao/haoutil.js"></script>
|
<!-- <script type="text/javascript" src="http://mars3d.cn/lib/hao/haoutil.js"></script> -->
|
||||||
|
|
||||||
<title>配置索道口、中转口经纬度</title>
|
<title>配置索道口、中转口经纬度</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
||||||
|
|
@ -111,8 +111,8 @@
|
||||||
|
|
||||||
|
|
||||||
<!-- 预览框 -->
|
<!-- 预览框 -->
|
||||||
<div class="project-overview-preview-box">
|
<!-- <div class="project-overview-preview-box">
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 右侧抽屉 -->
|
<!-- 右侧抽屉 -->
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue