当前位置: 首页 > news >正文

在 React 中使用 ArcGIS JavaScript SDK 构建地图应用

创建React工程

$ npx install -g create-react-app
$ create-react-app my-react-arcgis-app
$ cd my-react-arcgis-app
$ npm start

安装ArcGIS库

$ npm install @arcgis/core

创建ArcGIS地图组件

import React, { useEffect, useRef } from 'react';
import Map from '@arcgis/core/Map';
import MapView from '@arcgis/core/views/MapView';
import FeatureLayer from '@arcgis/core/layers/FeatureLayer';export default function MyMapViewer({}) {const mapRef = useRef();useEffect(() => {const map = new Map({basemap: 'streets-navigation-vector'});const view = new MapView({container: mapRef.current,map: map,center: [-79.940, 32.788],zoom: 16});const featureLayer = new FeatureLayer({url: 'https://services.arcgis.com/P3ePLMYs2RVChkJx/ArcGIS/rest/services/Charleston_Buildings_SLR_2080/FeatureServer/85',popupTemplate: {title: "{BuildingFID}",outFields: ["*"],content: "{BuildingFID}"},});map.add(featureLayer);return () => {if (view) {view.destroy()}};}, []);const mapStyle = {width: '100%',height: '100%',position: 'absolute',margin: 0,padding: 0,};return (<div className="map-container" ref={mapRef} style={mapStyle} />);
};

使用ArcGIS地图组件

修改App.js,内容如下:

import MyMapViewer from './MyMapViewer';
import './App.css';function App() {return (<div className="app"><h1>My ArcGIS App</h1><MyMapViewer /></div>);
}export default App;

修改App.css,在文件夹最后添加ArcGIS的css

@import 'https://js.arcgis.com/4.29/@arcgis/core/assets/esri/themes/light/main.css';

相关文章:

  • STM32高级控制定时器(STM32F103):PWM输出模式
  • 数据赋能(122)——体系:数据清洗——技术方法、主要工具
  • AWS 批量添加安全组
  • Hi3861 OpenHarmony嵌入式应用入门--点灯
  • 图像识别技术在虚拟现实与增强现实中的应用
  • 数实融合创新发展 隆道分享企业级AI应用
  • C语言:文件操作
  • 保姆级pycharm远程连接linux服务器
  • QT——MySQL数据库联用
  • Windows CSC服务特权提升漏洞(CVE-2024-26229)
  • uniapp 微信小程序更改轮播图指示点
  • 如何移植libwebsockets
  • 工厂方法模式和抽象工厂
  • Cosmopolitan:一次构建,多平台原生运行的C语言库行!
  • 编译原理要点和难点以及具体应用案例
  • docker-consul
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Git同步原始仓库到Fork仓库中
  • golang 发送GET和POST示例
  • isset在php5.6-和php7.0+的一些差异
  • 得到一个数组中任意X个元素的所有组合 即C(n,m)
  • 基于webpack 的 vue 多页架构
  • 七牛云假注销小指南
  • 设计模式(12)迭代器模式(讲解+应用)
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 突破自己的技术思维
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • linux 淘宝开源监控工具tsar
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • #AngularJS#$sce.trustAsResourceUrl
  • #APPINVENTOR学习记录
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (03)光刻——半导体电路的绘制
  • (1)Android开发优化---------UI优化
  • (2)(2.10) LTM telemetry
  • (4.10~4.16)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (办公)springboot配置aop处理请求.
  • (多级缓存)多级缓存
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (十)T检验-第一部分
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • ./和../以及/和~之间的区别
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET MVC第三章、三种传值方式
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET 设计一套高性能的弱事件机制
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • @Autowired标签与 @Resource标签 的区别
  • @Transaction注解失效的几种场景(附有示例代码)
  • [ Socket学习 ] 第一章:网络基础知识