使用产品:iServer10i 操作系统:win10 x64
数据类型:示例数据
问题详细描述:
您好,我打算模仿一下iclient for leaflet的数据服务的范围查询服务功能,这个功能是设置好红框范围,然后范围内的首都就会有位置图标出来,点击图标出现首都名字等信息,但是我复制了代码,改了必要的信息,却不能显示图标,更不能点击出现文字了。我这里只能显示地图以及红框,出现不了图标和信息,我去看服务管理,能看到数据服务被请求过(就是那个圆饼图)。请问是什么原因呢?非常感谢。(事实上,我是想实现框选范围查询发布好的shp内的数据来着,现在已经实现了显示shp数据,但是想实现数据查询,现在在实验。所以还想问您这个字段名什么的,是怎么回事呢?因为不会看那个worldmap数据的字段啊什么的到底,所以就不知道怎么对应这个字段。)真心感谢!
实现的功能示例链接如下:https://iclient.supermap.io/examples/leaflet/editor.html#02_getFeatureByBounds
代码如下:
<!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 resultLayer;
var map,url="http://localhost:8090/iserver/services/map-world/rest/maps/World";
var dataurl="http://localhost:8090/iserver/services/data-world/rest/data";
map = L.map('map', {
preferCanvas: true,
crs: L.CRS.EPSG4326,
center: {lon: 20, lat: -10},
maxZoom: 18,
zoom: 2
});
L.supermap.tiledMapLayer(url).addTo(map);
query();
function query() {
var polygon = L.polygon([[-20, 20], [0, 20], [0, 40], [-20, 40], [-20, 20]], {color: 'red'});
polygon.addTo(map);
var boundsParam = new SuperMap.GetFeaturesByBoundsParameters({
datasetNames: ["World:Capitals"],
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>
</html>