From 4fdc4a6da681223148849a9b2eaf90227a56148a Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Fri, 09 Nov 2018 13:22:47 +0800
Subject: [PATCH] 地图 更改从列表定位
---
src/main/webapp/view/map.jsp | 243 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 177 insertions(+), 66 deletions(-)
diff --git a/src/main/webapp/view/map.jsp b/src/main/webapp/view/map.jsp
index e339ca1..2ca7b1e 100644
--- a/src/main/webapp/view/map.jsp
+++ b/src/main/webapp/view/map.jsp
@@ -13,6 +13,7 @@
<title></title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=rER1sgBIcQxkfNSlm2wmBGZGgEERrooM"></script>
<script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/utils.js"></script>
<script type="text/javascript">
if(typeof (JSON) == 'undefined'){
$.getScript("js/json2.js");
@@ -48,7 +49,17 @@
padding:0;
list-style:none;
}
-
+a{
+ color: #1900c6;
+ text-decoration: none;
+ cursor: pointer;
+ font-size: 14px;
+ font-weight: 300;
+}
+a:hover {
+ text-decoration: underline;
+ color: #e60012;
+}
#popup_box {
top: 75px;
left: 20px;
@@ -267,14 +278,14 @@
<div class="charts_btn">
</div>
</div>
- <div class="search_box">
+ <!-- <div class="search_box">
<button id="searchBtn" type="button">������</button>
<input id="searchParam"/>
</div>
<div id="popup_box">
<div id="equ_list" class="listview">
</div>
- </div>
+ </div> -->
<div id="mapCanvas"></div>
<div id="mapParams" style="display: none;">
${requestScope.mapParams}
@@ -289,18 +300,26 @@
var moralMap = window.moralMap;
var params = $.parseJSON($("#mapParams").html());
moralMap['params'] = params;
+ var mapType = getUrlParam("mapType");
+ var mapOption = {};
+ if(!!mapType && !!eval(mapType)) {
+ mapOption["mapType"] = eval(mapType);
+ }
+ var showZoom = getUrlParam("showZoom");
//������������������������������
- moralMap.mapInit(params["regionName"]);
+ moralMap.mapInit(params["regionName"],mapOption,showZoom);
//������������
var listView =moralMap.initListView({id: "#equ_list",pageSize:12});
window["listView"] = listView;
//���������������������click������������
function showEqus(obj) {
+
var params = moralMap['params'];
var mpoint = obj.currentTarget.getOption();
+ //$("#searchParam").val(mpoint['name']);
var url = 'get-devices-by-mid-oid?mpId=' + mpoint['id'] + "&orgId=" + params['orgId'];
listView.load(url);
- moralMap.showPopupbox("#popup_box");
+ //moralMap.showPopupbox("#popup_box");
}
function loadLazy(url,paramMap,callBack,lazyKeyer){
if(lazyKeyer==undefined){
@@ -338,7 +357,12 @@
var maxBounds = moralMap.getMaxBounds();
var paramMap = {};
paramMap["orgId"]= params['orgId'];
- $.extend(paramMap,maxBounds);
+ // ���������������������
+ paramMap["Fe"]= maxBounds.northeastLat;//���������������������������
+ paramMap["Ge"]= maxBounds.northeastLng;//���������������������������
+ paramMap["Ke"]= maxBounds.southwestLat;//���������������������������������
+ paramMap["Le"]= maxBounds.southwestLng;//���������������������������������
+ // $.extend(paramMap,maxBounds);
loadLazy(url,paramMap,callback);
}
}
@@ -361,6 +385,7 @@
return;
}
var equ = {
+ methodName : 'showDeviceMonitor',
name: _obj['name'],
mac: (_obj['mac']).toLowerCase(),
longitude: _obj['longitude'],
@@ -370,9 +395,11 @@
}
var equStr = JSON.stringify(equ);
if(window["console"]!=undefined){
- console.log(equStr);
}
- if(window['external']&&window['external']['showMonitorInfo']){
+ if(!!window['external']&&!!window['external']['callWin']){
+ window['external'].callWin(equStr);
+ }else
+ if(!!window['external']&&!!window['external']['showMonitorInfo']){
window['external'].showMonitorInfo(equStr);
}else{
alert(equStr);
@@ -403,57 +430,134 @@
var bounds = moralMap.getBounds();
paramMap["areaCode"]= params['areaCode'];
paramMap["orgId"]= params['orgId'];
- paramMap["Fe"]= bounds['Fe'];//���������������������������
- paramMap["Ge"]= bounds['Ge'];//���������������������������
- paramMap["Ke"]= bounds['Ke'];//���������������������������������
- paramMap["Le"]= bounds['Le'];//���������������������������������
+ // ���������������������
+ paramMap["Fe"]= bounds.northeastLat;//���������������������������
+ paramMap["Ge"]= bounds.northeastLng;//���������������������������
+ paramMap["Ke"]= bounds.southwestLat;//���������������������������������
+ paramMap["Le"]= bounds.southwestLng;//���������������������������������
loadLazy("getMonitorpointList",paramMap,addOverMpoints);
startRefreshPage();
+ showGrid();
});
//��������������������� ���������������,���������
moralMap.addEventListener("tilesloaded", function(type, target) {
+ showGrid();
});
+
+ //map���������������
+ // TODO ������
+ function getBounds() {
+ var bs = moralMap.getBounds(); //������������������������������������
+ // var bssw = bs.getSouthWest(); //���������������������������(������������)
+ // var bsne = bs.getNorthEast(); //���������������������������(������������)
+ if(!getBounds.topLeftAnchor){
+ getBounds.topLeftAnchor = {};
+ getBounds.topLeftAnchor.x0 = bs.southwestLng;
+ getBounds.topLeftAnchor.y0 = bs.northeastLat;
+ }
+ return { 'x1': bs.southwestLng, 'y1': bs.southwestLat, 'x2': bs.northeastLng, 'y2': bs.northeastLat };
+ }
+ /**
+ * ������������
+ */
+ // TODO ������
+ function showGrid(){
+ var isShowGrid = getUrlParam("isShowGrid");
+ if(!!isShowGrid){
+ $(".tools_box").hide();
+ }
+ // if(!isShowGrid||moralMap.getZoom()<14){
+ if(!isShowGrid||moralMap.getZoom()<14){
+ return;
+ }
+ var XY = getBounds();
+ var polygons = [];
+ console.log(XY);
+ var X1 = XY.x1;
+ var Y2 = XY.y2;
+ var X0 = getBounds.topLeftAnchor.x0;
+ var Y0 = getBounds.topLeftAnchor.y0;
+ var width = 0.0063;
+ var height = 0.0048;
+ // var multiple = 1000000;
+ if(!!getBounds.topLeftAnchor) {
+ X1=X0 + Math.ceil((X1-X0)/width-1)*width;
+ Y2=Y0 + Math.ceil((Y2-Y0)/height)*height;
+ }
+ for (var i = X1; i < XY.x2; i = i + width) {
+ for (var j = Y2; j > XY.y1; j = j - height) {
+ //���������������������������������������������������:������������������Point���������������������������,���������������������������,���������������������������,���������������������������������������������������������������������������������������������������������������,������������������������������������������������������������������
+ var polygon = new BMap.Polygon([
+ new BMap.Point(i, j), //������������������
+ new BMap.Point(i, j-height), //������������������
+ new BMap.Point(i+width, j-height), //������������������
+ new BMap.Point(i+width, j) //������������������
+ ], {strokeColor:"blue", strokeWeight:2, strokeOpacity:0.5, fillOpacity:0.1});
+ // polygon .addEventListener("click",function clickFunction(){
+ // alert("������������������");
+ // });
+ // moralMap.addOverlay(polygon);
+ polygons.push(polygon);
+ }
+ }
+ moralMap.addOverlays(polygons);
+ if(!!showGrid.polygons){
+ moralMap.removeOverlays(showGrid.polygons);
+ }
+ showGrid.polygons = polygons;
+ }
// ������������������ ������������
moralMap.addEventListener("click", function(type, target) {
- moralMap.closePopupbox("#popup_box");
+ //moralMap.closePopupbox("#popup_box");
});
//������������������������������������������
moralMap.addEventListener('zoomstart', function(type) {});
//������������������������������������������
moralMap.addEventListener('zoomend', function(type) {
var endZoom = this.getZoom();
- if(endZoom>=moralMap.getZooMConfine()){//������������������������
+ if(endZoom>=moralMap.getZoomConfine()){//������������������������
loadOverlays("get-devices",addOverEquipments);
}else{
loadOverlays("get-monitorpoints",addOverMpoints);
}
- moralMap.closePopupbox("#popup_box");
+ //moralMap.closePopupbox("#popup_box");
});
moralMap.addEventListener('moveend', function(type) {
var endZoom = this.getZoom();
- if(endZoom>=moralMap.getZooMConfine()){//������������������������
+ if(endZoom>=moralMap.getZoomConfine()){//������������������������
loadOverlays("get-devices",addOverEquipments);
}else{
loadOverlays("get-monitorpoints",addOverMpoints);
}
- moralMap.closePopupbox("#popup_box");
+ //moralMap.closePopupbox("#popup_box");
});
//���������������������
$("#searchBtn").click(
function(e) {
var param = encodeURI($("#searchParam").val());
- moralMap.showPopupbox("#popup_box");
+ //moralMap.showPopupbox("#popup_box");
var url = 'get-devices-for-popup?name=' + param + "&orgId=" + params['orgId'];
listView.load(url);
}
- )
+ );
+ $("#searchParam").keydown(function (event) {
+ if(event.keyCode ==13) {
+ $("#searchBtn").trigger("click");
+ }
+ })
//������������������������������
$(".charts_btn").click(
function (e) {
- if(window['external']&&window['external']['showChartInfo']){
+ var obj = {};
+ obj['methodName'] = 'showChart';
+ var objStr = JSON.stringify(obj);
+ if(!!window['external']&&!!window['external']['callWin']){
+ window['external'].callWin(objStr);
+ }else
+ if(!!window['external']&&!!window['external']['showChartInfo']){
window['external'].showChartInfo("");
}else{
- alert("");
+ alert(objStr);
}
}
);
@@ -478,12 +582,12 @@
//������������
function refreshAllState() {
var parma={};
- if(moralMap.isPopupBoxShow("#popup_box")) {
+ /* if(moralMap.isPopupBoxShow("#popup_box")) {
var popupEquMacs = moralMap.getPopupEquMacs();
if(popupEquMacs!=null&&popupEquMacs.length>0){
parma["popupEquMacs"] = popupEquMacs;
}
- }
+ } */
//������������
var oldMarkerList = moralMap.getHorizonMarkers(true);
var markerKeys = [];
@@ -499,49 +603,56 @@
parma["markerKeys"] = markerKeys;
parma["areaCode"] = moralMap['params']["areaCode"];
parma["orgId"] = moralMap['params']["orgId"];
- $.ajax({
- type: "post",
- url: "get-real-state-data",
- data:JSON.stringify(parma),
- dataType:"json",
- contentType:"application/json;charset=utf-8",
- cache: false,
- async: true,
- success: function(data) {
- if(data!=null&&typeof data === 'object') {
- var resultMap = data["extData"];
- if(resultMap==null){
- return;
- }
- var markers = resultMap["markers"];
- var layer = resultMap["layer"];
- if(markers!=null&&markers.length>0){
- if(layer=="monitorpoints"){
- for(var a_i in markers){
- var marker = markers[a_i];
- var marker_id = marker["id"];
- var mpoint = moralMap.getMpoint(marker_id);
- if(mpoint!=null){
- mpoint.refreshState(marker["state"]);
- }
+ if((!!parma["popupEquMacs"]&&!!parma["popupEquMacs"].length)
+ ||(!!parma["markerKeys"]&&!!parma["markerKeys"].length)){
+ $.ajax({
+ type: "post",
+ url: "get-real-state-data",
+ data:JSON.stringify(parma),
+ dataType:"json",
+ contentType:"application/json;charset=utf-8",
+ cache: false,
+ async: true,
+ success: function(data) {
+ if(data!=null&&typeof data === 'object') {
+ var resultMap = data["extData"];
+ if(resultMap==null){
+ return;
+ }
+ var markers = resultMap["markers"];
+ var layer = resultMap["layer"];
+ if(markers!=null&&markers.length>0){
+ if(layer=="monitorpoints"){
+ for(var a_i in markers){
+ var marker = markers[a_i];
+ var marker_id = marker["id"];
+ var mpoint = moralMap.getMpoint(marker_id);
+ if(mpoint!=null){
+ mpoint.refreshState(marker["state"]);
+ }
// mpoint.refreshState(4);
- }
- }else{
- for(var b_i in markers){
- var marker = markers[b_i];
- var marker_mac = marker["mac"];
- var equipment = moralMap.getEquipment(marker_mac);
- if(equipment!=null){
- equipment.refreshState(marker);
- }
- }
- }
- }
- if(resultMap["popupEquStates"]!=null){
- listView.refreshState(resultMap["popupEquStates"]);
- }
- }
- }
- });
+ }
+ }else{
+ for(var b_i in markers){
+ var marker = markers[b_i];
+ var marker_mac = marker["mac"];
+ var equipment = moralMap.getEquipment(marker_mac);
+ if(equipment!=null){
+ equipment.refreshState(marker);
+ }
+ }
+ }
+ }
+ if(resultMap["popupEquStates"]!=null){
+ listView.refreshState(resultMap["popupEquStates"]);
+ }
+ }
+ }
+ });
+ }
+ }
+
+ function callJS(jsonData){
+ moralMap.callJS(jsonData);
}
</script>
--
Gitblit v1.8.0