首页 / 浏览问题 / 其他 / 问题详情
leaflet+js+gis 怎么根据xml文件里的相关节点配置初始化底图
1EXP 2020年07月30日

操作系统:win10

问题详细描述:

使用leaflet加载底图,拿到了服务接口url,可以看到xml文件里面的关于底图的相关信息,但是在写前端代码时不知道如何对应配置

1个回答

您好,原点位置为左上点,center:[维度,经度]
3,352EXP 2020年07月30日

首先抱歉我是个新手中的新手,对gis的相关知识也不甚了解。

问1:scaleDenominators和scales有什么区别,它的含义是什么?它的值怎么在xml文件中拿或者它应该怎么设置?

问2:center中的值也可以从xml文件中拿吗?是哪个节点?或者它的纬度和经度从哪而得?

问3:您可以给我展示一份”EPSG:4326“添加底层的代码吗?越全越好。

谢谢你!

我的xml文件的部分截图如下

你好,我在这边贴出的相关代码,您看是哪里的问题。我的底图就是不出来

<script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript" src="leaflet.js"></script>
        <script type="text/javascript" src="iclient9-leaflet.min.js"></script>
        <script type="text/javascript" src="proj4.js"></script>
        <script type="text/javascript" src="proj4leaflet.js"></script>
        <link href="leaflet.css" rel="stylesheet" />
    </head>
    <body style=" margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
        <div id="map" style="margin:0 auto;width: 100%;height: 100%">
        </div>
    </body>
    <script type="text/javascript">
        //定义地图投影
        var url = "http://……";
        //设置分辨率res
        var res = [1.4062499999980482, 0.7031249999990241, 0.3515625000000313, 0.17578125000001618,
            0.08789062500000809, 0.043945312500003914, 0.021972656249969493, 0.010986328124999981,
            0.0054931640624999905, 0.002746582031250007, 0.0013732910156249987, 0.0006866455078124993,
            0.00034332275390625087, 0.00017166137695312497, 0.00008583068847656249, 0.00004291534423828124,
            0.00002145767211914062, 0.00001072883605957031, 0.000005364418029785168
        ]; //对应<TileMatrixSet>下<TileMatrix>下的<Resolution>节点

        var scaleDenominators = [591658710.90831, 295829355.454155, 147914677.727296, 73957338.8636482,
            36978669.4318241, 18489334.715912, 9244667.357942339, 4622333.678977581,
            2311166.8394887904, 1155583.4197443998, 577791.709872198, 288895.854936099,
            144447.92746804998, 72223.9637340248, 36111.9818670124, 18055.9909335062,
            9027.9954667531, 4513.99773337655, 2256.99886668828
        ]; //对应<TileMatrixSet>下的<TileMatrix>下的每一个<ScaleDenominator>节点
        //crs设置
        var crs = L.Proj.CRS("EPSG:4326", {
            origin: [-180.0, 90.0], //原点---->一般指的是xml文件里面的左上
            res: res,
            bounds: L.bounds([-180.0 - 90.0], [180.0 90.0])
        });
        var map = L.map('map', {
            crs: crs,
            center: [24.314617, 109.411703],
            maxZoom: 19,
            zoom: 1
        });
        L.supermap.tiledMapLayer(url).addTo(map);
    </script>

...