zoukankan      html  css  js  c++  java
  • 底图资源抓取与发布(一)

    获取天地图瓦片图

    (106+180)/(256*R) = x

    (90-29)/(256*R) = y

    x:106.51199909503045, y:29.577790994552448
    x:106.60744282061638, y:29.531699914840534
    
    ---------------------------------------------------------------------------------------
    layer_10
    ---------------------------------------------------------------------------------------
    
    (106.51199909503045+180)/(256*6.866455078125002E-4) = 1629.9349281850616 = 1629
    ,
    (90-29.577790994552448)/(256*6.866455078125002E-4) = 343.73523345321263 = 343
    
    (106.60744282061638+180)/(256*6.866455078125002E-4) = 1630.4778969350616= 1631
    ,
    (90-29.531699914840534)/(256*6.866455078125002E-4) = 343.99744048446263 = 344
    
    
    ---------------------------------------------------------------------------------------
    layer_11
    ---------------------------------------------------------------------------------------
    
    (106.51199909503045+180)/(256*3.433227539062501E-4) = 3259.869856370123 = 3259
    ,
    (90-29.577790994552448)/(256*3.433227539062501E-4) = 687.4704669064253 = 687
    
    (106.60744282061638+180)/(256*3.433227539062501E-4) = 3260.955793870123= 3261
    ,
    (90-29.531699914840534)/(256*3.433227539062501E-4) = 687.9948809689253 = 688
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.URL;
    import java.net.URLConnection;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class DownloadImage {
    
        public static void main(String[] args) throws Exception {
            String baseImgUrl = "http://www.digitalcq.com/RemoteRest/services/CQMap_IMG/MapServer/tile/";
            String baseImgStorePath = "F:\tianditucq_img\_alllayers\";
            boolean haveImgFlag = true;
            int k = 0;
    
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date startTime = new Date();
            System.out.println("start!");
            System.out.println("-------------------------------------------");
            System.out.println("开始时间:" + sdf.format(startTime));
            for (int i = 8; i <= 17; i++) {
    
                haveImgFlag = false;
                String layerImgUrl = baseImgUrl + i + "/";
                String layerImgPath = baseImgStorePath + i + "\";
    
                int miny = 0;
                int maxy = 0;
    
                int minx = 0;
                int maxx = 0;
    
                if (i == 8) {
                }
                if (i == 10) {
                    haveImgFlag = true;
                    miny = 343;
                    maxy = 344;
                    minx = 1629;
                    maxx = 1631;
    
                }
    
                if (i == 11) {
                    haveImgFlag = true;
                    miny = 687;
                    maxy = 688;
                    minx = 3259;
                    maxx = 3261;
    
                }
    
                if (i == 12) {
                    haveImgFlag = true;
                    miny = 1374;
                    maxy = 1376;
                    minx = 6519;
                    maxx = 6522;
    
                }
    
                if (i == 13) {
                    haveImgFlag = true;
                    miny = 2749;
                    maxy = 2752;
                    minx = 13039;
                    maxx = 13044;
    
                }
    
                if (i == 14) {
                    haveImgFlag = true;
                    miny = 5499;
                    maxy = 5504;
                    minx = 26078;
                    maxx = 26088;
    
                }
    
                if (i == 15) {
                    haveImgFlag = true;
                    miny = 10999;
                    maxy = 11008;
                    minx = 52157;
                    maxx = 52176;
    
                }
    
                if (i == 16) {
                    haveImgFlag = true;
                    miny = 21999;
                    maxy = 22016;
                    minx = 104315;
                    maxx = 104351;
    
                }
    
                if (i == 17) {
                    haveImgFlag = true;
                    miny = 43998;
                    maxy = 44032;
                    minx = 208631;
                    maxx = 208702;
    
                }
    
                if (haveImgFlag) {
                    int l = 0;
                    System.out.print("layer_" + i + "  start...   ");
                    for (int y = miny; y <= maxy; y++) {
    
                        String layer_y_ImgUrl = layerImgUrl + y + "/";
                        String layer_y_ImgPath = layerImgPath + y + "\";
    
                        for (int x = minx; x < maxx; x++) {
                            String imgUrl = layer_y_ImgUrl + x + ".png";
                            String imgName = x + ".png";
                            download(imgUrl, imgName, layer_y_ImgPath);
                            k += 1;
                            l += 1;
                        }
                    }
    
                    System.out.println(l + "张图片!");
                }
    
            }
            Date endTime = new Date();
            System.out.println("finish!        合计           " + k + "张图片!");
            System.out.println("结束时间:" + sdf.format(endTime));
            System.out.println("-------------------------------------------");
            System.out.println("end!");
            System.out.println("");
            Integer second = (int) (endTime.getTime() - startTime.getTime()) / 1000;
            System.out.println("耗时:" + second + "秒");
            System.out.println("下载图片:" + k + "张!");
            System.out.println("平均下载速度: 大约" + k / second + "张/秒");
        }
    
        public static void download(String urlString, String filename, String savePath) throws Exception {
            URL url = new URL(urlString);
            URLConnection con = url.openConnection();
            con.setConnectTimeout(5 * 1000);
            InputStream is = con.getInputStream();
            byte[] bs = new byte[1024];
            int len;
            File sf = new File(savePath);
            if (!sf.exists()) {
                sf.mkdirs();
            }
            OutputStream os = new FileOutputStream(sf.getPath() + "\" + filename);
            while ((len = is.read(bs)) != -1) {
                os.write(bs, 0, len);
            }
            os.close();
            is.close();
        }
    
    }
  • 相关阅读:
    [LC] 131. Palindrome Partitioning
    [LC] 216. Combination Sum III
    [LC] 90. Subsets II
    [Algo] 73. Combinations Of Coins
    [Algo] 66. All Valid Permutations Of Parentheses I
    Hive 和 HBase区别
    form表单 多种提交方式 [转]
    HDFS 好的文章链接
    js 获取字符串的 像素 宽度 ----字符串格式化输出
    python 本地变量和全局变量 locals() globals() global nonlocal 闭包 以及和 scala 闭包的区别
  • 原文地址:https://www.cnblogs.com/vvonline/p/4554430.html
Copyright © 2011-2022 走看看