精华内容
下载资源
问答
  • wmts

    2018-11-29 18:54:35
    /* 获取外层的父级元素 */ var capabilities = $(res).find("Capabilities").eq(0); /* 获取服务信息部分 */ var serviceIdentification =$(res).find("ows\\:ServiceIdentification"...
    /* 获取外层的父级元素 */
    var capabilities = $(res).find("Capabilities").eq(0);
    /* 获取服务信息部分 */
    var serviceIdentification =$(res).find("ows\\:ServiceIdentification");
    /* 获取Content层 */
    var content = $(res).find("Contents").eq(0);
    /* 获取Layer层 */
    var layer=content.find("Layer").eq(0);
    /* 获取TileMatrixSet层 */
    var tileMatrixSet=content.children("TileMatrixSet").eq(0);
    /* 获取服务crs内的坐标系 */
    var serviceCrs=layer.find("ows\\:WGS84BoundingBox").attr("crs");
    /* 获取图层crs内的坐标系 */
    var layoutCrs=tileMatrixSet.find("ows\\:SupportedCRS").eq(0).text();
    /* 获取图层范围信息 */
    var boundingBox = layer.find("ows\\:WGS84BoundingBox").eq(0);
    /* 最小经度、纬度 */
    var smallZhi=boundingBox.find("ows\\:LowerCorner").eq(0).text();
    /* 最大经度、纬度 */
    var bigZhi=boundingBox.find("ows\\:UpperCorner").eq(0).text();
    var smallRange=smallZhi.split(" ");
    var bigRange=bigZhi.split(" ");
    /* 设置版本号 */
    var versionHao = serviceIdentification.find("ows\\:ServiceTypeVersion").eq(0).text();
    /* 设置瓦片格式 */
    var wapian=layer.find("Format").eq(0).text();
    // 图层坐标系
    $(".coordinateLay").text(getCrs(layoutCrs));
    /* 设置图层范围 */
    $(".leftJing").text(smallRange[0]);
    $(".leftWei").text(bigRange[1]);

     

    展开全文
  • wmts:收集WMTS服务-源码

    2021-03-12 19:25:49
    WMTS服务的集合。 地图 必应,Carto,Esri,Gaode,Geoq,Google,GSI,IsHowChina,Kosmosnimki,Mango,MapBox,Michelin,Naver,Nokia,OpenStreetMap,Stamen,Strava,ThunderForest,Tianditu,TomTom,Waze...
  • wmts_getfeatureinfo_by_leaflet WMTS GetFeatureInfo by Leaflet Demo : : 添加 WMTS // 4326 //900913 Chồng lớp, phải dùng srid:900913 WMTS 获取特征信息 # WMTS ...
  • WMTS加载

    2020-08-12 16:24:16
    使用arcgis js api 加载wmts代码 直接访问http://www.supermap.com.cn:8090/iserver/services/map-china400/wmts-china可以直接查看wmts的GetCapabilities内容。等同于...

    使用arcgis js api 加载wmts代码

    直接访问http://www.supermap.com.cn:8090/iserver/services/map-china400/wmts-china 可以直接查看wmts的GetCapabilities内容。等同于http://www.supermap.com.cn:8090/iserver/services/map-china400/wmts-china?SERVICE=WMTS&request=GetCapabilities

    ResourceURl 可以通过http://www.supermap.com.cn:8090/iserver/services/map-china400/wmts-china/China/default/ChinaPublicServices_China/9/150/849.png进行访问。实际在web中查看network访问的地址是通过wmts的

    GetTile进行访问的:

    http://www.supermap.com.cn:8090/iserver/services/map-china400/wmts-china?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&LAYER=China&STYLE=default&FORMAT=image/png&TILEMATRIXSET=ChinaPublicServices_China&TILEMATRIX=9&TILEROW=150&TILECOL=849

    在JS代码中TileInfo的rows和cols应该是对应TileMatrix的TileWidth和TileHeight。如果修改该值,虽然也可以显示,但是会出现图片显示有问题,位置不对。超图中TileInfo中LODS是标准<WellKnownScaleSet>ChinaPublicServices</WellKnownScaleSet>,天地图http://t0.tianditu.gov.cn/img_w/wmts?request=GetCapabilities&service=wmts&tk=41992f255f5c4efffceb41e0f06d3dc2也是采用这个切图比例。但是其它省的发布的服务不一定是采用这个比例的(天地图官网可以查询其它地图服务),比如浙江(也不需要申请key)。天地图每个种类的地图都有两种切图,一种是经纬度,一个是墨卡托。

    http://srv.zjditu.cn/ZJEMAP_2D/wmts?request=GetCapabilities&service=wmts

    • 加载esr的WMTS服务

    https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&LAYER=SRTM_Color_Index&STYLE=default&FORMAT=image/png&TILEMATRIXSET=31.25m&TILEMATRIX=3&TILEROW=2&TILECOL=7

    可以通过上面访问具体某个图片,但是https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/?SERVICE=WMTS&request=GetCapabilities访问不到元数据信息,如何获取?还是该服务并没有提供此功能?

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
        <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
        <title>Map with WMTS resourceinfo</title>
    
        <link rel="stylesheet" href="https://js.arcgis.com/3.33/dijit/themes/claro/claro.css">
        <link rel="stylesheet" href="https://js.arcgis.com/3.33/esri/css/esri.css">
        <style>
            html,
            body,
            #map {
                height: 100%;
                width: 100%;
                margin: 0;
                padding: 0;
            }
        </style>
        <script src="https://js.arcgis.com/3.33/"></script>
    
        <script>
            require([
                "esri/map",
                "esri/layers/WMTSLayer",
                "esri/layers/WMTSLayerInfo",
                "esri/geometry/Extent",
                "esri/layers/TileInfo",
                "esri/SpatialReference",
                "dojo/parser",
                "dijit/layout/BorderContainer",
                "dijit/layout/ContentPane",
                "dojo/domReady!"
            ], function(
                Map, WMTSLayer, WMTSLayerInfo,
                Extent, TileInfo, SpatialReference,
                parser
            ) {
                parser.parse();
    
                var map = new Map("map", {
                    center: [86.9, 28],
                    zoom: 3
                });
    
                var tileInfo = new TileInfo({
                    "dpi": 96,
                    "format": "format/png",
                    "compressionQuality": 0,
                    "spatialReference": new SpatialReference({
                        "wkid": 4326
                    }),
                    "rows": 512,
                    "cols": 512,
                    "origin": {
                        "x": -180,
                        "y": 90
                    },
                    "lods": [{
                        "level": "0",
                        "scale": 236663484.36365247,
                        "resolution": 0.5624999999999999
                    }, {
                        "level": "1",
                        "scale": 118331742.18182631,
                        "resolution": 0.28125000000000017
                    }, {
                        "level": "2",
                        "scale": 59165871.090913124,
                        "resolution": 0.140625
                    }, {
                        "level": "3",
                        "scale": 29582935.545456562,
                        "resolution": 0.0703125
                    }, {
                        "level": "4",
                        "scale": 14791467.772728289,
                        "resolution": 0.03515625000000002
                    }, {
                        "level": "5",
                        "scale": 395733.8863641415,
                        "resolution": 0.017578125000000003
                    }, {
                        "level": "6",
                        "scale": 3697866.94318207,
                        "resolution": 0.008789062499999998
                    }, {
                        "level": "7",
                        "scale": 1848933.471591035,
                        "resolution": 0.004394531249999999
                    }, {
                        "level": "8",
                        "scale": 924466.7357955176,
                        "resolution": 0.002197265625
                    }, {
                        "level": "9",
                        "scale": 462233.3678977588,
                        "resolution": 0.0010986328125
                    }, {
                        "level": "10",
                        "scale": 231116.6839488794,
                        "resolution": 0.00054931640625
                    }, {
                        "level": "11",
                        "scale": 115558.3419744397,
                        "resolution": 0.000274658203125
                    }]
                });
                var tileExtent = new Extent(-180, -90, 180, 90, new SpatialReference({
                    wkid: 4326
                }));
    
                var layerInfo = new WMTSLayerInfo({
                    tileInfo: tileInfo,
                    fullExtent: tileExtent,
                    initialExtent: tileExtent,
                    identifier: "SRTM_Color_Index",
                    tileMatrixSet: "31.25m",
                    format: "png",
                    style: "default"
                });
    
                var resourceInfo = {
                    version: "1.0.0",
                    layerInfos: [layerInfo],
                    copyright: "earthdata"
                };
    
                var options = {
                    serviceMode: "KVP",
                    resourceInfo: resourceInfo,
                    layerInfo: layerInfo
                };
    
                wmtsLayer = new WMTSLayer("https://gibs.earthdata.nasa.gov/wmts/epsg4326/best", options);
                map.addLayer(wmtsLayer);
            });
        </script>
    </head>
    
    <body>
    <div data-dojo-type="dijit/layout/BorderContainer" data-dojo-props="design:'headline', gutters:false" style="width: 100%; height: 100%; margin: 0;">
    
        <div id="map" data-dojo-type="dijit/layout/ContentPane" data-dojo-props="region:'center'">
            <div id="citationInfo">
                <a href="https://earthdata.nasa.gov">Earthdata</a>
                served by
                <a href="https://www.nasa.gov">NASA</a>
            </div>
        </div>
    
    </div>
    </body>
    
    </html>
    • 加载supermap发布的wmts服务
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
        <title>WMTS地图服务</title>
        <link rel="stylesheet" href="https://js.arcgis.com/3.33/dijit/themes/claro/claro.css">
        <link rel="stylesheet" href="https://js.arcgis.com/3.33/esri/css/esri.css">
        <script src="https://js.arcgis.com/3.33/"></script>
    
        <style>
            html,
            body,
            #map {
                height: 100%;
                width: 100%;
                margin: 0;
                padding: 0;
            }
        </style>
    
        <script>
            require([
                "esri/map",
                "esri/layers/WMTSLayer",
                "esri/layers/WMTSLayerInfo",
                "esri/geometry/Extent",
                "esri/layers/TileInfo",
                "esri/SpatialReference",
                "dojo/domReady!"
            ], function (
                Map,
                WMTSLayer,
                WMTSLayerInfo,
                Extent,
                TileInfo,
                SpatialReference,
                parser
            ) {
                var map = new Map("map", {
                    center: [117,36.651],
                    zoom: 8
                });
    
                var tileInfo = new TileInfo({
                    "dpi": 96,
                    "format": "image/png",
                    "compressionQuality": 0,
                    "spatialReference": new SpatialReference({
                        "wkid": 4326
                    }),
                    "rows": 256,
                    "cols": 256,
                    "origin": {
                        "x": -180,
                        "y": 90
                    },
                    "lods": [
                        {"level": "0","scale": 295829355.45,"resolution": 0.703125},
                        {"level": "1","scale": 147914677.725,"resolution": 0.3515625},
                        {"level": "2", "scale": 73957338.8625,"resolution": 0.17578125},
                        {"level": "3","scale": 36978669.43125,"resolution": 0.087890625},
                        {"level": "4","scale": 18489334.715625,"resolution": 0.0439453125},
                        {"level": "5","scale": 9244667.3578125,"resolution": 0.02197265625},
                        {"level": "6","scale": 4622333.67890625,"resolution": 0.010986328125},
                        {"level": "7","scale": 2311166.83945312,"resolution": 0.0054931640625},
                        {"level": "8","scale": 1155583.41972656,"resolution": 0.00274658203125},
                        {"level": "9","scale": 577791.709863281,"resolution": 0.001373291015625},
                        {"level": "10","scale": 288895.8549316406,"resolution": 0.0006866455078125},
                        {"level": "11","scale": 144447.9274658203,"resolution": 0.00034332275390625},
                        {"level": "12","scale": 4508.935440959931,"resolution": 0.000171661376953125},
                        {"level": "13","scale": 36111.98186645508,"resolution": 0.0000858306884765625},
                        {"level": "14","scale": 18055.99093322754,"resolution": 0.0000429153442382812},
                        {"level": "15","scale": 9027.99546661377,"resolution": 0.0000214576721191406},
                        {"level": "16","scale": 4513.997733306885,"resolution": 0.0000107288360595703},
                        {"level": "17","scale": 2256.9988666534423,"resolution": 0.00000536441802978515},
                        {"level": "18","scale": 1128.4994333267211,"resolution": 0.00000268220901489257},
                        {"level": "19","scale": 564.2497166633606,"resolution": 0.00000134110450744628}
                    ]
                });
                var tileExtent = new Extent(-180.0 , -85.0511287798065,180.0 , 85.05112877980648, new SpatialReference({
                    wkid: 4326
                }));
    
                var layerInfo = new WMTSLayerInfo({
                    tileInfo: tileInfo,
                    fullExtent: tileExtent,
                    initialExtent: tileExtent,
                    identifier: "China",
                    tileMatrixSet: "ChinaPublicServices_China",
                    format: "png",
                    style: "default"
                });
    
                var resourceInfo = {
                    version: "1.0.0",
                    layerInfos: [layerInfo],
                    copyright: ""
                };
                var options = {
                    serviceMode: "KVP",
                    resourceInfo: resourceInfo,
                    layerInfo: layerInfo
                };
                var wmtsLayer = new WMTSLayer("http://www.supermap.com.cn:8090/iserver/services/map-china400/wmts-china", options);
                map.addLayer(wmtsLayer);
            });
        </script>
    </head>
    <body>
    <div id="map"></div>
    </body>
    </html>
    • ArcMap加载天地图,因为需要tk,所以和其他的有所不同,(参数需要如下添加使用服务端tk)但是添加img_w平面的就无法显示?

    添加之后拖动到地图窗口就可以显示

    js加载 使用申请的浏览器的tk

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8"/>
        <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"/>
        <title>天地图影像(经纬度) - 4.x</title>
    
        <!-- 用4.12的api会报错  -->
        <link rel="stylesheet" href="https://js.arcgis.com/4.10/esri/css/main.css"/>
        <script src="https://js.arcgis.com/4.10/"></script>
    
        <style>
            html,
            body,
            #viewDiv {
                padding: 0;
                margin: 0;
                height: 100%;
                width: 100%;
            }
        </style>
    
        <script>
            require([
                "esri/Map",
                "esri/layers/WebTileLayer",
                'esri/layers/support/TileInfo',
                'esri/views/MapView',
                'dojo/domReady!'
            ], function (Map, WebTileLayer, TileInfo, MapView) {
                var tiandituBaseUrl = "http://{subDomain}.tianditu.com"; //天地图服务地址
                var token = "41992f255f5c4efffceb41e0f06d3dc2"; //天地图token
    
                // 首先设定瓦片信息,天地图经纬度地图的切片信息全部使用该信息设定
                var tileInfo = new TileInfo({
                    dpi: 90.71428571427429,
                    rows: 256,
                    cols: 256,
                    compressionQuality: 0,
                    origin: {
                        x: -180,
                        y: 90
                    },
                    spatialReference: {
                        wkid: 4326
                    },
                    lods: [
                        {level: 2, levelValue: 2, resolution: 0.3515625, scale: 147748796.52937502},
                        {level: 3, levelValue: 3, resolution: 0.17578125, scale: 73874398.264687508},
                        {level: 4, levelValue: 4, resolution: 0.087890625, scale: 36937199.132343754},
                        {level: 5, levelValue: 5, resolution: 0.0439453125, scale: 18468599.566171877},
                        {level: 6, levelValue: 6, resolution: 0.02197265625, scale: 9234299.7830859385},
                        {level: 7, levelValue: 7, resolution: 0.010986328125, scale: 4617149.8915429693},
                        {level: 8, levelValue: 8, resolution: 0.0054931640625, scale: 2308574.9457714846},
                        {level: 9, levelValue: 9, resolution: 0.00274658203125, scale: 1154287.4728857423},
                        {level: 10, levelValue: 10, resolution: 0.001373291015625, scale: 577143.73644287116},
                        {level: 11, levelValue: 11, resolution: 0.0006866455078125, scale: 288571.86822143558},
                        {level: 12, levelValue: 12, resolution: 0.00034332275390625, scale: 144285.93411071779},
                        {level: 13, levelValue: 13, resolution: 0.000171661376953125, scale: 72142.967055358895},
                        {level: 14, levelValue: 14, resolution: 8.58306884765625e-005, scale: 36071.483527679447},
                        {level: 15, levelValue: 15, resolution: 4.291534423828125e-005, scale: 18035.741763839724},
                        {level: 16, levelValue: 16, resolution: 2.1457672119140625e-005, scale: 9017.8708819198619},
                        {level: 17, levelValue: 17, resolution: 1.0728836059570313e-005, scale: 4508.9354409599309},
                        {level: 18, levelValue: 18, resolution: 5.3644180297851563e-006, scale: 2254.4677204799655},
                        {level: 19, levelValue: 19, resolution: 2.68220901489257815e-006, scale: 1127.23386023998275},
                        {level: 20, levelValue: 2, resolution: 1.341104507446289075e-006, scale: 563.616930119991375}
                    ]
                })
    
                //地图(经纬度)
                var tiledLayer = new WebTileLayer({
                    urlTemplate: tiandituBaseUrl + "/DataServer?T=img_c&x={col}&y={row}&l={level}&tk=" + token,
                    subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
                    tileInfo: tileInfo
                });
    
                //注记(经纬度)
                var tiledLayerAnno = new WebTileLayer({
                    urlTemplate: tiandituBaseUrl + "/DataServer?T=cia_c&x={col}&y={row}&l={level}&tk=" + token,
                    subDomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"],
                    tileInfo: tileInfo
                });
    
                // 创建地图,不设置底图,如果设置底图会造成坐标系无法被转换成 ESPG:4326 (WGS1984)
                var map = new Map({
                    spatialReference: {
                        wkid: 4326
                    },
                    basemap: {
                        baseLayers: [tiledLayer, tiledLayerAnno]
                    }
                });
    
                var view = new MapView({
                    container: "viewDiv",
                    spatialReference: {
                        wkid: 4326
                    },
                    map: map,
                    center: [108.953098279, 34.2777998978],
                    //1:scale的图
                    scale: 2000000
                });
    
            });
        </script>
    </head>
    
    <body>
    <div id="viewDiv"></div>
    </body>
    </html>

    对于3.x的js api可以使用扩展TiledMapServiceLayer方式,注意网上代码url地址最新t1.tianditu.gov.cn

    define(["dojo/_base/declare",
            "esri/layers/tiled"],
        function (declare) {
            return declare(esri.layers.TiledMapServiceLayer, {
                constructor: function () {
                    this.spatialReference = new esri.SpatialReference({ wkid: 4326 });
                    this.initialExtent = (this.fullExtent = new esri.geometry.Extent(-180.0, -90.0, 180.0, 90.0, this.spatialReference));
                    this.tileInfo = new esri.layers.TileInfo({
                        "rows": 256,
                        "cols": 256,
                        "compressionQuality": 0,
                        "origin": {
                            "x": -180,
                            "y": 90
                        },
                        "spatialReference": {
                            "wkid": 4326
                        },
                        "lods": [
                            { "level": 2, "resolution": 0.3515625, "scale": 147748796.52937502 },
                            { "level": 3, "resolution": 0.17578125, "scale": 73874398.264687508 },
                            { "level": 4, "resolution": 0.087890625, "scale": 36937199.132343754 },
                            { "level": 5, "resolution": 0.0439453125, "scale": 18468599.566171877 },
                            { "level": 6, "resolution": 0.02197265625, "scale": 9234299.7830859385 },
                            { "level": 7, "resolution": 0.010986328125, "scale": 4617149.8915429693 },
                            { "level": 8, "resolution": 0.0054931640625, "scale": 2308574.9457714846 },
                            { "level": 9, "resolution": 0.00274658203125, "scale": 1154287.4728857423 },
                            { "level": 10, "resolution": 0.001373291015625, "scale": 577143.73644287116 },
                            { "level": 11, "resolution": 0.0006866455078125, "scale": 288571.86822143558 },
                            { "level": 12, "resolution": 0.00034332275390625, "scale": 144285.93411071779 },
                            { "level": 13, "resolution": 0.000171661376953125, "scale": 72142.967055358895 },
                            { "level": 14, "resolution": 8.58306884765625e-005, "scale": 36071.483527679447 },
                            { "level": 15, "resolution": 4.291534423828125e-005, "scale": 18035.741763839724 },
                            { "level": 16, "resolution": 2.1457672119140625e-005, "scale": 9017.8708819198619 },
                            { "level": 17, "resolution": 1.0728836059570313e-005, "scale": 4508.9354409599309 },
                            { "level": 18, "resolution": 5.3644180297851563e-006, "scale": 2254.4677204799655 }
                        ]
                    });
                    this.loaded = true;
                    this.onLoad(this);
                },
                getTileUrl: function (level, row, col) {
                    return "http://t1.tianditu.gov.cn/vec_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=c&TILEMATRIX=" + level + "&TILEROW=" + row + "&TILECOL=" + col + "&FORMAT=tiles&tk=41992f255f5c4efffceb41e0f06d3dc2";
                }
            });
        });
    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>TianDi Map</title>
        <link rel="stylesheet" href="https://js.arcgis.com/3.26/esri/css/esri.css">
        <style>
            html, body, #map {
                height: 100%;
                margin: 0;
                padding: 0;
            }
        </style>
        <script type="text/javascript">
            dojoConfig = {
                parseOnLoad: true,
                packages: [{
                    name: 'bdlib',
                    location: this.location.pathname.replace(/\/[^/]+$/, "")+"/js/bdlib"
                }]
            };
        </script>
        <script src="https://js.arcgis.com/3.26/"></script>
        <script>
            var map;
            require(["esri/map",
                    "bdlib/TDTLayer",
                    "esri/layers/FeatureLayer",
                    "esri/geometry/Point",
                    "esri/symbols/SimpleFillSymbol",
                    "esri/symbols/SimpleLineSymbol",
                    "dojo/_base/Color",
                    "dojo/domReady!"],
                function (Map,
                          TDTLayer,
                          FeatureLayer,
                          Point,
                          SimpleFillSymbol,
                          SimpleLineSymbol,
                          Color
                ){
                    map = new Map("map", { logo: false });
                    var basemap = new TDTLayer();
                    map.addLayer(basemap);
                    var pt = new Point(103.847, 36.0473);
                    map.centerAndZoom(pt, 3);
                });
        </script>
    </head>
    <body>
    <div id="map"></div>
    </body>
    </html>

    目录结构如下:

    注意上面天地图使用的是经纬度的,如果是墨卡托地图只是修改了url地址这样虽然可以显示地图,但是经纬度定位是不对的。

     http://www.supermap.com.cn:8090/iserver/services    超图官方的IServer

     

    另外使用js3.x版本使用WMTSLayer加载天地图,(ArcGIS源码会给WMTSLayer的format字段自动加上“image/”,而天地图支持的格式“tiles”不接受format=image/png这样的参数)。可以参考https://blog.csdn.net/OldMonkeyYu_s/article/details/53710779?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
        <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
        <title>test</title>
    
        <style>
            html, body { height: 100%; width: 100%; margin: 0; padding: 0; }
            #map { padding:0; }
            #citationInfo { position:absolute; color:black; font-weight:bold; font-size:12pt; left:10px; bottom:10px; z-Index:999; }
        </style>
        <link rel="stylesheet" href="https://js.arcgis.com/3.18/esri/css/esri.css">
    
        <script type="text/javascript" src="https://js.arcgis.com/3.18compact/"></script>
        <script type="text/javascript" src="WMTSLayer.js"></script>
        <script>
            var map, wmtsLayer;
            require([
                "esri/map", "esri/layers/WMTSLayer", "esri/layers/WMTSLayerInfo",
                "esri/geometry/Extent", "esri/layers/TileInfo", "esri/SpatialReference",
                "dojo/parser",
    
                "dijit/layout/BorderContainer", "dijit/layout/ContentPane", "dojo/domReady!"
            ], function (
                Map, WMTSLayer, WMTSLayerInfo,
                Extent, TileInfo, SpatialReference,
                parser
            ) {
                parser.parse();
    
                var bounds = new Extent({
                    "xmin": -128.816, "ymin": 25.076, "xmax": -72.855, "ymax": 51.385,
                    "spatialReference": { "wkid": 4326 }
                });
                map = new Map("map", {
                    extent: bounds
                });
    
                var tileInfo1 = new TileInfo({
                    "dpi": 96,
                    "format": "tiles",
                    "compressionQuality": 0,
                    "spatialReference": new SpatialReference({
                        "wkid": 4326
                    }),
                    "rows": 256,
                    "cols": 256,
                    "origin": {
                        "x": -180,
                        "y": 90
                    },
                    "lods": [{
                        "level": "1",
                        "scale": 295829355.455,
                        "resolution": 0.703914402554
                    }, {
                        "level": "2",
                        "scale": 147914677.727,
                        "resolution": 0.351957201277
                    }, {
                        "level": "3",
                        "scale": 73957338.8636,
                        "resolution": 0.175978600638
                    }, {
                        "level": "4",
                        "scale": 36978669.4318,
                        "resolution": 0.0879893003192
                    }, {
                        "level": "5",
                        "scale": 18489334.7159,
                        "resolution": 0.0439946501596
                    }, {
                        "level": "6",
                        "scale": 9244667.35796,
                        "resolution": 0.0219973250798
                    }, {
                        "level": "7",
                        "scale": 4622333.67898,
                        "resolution": 0.0109986625399
                    }, {
                        "level": "8",
                        "scale": 2311166.83949,
                        "resolution": 0.00549933126995
                    }, {
                        "level": "9",
                        "scale": 1155583.41974,
                        "resolution": 0.00274966563497
                    }, {
                        "level": "10",
                        "scale": 577791.709872,
                        "resolution": 0.00137483281749
                    }]
                });
                var tileExtent1 = new Extent(-179.99999, -89.99999, 179.99999, 89.99999, new SpatialReference({
                    wkid: 4326
                }));
                var layerInfo1 = new WMTSLayerInfo({
                    tileInfo: tileInfo1,
                    fullExtent: tileExtent1,
                    initialExtent: tileExtent1,
                    identifier: "vec",
                    tileMatrixSet: "c",
                    format: "png",
                    style: "default"
                });
    
                var resourceInfo = {
                    version: "1.0.0",
                    layerInfos: [layerInfo1],
                    copyright: "天地图"
                };
    
                var options = {
                    serviceMode: "KVP",
                    resourceInfo: resourceInfo,
                    //如果没有配置resourceinfo会通过getCapacities获取
                    layerInfo: layerInfo1,
                    //附加参数
                    customParameters:{tk:"41992f255f5c4efffceb41e0f06d3dc2"}
                };
    
                wmtsLayer = new WMTSLayer("http://t0.tianditu.gov.cn/vec_c/wmts", options);
                map.addLayer(wmtsLayer);
            });
    
        </script>
    </head>
    
    <body>
    <div data-dojo-type="dijit/layout/BorderContainer"
         data-dojo-props="design:'headline', gutters:false"
         style="width: 100%; height: 100%; margin: 0;">
    
        <div id="map"
             data-dojo-type="dijit/layout/ContentPane"
             data-dojo-props="region:'center'">
            <div id="citationInfo">
                <a href="http://v2.suite.opengeo.org/geoserver/gwc/service/wmts">WMTS</a>
                served by
                <a href="http://opengeo.org/">天地图</a>
            </div>
        </div>
    
    </div>
    </body>
    </html>

    还可以参考https://gitee.com/MrHuanLiu/TDTLib

    展开全文
  • Web Map Tile Service(WMTS)1.0一致性测试套件 概括 此可执行测试套件(ETS)检查WMTS实现是否符合以下规范: OpenGIS Web地图图块服务实施标准,版本1.0.0 有关此测试套件的详细信息,请单击 执照 建造 此测试...
  • OpenSeadragon WMTS 一个实验性的OpenSeadragon插件,用于显示端点提供的地理参考地图图层。 尝试。 使用 var viewer = OpenSeadragon ( { id : "openseadragon" , prefixUrl : ...
  • xyz2wmts - 测试版 xyz2wmts 通过生成服务元数据帮助您开始提供 。 如何使用? 使用诸如类的瓦片生成器生成 XYZ 瓦片。 在settings.py编辑服务元数据并将您的图层定义添加到其中。 运行python xyz2wmts.py > ...
  • 实验性_wmts 日本地理空间信息局对WMTS元数据的提供进行了实验 用于地理调查图块(栅格图块)的WMTS元数据和WMTS元数据创建工具。 地理调查图块的WMTS元数据 WMTS元数据: : WMTS元数据(轻量级): : WMTS版本...
  • leaflet加载wmts图层 L.tileLayer.wmts("http://www.ais.msa.gov.cn/MapService",{ "layer": "default", "style": "default", "format": "image/png", "tilematrixSet": "advsea" //高级海图 advsea ,基础海陆...
  • WMTS 概述

    千次阅读 2017-10-27 15:08:44
    SuperMap iServer 提供了 WMTS(Web Map Tile Service,Web 地图瓦片服务)服务,该服务符合 OGC(Open Geospatial Consortium,开放地理信息联盟)制定的 WMTS 实现规范。 WMTS 是 OGC 提出的缓存技术标准,...
    SuperMap iServer 提供了 WMTS(Web Map Tile Service,Web 地图瓦片服务)服务,该服务符合 OGC(Open Geospatial Consortium,开放地理信息联盟)制定的 WMTS 实现规范。 
    

    WMTS 是 OGC 提出的缓存技术标准,即在服务器端缓存被切割成一定大小瓦片的地图,对客户端只提供这些预先定义好的单个瓦片的服务,将更多的数据处理操作如图层叠加等放在客户端,从而缓解 GIS 服务器端数据处理的压力,改善用户体验。

    WMTS 使用瓦片矩阵集(Tile matrix set)来表示切割后的地图,如图1所示。瓦片就是包含地理数据的矩形影像,一幅地图按一定的瓦片大小被切割成多个瓦片,形成瓦片矩阵,一个或多个瓦片矩阵即组成瓦片矩阵集。不同的瓦片矩阵具有不同的分辨率,每个瓦片矩阵由瓦片矩阵标识符(一般为瓦片矩阵的序号,分辨率最低的一层为第0层,依次向上排)进行标识。

    wmts 服务概述

    图1 瓦片矩阵集

    如图2所示,每个瓦片矩阵具有:

    1) 自己的瓦片尺寸作为比例尺;

    2) 通过像素数来定义的每个瓦片的宽(TileWidth)和高(TileHeight),即瓦片的大小。SuperMap iServer 目前提供的瓦片大小是256*256个像素;

    3) 边界框的左上角坐标(TileMatrixminX,TileMatrixmaxY);

    4) 以瓦片为单位来定义的矩阵的宽(MatrixWidth)和高(MatrixHeight),如瓦片数。

    wmts 服务概述

    图2 瓦片矩阵

    瓦片矩阵中的每个瓦片由瓦片的行(TileRow)列(TileCol)值进行标识,行列值分别从瓦片矩阵左上角点所在的瓦片开始算起,起始行列值是(0,0),依次向下向右增加,如图2所示。

    WMTS 服务器只提供有限种坐标系和有限种比例尺的服务,为了提高客户端和服务器的互操作能力,WMTS 提出通用比例尺集(Well-known scale set)的概念。通用比例尺集是 WMTS 服务器之间的一个协定,由一个公共的坐标参考系统和一组公共的比例尺集合组成。定义 Well-known scale set 仅仅是一个协议机制,对于互操作来说在技术上并不是必需的。

    SuperMap iServer 目前支持以下 WMTS 版本:

    SuperMap iServer 的WMTS服务支持发布以下坐标参考系,参见iServer OGC 服务支持发布的坐标参考系

    SuperMap iServer 的WMTS服务所提供的瓦片数据是基于一定的比例尺集合来生成的,目前支持的通用比例尺集请参考 WellknownScale

    SuperMap iServer WMTS服务基于的比例尺是通过如下公式来定义的:

    比例尺=1: 地面分辨率(a)*屏幕分辨率(pixel/inch)/0.0254(m/inch)

    其中,地面分辨率(a)是指一个像素所代表的实际地面距离,单位为米,屏幕分辨率(dpi)是指屏幕上每英寸长度内包含的像素数量,一般默认是96dpi,即每英寸内有96个像素,而0.0254(m/inch)是指米与英寸的单位转换。

    最终,此公式可以简写为:比例尺=0.0254/(a*dpi)

    • WMTS 1.0.0 服务节点TopLeftCorner说明

    WMTS服务中,TopLeftCorner是描述比例尺集(TileMatrixSet)的左上角坐标的字符序列,由坐标X和坐标Y组成。

    在地理坐标系中,经度在纬度之前的顺序是不符合国际惯例的。航空和海运部门通常期望纬度在经度之前,在紧急情况下,不同的坐标显示可能会导致不安全的因素。虽然没有标准明确规定纬度必须在经度之前,但是一般来说都会采用纬度在经度之前的顺序。

    iServer WMTS 服务中,地理坐标系的TopLeftCorner使用“Y X”的顺序;投影坐标系、自定义坐标系、平面坐标系的TopLeftCorner使用“X Y”的顺序。

    表1 常见坐标系的TopLeftCorner顺序

         
    坐标系432638574490

    (国家大地坐标系)


    EPSG:0

    (自定义坐标系)

    平面坐标系
    TopLeftCorner坐标顺序YXXYYXXYXY

    请参考:

    OGC(Open Geospatial Consortium,开放地理信息联盟)WMTS 相关规范,http://www.opengeospatial.org

    展开全文
  • 调用天地图WMTS服务

    2017-12-14 15:34:28
    范例使用SuperMap iClient 6R for Flex提供的WMTS图层TiledWMTSLayer调用天地图官网提供的WMTS服务。
  • wms、wmts、wfs等地图服务区别

    万次阅读 多人点赞 2019-06-22 15:24:16
    这些固定的图块集使得对WMTS服务的实现可以使用一个仅简单返回已有文件的Web服务器即可,同时使得可以利用一些标准的诸如分布式缓存的网络机制实现伸缩性 WMTS接口支持的三类资源: 一个服务元数据(ServiceMetadata...

    微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路

    OGC

         OGC 全称是开放地理空间信息联盟(Open Geospatial Consortium),是一个非盈利的国际标准组织,它制定了数据和服务的一系列标准,GIS厂商按照这个标准进行开发可保证空间数据的互操作,致力于提供地理信息行业软件和数据及服务的标准化工作。

    WMS

           WMS服务:Web Map Service,网络地图服务,它是利用具有地理空间位置信息的数据制作地图,其中将地图定义为地理数据的可视化表现,能够根据用户的请求,返回相应的地图,包括PNG、GIF、JPEG等栅格形式,或者SVG或者WEB CGM等矢量形式。WMS支持HTTP协议,所支持的操作是由URL决定的。
    WMS提供如下操作:

    GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。
    GetMap:返回一个地图影像,其地理空间参考和大小参数是明确定义了的。
    GetFeatureInfo:返回显示在地图上的某些特殊要素的信息。
    GetLegendGraphic:返回地图的图例信息。

    WMS-C

            WMS-C全称是Web Mapping Service - Cached,对它完整的定义来源于OSGeo Wiki,2006年在FOSS4G会议上提出讨论,目的在于提供一种预先缓存数据的方法,以提升地图请求的速度,自始至终该标准都没有写入OGC之中。WMS-C通过bbox和resolutions去决定请求的地图层级,为了更加直观的请求地图瓦片,一些软件做了一些改进,例如WorldWind在请求中使用level/x/y三个参数,直观明了。典型的基于WMS-C的实现是TileCache,另外一个关于WMSC的参考:http://wiki.osgeo.org/wiki /WMS_Tiling_Client_Recommendation

    TMS

         (tile map Servcie)切片地图服务(TMS)定义了一些操作,这些操作允许用户按需访问切片地图,访问速度更快,还支持修改坐标系。WMTS可能是OGC首个支持RESTful访问的服务标准.

    WMTS

         (OpenGIS Web Map Title Service)WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS弥补了WMS不能提供分块地图的不足。WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法。WMTS牺牲了提供定制地图的灵活性,代之以通过提供静态数据(基础地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内。这些固定的图块集使得对WMTS服务的实现可以使用一个仅简单返回已有文件的Web服务器即可,同时使得可以利用一些标准的诸如分布式缓存的网络机制实现伸缩性

    WMTS接口支持的三类资源

             一个服务元数据(ServiceMetadata)资源(面向过程架构风格下对GetCapabilities操作的响应)(服务器方必须实现)。  ServiceMetadata资源描述指定服务器实现的能力和包含的信息。在面向过程的架构风格中该操作也支持客户端与服务器间的标准版本协商。
            图块资源(对面向过程架构风格下GetTile操作的响应)(服务器方必须实现)。图块资源表示一个图层的地图表达结果的一小块。
            要素信息(FeatureInfo)资源(对面向过程架构风格下GetFeatureInfo操作的响应)(服务器方可选择实现)。该资源提供了图块地图中某一特定像素位置处地物要素的信息,与WMS中GetFeatureInfo操作的行为相似,以文本形式通过提供比如专题属性名称及其取值的方式返回相关信息

    WFS

              网络要素服务(WFS)支持用户在分布式的环境下通过HTTP对地理要素进行插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回要素级的GML(Geography Markup Language、地理标识语言)数据,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。

    WFS提供如下操作:

    GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。
    DescribeFeatureType:生成一个Schema用于描述WFS实现所能提供服务的要素类型。Schema描述定义了在输入时WFS实现如何对要素实例进行编码以及输出时如何生成一个要素实例。
    GetFeature:可根据查询要求返回一个符合GML规范的数据文档。
    LockFeature:用户通过Transaction请求时,为了保证要素信息的一致性,即当一个事务访问一个数据项时,其他的事务不能修改这个数据项,对要素数据加要素锁。
    Transaction: 与要素实例的交互操作。该操作不仅能提供要素读取,同时支持要素在线编辑和事务处理。Transaction操作是可选的,服务器根据数据性质选择是否支持该操作。

    WCS

           网络覆盖服务是面向空间影像数据,它将包含地理位置的地理空间数据作为"覆盖(Coverage)"在网上相互交换,如卫星影像、数字高程数据等栅格数据。

    WCS提供如下操作:

    GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。
    DescribeCoverage:支持用户从特定WCS服务器获取一个或多个覆盖的详细的描述文档。
    GetCoverage:可根据查询要求返回一个包含或者引用被请求的覆盖数据的响应文档。

    WPS

            Web Processing Server(WPS)是新近推出的标准,它的功能其实我们已经耳熟能详了。Processing即ArcView中的GeoProcessing,诸如Union,Intersect等方法。WPS要做的就是暴露基于URL接口来实现客户端通过WebService对此类方法的调用、并返回数据。

    总结

    WMS:动态地图服务,在ArcGIS中我们经常利用理由的mxd文件发布的服务,就是这种地图服务,如果你的数据会变化,建议发这种服务。这种服务优点是动态,缺点是慢。
    WMS-C:可以理解为WMS的升级版,预先缓存瓦片,按需请求,提高了访问的速度。
    WMTS:相比WMS,牺牲了提供定制地图的灵活性,代之以通过提供静态数据(基础地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内。
    WFS:支持要素的增删改等事务操作,支持空间和属性查询。
    WCS:我理解的是WCS主要是面向空间影像数据
    WPS:这块我理解的主要是用来发起web端的空间运算处理工作,入裁切、合并等空间运算。
     

    展开全文
  • leaflet 使用 wmts

    千次阅读 2017-03-23 11:05:04
    leaflet 使用 wmts一直做地图方面的页面开发,这次接到一个新需求,使用leaflet对接公司的WMTS服务。 开始干活,查看leaflet文档 http://leafletjs.com/examples/wms/wms.html,原生只支持WMS接入。于是想到了必然会...
  • OGC-WMTS规范

    2014-03-31 16:39:10
    本文档定义了基于Web的地图图块服务接口标准(WMTS)这一OGC标准。支持WMTS的服务器应用系统可以使用包含预生成内容、范围和分辨率图块的方式提供具有空间参考的数据的地图图块服务。 中英文对照!
  • arcgis for js 加载天地图和wmts服务,但两者不能同时显示。WMTS服务带有密钥如何传参?
  • 范例使用SuperMap iClient 7C for Silverlight开发模式,实现获取天地图的WMTS服务的功能。
  • Cesium加载月球WMTS服务

    千次阅读 2020-04-13 21:55:13
    今天给大家介绍一个好东西:月球的各种WMTS服务。 对于地球的各种地图服务,如卫星图片、街道地图等各种地图服务,已有多种服务提供商(百度、微软、谷歌),并且提供多种方式,如WMTS、WMS、TMS等等。 对于地球以外...
  • docker save zxht/wmts-mapserver:1.1.0 > ./wmts-mapserver@1.1.0.tar 导入镜像至服务器 将上一步骤的导出的 wmts-mapserver@1.1.0.tar 文件拷贝到服务器,使用下面命令还原成 docker images。 docker load -i ./...
  • arcmap添加WMTS服务

    2021-04-16 19:27:07
    http://xdc.at/map/wmts/ 双击 拖拽
  • OGC-WMTS规范(翻译)

    2018-06-20 15:28:09
    本标准描述的WMTS是在更早的一些旨在建立可伸缩、高性能、基于Web的地图分发服务的工作成果基础上完成的。WMTS受到了OSGeo的分块地图服务规范(OSGeo Tile Map Service Specification,...
  • 该范例主要是打开非iServer服务器发布的标准WMTS数据,本例是打开Geoserver服务器发布的WMTS数据。
  • 例使用SuperMap iClient 6R for Flex开发模式,实现Rest地图与自定义WMTS地图叠加
  • 自己的关于ol加载ArcGis发布的wmts的总结记录,总结了一些通用步骤,和常见错误,希望对大家有所帮助。
  • 5.WMTS 调用

    2021-01-04 18:10:04
    目录 一、天地图 二、谷歌 三、Bing 一、天地图 ...注意:_w 使用球面墨卡托,_c 无效 ...let tdtUrl = `http://{s}.tianditu.com/${mapType}_w/wmts?service=wmts&request=GetTile&version=1.0.0.
  • Web GIS系列: ...2.使用GeoServer+QGIS发布WMTS服务 3.使用GeoServer+OpenLayers发布和调用WMTS、Vector Tile矢量切片服务. 4.Leaflet入门:添加点线面并导入GeoJSON数据 使用GeoServer发布服务 请...
  • Geoserver 发布 wmts瓦片服务 准备数据 全球的带投影栅格数据,可以利用SXEarth下载拼接而来,分辨率较低。 安装部署Geoserver 前提是安装Java环境。下载免安装的Geoserver压缩包解压即可。 启动服务: 注意:...
  • 1 arcgis加载天地图和wmts服务 arcgis for js加载天地图的例子网上有很多,这里先不写了,后期有空再贴代码,这里主要分析下WMTS服务为什么不显示,怎么解决。 条件:这里的WMTS服务是OGC标准的,需要使用...
  • 详见:STK加载WMS、WMTS服务 当在局域网内,怎么办?也就是说我们有了类似谷歌街道图或谷歌卫星图的瓦片数据,如何搭建一个提供WMTS的网站?使得STK在局域网内仍然可以链接大容量地图数据服务? 本文使用ASP.Net ...
  • 访问WMTS的地图

    千次阅读 2017-03-08 16:06:42
    WMTS对象的构造函数:new SuperMap.Layer.WMTS({name, url,layer,style,matrixSet,resolutions,matrixIds}); WMTS地图资源(湖南)
  • GeoServer WMTS切片计算

    2021-07-07 14:08:18
    GeoServer WMTS切片计算各级别关系计算规则(1)计算Pixel Size(2)计算Scale 在geoserver中打开GridSets,选择WGS 84的切片进行查看 可以看到如下信息 各级别关系 Level Pixel Size Scale Tiles i p 1 : ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,945
精华内容 1,178
关键字:

wmts