Skip to content

Commit 278ce10

Browse files
author
caoxinke
committed
添加OpenLayers单值专题图的例子。修改部分分布式空间处理服务(添加参数输入表单)。
1 parent fad6b30 commit 278ce10

17 files changed

+3919
-686
lines changed

build/deps.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,15 @@ var deps = {
310310
"src": [
311311
"./src/openlayers/overlay/VectorTileSuperMapRest.js"
312312
]
313+
},
314+
"Theme": {
315+
"name": "专题图",
316+
"src": [
317+
"./src/openlayers/overlay/theme/theme.js",
318+
"./src/openlayers/overlay/theme/geoFeature.js",
319+
"./src/openlayers/overlay/theme/unique.js",
320+
"./src/openlayers/overlay/theme/vector.js"
321+
]
313322
}
314323
}
315324
}

dist/iclient9-leaflet.js

Lines changed: 122 additions & 136 deletions
Large diffs are not rendered by default.

dist/iclient9-openlayers.js

Lines changed: 1672 additions & 429 deletions
Large diffs are not rendered by default.

examples/leaflet/buildCacheService.html

Lines changed: 82 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,46 +26,94 @@ <h4 class="modal-title">提示</h4>
2626
<script type="text/javascript" src="http://cdn.bootcss.com/leaflet/1.0.3/leaflet.js"></script>
2727
<script type="text/javascript" src="../../dist/iclient9-leaflet.js"></script>
2828
<script type="text/javascript">
29-
var layer, processingJobsUrl = "http://113.209.64.227:8090/iserver/services/processing/rest/v1/jobs",
29+
var layer, baseLayer, processingJobsUrl = "http://113.209.64.227:8090/iserver/services/processing/rest/v1/jobs",
3030
token = 'GSHB7qlocJkqEH0Ld6VUSGQfekOdPd3e9UdJoHjiupfbkGDggXQLSPWd6VaKm8NH4gvXx6UQ0TCI5wpfr-4Tlw..',
31+
worldMapUrl = 'http://113.209.64.227:8090/iserver/services/map-World/rest/maps/世界地图_Day',
3132
map = L.map('map', {
32-
crs: L.supermap.NonEarthCRS({
33-
bounds: L.bounds([40.65, -74.05], [40.85, -73.85]),
34-
origin: L.point(40.65, -73.85)
35-
}),
33+
crs: L.CRS.EPSG4326,
3634
center: [40.75, -73.95],
3735
maxZoom: 18,
38-
zoom: 1
36+
zoom: 12
3937
}),
40-
buildCacheJobParameter = new SuperMap.BuildCacheJobParameter({
41-
datasetName: 'test_newyork_taxi_2013_01_14k',
42-
cacheName: 'cache',
43-
cacheType: 'MongoDB',
44-
serverAdresses: ['113.209.64.227:27010'],
45-
database: 'smtiles',
46-
version: 'v1',
47-
bounds: L.latLngBounds(L.latLng(40.550, -74.150), L.latLng(40.950, -73.750)),
48-
imageType: 'Heatmap',
49-
level: 5
50-
}),
51-
processingJobsService = new L.supermap.processingJobsService(processingJobsUrl),
5238
info = L.control({position: 'topright'});
5339

