From 28e9535f217b2965515ffb959bacc23234d17aca Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Tue, 06 Aug 2019 15:26:35 +0800
Subject: [PATCH] 重合点改为聚合图片,调整重合数量显示位置
---
src/main/webapp/page/scheme-helper.html | 233 ++++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 177 insertions(+), 56 deletions(-)
diff --git a/src/main/webapp/page/scheme-helper.html b/src/main/webapp/page/scheme-helper.html
index 927edbc..4dfb0f0 100644
--- a/src/main/webapp/page/scheme-helper.html
+++ b/src/main/webapp/page/scheme-helper.html
@@ -3,9 +3,9 @@
<head>
<meta charset="utf-8" />
<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>
</head>
-<link rel="stylesheet" type="text/css" href="/css/default.css">
-<link rel="stylesheet" href="/css/Lobibox.min.css"/>
<style type="text/css">
body,
html,
@@ -13,31 +13,37 @@
#mapCanvas {
width: 100%;
height: 100%;
- /* overflow: hidden; */
- /* margin: 0; */
- /* padding: 0; */
+ overflow: hidden;
+ margin: 0;
+ padding: 0;
z-index: 0;
- /* font-size: 14px; */
- /* font-family: "������������"; */
+ font-size: 14px;
+ font-family: "������������";
}
.popup-box {
position: absolute;
z-index: 1;
- font-size: 14px;
background-color: white;
top: 3%;
left: 1%;
padding: 14px 10px 0px;
text-align: center;
- width: 290px;
- height: 130px;
+ width: 280px;
+ height: 150px;
}
.search-box {
width: 220px;
}
-
+ .city-box {
+ width: 80px;
+ }
+ .set-city-box {
+ display: inline-block;
+ position: relative;
+ bottom: -2px;
+ }
.anchorBL {
display: none;
}
@@ -50,14 +56,7 @@
text-align: left;
padding-left: 2px;
}
- input[type="button"] {
- cursor: pointer;
- }
- input[type="radio"] {
- cursor: pointer;
- }
</style>
-<body>
<div class="main-body">
<div class="popup-box">
<table>
@@ -71,6 +70,15 @@
</tr>
</table>
<table>
+ <tr>
+ <td colspan="5" class="click-handle-title">
+ ���������������
+ <span id="city-name" style="width: 60px;height:20px;border-bottom:solid #1b1b1b 1px;display:inline-block">
+
+ </span>
+ <div class="set-city-box"><input class="city-box" type="input" /> <a id="setCityBtn" style=" text-decoration:underline; color:#00F;cursor:pointer;">������</a></div>
+ </td>
+ </tr>
<tr>
<td>
<input id="clickHandle_0" type="radio" name="mapClickHandle" checked value="0" />
@@ -123,13 +131,21 @@
</div>
<div id="mapCanvas"></div>
</div>
- <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/lobibox.min.js"></script>
+
+<body>
<script>
var baiduMap;
var markerManager = {
- data: {},
+ data: {
+ mpoint:[],
+ star:[],
+ _regionName:null,
+ _boundary:[],
+ _boundaryState:false
+ },
+ menuItems:{
+ boundaryMenuItem:null
+ },
bind: {}
};
markerManager.bindSelect = function (key, select) {
@@ -146,6 +162,68 @@
console.log("int markerManager key:" + key + ",don't bind select");
}
}
+ }
+ markerManager.setRegionName = function (regionName,successCallBack,errorCallBack){
+ var thatData = this.data;
+ function getBoundary(regionName){
+ var bdary = new BMap.Boundary();
+ var map = baiduMap;
+ bdary.get(regionName, function(rs){ //������������������
+ map.clearOverlays(); //���������������������
+ var count = rs.boundaries.length; //������������������������������
+ if (count === 0) {
+ // alert('������������������������������������');
+ if(!!errorCallBack&&errorCallBack instanceof Function){
+ errorCallBack(regionName);
+ }
+ return ;
+ }
+ //������������������
+ $('#city-name').html(regionName);
+ $('.city-box').val('');
+ map.setCurrentCity(regionName); // ��������������������������� ������������������������
+ // var pointArray = [];
+ var polygonArray = [];
+ for (var i = 0; i < count; i++) {
+ var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2,fillOpacity:0.01,strokeStyle:"dashed",strokeColor: "#0000ff"}); //������������������������
+ // map.addOverlay(ply); //���������������
+ // pointArray = pointArray.concat(ply.getPath());
+ polygonArray.push(ply);
+ }
+ // map.setViewport(pointArray); //������������
+ //addlabel();
+
+ markerManager.reloadCustomOverlays();
+ //������������������������������������������������
+ if(markerManager.isBoundaryState()){
+ switchBoundary.apply(markerManager.menuItems.boundaryMenuItem);
+ }
+ thatData._regionName = regionName;
+ markerManager.data._boundary = polygonArray;
+ if(!!successCallBack && successCallBack instanceof Function){
+ successCallBack(regionName);
+ }
+ });
+ }
+ getBoundary(regionName);
+ }
+ markerManager.openBoundary = function(){
+ // console.log(this.data._boundary);
+ if(!!this.data._boundary&&this.data._boundary.length>0){
+ for(var n =0 ;n< this.data._boundary.length;n++){
+ baiduMap.addOverlay(this.data._boundary[n]);
+ }
+ this.data._boundaryState = true;
+ }
+ }
+ markerManager.closeBoundary = function(){
+ for(var n =0 ;n< this.data._boundary.length;n++){
+ baiduMap.removeOverlay(this.data._boundary[n]);
+ }
+ this.data._boundaryState = false;
+ }
+ markerManager.isBoundaryState = function() {
+ return this.data._boundaryState;
}
markerManager.addMarker = function (key, marker) {
this.data[key] = !!this.data[key] ? this.data[key] : [];
@@ -173,48 +251,23 @@
// 0,������������1������������������2���������������������3���������������
function clickHandle(args, key) {
var handleValue = parseInt($("input[name='mapClickHandle']:checked").val());
- var handleName = "";
switch (handleValue) {
case 0:
- clickHandle.counter +=1;
- handleName += "���������";
break;
case 1:
addMpoint(args.point);
- handleName += "[������]������";
break;
case 2:
addStar(args.point);
- handleName += "[���������]������";
break;
case 3:
- handleName += "������������";
- if(this instanceof BMap.Marker){
- removeOverlay(key,this);
- clickHandle.counter -=1;
- }else{
- clickHandle.counter +=1;
- }
+ removeOverlay(key, this);
break;
}
- if(clickHandle.counter>=5 ){
- var msg = "���������������:���"+handleName+"���,������������������������������������������"
- Lobibox.notify('info', {
- size: 'mini',
- width: 500,
- // delay: false,
- icon: false,
- msg: msg
- });
- clickHandle.counter = 0;
- }
-
}
- clickHandle.counter = 0;
var switchMenuItems = {};
switchClickHanld = function (value) {
value = value.toString();
- clickHandle.counter = 0;
$("input[name='mapClickHandle']").each(function () {
var handleValue = $(this).val().toString();
if (handleValue === value) {
@@ -232,7 +285,32 @@
}
}
}
+ markerManager.addOverlaysToBmap = function (overlays) {
+ if(!!overlays && overlays instanceof Object){
+ for(var n in overlays){
+ var overlay = overlays[n];
+ baiduMap.addOverlay(overlay);
+ }
+ }else {
+ throw new Error("in addOverlaysToBmap overlays is not list");
+ }
+ }
+ markerManager.reloadCustomOverlays = function() {
+ if(!!markerManager.data['mpoint']){
+ markerManager.addOverlaysToBmap(markerManager.data['mpoint']);
+ }
+ if(!!markerManager.data['star']){
+ markerManager.addOverlaysToBmap(markerManager.data['star']);
+ }
+ if(markerManager.isBoundaryState()){
+ markerManager.openBoundary();
+ }
+ }
+ function clearBaiduOverlays() {
+ baiduMap.clearOverlays();//������������������������
+ markerManager.reloadCustomOverlays();
+ }
function clearOverlays() {
for (var key in markerManager.data) {
markerManager.data[key] = [];
@@ -240,7 +318,6 @@
}
baiduMap.clearOverlays();
}
-
function removeOverlay(key, marker) {
baiduMap.removeOverlay(marker);
markerManager.removeMarker(key, marker);
@@ -288,7 +365,19 @@
// option.offset = new BMap.Size(0,-15);
addMarker(point, option);
}
-
+ function switchBoundary() {
+ if(!markerManager.isBoundaryState()){
+ markerManager.openBoundary();
+ if(markerManager.isBoundaryState()){
+ this.setText("������������");
+ }else {
+ alert('���������������������');
+ }
+ }else {
+ markerManager.closeBoundary();
+ this.setText("������������");
+ }
+ }
function mapInit() {
var map = new BMap.Map("mapCanvas");
this.baiduMap = map;
@@ -348,6 +437,20 @@
}
},
{
+ id: 'boundaryMenuItem',
+ text: '������������',
+ callback: function () {
+ var that = this;
+ switchBoundary.apply(this);
+ }
+ },
+ {
+ text: '������������������',
+ callback: function (menuItem) {
+ clearBaiduOverlays();
+ }
+ },
+ {
text: '������������',
callback: function (menuItem) {
var result = confirm('������! ������! ������! ������������������������������')
@@ -371,6 +474,9 @@
width: 120,
iconUrl: item.icon
});
+ if(item.id == "boundaryMenuItem"){
+ markerManager.menuItems.boundaryMenuItem = menuItem;
+ }
menu.addItem(menuItem);
if (item.switch) {
switchMenuItems[item.handleType] = menuItem;
@@ -382,21 +488,36 @@
"click",
clickHandle
);
- map.addEventListener(
- "dblclick",
- function(){
- clickHandle.counter -=2;
- }
- );
return map;
}
(function ($) {
var map = mapInit();
+ var local = new BMap.LocalSearch(map, {
+ renderOptions:{map: map},
+ onMarkersSet:function () {
+ markerManager.reloadCustomOverlays();
+ }
+ });
+ $('#setCityBtn').click(function () {
+ var cityName = $('.city-box').val();
+ if(!!cityName){
+ baiduMap.centerAndZoom(cityName);
+ markerManager.setRegionName(cityName,function () {
+ },function (value) {
+ alert('������������������'+value+'������������');
+ })
+ }
+ });
// ������������
$('.search-btn').on('click', function (args) {
var searchValue = $('.search-box').val();
if (!!searchValue) {
baiduMap.centerAndZoom(searchValue);
+ markerManager.setRegionName(searchValue,
+ function (searchValue) {
+ },function (searchValue) {
+ local.search(searchValue);
+ });
}
});
markerManager.bindSelect("mpoint", "#mpointCount");
--
Gitblit v1.8.0