提交 aa754cb6a345426b8aa557da6993f8f46f8370df

作者 LJH 李佳桓
1 个父辈 d756a893

ljh

... ... @@ -310,14 +310,19 @@ void DmpManagerApiHandler::GetTileServiceInfo(const DmpServerApiContext &context
310 310
311 311 boost::property_tree::read_json(stream, pt);
312 312 path= pt.get<std::string>("projectlayers.maplayer.datasource");
313   -
  313 + path="/mnt/d/Code/tiles";
314 314 confcdipath=path+"/conf.cdi";
315 315 confxmlpath=path+"/conf.xml";
316 316 std::ifstream fread(confxmlpath, std::ifstream::binary);
317 317 if(!fread)
318 318 {
319   - context.response()->write("{\"status\":\"false\",\"message\":\"获取切片配置信息失败\"}");
320   - return;
  319 + confxmlpath=confxmlpath=path+"/Conf.xml";
  320 + std::ifstream fread(confxmlpath, std::ifstream::binary);
  321 + if(!fread)
  322 + {
  323 + context.response()->write("{\"status\":\"false\",\"message\":\"获取切片配置信息失败\"}");
  324 + return;
  325 + }
321 326 }
322 327 //读取切片配置文件conf.cdi
323 328 boost::property_tree::ptree pt_confcdi;
... ...
... ... @@ -111,16 +111,41 @@ namespace tileserver
111 111 cairo_surface_t *image = cairo_image_surface_create_from_png_stream(cairo_read_func,&pngData);
112 112 TileProviderFactory::BufferCopy(image,surface,cr,i*256,j*256);
113 113 //cairo_surface_write_to_png (surface, "./wmts.png");
  114 +
114 115 }
  116 +
115 117 }
  118 +
  119 + cairo_surface_t *newimage=cairo_image_surface_create_from_png ("/mnt/d/56.png");
  120 +
  121 + //cairo_arc (newcr, 128.0, 128.0, 76.8, 0, 2*3.14);
  122 + int w,h;
  123 + w = cairo_image_surface_get_width (newimage);
  124 + h = cairo_image_surface_get_height (newimage);
  125 +
  126 + cairo_surface_t *surface0 = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w/2, h/2);
  127 + cairo_t *cr0 =cairo_create (surface0);
  128 + cairo_clip(cr0);
  129 + //cairo_scale (cr0, w/2, h/2);
  130 + cairo_set_source_surface (cr0, newimage, 0, 0);
  131 +
  132 +
  133 + cairo_paint(cr0);
  134 + //cairo_surface_write_to_png (surface0, "./wmts.png");
  135 + cairo_surface_destroy (surface0);
  136 +
  137 +
116 138 std::string responseData;
117 139 cairo_surface_write_to_png_stream(surface, TileProviderFactory::cairo_write_func, &responseData);
  140 + //cairo_surface_write_to_png_stream(newimage, TileProviderFactory::cairo_write_func, &responseData);
118 141
119 142 response.removeHeader("Content-Type");
120 143 std::string f = (format == "jpg") ? "image/jpg" : "image/png";
121 144 response.setHeader("Content-Type", f);
122 145 response.write(responseData);
123 146 //response.writeContent(&responseData,imageLen);
  147 +
  148 +
124 149 cairo_destroy (cr);
125 150 cairo_surface_destroy (surface);
126 151 }
... ...
注册登录 后发表评论