5440
info.onAdd = function () {
55-
var btn = L.DomUtil.create('button', 'btn btn-primary');
56-
btn.id = 'btn';
57-
btn.innerHTML = '创建生成地图缓存作业';
58-
return btn;
41+
var popup = L.DomUtil.create('div');
42+
popup.style = 'width:20%';
43+
popup.innerHTML = "<div class='panel panel-default'>" +
44+
"<div class='panel-heading'>" +
45+
"<h3 class='panel-title'>地图缓存作业</h3>" +
46+
"</div>" +
47+
"<div class='panel-body'>" +
48+
"<div class='input-group'>" +
49+
"<span class='input-group-addon'>输入数据</span>" +
50+
"<input id='datasetName' type='text' class='form-control' placeholder='test_newyork_taxi_2013_01_14k'/>" +
51+
"</div><p>" +
52+
"<div class='input-group'>" +
53+
"<span class='input-group-addon'>缓存类型</span>" +
54+
"<input id='imageType' type='text' class='form-control' placeholder='Heatmap'/>" +
55+
"</div><p>" +
56+
"<div class='input-group'>" +
57+
"<span class='input-group-addon'>缓存范围</span>" +
58+
"<input id='bounds' type='text' class='form-control' placeholder='-74.050, 40.650, -73.850, 40.850'/>" +
59+
"</div><p>" +
60+
"<div class='input-group'>" +
61+
"<span class='input-group-addon'>缓存比例尺级别</span>" +
62+
"<input id='level' type='text' class='form-control' placeholder='5'/>" +
63+
"</div><p>" +
64+
"<div class='input-group'>" +
65+
"<span class='input-group-addon'>缓存名称</span>" +
66+
"<input id='cacheName' type='text' class='form-control' placeholder='cache'/>" +
67+
"</div><p>" +
68+
"<div class='input-group'>" +
69+
"<span class='input-group-addon'>存储类型</span>" +
70+
"<input id='cacheType' type='text' class='form-control' placeholder='MongoDB'/>" +
71+
"</div><p>" +
72+
"<div class='input-group'>" +
73+
"<span class='input-group-addon'>服务地址</span>" +
74+
"<input id='serverAdresses' type='text' class='form-control' placeholder='113.209.64.227:27010'/>" +
75+
"</div><p>" +
76+
"<div class='input-group'>" +
77+
"<span class='input-group-addon'>数据库</span>" +
78+
"<input id='database' type='text' class='form-control' placeholder='smtiles'/>" +
79+
"</div><p>" +
80+
"<div class='input-group'>" +
81+
"<span class='input-group-addon'>版本</span>" +
82+
"<input id='version' type='text' class='form-control' placeholder='v1'/>" +
83+
"</div><p>" +
84+
"<div align='right'>" +
85+
"<input type='button' id='btn' class='btn btn-primary' value='创建'/>" +
86+
"</div></div></div>";
87+
return popup;
5988
};
6089
info.addTo(map);
6190

91+
var bounds = [], serverAddress = [];
92+
($('#bounds').val() || $('#bounds').attr('placeholder')).split(',').map(function (el) {
93+
return bounds.push(parseFloat(el));
94+
});
95+
serverAddress.push(($('#serverAdresses').val() || $('#serverAdresses').attr('placeholder')).toString());
96+
var buildCacheJobParameter = new SuperMap.BuildCacheJobParameter({
97+
datasetName: $('#datasetName').val() || $('#datasetName').attr('placeholder'),
98+
cacheName: $('#cacheName').val() || $('#cacheName').attr('placeholder'),
99+
cacheType: $('#cacheType').val() || $('#cacheType').attr('placeholder'),
100+
serverAdresses: serverAddress,
101+
database: $('#database').val() || $('#database').attr('placeholder'),
102+
version: $('#version').val() || $('#version').attr('placeholder'),
103+
bounds: bounds,
104+
imageType: $('#imageType').val() || $('#imageType').attr('placeholder'),
105+
level: parseInt($('#level').val() || $('#level').attr('placeholder'))
106+
});
107+
processingJobsService = new L.supermap.processingJobsService(processingJobsUrl);
108+
62109
SuperMap.Credential.CREDENTIAL = new SuperMap.Credential(token, 'token');
63110

