首页 / 浏览问题 / 云GIS / 问题详情
如何在地图SQL查询的基础上添加弹框显示部分信息
1EXP 2018年07月26日

利用SQL查询出了想要的地物,现在想再添加功能:点击可获取部分信息以弹窗形式显现,该怎么添改代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>地图SQL查询</title>
</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/include-leaflet.js"></script>
<script type="text/javascript">
    var host = window.isLocal ? window.server : "http://127.0.0.1:8090";
    var map, resultLayer,
        url = host + "/iserver/services/map-tm15/rest/maps/tm15";
    map = L.map('map', {
        center: {lon: 119.51, lat: 30.35},
		 crs: L.CRS.EPSG4326,
        zoom:11.2
    });
    L.supermap.tiledMapLayer(url).addTo(map);
    query();

    function query() {
        var param = new SuperMap.QueryBySQLParameters({
            queryParams: {
                name: "林场古树名木_2@tm9",
                attributeFilter: "SMID>0"
            }
        });
        L.supermap
            .queryService(url)
            .queryBySQL(param, function (serviceResult) {
                var result = serviceResult.result;
                resultLayer = L.geoJSON(result.recordsets[0].features).addTo(map);
            });
    }
</script>
</body>
</html>

1个回答

您好,您可以先对查询到的结果console.log(result.recordsets[0].features),看一下您想弹框显示的内容是哪一项,然后需要先进行遍历来决定点击出现弹窗时显示的内容,弹窗的实现可以参考

 circleMarker.bindPopup('distance = 10').openPopup();

利用bindPopup().openPopup();

进行实现

5,668EXP 2018年07月26日

console.log(result.recordsets[0].features)是这样用吗,可是...是不是哪里出问题了

console.log是控制台的,在浏览器按F12可以显示括号内的属性,在那里面找你要弹窗显示的字段名会比较方便。

bindPopup().openPopup();是用来弹窗显示的。第一个括号里可以放上你在console.log的对象的字段
好的,谢谢
请问解决了吗,我也是遇到这个问题, 但是没看懂这个
...