Skip to content

Commit b7a7b23

Browse files
committed
2 parents e101da0 + 0139c08 commit b7a7b23

13 files changed

+494
-14
lines changed

build/deps.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,22 @@ var deps = {
145145
"src": [
146146
"./src/OL3/SuperMap/iServer/TiledMapLayer.js",
147147
"./src/OL3/SuperMap/iServer/MapService.js",
148-
// "./src/OL3/SuperMap/iServer/QueryByBoundsService.js",
149-
// "./src/OL3/SuperMap/iServer/GetLayersInfoService.js"
148+
"./src/OL3/SuperMap/iServer/QueryByBoundsService.js",
149+
"./src/OL3/SuperMap/iServer/GetLayersInfoService.js"
150150
]
151151
},
152+
"Data": {
153+
"name": "Data服务",
154+
"src": [
155+
"./src/OL3/SuperMap/iServer/FieldStatisticService.js",
156+
"./src/OL3/SuperMap/iServer/GetFeaturesByBoundsService.js",
157+
"./src/OL3/SuperMap/iServer/GetFeaturesByBufferService.js",
158+
"./src/OL3/SuperMap/iServer/GetFeaturesByGeometryService.js",
159+
"./src/OL3/SuperMap/iServer/GetFeaturesByIDsService.js",
160+
"./src/OL3/SuperMap/iServer/GetFeaturesBySQLService.js",
161+
"./src/OL3/SuperMap/iServer/GetFieldsService.js"
162+
]
163+
}
152164
},
153165
"Visual": {
154166
"title": "Visual",

examples/ol3/01_mapService.html

Lines changed: 71 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,97 @@
66
<link rel="stylesheet" href="../css/bootstrap.min.css">
77
<link rel="stylesheet" href="../../dist/SuperMapiClient9.css">
88
<script type="text/javascript" src="../../dist/SuperMapiClient9.js"></script>
9+
10+
<style>
11+
.ol-popup {
12+
position: absolute;
13+
background-color: white;
14+
-webkit-filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
15+
filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
16+
padding: 15px;
17+
border-radius: 10px;
18+
border: 1px solid #cccccc;
19+
bottom: 12px;
20+
left: -50px;
21+
min-width: 280px;
22+
}
23+
24+
.ol-popup:after, .ol-popup:before {
25+
top: 100%;
26+
border: solid transparent;
27+
content: " ";
28+
height: 0;
29+
width: 0;
30+
position: absolute;
31+
pointer-events: none;
32+
}
33+
34+
.ol-popup:after {
35+
border-top-color: white;
36+
border-width: 10px;
37+
left: 48px;
38+
margin-left: -10px;
39+
}
40+
41+
.ol-popup:before {
42+
border-top-color: #cccccc;
43+
border-width: 11px;
44+
left: 48px;
45+
margin-left: -11px;
46+
}
47+
48+
</style>
49+
50+
<div id="popup" class="ol-popup">
51+
<div id="popup-content"></div>
52+
</div>
53+
954
<script type="text/javascript">
10-
var map, infowin,
11-
url = "http://support.supermap.com.cn:8090/iserver/services/map-world/rest/maps/World";
55+
var container = document.getElementById('popup');
56+
var content = document.getElementById('popup-content');
57+
var overlay = new ol.Overlay(({
58+
element: container,
59+
autoPan: true,
60+
autoPanAnimation: {
61+
duration: 250
62+
}
63+
}));
64+
var map,
65+
url = "http://support.supermap.com.cn:8090/iserver/services/map-world/rest/maps/World";
1266
function init() {
1367
map = new ol.Map({
1468
target: 'map',
1569
view: new ol.View({
1670
center: [0, 0],
1771
zoom: 2,
1872
projection: 'EPSG:4326'
19-
})
73+
}),
74+
overlays: [overlay],
2075
});
2176
map.addLayer(new ol.supermap.TiledMapLayer(url, {"pro": "4326"}));
2277
}
2378