64111
$('#btn').on('click', function () {
65112
$('#btn').prop('disabled', true);
66113
$("#model").modal({show: true, backdrop: 'static', keyboard: false});
67-
if (map && layer) {
114+
if (map && layer && baseLayer) {
68115
map.removeLayer(layer);
116+
map.removeLayer(baseLayer);
69117
}
70118
processingJobsService.addBuildCacheJob(buildCacheJobParameter, function (serviceResult) {
71119
if (serviceResult.error) {
@@ -76,10 +124,17 @@ <h4 class="modal-title">提示</h4>
76124
}
77125
serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
78126
if (info.serviceType === 'RESTMAP') {
79-
var mapUrl = info.serviceAddress + '/maps/cache';
80-
L.supermap.tiledMapLayer(mapUrl, {noWrap: true}).addTo(map);
81-
$("#model").modal('hide');
82-
$('#btn').prop('disabled', false);
127+
SuperMap.Request.get(info.serviceAddress + '/maps').then(function (response) {
128+
return response.json();
129+
}).then(function (result) {
130+
var mapUrl = result[0].path;
131+
baseLayer = L.supermap.tiledMapLayer(worldMapUrl, {noWrap: true});
132+
layer = L.supermap.tiledMapLayer(mapUrl, {noWrap: true, transparent: true});
133+
baseLayer.addTo(map);
134+
layer.addTo(map);
135+
$("#model").modal('hide');
136+
$('#btn').prop('disabled', false);
137+
});
83138
}
84139
});
85140
});
3.36 KB
Loading

examples/leaflet/kernelDensityJobService.html

Lines changed: 73 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -26,43 +26,82 @@ <h4 class="modal-title">提示</h4>
2626
<script type="text/javascript" src="http://cdn.bootcss.com/leaflet/1.0.3/leaflet.js"></script>
2727
<script type="text/javascript" src="../../dist/iclient9-leaflet.js"></script>
2828
<script type="text/javascript">
29-
var layer, processingJobsUrl = "http://113.209.64.227:8090/iserver/services/processing/rest/v1/jobs",
29+
var layer, baseLayer, processingJobsUrl = "http://113.209.64.227:8090/iserver/services/processing/rest/v1/jobs",
3030
token = 'GSHB7qlocJkqEH0Ld6VUSGQfekOdPd3e9UdJoHjiupfbkGDggXQLSPWd6VaKm8NH4gvXx6UQ0TCI5wpfr-4Tlw..',
31+
worldMapUrl = 'http://113.209.64.227:8090/iserver/services/map-World/rest/maps/世界地图_Day',
3132
map = L.map('map', {
32-
crs: L.supermap.NonEarthCRS({
33-
bounds: L.bounds([40.65, -74.05], [40.85, -73.85]),
34-
origin: L.point(40.65, -73.85)
35-
}),
33+
crs: L.CRS.EPSG4326,
3634
center: [40.75, -73.95],
37-
zoom: 0
35+
maxZoom: 18,
36+
zoom: 11
3837
}),
39-
kernelDensityJobParameter = new SuperMap.KernelDensityJobParameter({
40-
datasetName: 'test_newyork_taxi_2013_01_14k',
41-
resolution: 0.001,
42-
method: 0,
43-
meshType: 0,
44-
fields: 10,
45-
query: L.latLngBounds(L.latLng(40.550, -74.150), L.latLng(40.950, -73.750)),
46-
radius: 0.01
47-
}),
48-
processingJobsService = new L.supermap.processingJobsService(processingJobsUrl),
49-
info = L.control({position: 'topright'});
38+
info = L.control({position: 'topright'}),
39+
query = [];
5040

5141
info.onAdd = function () {
52-
var btn = L.DomUtil.create('button', 'btn btn-primary');
53-
btn.id = 'btn';
54-
btn.innerHTML = '创建密度分析作业';
55-
return btn;
42+
var popup = L.DomUtil.create('div');
43+
popup.style = 'width:20%';
44+
popup.innerHTML = "<div class='panel panel-default'>" +
45+
"<div class='panel-heading'>" +
46+
"<h3 class='panel-title'>密度分析作业</h3>" +
47+
"</div>" +
48+
"<div class='panel-body'>" +
49+
"<div class='input-group'>" +
50+
"<span class='input-group-addon'>输入数据</span>" +
51+
"<input id='datasetName' type='text' class='form-control' placeholder='test_newyork_taxi_2013_01_14k'/>" +
52+
"</div><p>" +
53+
"<div class='input-group'>" +
54+
"<span class='input-group-addon'>分析方法</span>" +
55+
"<input id='method' type='text' class='form-control' placeholder='0'/>" +
56+
"</div><p>" +
57+
"<div class='input-group'>" +
58+
"<span class='input-group-addon'>网格面类型</span>" +
59+
"<input id='meshType' type='text' class='form-control' placeholder='0'/>" +
60+
"</div><p>" +
61+
"<div class='input-group'>" +
62+
"<span class='input-group-addon'>权重值索引</span>" +
63+
"<input id='fields' type='text' class='form-control' placeholder='7,8'/>" +
64+
"</div><p>" +
65+
"<div class='input-group'>" +
66+
"<span class='input-group-addon'>分析范围</span>" +
67+
"<input id='query' type='text' class='form-control' placeholder='-74.150, 40.550, -73.750, 40.950'/>" +
68+
"</div><p>" +
69+
"<div class='input-group'>" +
70+
"<span class='input-group-addon'>分辨率</span>" +
71+
"<input id='resolution' type='text' class='form-control' placeholder='0.001'/>" +
72+
"</div><p>" +
73+
"<div class='input-group'>" +
74+
"<span class='input-group-addon'>半径</span>" +
75+
"<input id='radius' type='text' class='form-control' placeholder='0.01'/>" +
76+
"</div><p>" +
77+
"<div align='right'>" +
78+
"<input type='button' id='btn' class='btn btn-primary' value='创建'/>" +
79+
"</div></div></div>";
80+
return popup;
5681
};
5782
info.addTo(map);
5883

59-
SuperMap.Credential.CREDENTIAL = new SuperMap.Credential(token, 'token');
84+
($('#query').val() || $('#query').attr('placeholder')).split(',').map(function (el) {
85+
return query.push(parseFloat(el));
86+
});
87+
var kernelDensityJobParameter = new SuperMap.KernelDensityJobParameter({
88+
datasetName: $('#datasetName').val() || $('#datasetName').attr('placeholder'),
89+
resolution: $('#resolution').val() || $('#resolution').attr('placeholder'),
90+
method: $('#method').val() || $('#method').attr('placeholder'),
91+
meshType: $('#meshType').val() || $('#meshType').attr('placeholder'),
92+
fields: $('#fields').val() || $('#fields').attr('placeholder'),
93+
query: L.latLngBounds(L.latLng(query[1], query[0]), L.latLng(query[3], query[2])),
94+
radius: $('#radius').val() || $('#radius').attr('placeholder')
95+
}),
96+
processingJobsService = new L.supermap.processingJobsService(processingJobsUrl);
6097

98+
SuperMap.Credential.CREDENTIAL = new SuperMap.Credential(token, 'token');
6199
$('#btn').on('click', function () {
62100
$('#btn').prop('disabled', true);
63101
$("#model").modal({show: true, backdrop: 'static', keyboard: false});
64-
if (map && layer) {
102+
if (map && layer && baseLayer) {
65103
map.removeLayer(layer);
104+
map.removeLayer(baseLayer);
66105
}
67106
processingJobsService.addKernelDensityJob(kernelDensityJobParameter, function (serviceResult) {
68107
if (serviceResult.error) {
@@ -73,10 +112,17 @@ <h4 class="modal-title">提示</h4>
73112
}
74113
serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
75114
if (info.serviceType === 'RESTMAP') {
76-
var mapUrl = info.serviceAddress + '/maps/kernelDensity1_Map';
77-
L.supermap.tiledMapLayer(mapUrl, {noWrap: true}).addTo(map);
78-
$("#model").modal('hide');
79-
$('#btn').prop('disabled', false);
115+
SuperMap.Request.get(info.serviceAddress + '/maps').then(function (response) {
116+
return response.json();
117+
}).then(function (result) {
118+
var mapUrl = result[0].path;
119+
baseLayer = L.supermap.tiledMapLayer(worldMapUrl, {noWrap: true});
120+
layer = L.supermap.tiledMapLayer(mapUrl, {noWrap: true, transparent: true});
121+
baseLayer.addTo(map);
122+
layer.addTo(map);
123+
$("#model").modal('hide');
124+
$('#btn').prop('disabled', false);
125+
});
80126
}
81127
});
82128
});

0 commit comments

Comments
 (0)