添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

我的要素图层的数据源为超图的数据服务。
现在我的需求是在大比例尺下才显示点图层,并且点要素的图标根据该要素的某属性不同而变化。那代码应该如何实现呢
直接上JS代码

(function () {
   //baseUrl   3857底图          url:  专题图层数据服务
    var baseUrl = "http://10.154.37.40:8090/iserver/services/map-china400/rest/maps/China",
        url = "http://10.154.37.40:8090/iserver/services/data-arcgis-site/rest/data"
    var map, featureService, resultLayer;
    map = L.map('map', {
        preferCanvas: true,
        crs: L.CRS.EPSG3857,
        center: { lng: 120.202, lat: 29.261 },
        maxZoom: 18,
        zoom: 7,
        zoomControl: false,
        attributionControl: false
    //缩放监听   当zoom>=10的时候再显示本图层。
    map.on('zoomend', function(e) {
        if(e.target.getZoom() >= 10) {
         map.addLayer(resultLayer);
        } else{ 
         map.removeLayer(resultLayer);
    // 添加底图、要素
    L.supermap.tiledMapLayer(baseUrl).addTo(map);
    featureGroup = L.featureGroup().addTo(map);
    featureService = L.supermap.featureService(url);
    initFeature();
    function initFeature() {
        var polygon = L.polygon([[10, 60], [60, 60], [60, 160], [10, 160], [10, 60]]);
        var getFeatureParams = new SuperMap.GetFeaturesByGeometryParameters({
            fromIndex: -1,
            toIndex: 30,
            datasetNames: ["ArcGISFeatureServer:zjpdm_sde_site"],
            geometry: polygon
        featureService.getFeaturesByGeometry(getFeatureParams, function (serviceResult) {
		//根据传入的属性不同返回不同的图标
            function myIcon(params) {
                if (params == 0) {
                    return L.icon({
                        iconUrl: "0.png",
                        iconSize: [22, 22],
                } else if (params == 1) {
                    return L.icon({
                        iconUrl: "1.png",
                        iconSize: [22, 22],
                } else if (params == 2) {
                    return L.icon({
                        iconUrl: "2.png",
                        iconSize: [22, 22],
                } else if (params == 3) {
                    return L.icon({
                        iconUrl: "3.png",
                        iconSize: [22, 22],
                } else if (params == 4) {
                    return L.icon({
                        iconUrl: "4.png",
                        iconSize: [22, 22],
                } else {
            resultLayer = L.geoJSON(serviceResult.result.features, {
                pointToLayer: function (geoJsonPoint, latlng) {
                    return L.marker(latlng, { icon: myIcon(geoJsonPoint.properties.sitetype) });
            //设置气泡的显示内容
            resultLayer.on("mousemove", function (e) {
                e.layer.bindPopup("名称" + ":" + e.layer.feature.properties.sitename + 
                "</br>线:" + e.layer.feature.properties.linename + 
                "</br>类别:" + e.layer.feature.properties.sitetype).openPopup();
            resultLayer.on("mouseout", function (e) {
                e.layer.closePopup();
})();

运行结果:
小比例尺下(只有底图):
在这里插入图片描述
大比例尺下(专题图层显示出来)
在这里插入图片描述

我的要素图层的数据源为超图的数据服务。现在我的需求是在大比例尺下才显示点图层,并且点要素的图标根据该要素的某属性不同而变化。那代码应该如何实现呢直接上JS代码(function () { //baseUrl 3857底图 url: 专题图层数据服务 var baseUrl = &quot;http://10.154.37.40:8090/iserver/servi...
平面地图的测绘功能,可在测绘图片上设置比例尺,测距,计算面积,规划区域等,依次最终测绘结果下载为png图片(原图)。 (v0.7.7) (v0.4.9) (v3.1.1) 基于实现焦点图像区域编辑功能,能够在图片上放置,编辑,删除图形区域以及文字说明。 Github 设置比例尺 1.点击比例尺时激活地图点击事件 function createScale ( e ) { e . stopPropagation ( ) ; let sLen = scale_geometry . length ; if ( sLen > 0 ) { for ( let i = 0 ; i < sLen ; i ++ ) { map . removeLayer ( scale_geometry [ i ] ) ; Leaflet快速入门与加载OSM显示地图: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122290880 上面加载显示后默认会带Attrbution控件。 一、按比例尺进行显示或隐藏 GeoServer在发布图层的时候,没有直接的选项进行设置在哪个比例尺内可见。但可以通过样式文件进行配置。在样式文件sld(Styled Layer Descriptor)中通过相下面的节点进行配置: sld:Mi
<meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="shortcut icon" type="image/. queryData(){//调用接口查询城市数据 let params={time:this.selectedTime,type:this.timeType}; Promise.all([getAllCityAirMoniListOnChina(params), getAllSiteAirMoniListOnChina(params)]).then(res => { if (res[0].success&& res[1].succe
### 回答1: SuperMap iClient for Leaflet是一款基于Leaflet框架的地图开发工具,可以帮助开发者快速构建WebGIS应用程序。它提供了丰富的地图功能和数据处理能力,支持多种数据格式和服务类型,可以轻松实现地图展示、数据查询、空间分析等功能。同时,它还具有良好的跨平台性和扩展性,可以在PC端、移动端和Web端等多种平台上使用。 ### 回答2: SuperMap iClient for Leaflet是一种基于JavaScript代码库的Web GIS开发产品,在Leaflet框架上构建出新一代的互联网GIS应用程序。SuperMap iClient for Leaflet可以在地图展示、查询分析、数据处理和空间计算等方面提供完整的功能支持,并且能够快速开发出高效、稳定和复杂的互联网GIS系统。 在SuperMap iClient for Leaflet中,Leaflet是作为主要的基础库来展示地图和功能的。Leaflet是一个轻量级的Web地图框架,具有高度的可定制性,并支持多种图层、地图的基本交互操作和协同显示。因此,SuperMap iClient for Leaflet可以和其他Web GIS开发库完美地协同工作。 SuperMap iClient for Leaflet的主要功能包括: 1.地图服务:可以快速地加载和显示多种切片和动态地图服务,支持图层控制、标注、信息窗口等操作。 2.查询和统计分析:能够实现多种查询、统计和分析操作,例如点选查询、矩形查询、属性查询、空间查询、缓冲区分析、距离测量、区域统计分析、热力图绘制等。 3.数据可视化和渲染:支持多种数据可视化和渲染技术,例如图表、标签、符号、颜色、透明度等,让数据更加生动和易于理解。 4.地理编码和路径分析:支持多种地理编码和路径分析算法,例如最短路、最优路径、网络分析、行驶路线规划等,可以应对多种实际应用场景。 5.数据处理和导出:提供多种数据处理和导出操作,例如数据格式转换、剪裁、裁剪、融合、导入、导出等,使得GIS数据的管理更加高效和灵活。 总之,SuperMap iClient for Leaflet是Web GIS开发的一种高效、灵活、全面的解决方案,可以让用户快速构建出令人称道的Web GIS系统,满足多样化的GIS需求。 ### 回答3: SuperMap iClient for Leaflet是基于Leaflet框架封装开发的一个功能强大、易用性高、可定制性强的WebGIS开发框架。SuperMap iClient for Leaflet为开发者提供了丰富的地图可视化和分析功能,轻松支持各类GIS业务系统的快速构建和发布,拥有完善的API,可方便地与其他WebGIS技术或框架相结合。 SuperMap iClient for Leaflet可以实现多种数据源的地图服务,包括矢量数据、切片数据、动态数据和三维数据等。同时,SuperMap iClient for Leaflet还支持丰富的地图功能,包括地图缩放、平移、旋转、地图标注、查询、空间分析、路径规划等。 SuperMap iClient for Leaflet还支持地图的分层和可交互性。这些都有助于开发者在WebGIS领域获得更多的自由度和灵活度。在云计算、大数据、物联网技术的带动下,SuperMap iClient for Leaflet已经成为WebGIS技术中不可或缺的一部分。 总之,SuperMap iClient for Leaflet是一款完美的WebGIS开发框架,具有易用性、高可定制性和丰富的功能,可以帮助开发者更快速、更高效地构建出具有广泛应用价值的GIS业务系统,满足社会生产和生活中对于空间分析、智能数据分析等多个领域的需求。
jiuyublue: 我设置了了两个图层,使用leaflet.canvas-markers进行点绘制,地图初始化时设置了 this.defalutLayer = L.canvasIconLayer({}).addTo(this.map);this.infoLayer = L.canvasIconLayer({}).addTo(this.map) 侦听地图缩放级别this.map.on("zoomend", () => {if(this.map.getZoom() > 9){ this.infoLayer.addLayers(dataItem)//dataItem是多个标注点数组}else{this.infoLayer.clearLayers()}}) 发现缩放时默认标注图层在缩放级别等于10后,就不会移动,不默认显示的直接出现 也是浮在图层上没有进行移动 然后页面就很卡. vue使用插槽slot的过程中,父级组件设置了display:flex,但是插入组件的flex:1属性不生效 LittleHairHeihei: 为什么多嵌套一层就不会生效了?