2479
function mapService() {
25-
// closeInfoWin();
80+
closeInfoWin();
2681
var mapService = new ol.supermap.MapService(url, {
2782
"projection": "4326"
2883
});
2984
mapService.on("complete", function (serviceResult) {
30-
if (!infowin) {
31-
console.log(serviceResult);
32-
}
85+
var innerHTML = "(map信息太多,只打印一部分)" + "<br><br>";
86+
innerHTML += "地图名:" + JSON.stringify(serviceResult.element.result.name, null, 2) + "<br>";
87+
innerHTML += "中心点:" + JSON.stringify(serviceResult.element.result.center, null, 2) + "<br>";
88+
innerHTML += "Bounds:" + JSON.stringify(serviceResult.element.result.bounds, null, 2) + "<br>";
89+
content.innerHTML = innerHTML;
3390
});
3491
mapService.getMapStatus();
92+
overlay.setPosition([0, 0]);
93+
}
94+
95+
function closeInfoWin() {
96+
if (overlay) {
97+
overlay.setPosition(undefined);
98+
}
3599
}
36-
// function closeInfoWin() {
37-
// if (infowin) {
38-
// infowin.removeFrom(map);
39-
// }
40-
// }
41100

42101
</script>
43102
</head>
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/**
2+
* Class: FieldStatisticService
3+
* 字段查询服务类
4+
*/
5+
require('./FieldsServiceBase');
6+
require('../../../Core/iServer/FieldStatisticService');
7+
8+
ol.supermap.FieldStatisticService = function (url, options) {
9+
ol.supermap.FieldsServiceBase.call(this, url, options);
10+
this.options.fieldName = options.fieldName;
11+
this.currentStatisticResult = {fieldName: options.fieldName};
12+
this.options.statisticMode = options.statisticMode;
13+
if (!options.statisticMode || (typeof options.statisticMode !== "Array")) {
14+
this.options.statisticMode = SuperMap.REST.StatisticMode;
15+
}
16+
}
17+
ol.inherits(ol.supermap.FieldStatisticService, ol.supermap.FieldsServiceBase);
18+
19+
20+
ol.supermap.FieldStatisticService.prototype.getFieldStatisticInfo = function () {
21+
var me = this;
22+
var modes = me.options.statisticMode;
23+
//针对每种统计方式分别进行请求
24+
for (var mode in modes) {
25+
this.currentStatisticResult[modes[mode]] = null;
26+
this._fieldStatisticRequest(modes[mode]);
27+
}
28+
return me;
29+
}
30+
31+
ol.supermap.FieldStatisticService.prototype._fieldStatisticRequest = function (statisticMode) {
32+
var me = this, statisticService;
33+
statisticService = new SuperMap.REST.FieldStatisticService(me.options.url, {
34+
eventListeners: {
35+
scope: me,
36+
processCompleted: me.processCompleted,
37+
processFailed: me.processFailed
38+
},
39+
datasource: me.options.dataSourceName,
40+
dataset: me.options.dataSetName,
41+
field: me.options.fieldName,
42+
statisticMode: statisticMode
43+
});
44+
statisticService.processAsync();
45+
}
46+
47+
ol.supermap.FieldStatisticService.prototype.processCompleted = function (fieldStatisticResult) {
48+
var getAll = true,
49+
result = fieldStatisticResult.result;
50+
if (this.currentStatisticResult) {
51+
if (null == this.currentStatisticResult[result.mode]) {
52+
this.currentStatisticResult[result.mode] = result.result;
53+
}
54+
}
55+
for (var mode in this.currentStatisticResult) {
56+
if (null == this.currentStatisticResult[mode]) {
57+
getAll = false;
58+
break;
59+
}
60+
}
61+
if (getAll) {
62+
this.fire('complete', {result: this.currentStatisticResult});
63+
}
64+
}
65+
66+
module.exports = ol.supermap.FieldStatisticService;
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* Class: GetFieldsService
3+
* 字段查询服务基类
4+
*/
5+
require('./ServiceBase');
6+
7+
ol.supermap.FieldsServiceBase = function (url, options) {
8+
ol.supermap.ServiceBase.call(this, url, options);
9+
this.options.dataSourceName = options.dataSourceName;
10+
this.options.dataSetName = options.dataSetName;
11+
}
12+
ol.inherits(ol.supermap.FieldsServiceBase, ol.supermap.ServiceBase);
13+
14+
module.exports = ol.supermap.FieldsServiceBase;
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/**
2+
* Class: GetFeaturesByBoundsService
3+
* 数据集Bounds查询服务类
4+
*/
5+
require('./GetFeaturesServiceBase');
6+
require('../../../Core/iServer/GetFeaturesByBoundsService');
7+
8+
ol.supermap.GetFeaturesByBoundsService = function (url, options) {
9+
ol.supermap.GetFeaturesServiceBase.call(this, url, options);
10+
this.options.spatialQueryMode = SuperMap.REST.SpatialQueryMode.CONTAIN;
11+
this.options.bounds = null;
12+
var bounds = this.options.bounds = options.bounds;
13+
if (bounds instanceof L.LatLngBounds) {
14+
this.options.bounds = new SuperMap.Bounds(
15+
bounds.getSouthWest().lng,
16+
bounds.getSouthWest().lat,
17+
bounds.getNorthEast().lng,
18+
bounds.getNorthEast().lat
19+
);
20+
}
21+
}
22+
ol.inherits(ol.supermap.GetFeaturesByBoundsService, ol.supermap.GetFeaturesServiceBase);
23+
24+
ol.supermap.GetFeaturesByBoundsService.prototype.getFeatures = function () {
25+
var me = this,
26+
getFeaturesByBoundsParameters, GetFeaturesByBoundsService;
27+
getFeaturesByBoundsParameters = new SuperMap.REST.GetFeaturesByBoundsParameters({
28+
returnContent: me.options.returnContent,
29+
datasetNames: me.options.dataSetNames,
30+
spatialQueryMode: me.options.spatialQueryMode,
31+
fromIndex: me.options.fromIndex,
32+
toIndex: me.options.toIndex,
33+
bounds: me.options.bounds
34+
});
35+
GetFeaturesByBoundsService = new SuperMap.REST.GetFeaturesByBoundsService(me.options.url, {
36+
eventListeners: {
37+
scope: me,
38+
processCompleted: me.processCompleted,
39+
processFailed: me.processFailed
40+
}
41+
});
42+
GetFeaturesByBoundsService.processAsync(getFeaturesByBoundsParameters);
43+
return me;
44+
}
45+
module.exports = ol.supermap.GetFeaturesByBoundsService;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/**
2+
* Class: GetFeaturesByBufferService
3+
* 数据集Buffer查询服务类
4+
*/
5+
require('./GetFeaturesServiceBase');
6+
require('../../../Core/iServer/GetFeaturesByBufferService');
7+
8+
ol.supermap.GetFeaturesByBufferService = function (url, options) {
9+
ol.supermap.GetFeaturesServiceBase.call(this, url, options);
10+
this.options.bufferDistance = null;
11+
this.options.geometry = null;
12+
if (options && options.geometry && options.geometry instanceof ol.geom.Geometry) {
13+
var geometry = ol.supermap.Util.toSuperMapGeometry(ol.format.GeoJSON.writeGeometry_(options.geometry));
14+
this.options.geometry = geometry;
15+
}
16+
}
17+
ol.inherits(ol.supermap.GetFeaturesByBufferService, ol.supermap.GetFeaturesServiceBase);
18+
19+
ol.supermap.GetFeaturesByBufferService.prototype.getFeatures = function () {
20+
var me = this,
21+
getFeatureParameter, getFeatureService;
22+
getFeatureParameter = new SuperMap.REST.GetFeaturesByBufferParameters({
23+
bufferDistance: me.options.bufferDistance,
24+
geometry: me.options.geometry,
25+
datasetNames: me.options.dataSetNames,
26+
returnContent: me.options.returnContent,
27+
fromIndex: me.options.fromIndex,
28+
toIndex: me.options.toIndex
29+
});
30+
getFeatureService = new SuperMap.REST.GetFeaturesByBufferService(me.options.url, {
31+
eventListeners: {
32+
scope: me,
33+
processCompleted: me.processCompleted,
34+
processFailed: me.processFailed
35+
}
36+
});
37+
getFeatureService.processAsync(getFeatureParameter);
38+
return me;
39+
}
40+
41+
module.exports = ol.supermap.GetFeaturesByBufferService;
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/**
2+
* Class: GetFeaturesByGeometryService
3+
* 数据集Geometry查询服务类
4+
*/
5+
require('./GetFeaturesServiceBase');
6+
require('../../../Core/iServer/GetFeaturesByGeometryService');
7+
8+
ol.supermap.GetFeaturesByGeometryService = function (url, options) {
9+
ol.supermap.GetFeaturesServiceBase.call(this, url, options);
10+
this.options.spatialQueryMode = SuperMap.REST.SpatialQueryMode.CONTAIN;
11+
this.options.geometry = null;
12+
if (options && options.geometry) {
13+
var geometry = ol.supermap.Util.toSuperMapGeometry(ol.format.GeoJSON.writeGeometry_(options.geometry));
14+
this.options.geometry = geometry;
15+
}
16+
}
17+
18+
ol.inherits(ol.supermap.GetFeaturesByGeometryService, ol.supermap.GetFeaturesServiceBase);
19+
20+
ol.supermap.GetFeaturesByGeometryService.prototype.getFeatures = function () {
21+
var me = this,
22+
getFeaturesByGeometryParameters, getFeaturesByGeometryService;
23+
getFeaturesByGeometryParameters = new SuperMap.REST.GetFeaturesByGeometryParameters({
24+
datasetNames: me.options.dataSetNames,
25+
spatialQueryMode: me.options.spatialQueryMode,
26+
geometry: me.options.geometry,
27+
returnContent: me.options.returnContent,
28+
fromIndex: me.options.fromIndex,
29+
toIndex: me.options.toIndex
30+
});
31+
getFeaturesByGeometryService = new SuperMap.REST.GetFeaturesByGeometryService(me.options.url, {
32+
eventListeners: {
33+
scope: me,
34+
processCompleted: me.processCompleted,
35+
processFailed: me.processFailed
36+
}
37+
});
38+
getFeaturesByGeometryService.processAsync(getFeaturesByGeometryParameters);
39+
return me;
40+
}
41+
42+
module.exports = ol.supermap.GetFeaturesByGeometryService;
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* Class: GetFeaturesByIDsService
3+
* 数据集ID查询服务类
4+
*/
5+
require('./GetFeaturesServiceBase');
6+
require('../../../Core/iServer/GetFeaturesByIDsService');
7+
8+
ol.supermap.GetFeaturesByIDsService = function (url, options) {
9+
ol.supermap.GetFeaturesServiceBase.call(this, url, options);
10+
this.option.IDs = null;
11+
}
12+
ol.inherits(ol.supermap.GetFeaturesByIDsService, ol.supermap.GetFeaturesServiceBase);
13+
14+
ol.supermap.GetFeaturesByIDsService.prototype.getFeatures = function () {
15+
var me = this;
16+
var getFeaturesByIDsParameters, getFeaturesByIDsService;
17+
getFeaturesByIDsParameters = new SuperMap.REST.GetFeaturesByIDsParameters({
18+
returnContent: me.options.returnContent,
19+
datasetNames: me.options.dataSetNames,
20+
fromIndex: me.options.fromIndex,
21+
toIndex: me.options.toIndex,
22+
IDs: me.options.IDs
23+
});
24+
getFeaturesByIDsService = new SuperMap.REST.GetFeaturesByIDsService(me.options.url, {
25+
eventListeners: {
26+
scope: me,
27+
processCompleted: me.processCompleted,
28+
processFailed: me.processFailed
29+
}
30+
});
31+
getFeaturesByIDsService.processAsync(getFeaturesByIDsParameters);
32+
return me;
33+
}
34+
module.exports = ol.supermap.GetFeaturesByIDsService;

0 commit comments

Comments
 (0)