许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  React Leaflet Esri交互式空间查询:实现方法

React Leaflet Esri交互式空间查询:实现方法

阅读数 86
点赞 0
article_banner

任务准备

  1. 安装AntD并实现按需加载
  2. 安装esri-leaflet和leaflet

具体任务

  1. 主组件中加载一个矢量地图并确定三个功能按钮:
       
  2. 查询结果以AntD-drawer组件为容器,展示结果的属性表

运行效果

在这里插入图片描述

基本 代码

组件css

#map_interactspatialquerytask {
   
   
    width: 100%;
    height: 800px;
    position: relative;
}

.toolbar {
   
   
    position: absolute;
    top: 50px;
    right: 50px;
}

组件 jsx

import React, {
   
    useEffect, useState } from 'react';
import L from "leaflet";
import * as esri from "esri-leaflet"
import {
   
    Button } from 'antd';
import PropertiesTable  from "../testPopup/PropertiesTable";
import DrawCircleGraphHandler from './DrawCircleGraphHandler';
import DrawPolygonGraphHandler from "./DrawPolygonGraphHandler";

import "./InteractSpatialQueryTask.css"

function InteractSpatialQueryTask(props) {
   
   

    const [layer, setLayer] = useState(undefined);
    const [tablevisuable, setTablevisuale] = useState(undefined);
    const [features,setFeatures] = useState(undefined);
    const [circleHandler, setCircleHandler] = useState(undefined);
    const [polygonHandler, setPolygonHandler] = useState(undefined);

    useEffect(()=>{
   
   
        let map = L.map("map_interactspatialquerytask", {
   
   crs : L.CRS.EPSG3395}).setView([29.779, 106.384],12)
        let layer = esri.featureLayer({
   
   url: "http://localhost:6080/arcgis/rest/services/02_Tky_GDCGK/FeatureServer/4", 
                pointToLayer: (geojson, latlng)=> {
   
   
                    return L.circleMarker(latlng, {
   
   radius : 5, color:"#567495"})
                }})
        layer.addTo(map)
        setLayer(layer)
        //创建交互绘制帮助类
        let circleHandler = new DrawCircleGraphHandler(map)
        setCircleHandler(circleHandler)
        let polygonHandler = new DrawPolygonGraphHandler(map)
        setPolygonHandler(polygonHandler);
    },[])


    const _clear_selection = () => {
   
   
        //清除已有的绘制选区
        if(circleHandler)
            circleHandler.clearCircle()
        if(polygonHandler)
            polygonHandler.clearPolygon()
    }

    const _draw_cricle = () => {
   
   
        _clear_selection();
        //开启交互绘制,并指定结果选区的样式和回调
        circleHandler.drawCircle({
   
   color: '#ff0000'
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空