首页 / 浏览问题 / 云GIS / 问题详情
leaflet 里函数如何写返回值
45EXP 2020年05月19日

示例栅格查询函数,


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title data-i18n="resources.title_getGridCellInfos"></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%;background-color: white"></div>
<script type="text/javascript" src="../../dist/leaflet/include-leaflet.js"></script>
<script type="text/javascript">
    var host = window.isLocal ? window.server : "https://iserver.supermap.io";
    var map, marker,
            baseUrl = host + "/iserver/services/map-world/rest/maps/世界地图_Day",
            url = host + "/iserver/services/data-world/rest/data";
    map = L.map('map', {
        preferCanvas: true,
        crs: L.CRS.EPSG4326,
        center: {lon: 0, lat: 0},
        maxZoom: 18,
        zoom: 2
    });
    L.supermap.tiledMapLayer(baseUrl, {noWrap: true}).addTo(map);

    map.on("click", function (evt) {
        var x = evt.latlng.lng;
        var y = evt.latlng.lat;
		
		var c=hanshu(x,y);
		alert(c)
		}
		
    
    );
	
	function hanshu(x,y){
		var getGridCellInfosParam = new SuperMap.GetGridCellInfosParameters({
		    dataSourceName: "World",
		    datasetName: "WorldEarth",
		    X: x,
		    Y: y
		});
		L.supermap
		        .gridCellInfosService(url)
		        .getGridCellInfos(getGridCellInfosParam, function (serviceResult) {
		           var x=serviceResult.result.value
		        });
					}
</script>
</body>
</html>

如何想通过输入xy返回像素值,上述程序无法做到,有什么办法吗

1个回答

您好,该示例本身就是根据坐标位置xy来获得栅格值,您说的无法做到是什么意思?您如果是想通过输入的方式来做不,就写两个input来获取您输入的xy坐标,然后执行即可
3,357EXP 2020年05月19日
我想通过这个函数的返回值来显示像素值,不是在这个函数本身里显示,你看我上面的例子alert()就无法正常显示像素值

smiley您函数里面需要return一个promise对象 并reslove(serviceResult.result.value),利用hanshu.then(va=>{})去拿你返回的数据,或者用async  let c=await hanshu()

好的,谢谢
...