From 84580a66aa12a0d7832eec116dbbb8bfd1e2364e Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期日, 19 二月 2023 10:59:59 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/controller/data/WmtsController.java |   50 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/lf/server/controller/data/WmtsController.java b/src/main/java/com/lf/server/controller/data/WmtsController.java
index 5a82156..d72e3d4 100644
--- a/src/main/java/com/lf/server/controller/data/WmtsController.java
+++ b/src/main/java/com/lf/server/controller/data/WmtsController.java
@@ -1,20 +1,16 @@
 package com.lf.server.controller.data;
 
 import com.lf.server.annotation.SysLog;
-import com.lf.server.entity.all.StaticData;
-import com.lf.server.helper.GdalHelper;
-import com.lf.server.helper.StringHelper;
+import com.lf.server.config.PropertiesConfig;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.io.ClassPathResource;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
@@ -30,19 +26,19 @@
 @RestController
 @RequestMapping("/wmts")
 public class WmtsController {
+    @Autowired
+    PropertiesConfig config;
+
     private final static Log log = LogFactory.getLog(WmtsController.class);
 
     @SysLog()
-    @ApiOperation(value = "鏌ヨWMTS鍏冩暟鎹�")
+    @ApiOperation(value = "鑾峰彇WMTS鍏冩暟鎹�")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "token", value = "浠ょ墝", dataType = "String", required = true, defaultValue = "token", paramType = "path")})
-    @GetMapping("select/metas/{token}")
-    public void selectMetas(String service, String version, String request, @PathVariable(name = "token") String token, HttpServletRequest req, HttpServletResponse res) {
+            @ApiImplicitParam(name = "token", value = "浠ょ墝", required = true, dataType = "String", defaultValue = "token", paramType = "path")
+    })
+    @GetMapping("select/{token}/WMTSCapabilities.xml")
+    public void selectWmtsCapabilities(@PathVariable(name = "token") String token, HttpServletRequest req, HttpServletResponse res) {
         try {
-            if (!StaticData.WMTS.equals(service) || !StaticData.CAPABILITY.equals(request)) {
-                return;
-            }
-
             ClassPathResource resource = new ClassPathResource("wmts/web.xml");
             if (!resource.exists()) {
                 return;
@@ -53,7 +49,10 @@
             stream.read(data);
             stream.close();
 
+            String url = req.getRequestURL().toString().replace("WMTSCapabilities.xml", "tile");
+
             String result = new String(data, StandardCharsets.UTF_8);
+            result = result.replace("{url}", url);
             byte[] bytes = result.getBytes(StandardCharsets.UTF_8);
 
             res.setHeader("Content-Type", "application/xml;charset=UTF-8");
@@ -64,4 +63,25 @@
             log.error(ex.getMessage(), ex);
         }
     }
+
+    @ApiOperation(value = "鑾峰彇WMTS鐡︾墖")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "token", value = "浠ょ墝", required = true, dataType = "String", defaultValue = "token", paramType = "path"),
+            @ApiImplicitParam(name = "layer", value = "鍥惧眰绫诲瀷", required = true, dataType = "String", defaultValue = "TDTIMG"),
+            @ApiImplicitParam(name = "tilematrix", value = "灞傜骇", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "tilerow", value = "琛屽彿", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "tilecol", value = "鍒楀彿", required = true, dataType = "Integer")
+    })
+    @GetMapping("select/{token}/tile")
+    public void selectWmtsTile(@RequestParam("layer") String layer, @RequestParam("tilematrix") Integer l, @RequestParam("tilerow") Integer r,
+                               @RequestParam("tilecol") Integer c, @RequestParam("format") String format, @PathVariable(name = "token") String token,
+                               HttpServletRequest req, HttpServletResponse res) {
+        try {
+            // ServletServerHttpRequest ssRequest = new ServletServerHttpRequest(request)
+            String base = config.getTilePath();
+
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+        }
+    }
 }

--
Gitblit v1.9.3