From d24dd35d265a0b6bd0620285d226b5bed3d4566e Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期四, 11 十二月 2025 19:40:27 +0800
Subject: [PATCH] 大屏提交1:首页、GIS、视频页面
---
fzzy-igdss-web/src/main/resources/static/group/gis-map.js | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 103 insertions(+), 3 deletions(-)
diff --git a/fzzy-igdss-web/src/main/resources/static/group/gis-map.js b/fzzy-igdss-web/src/main/resources/static/group/gis-map.js
index ca1335d..7b7d365 100644
--- a/fzzy-igdss-web/src/main/resources/static/group/gis-map.js
+++ b/fzzy-igdss-web/src/main/resources/static/group/gis-map.js
@@ -13,6 +13,35 @@
return hex;
}
+//---------------------------------------------------------------------------------
+//just some colors
+// var colors = [
+// "#3366cc", "#dc3912", "#ff9900", "#109618", "#990099", "#0099c6", "#dd4477", "#66aa00",
+// "#b82e2e", "#316395", "#994499", "#22aa99", "#aaaa11", "#6633cc", "#e67300", "#8b0707",
+// "#651067", "#329262", "#5574a6", "#3b3eac"
+// ];
+// var colors = [
+// "#3366cc",
+// "#191970",
+// "#000080",
+// "#6495ED",
+// "#483D8B",
+// "#6A5ACD",
+// "#0000CD",
+// "#7B68EE",
+// "#4169E1",
+// "#8470FF",
+// "#0000FF",
+// "#1E90FF",
+// "#00BFFF",
+// "#87CEEB",
+// "#87CEFA",
+// "#4682B4",
+// "#B0C4DE",
+// "#ADD8E6",
+// "#B0E0E6",
+// "#3b3eac"
+// ];
// 棰滆壊杈呭姪鏂规硶
var colors = [];
var num = 0;
@@ -27,6 +56,7 @@
eventSupport: true, //鎵撳紑浜嬩欢鏀寔
map: map
});
+ console.log(districtExplorer);
//鐩戝惉feature鐨刪over浜嬩欢
districtExplorer.on('featureMouseout featureMouseover', function(e, feature) {
toggleHoverFeature(feature, e.type === 'featureMouseover',
@@ -41,6 +71,7 @@
//feature琚偣鍑�
districtExplorer.on('featureClick', function(e, feature) {
+
var props = feature.properties;
//濡傛灉瀛樺湪瀛愯妭鐐�
// if (props.childrenNum > 0) {
@@ -52,15 +83,18 @@
//澶栭儴鍖哄煙琚偣鍑�
districtExplorer.on('outsideClick', function(e) {
+
districtExplorer.locatePosition(e.originalEvent.lnglat, function(error, routeFeatures) {
+
if (routeFeatures && routeFeatures.length > 1) {
//鍒囨崲鍒扮渷绾у尯鍩�
// switch2AreaNode(routeFeatures[1].properties.adcode);
renderAreas(routeFeatures[1].properties.adcode);
} else {
//鍒囨崲鍒板叏鍥�
- switch2AreaNode(610000);
+ switch2AreaNode(650000);
}
+
}, {
levelLimit: 2
});
@@ -69,8 +103,10 @@
//褰撳墠鑱氱劍鐨勫尯鍩�
var currentAreaNode = null;
+
//榧犳爣hover鎻愮ず鍐呭
var $tipMarkerContent = $('<div class="tipMarker top" style="color: #1E9CFF;font-size: 18px;weight:100px;"></div>');
+
var tipMarker = new AMap.Marker({
content: $tipMarkerContent.get(0),
offset: new AMap.Pixel(0, 0),
@@ -79,12 +115,17 @@
//鏍规嵁Hover鐘舵�佽缃浉鍏虫牱寮�
function toggleHoverFeature(feature, isHover, position) {
+
tipMarker.setMap(isHover ? map : null);
+
if (!feature) {
return;
}
+
var props = feature.properties;
+
if (isHover) {
+
//鏇存柊鎻愮ず鍐呭
$tipMarkerContent.html("銆�銆�銆�" + props.name);
//鏇存柊浣嶇疆
@@ -96,6 +137,7 @@
//鏇存柊鐩稿叧澶氳竟褰㈢殑鏍峰紡
var polys = districtExplorer.findFeaturePolygonsByAdcode(props.adcode);
for (var i = 0, len = polys.length; i < len; i++) {
+
polys[i].setOptions({
fillOpacity: isHover ? 0.5 : 0.35
});
@@ -106,34 +148,47 @@
//缁樺埗鍖哄煙闈㈡澘鐨勮妭鐐�
function renderAreaPanelNode(ele, props, color) {
+
var $box = $('<li/>').addClass('lv_' + props.level);
+
var $h2 = $('<h2/>').addClass('lv_' + props.level).attr({
'data-adcode': props.adcode,
'data-level': props.level,
'data-children-num': props.childrenNum || void(0),
'data-center': props.center.join(',')
}).html(props.name).appendTo($box);
+
if (color) {
$h2.css('borderColor', color);
}
+
//濡傛灉瀛樺湪瀛愯妭鐐�
if (props.childrenNum > 0) {
+
//鏄剧ず闅愯棌
$('<div class="showHideBtn"></div>').appendTo($box);
+
//瀛愬尯鍩熷垪琛�
$('<ul/>').addClass('sublist lv_' + props.level).appendTo($box);
+
$('<div class="clear"></div>').appendTo($box);
+
if (props.level !== 'country') {
$box.addClass('hide-sub');
}
}
+
$box.appendTo(ele);
}
+
//濉厖鏌愪釜鑺傜偣鐨勫瓙鍖哄煙鍒楄〃
function renderAreaPanel(areaNode) {
+
var props = areaNode.getProps();
+
var $subBox = $('#area-tree').find('h2[data-adcode="' + props.adcode + '"]').siblings('ul.sublist');
+
if (!$subBox.length && props.childrenNum) {
//鐖惰妭鐐逛笉瀛樺湪锛屽厛鍒涘缓
renderAreaPanelNode($('#area-tree'), props);
@@ -142,8 +197,11 @@
if ($subBox.attr('data-loaded') === 'rendered') {
return;
}
+
$subBox.attr('data-loaded', 'rendered');
+
var subFeatures = areaNode.getSubFeatures();
+
//濉厖瀛愬尯鍩�
for (var i = 0, len = subFeatures.length; i < len; i++) {
renderAreaPanelNode($subBox, areaNode.getPropsOfFeature(subFeatures[i]), colors[i % colors.length]);
@@ -154,12 +212,16 @@
function renderAreaPolygons(areaNode) {
//鏇存柊鍦板浘瑙嗛噹
map.setBounds(areaNode.getBounds(), null, null, true);
+
//娓呴櫎宸叉湁鐨勭粯鍒跺唴瀹�
districtExplorer.clearFeaturePolygons();
+
//缁樺埗瀛愬尯鍩�
districtExplorer.renderSubFeatures(areaNode, function(feature, i) {
+
var fillColor = colors[i % colors.length];
var strokeColor = colors[colors.length - 1 - i % colors.length];
+
return {
cursor: 'default',
bubble: true,
@@ -170,6 +232,7 @@
fillOpacity: 0.35, //濉厖閫忔槑搴�
};
});
+
//缁樺埗鐖跺尯鍩�
districtExplorer.renderParentFeature(areaNode, {
cursor: 'default',
@@ -181,16 +244,24 @@
fillOpacity: 0.35, //濉厖閫忔槑搴�
});
}
+
//鍒囨崲鍖哄煙鍚庡埛鏂版樉绀哄唴瀹�
function refreshAreaNode(areaNode) {
+
districtExplorer.setHoverFeature(null);
+
renderAreaPolygons(areaNode);
+
//鏇存柊閫変腑鑺傜偣鐨刢lass
var $nodeEles = $('#area-tree').find('h2');
+
$nodeEles.removeClass('selected');
+
var $selectedNode = $nodeEles.filter('h2[data-adcode=' + areaNode.getAdcode() + ']').addClass('selected');
+
//灞曞紑涓嬪眰鑺傜偣
$selectedNode.closest('li').removeClass('hide-sub');
+
//鎶樺彔涓嬪眰鐨勫瓙鑺傜偣
$selectedNode.siblings('ul.sublist').children().addClass('hide-sub');
}
@@ -199,21 +270,31 @@
function switch2AreaNode(adcode, callback) {
//-----------------------鍒锋柊鏁版嵁
county = adcode;
- ajaxFoodNum();
+ // ajaxFoodNum();
+
+
if (currentAreaNode && ('' + currentAreaNode.getAdcode() === '' + adcode)) {
return;
}
+
loadAreaNode(adcode, function(error, areaNode) {
+
if (error) {
+
if (callback) {
callback(error);
}
+
return;
}
+
currentAreaNode = window.currentAreaNode = areaNode;
+
//璁剧疆褰撳墠浣跨敤鐨勫畾浣嶇敤鑺傜偣
districtExplorer.setAreaNodesForLocating([currentAreaNode]);
+
refreshAreaNode(areaNode);
+
if (callback) {
callback(null, areaNode);
}
@@ -222,15 +303,22 @@
//鍔犺浇鍖哄煙
function loadAreaNode(adcode, callback) {
+
districtExplorer.loadAreaNode(adcode, function(error, areaNode) {
+
if (error) {
+
if (callback) {
callback(error);
}
+
console.error(error);
+
return;
}
+
renderAreaPanel(areaNode);
+
if (callback) {
callback(null, areaNode);
}
@@ -238,11 +326,14 @@
}
$('#area-tree').on('mouseenter mouseleave', 'h2[data-adcode]', function(e) {
+
if (e.type === 'mouseleave') {
districtExplorer.setHoverFeature(null);
return;
}
+
var adcode = $(this).attr('data-adcode');
+
districtExplorer.setHoverFeature(currentAreaNode.getSubFeatureByAdcode(adcode));
});
@@ -253,19 +344,28 @@
});
$('#area-tree').on('click', '.showHideBtn', function() {
+
var $li = $(this).closest('li');
+
$li.toggleClass('hide-sub');
+
if (!$li.hasClass('hide-sub')) {
+
//瀛愯妭鐐瑰垪琛ㄨ灞曞紑
var $subList = $li.children('ul.sublist');
+
//灏氭湭鍔犺浇
if (!$subList.attr('data-loaded')) {
+
$subList.attr('data-loaded', 'loading');
+
$li.addClass('loading');
+
//鍔犺浇
loadAreaNode($li.children('h2').attr('data-adcode'), function() {
+
$li.removeClass('loading');
});
}
}
-});
\ No newline at end of file
+});
--
Gitblit v1.9.3