首页 / 浏览问题 / 云GIS / 问题详情
iClient for Leaflet 的范围查询示例问题
45EXP 2020年04月17日

示例网址为https://iclient.supermap.io/examples/leaflet/editor.html#02_getFeatureByBounds

我想在我的地图上显示数据源中其他数据集的数据。将代码中的url改为自己的dataurl,将World:Capitals改为EmergDS:Hospital

改后代码为


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title data-i18n="resources.title_getFeatureByBounds"></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 y="http://localhost:8090/iserver/services/map-1/rest/maps/City";
			var dataUrl="http://localhost:8090/iserver/services/data-1/rest/data";
			
		    map = L.map('map', {
		        center: [30.61,103.7],
		        maxZoom: 18,
		        minZoom: 1,
		        zoom: 14,
				zoomControl:false,
				
				
		    });
			
		    L.supermap.imageMapLayer(y).addTo(map);
			L.dragging=false;
    query();

    function query() {
       var polygon = L.polygon([[ 30.59 ,103.68], [30.59,103.72], [ 30.64,103.72 ], [30.64,103.68]]);
			polygon.addTo(map);
        var boundsParam = new SuperMap.GetFeaturesByBoundsParameters({
            datasetNames: ["EmergDS:Hospital"],
            bounds: polygon.getBounds()
        });
        L.supermap
            .featureService(dataUrl)
            .getFeaturesByBounds(boundsParam, function (serviceResult) {
                resultLayer = L.geoJSON(serviceResult.result.features, {
                    onEachFeature: function (feature, layer) {
                        layer.bindPopup(resources.text_capital+":" + feature.properties.CAPITAL);
                    }
                }).addTo(map);
            });
    }
</script>
</body>
</html>

已知的是我的数据服务中EmergDS:Hospital是存在的,但是不知道为什么最后显示不出来查询结果

1个回答

你好,请在数据服务或者桌面软件中查看数据集Hospital是否为投影坐标系,leaflet可视化展示仅支持经纬度。如果查询的数据集要素为投影坐标系,那么在查询后需要通过L.Util.transform(该方法参数设置请在api中查看)将要素转换为经纬度的坐标,再添加至地图即可展示。
1,686EXP 2020年04月20日
那怎么将数据集进行投影转换可以说一下吗L.Util.transform的api里找不到关于数据集的内容

你好,我现在重新发布了一个经纬度坐标的数据服务,现在打开还是不显示,网页打开显示400,想问一下怎么解决

你好,可以参考一下该示例,里面有transform的相关用法。https://iclient.supermap.io/examples/leaflet/editor.html#01_mapQueryByGeometry3857 这里报错是参数错误引起的,请仔细检查一下自己的参数设置。

...