首页 / 浏览问题 / 云GIS / 问题详情
再问JS地图裁剪。
580EXP 2018年10月27日

该问题续http://qa.supermap.com/39013

我要JS裁剪只显示中国地图,多边形如下图所示

代码如下所示,没裁剪成功,初始化后左上角莫名其妙多出了一块来,裁剪区域不显示地图,放大后才显示。(画个简单的矩形是可以裁剪的,没出现问题)

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title data-i18n="resources.title_tiledMapLayer4326"></title>
    <script type="text/javascript" src="../js/include-web.js"></script>
</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>
<script type="text/javascript" src="../../dist/leaflet/include-leaflet.js"></script>
<script type="text/javascript">
    var host = window.isLocal ? window.server : "http://support.supermap.com.cn:8090";
    var map, url = host + "/iserver/services/map-world/rest/maps/World";
    map = L.map('map', {
        crs: L.CRS.EPSG4326,
        center: [24, 102],
        maxZoom: 18,
        zoom: 1
    });
var polygon = L.polygon([[[
45.87165256050825,109.0722656248699],[
43.87888978013503,101.0742187498690],[
47.32095164117459,89.20898437486756],[
47.73636793334309,83.05664062486682],[
42.14385616204108,72.77343749986558],[
36.71775134547932,71.45507812486544],[
29.12913146940323,79.54101562486639],[
26.09230830290879,94.57031249986818],[
28.43584955207185,97.03124999986848],[
21.42852616597757,104.2382812498694],[
17.53510627552154,109.775390624870],[
21.51031831779023,118.3007812498711],[
22.56938034541724,123.3984374998716],[
33.11546956988595,123.1347656248716],[
36.43542580246179,122.4316406248715],[
37.13930033534649,124.1015624998717],[
32.00434943697471,126.4746093748720],[
38.1829325728870,131.9238281248726],[
44.88389886983838,137.6367187498734],[
46.23761247610043,145.3710937498743],[
52.14427660623946,145.3710937498743],[
54.91198795966356,143.8769531248742],[
55.71225897150482,135.5273437498731],[
58.15679396458666,118.4765624998711],[
58.52583078632993,108.7207031248699],[
58.01740946063816,102.2167968748691],[
55.76174072275396,97.82226562486859],[
50.32863101736113,96.85546874986848],[
47.55873525802068,99.84374999986883],[
45.87165256050825,109.0722656248699]]]
, {color: "red"});

    L.supermap.tiledMapLayer(url,{
        clipRegionEnabled:true,
        clipRegion:polygon,
        transparent: true,
        opacity: 0.6
    }).addTo(map);
    polygon.addTo(map);
</script>
</body>
</html>

裁剪结果如下,左上角多了一块,裁剪区域不出图,放大才有图。

2 个回答

原来是缓存问题导致的不正常,清完缓存就正常了!
580EXP 2018年11月05日
您可以直接用一个vectorlayer覆盖其他地区地图达成这个效果。
5,668EXP 2018年10月29日

你好,你可能没理解我的意思,我这么说吧,我有一幅世界地图影像服务,但是我只想显示中国区域的影像,请问要怎么做?

于是回到了问题的原点,支持人员告诉我这样做

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

http://qa.supermap.com/39013

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

经测试该“地图裁剪”可用,但是存在bug,简单的矩形裁剪可用,的确只显示矩形区域的影像了,但是当用复杂的多边形来裁剪地图时就不行了,问题如上截图。我的需求并不是图层叠加。

...