提交 484adf84296fa2fba82f6cae9bf57e181c19a391

作者 WZP 万忠平
2 个父辈 14601d37 0c46b78d
1 -/**************************************************************************  
2 -* file: dmpmanagerapihandler.cpp  
3 -  
4 -* Author: wanzhongping  
5 -* Date: 2021-07-15 14:46:40  
6 -* Email: zhongpingw@chinadci.com  
7 -* copyright: 广州城市信息研究所有限公司  
8 -***************************************************************************/  
9 -#include <iostream>  
10 -#include <boost/json.hpp>  
11 -#include <boost/property_tree/ptree.hpp>  
12 -#include <boost/property_tree/json_parser.hpp>  
13 -#include <boost/property_tree/xml_parser.hpp>  
14 -#include <boost/foreach.hpp>  
15 -#include <boost/lexical_cast.hpp>  
16 -#include <boost/algorithm/string.hpp>  
17 -#include <boost/date_time.hpp>  
18 -  
19 -#include "dmpmanagerapihandler.h"  
20 -#include "dmpserverrequest.h"  
21 -#include "dmpserverresponse.h"  
22 -#include "dmpapiparameters.h"  
23 -#include "dmplogger.h"  
24 -#include "dmpapiutils.h"  
25 -#include "dmpservermanager.h"  
26 -#include "dmpserverutils.h"  
27 -  
28 -DmpManagerApiHandler::DmpManagerApiHandler()  
29 -{  
30 -  
31 -}  
32 -  
33 -void DmpManagerApiHandler::HandleRequest(const DmpServerApiContext &context) const  
34 -{  
35 - if (OperationId().compare("regservice") == 0) {  
36 - regService(context);  
37 - }  
38 - else if (OperationId().compare("startservice") == 0) {  
39 - startService(context);  
40 - }  
41 - else if (OperationId().compare("stopservice") == 0) {  
42 - stopService(context);  
43 - }  
44 - else if(OperationId().compare("regtileservice") == 0) {  
45 - RegTileService(context);  
46 - }  
47 - else if(OperationId().compare("getservicelist") == 0) {  
48 - GetServiceList(context);  
49 - }  
50 - else if(OperationId().compare("getservicedetail") == 0) {  
51 - GetServiceDetail(context);  
52 - }  
53 - else if(OperationId().compare("getcapabilities") == 0) {  
54 - getCapabilities(context);  
55 - }  
56 - else if(OperationId().compare("updateservice") == 0) {  
57 - UpdateService(context);  
58 - }  
59 - else if(OperationId().compare("deleteservice") == 0) {  
60 - deleteService(context);  
61 - }  
62 - else if(OperationId().compare("gettileserviceinfo") == 0) {  
63 - GetTileServiceInfo(context);  
64 - }  
65 - else if(OperationId().compare("addcatalog") == 0) {  
66 - AddCatalog(context);  
67 - }  
68 - else if(OperationId().compare("deletecatalog") == 0) {  
69 - DeleteCatalog(context);  
70 - }  
71 - else if(OperationId().compare("getservicesmatrixsets") == 0) {  
72 - GetServicesMatrixSets(context);  
73 - }  
74 - else if(OperationId().compare("deletecache") == 0) {  
75 - DeleteCache(context);  
76 - }  
77 - else if(OperationId().compare("updatecache") == 0) {  
78 - UpdateCache(context);  
79 - }  
80 - else if(OperationId().compare("reloadservices") == 0) {  
81 - reloadServices(context);  
82 - }  
83 - else {  
84 - context.response()->write("not find oparation: " + OperationId());  
85 - }  
86 -}  
87 -void DmpManagerApiHandler::regService(const DmpServerApiContext &context) const  
88 -{  
89 - switch (context.request()->method())  
90 - {  
91 - case DmpServerRequest::Method::GET_METHOD:  
92 - {  
93 - context.response()->write("{\"status\":\"true\",\"message\":\"服务发布测试——————GET\"}");  
94 - break;  
95 - }  
96 - case DmpServerRequest::Method::POST_METHOD:  
97 - {  
98 - std::string name;  
99 - std::string title;  
100 - int capabilities;  
101 - std::string serverType;  
102 - std::string project;  
103 - const char* data = (char*)(context.request()->GetData());  
104 - if(data && *data != '\0')  
105 - {  
106 - try  
107 - {  
108 - std::stringstream stream(data);  
109 - boost::property_tree::ptree pt;  
110 - boost::property_tree::read_json(stream, pt);  
111 -  
112 - name = pt.get<std::string>("name");  
113 - title = pt.get<std::string>("title");  
114 - capabilities = pt.get<int>("capabilities");  
115 - serverType = pt.get<std::string>("type");  
116 - project = pt.get<std::string>("project");  
117 - }  
118 - catch (boost::property_tree::ptree_bad_path& e) {  
119 - LOGGER_ERROR(e.what());  
120 - context.response()->write("{\"status\":\"false\",\"message\":\"服务发布失败\"}");  
121 - return;  
122 - }  
123 - catch (boost::property_tree::ptree_bad_data& e) {  
124 - LOGGER_ERROR(e.what());  
125 - context.response()->write("{\"status\":\"false\",\"message\":\"服务发布失败\"}");  
126 - return;  
127 - }  
128 - if(context.manager()->publish(serverType, name, title, capabilities, project)) {  
129 - LOGGER_INFO("服务发布成功");  
130 - context.response()->write("{\"status\":\"true\",\"message\":\"Pulish service successful!\"}");  
131 - // std::string projData;  
132 - // DmpServerUtils::Base64Decode(project, &projData);  
133 - // context.response()->removeHeader("Content-Type");  
134 - // context.response()->setHeader("Content-Type", "text/xml;charset=utf-8");  
135 - // context.response()->write(projData);  
136 - }  
137 - else  
138 - {  
139 - LOGGER_ERROR("服务发布失败");  
140 - context.response()->write("{\"status\":\"false\",\"message\":\"Pulish service fail!\"}");  
141 - }  
142 - }  
143 - else  
144 - {  
145 - LOGGER_ERROR("POST数据为空");  
146 - context.response()->write("{\"status\":\"false\",\"message\":\"Pulish service fail!\"}");  
147 - return;  
148 - }  
149 - break;  
150 -  
151 - }  
152 - default:  
153 - {  
154 -  
155 - }  
156 - }  
157 -}  
158 -  
159 -void DmpManagerApiHandler::startService(const DmpServerApiContext &context) const  
160 -{  
161 - switch (context.request()->method())  
162 - {  
163 - case DmpServerRequest::Method::GET_METHOD:  
164 - {  
165 - DmpServerParameters params = context.request()->serverParameters();  
166 - std::string serverName;  
167 - params.getValue("servername", serverName);  
168 - std::string serviceName;  
169 - params.getValue("servicename",serviceName);  
170 - context.manager()->startService(serverName, serviceName);  
171 - break;  
172 - }  
173 - case DmpServerRequest::Method::POST_METHOD:  
174 - {  
175 - context.response()->write("{\"status\":\"true\",\"message\":\"服务删除——————POST\"}");  
176 - break;  
177 - }  
178 - default:  
179 - {  
180 -  
181 - }  
182 - }  
183 -}  
184 -void DmpManagerApiHandler::stopService(const DmpServerApiContext &context) const  
185 -{  
186 - switch (context.request()->method())  
187 - {  
188 - case DmpServerRequest::Method::GET_METHOD:  
189 - {  
190 - DmpServerParameters params = context.request()->serverParameters();  
191 - std::string serverName;  
192 - params.getValue("servername", serverName);  
193 - std::string serviceName;  
194 - params.getValue("servicename",serviceName);  
195 - context.manager()->stopService(serverName, serviceName);  
196 - break;  
197 - }  
198 - case DmpServerRequest::Method::POST_METHOD:  
199 - {  
200 - context.response()->write("{\"status\":\"true\",\"message\":\"服务删除——————POST\"}");  
201 - break;  
202 - }  
203 - default:  
204 - {  
205 -  
206 - }  
207 - }  
208 -}  
209 -void DmpManagerApiHandler::RegTileService(const DmpServerApiContext &context) const  
210 -{  
211 - switch (context.request()->method())  
212 - {  
213 - case DmpServerRequest::Method::GET_METHOD:  
214 - {  
215 - context.response()->write("{\"status\":\"true\",\"message\":\"切片服务发布测试——————GET\"}");  
216 - break;  
217 - }  
218 - case DmpServerRequest::Method::POST_METHOD:  
219 - {  
220 - context.response()->write("{\"status\":\"true\",\"message\":\"切片服务发布测试——————POST\"}");  
221 - break;  
222 - }  
223 - default:  
224 - {  
225 -  
226 - }  
227 - }  
228 -}  
229 -void DmpManagerApiHandler::GetServiceList(const DmpServerApiContext &context) const  
230 -{  
231 -}  
232 -  
233 -void DmpManagerApiHandler::GetServiceDetail(const DmpServerApiContext &context) const  
234 -{  
235 -}  
236 -  
237 -void DmpManagerApiHandler::UpdateService(const DmpServerApiContext &context) const  
238 -{  
239 - switch (context.request()->method())  
240 - {  
241 - case DmpServerRequest::Method::GET_METHOD:  
242 - {  
243 - context.response()->write("{\"status\":\"true\",\"message\":\"更新服务信息——————GET\"}");  
244 - break;  
245 - }  
246 - case DmpServerRequest::Method::POST_METHOD:  
247 - {  
248 - context.response()->write("{\"status\":\"true\",\"message\":\"更新服务信息——————POST\"}");  
249 - break;  
250 - }  
251 - default:  
252 - {  
253 -  
254 - }  
255 - }  
256 -}  
257 -  
258 -void DmpManagerApiHandler::deleteService(const DmpServerApiContext &context) const  
259 -{  
260 - switch (context.request()->method())  
261 - {  
262 - case DmpServerRequest::Method::GET_METHOD:  
263 - {  
264 - DmpServerParameters params = context.request()->serverParameters();  
265 - std::string serverName;  
266 - params.getValue("servername", serverName);  
267 - std::string serviceName;  
268 - params.getValue("servicename",serviceName);  
269 - if(context.manager()->deleteService(serverName, serviceName)) {  
270 - context.response()->write("{\"status\":\"true\",\"message\":\"删除服务成功\"}");  
271 - }else{  
272 - context.response()->write("{\"status\":\"false\",\"message\":\"删除服务失败\"}");  
273 - }  
274 - break;  
275 - }  
276 - case DmpServerRequest::Method::POST_METHOD:  
277 - {  
278 - context.response()->write("{\"status\":\"true\",\"message\":\"服务删除——————POST\"}");  
279 - break;  
280 - }  
281 - default:  
282 - {  
283 -  
284 - }  
285 - }  
286 -}  
287 -  
288 -//获取配置文件切片信息  
289 -void DmpManagerApiHandler::GetTileServiceInfo(const DmpServerApiContext &context) const  
290 -{  
291 - switch (context.request()->method())  
292 - {  
293 - case DmpServerRequest::Method::GET_METHOD:  
294 - {  
295 - context.response()->write("{\"status\":\"true\",\"message\":\"获取切片配置信息——————GET\"}");  
296 - break;  
297 - }  
298 - case DmpServerRequest::Method::POST_METHOD:  
299 - {  
300 - std::string path;  
301 - std::string strExtent;  
302 - const char* data = (char*)(context.request()->GetData());  
303 - if(data && *data != '\0')  
304 - {  
305 - try  
306 - {  
307 - std::stringstream stream(data);  
308 - boost::property_tree::ptree pt;  
309 - boost::property_tree::ptree pt_json;  
310 - std::string confcdipath;  
311 - std::string confxmlpath;  
312 -  
313 - boost::property_tree::read_json(stream, pt);  
314 - path= pt.get<std::string>("projectlayers.maplayer.datasource");  
315 - confcdipath=path+"/conf.cdi";  
316 - confxmlpath=path+"/conf.xml";  
317 - //读取切片配置文件conf.cdi  
318 - boost::property_tree::ptree pt_confcdi;  
319 - boost::property_tree::read_xml(confcdipath,pt_confcdi);  
320 - //boost::property_tree::ptree pt_base=pt.get_child("base");  
321 - std::string xmin=pt_confcdi.get<std::string>("EnvelopeN.XMin");  
322 - std::string ymin=pt_confcdi.get<std::string>("EnvelopeN.YMin");  
323 - std::string xmax=pt_confcdi.get<std::string>("EnvelopeN.XMax");  
324 - std::string ymax=pt_confcdi.get<std::string>("EnvelopeN.YMax");  
325 - pt.put("projectlayers.maplayer.extent.xmin",xmin);  
326 - pt.put("projectlayers.maplayer.extent.ymin",ymin);  
327 - pt.put("projectlayers.maplayer.extent.xmax",xmax);  
328 - pt.put("projectlayers.maplayer.extent.ymax",ymax);  
329 - //读取配置文件conf.xml  
330 - boost::property_tree::ptree pt_confxml;  
331 - boost::property_tree::read_xml(confxmlpath,pt_confxml);  
332 - std::string strWKT=pt_confxml.get<std::string>("CacheInfo.TileCacheInfo.SpatialReference.WKT");  
333 - std::string wkid=pt_confxml.get<std::string>("CacheInfo.TileCacheInfo.SpatialReference.WKID");  
334 - std::string top=pt_confxml.get<std::string>("CacheInfo.TileCacheInfo.TileOrigin.X");  
335 - std::string left=pt_confxml.get<std::string>("CacheInfo.TileCacheInfo.TileOrigin.Y");  
336 - std::string tileCols=pt_confxml.get<std::string>("CacheInfo.TileCacheInfo.TileCols");  
337 - std::string tileRows=pt_confxml.get<std::string>("CacheInfo.TileCacheInfo.TileRows");  
338 - std::string dpi=pt_confxml.get<std::string>("CacheInfo.TileCacheInfo.DPI");  
339 - pt.put("projectCrs.spatialrefsys.wkt",strWKT);  
340 - pt.put("projectCrs.spatialrefsys.srid",wkid);  
341 -  
342 - boost::property_tree::ptree pt_tileMatrixSets=pt.get_child("tileMatrixSets");  
343 - BOOST_FOREACH(boost::property_tree::ptree::value_type &v1,pt_tileMatrixSets)  
344 - {  
345 - //conf.xml中读取tileinfo  
346 - boost::property_tree::ptree pt_levels,pt_tileMatrixSet;  
347 - boost::property_tree::ptree pt_tileArry=pt_confxml.get_child("CacheInfo.TileCacheInfo.LODInfos");  
348 - BOOST_FOREACH(boost::property_tree::ptree::value_type &v2,pt_tileArry)  
349 - {  
350 - boost::property_tree::ptree pt_level;  
351 - if(v2.first=="LODInfo")  
352 - {  
353 - std::string level=v2.second.get<std::string>("LevelID");  
354 - std::string scale=v2.second.get<std::string>("Scale");  
355 - std::string resolution=v2.second.get<std::string>("Resolution");  
356 - pt_level.add("level.id",level);  
357 - pt_level.add("level.scaleDenominator",scale);  
358 - pt_level.add("level.resolution",resolution);  
359 - pt_levels.push_back(std::make_pair("", pt_level));  
360 - }  
361 - }  
362 - std::string id_=v1.second.get<std::string>("tileMatrixSet.id");  
363 - pt_tileMatrixSet.add("id",id_);  
364 - pt_tileMatrixSet.add("crs","EPSG::"+wkid);  
365 - pt_tileMatrixSet.add("tileCols",tileCols);  
366 - pt_tileMatrixSet.add("tileRows",tileRows);  
367 - pt_tileMatrixSet.add("dpi",dpi);  
368 - pt_tileMatrixSet.add("tileOrigin.X",top);  
369 - pt_tileMatrixSet.add("tileOrigin.Y",left);  
370 - pt_tileMatrixSet.add_child("levels",pt_levels);  
371 - //pt_tilelist.add_child("tileMatrixList",pt_tiles);  
372 - v1.second.put_child("tileMatrixSet",pt_tileMatrixSet);  
373 - //v1.second.put("id","EPSG::"+wkid);  
374 - }  
375 -  
376 - pt.put_child("tileMatrixSets",pt_tileMatrixSets);  
377 - std::stringstream ss;  
378 - boost::property_tree::write_json(ss,pt);  
379 - strExtent=ss.str();  
380 - }  
381 - catch (boost::property_tree::ptree_bad_path& e) {  
382 - LOGGER_ERROR(e.what());  
383 - context.response()->write("{\"status\":\"false\",\"message\":\"获取切片配置信息失败\"}");  
384 - return;  
385 - }  
386 - catch (boost::property_tree::ptree_bad_data& e) {  
387 - LOGGER_ERROR(e.what());  
388 - context.response()->write("{\"status\":\"false\",\"message\":\"获取切片配置信息失败\"}");  
389 - return;  
390 - }  
391 - context.response()->write(strExtent);  
392 - }  
393 - break;  
394 - }  
395 - default:  
396 - {  
397 -  
398 - }  
399 - }  
400 -}  
401 -  
402 -//判断服务是否存在  
403 -void DmpManagerApiHandler::IsExistServiceName(const DmpServerApiContext &context) const  
404 -{  
405 - switch (context.request()->method())  
406 - {  
407 - case DmpServerRequest::Method::GET_METHOD:  
408 - {  
409 - context.response()->write("{\"status\":\"true\",\"message\":\"——————GET\"}");  
410 - break;  
411 - }  
412 - case DmpServerRequest::Method::POST_METHOD:  
413 - {  
414 - context.response()->write("{\"status\":\"true\",\"message\":\"——————POST\"}");  
415 - break;  
416 - }  
417 - default:  
418 - {  
419 -  
420 - }  
421 - }  
422 -}  
423 -  
424 -//新增目录  
425 -void DmpManagerApiHandler::AddCatalog(const DmpServerApiContext &context) const  
426 -{  
427 - switch (context.request()->method())  
428 - {  
429 - case DmpServerRequest::Method::GET_METHOD:  
430 - {  
431 - context.response()->write("{\"status\":\"true\",\"message\":\"新增目录——————GET\"}");  
432 - break;  
433 - }  
434 - case DmpServerRequest::Method::POST_METHOD:  
435 - {  
436 - context.response()->write("{\"status\":\"true\",\"message\":\"新增目录——————POST\"}");  
437 - break;  
438 - }  
439 - default:  
440 - {  
441 -  
442 - }  
443 - }  
444 -}  
445 -  
446 -//删除目录  
447 -void DmpManagerApiHandler::DeleteCatalog(const DmpServerApiContext &context) const  
448 -{  
449 - switch (context.request()->method())  
450 - {  
451 - case DmpServerRequest::Method::GET_METHOD:  
452 - {  
453 - context.response()->write("{\"status\":\"true\",\"message\":\"删除目录——————GET\"}");  
454 - break;  
455 - }  
456 - case DmpServerRequest::Method::POST_METHOD:  
457 - {  
458 - context.response()->write("{\"status\":\"true\",\"message\":\"删除目录——————POST\"}");  
459 - break;  
460 - }  
461 - default:  
462 - {  
463 -  
464 - }  
465 - }  
466 -}  
467 -  
468 -void DmpManagerApiHandler::GetServicesMatrixSets(const DmpServerApiContext &context) const  
469 -{  
470 - switch (context.request()->method())  
471 - {  
472 - case DmpServerRequest::Method::GET_METHOD:  
473 - {  
474 - context.response()->write("{\"status\":\"true\",\"message\":\"删除目录——————GET\"}");  
475 - break;  
476 - }  
477 - case DmpServerRequest::Method::POST_METHOD:  
478 - {  
479 - context.response()->write("{\"status\":\"true\",\"message\":\"删除目录——————POST\"}");  
480 - break;  
481 - }  
482 - default:  
483 - {  
484 -  
485 - }  
486 - }  
487 -}  
488 -void DmpManagerApiHandler::GetCatalogList(const DmpServerApiContext &context) const  
489 -{  
490 - switch (context.request()->method())  
491 - {  
492 - case DmpServerRequest::Method::GET_METHOD:  
493 - {  
494 - context.response()->write("{\"status\":\"true\",\"message\":\"获取目录列表——————GET\"}");  
495 - break;  
496 - }  
497 - case DmpServerRequest::Method::POST_METHOD:  
498 - {  
499 - context.response()->write("{\"status\":\"true\",\"message\":\"获取目录列表——————POST\"}");  
500 - break;  
501 - }  
502 - default:  
503 - {  
504 -  
505 - }  
506 - }  
507 -}  
508 -void DmpManagerApiHandler::UpdateCache(const DmpServerApiContext &context)const  
509 -{  
510 - switch (context.request()->method())  
511 - {  
512 - case DmpServerRequest::Method::GET_METHOD:  
513 - {  
514 - std::string serviceName_;  
515 - const DmpServerParameters params_ (context.request()->serverParameters());  
516 - CIMap paramsMap=params_.parameters();  
517 - std::map<std::string, std::string>::const_iterator iter;  
518 - iter =paramsMap.find("SERVICENAME");  
519 - if (iter != paramsMap.end())  
520 - {  
521 - try  
522 - {  
523 - serviceName_ = boost::lexical_cast<std::string>(iter->second);  
524 - }  
525 - catch (boost::bad_lexical_cast &e)  
526 - {  
527 - LOGGER_ERROR(e.what());  
528 - context.response()->write("{\"status\":\"true\",\"message\":\"获取参数信息错误——————GET\"}");  
529 - return;  
530 - }  
531 - }  
532 -  
533 - break;  
534 - }  
535 - case DmpServerRequest::Method::POST_METHOD:  
536 - {  
537 - context.response()->write("{\"status\":\"true\",\"message\":\"更新缓存——————POST\"}");  
538 - break;  
539 - }  
540 - default:  
541 - {  
542 -  
543 - }  
544 - }  
545 -}  
546 -void DmpManagerApiHandler::DeleteCache(const DmpServerApiContext &context)const  
547 -{  
548 - switch (context.request()->method())  
549 - {  
550 - case DmpServerRequest::Method::GET_METHOD:  
551 - {  
552 - std::string serviceName_;  
553 - const DmpServerParameters params_ (context.request()->serverParameters());  
554 - CIMap paramsMap=params_.parameters();  
555 - std::map<std::string, std::string>::const_iterator iter;  
556 - iter =paramsMap.find("SERVICENAME");  
557 - if (iter != paramsMap.end())  
558 - {  
559 - try  
560 - {  
561 - serviceName_ = boost::lexical_cast<std::string>(iter->second);  
562 - }  
563 - catch (boost::bad_lexical_cast &e)  
564 - {  
565 - LOGGER_ERROR(e.what());  
566 - context.response()->write("{\"status\":\"true\",\"message\":\"获取参数信息错误——————GET\"}");  
567 - return;  
568 - }  
569 - }  
570 -  
571 - break;  
572 - }  
573 - case DmpServerRequest::Method::POST_METHOD:  
574 - {  
575 - context.response()->write("{\"status\":\"true\",\"message\":\"删除缓存——————POST\"}");  
576 - break;  
577 - }  
578 - default:  
579 - {  
580 -  
581 - }  
582 - }  
583 -}  
584 -  
585 -void DmpManagerApiHandler::getCapabilities(const DmpServerApiContext &context) const  
586 -{  
587 - std::string strJson = context.manager()->getCapabilities();  
588 - context.response()->write(strJson);  
589 -}  
590 -void DmpManagerApiHandler::reloadServices(const DmpServerApiContext &context) const  
591 -{  
592 - switch (context.request()->method())  
593 - {  
594 - case DmpServerRequest::Method::GET_METHOD:  
595 - {  
596 - if(context.manager()->loadServices()) {  
597 - context.response()->write("{\"status\":\"true\",\"message\":\"重载服务成功\"}");  
598 - }else{  
599 - context.response()->write("{\"status\":\"false\",\"message\":\"重载服务失败\"}");  
600 - }  
601 - break;  
602 -  
603 - }  
604 - case DmpServerRequest::Method::POST_METHOD:  
605 - {  
606 - context.response()->write("{\"status\":\"true\",\"message\":\"服务重载——————POST\"}");  
607 - break;  
608 - }  
609 - default:  
610 - {  
611 -  
612 - }  
613 - }  
614 -}  
@@ -102,8 +102,38 @@ void DmpManagerApiHandler::regService(const DmpServerApiContext &context) const @@ -102,8 +102,38 @@ void DmpManagerApiHandler::regService(const DmpServerApiContext &context) const
102 LOGGER_INFO("服务发布成功"); 102 LOGGER_INFO("服务发布成功");
103 std::string url; 103 std::string url;
104 std::string http="http://"+context.request()->domain()+":"+context.request()->port(); 104 std::string http="http://"+context.request()->domain()+":"+context.request()->port();
  105 + switch (capabilities)
  106 + {
  107 + case 1:
  108 + {
  109 + url=http+"/DMap/Services/"+name+"/"+serverType+"/WmtsService?REQUEST=GetThumbnail";
  110 + break;
  111 + }
  112 + case 2:
  113 + {
  114 + url=http+"/DMap/Services/"+name+"/"+serverType+"/WmsService?REQUEST=GetThumbnail";
  115 + break;
  116 + }
  117 + case 4:
  118 + {
  119 + url=http+"/DMap/Services/"+name+"/"+serverType+"/WfsService?REQUEST=GetThumbnail";
  120 + break;
  121 + }
  122 + case 8:
  123 + {
  124 + url=http+"/DMap/Services/"+name+"/"+serverType+"/WpsService?REQUEST=GetThumbnail";
  125 + break;
  126 + }
  127 + case 16:
  128 + {
  129 + url=http+"/DMap/Services/"+name+"/"+serverType+"/tmsService?REQUEST=GetThumbnail";
  130 + break;
  131 + }
  132 +
  133 + default:
  134 + break;
  135 + }
105 136
106 - url=http+"/DMap/Services/"+name+"/"+serverType+"/tmsService?REQUEST=GetThumbnail";  
107 context.response()->write("{\"status\":\""+std::to_string(flag)+"\",\"url\":\""+url+"\",\"message\":\"Pulish service successful!\"}"); 137 context.response()->write("{\"status\":\""+std::to_string(flag)+"\",\"url\":\""+url+"\",\"message\":\"Pulish service successful!\"}");
108 // std::string projData; 138 // std::string projData;
109 // DmpServerUtils::Base64Decode(project, &projData); 139 // DmpServerUtils::Base64Decode(project, &projData);
注册登录 后发表评论