
import { Feature } from "ol"
import { Circle as CircleStyle, Fill, Stroke, Style, Icon } from 'ol/style'
import { Draw, Modify, Snap } from 'ol/interaction'
import { Vector as VectorSource } from 'ol/source'
import { Vector as VectorLayer } from 'ol/layer'
import GeoJSON from "ol/format/GeoJSON"
import { boundingExtent } from 'ol/extent'
import { Point } from 'ol/geom'
`// 初始化
init (type) {
`//type为绘制类型``
//清除次图层
if (_that.iconLayer) {
}
// 移除绘制方法
Map.removeInteraction(_that.draw)
Map.removeInteraction(_that.snap)
// 创建矢量容器
_that.source = new VectorSource()
//创建矢量层
_that.iconLayer = new VectorLayer({
})
//创建绘制修改工具
const modify = new Modify({ source: _that.source })
//添加
Map.addInteraction(modify)
//绑定修改绘制图形触发事件
modify.on('modifyend', this.ModifyIconEnd)
//添加绘制工具
_that.addInteractions()
_that.draw = new Draw({
})
// 此方法用于保存拓扑关系
_that.snap = new Snap({ source: _that.source })
// 添加
Map.addInteraction(_that.draw)
Map.addInteraction(_that.snap)
// 监听绘制结束事件
_that.draw.on("drawend", (evt) =>{
// 获取绘制图形,其余同修改时处理数据
let featureGeoJson = new GeoJSON().writeFeature(evt.feature)
})
//图层添加至地图
Map.addLayer(_that.iconLayer)
},
//样式函数
styleFunction (feature) {
const styles = [
]
// 此处添加箭头样式,绘制线绘制箭头
if (this.type == 'LineString' &&this.operate == 'arrow') {
}
//返回样式
return styles
},
// 修改图形
ModifyIconEnd (evt) {
const _that = this
// 获取修改后的图形,并保存
let featureGeoJson = new GeoJSON().writeFeature(evt.features.array_[0])
this.featureData = featureGeoJson
//绘制为圆时,无法通过geoJson回显,获取半径和中点回显
if (_that.type == 'Circle') {
// 圆的半径换算
}
//绘制线段取绘制次序中点备用
else if (_that.type == 'LineString') {
}
//绘制区域时获取其中点
else if (_that.type == 'Polygon') {
//获取边界值
}
},
每个图层都会引用存储在地理数据库、coverage、shapefile 和栅格等中的数据集。向地图中添加图层很简单,只需选择某个数据集并将其从目录或搜索 窗口拖到地图中,或者使用添加数据按钮即可添加。
将每个图层添加到地图中后,您通常要设置符号系统和标注属性,并编排内容列表中图层的绘制顺序以使地图正常工作。
如果使用ArcMap 支持的格式存储数据,则可以直接以图层的形式将其添加到地图中。如果数据未使用支持的格式进行存储,您可以使用 ArcToolbox
中的数据转换实用工具或 Data Interoperability 扩展模块转换任意数据并将其显示在地图中。
添加地图图层
添加地图图层的方法有多种。这里介绍了每一种方法。
添加数据集
要创建新地图图层,只需将数据集添加到地图、globe 或 3D 场景中即可。添加数据集的方法有以下几种:
使用“添加数据”按钮 - 单击添加数据按钮并导航到所需数据集。然后选择它并将其添加到地图中。
复制或拖动图层 - 通过复制和粘贴图层或者将图层从一个数据框拖到另一个数据框,可以在不同数据框或地图之间移动图层。
从目录窗口中拖动数据集 - 可以导航到数据集并直接将它们添加到 ArcMap 中。使用目录
窗口,导航到所需的数据集。将数据集拖到地图的数据框中。
从搜索窗口中拖动数据集 - 您可以从搜索 窗口中将数据添加到地图。单击数据,输入搜索词以查找所需的数据集,然后将数据集拖到地图的数据框中。
从 ArcCatalog 中拖动数据集 - 您可以从 ArcCatalog 应用程序中将数据添加到地图。在 ArcCatalog
中,导航到所需的数据集。然后将其拖到 ArcMap 数据框中。
添加多个数据集 - 通过在添加时高亮显示所有所需的数据集(而不是单个数据集),可一次选择并添加多个数据集。
从ArcGIS Online 添加数据
您可以添加由 ArcGIS 社区在线发布和共享的数据和图层。
通过Windows、电子或Web 页面将图层添加到地图
图层文件和图层包注册到了 ArcGIS for Desktop 应用程序,从而允许您在 Windows 资源管理器、Microsoft
Outlook和 Windows 桌面等地方双击它们,并将它们直接添加到 ArcMap 或 ArcGlobe
会话中。图层文件将使用熟悉的黄色图标显示。单击嵌入到 Web 页面中的图层文件也可以将它们添加到会话中。
如果没有 ArcGIS for Desktop 应用程序正在运行,打开图层文件时将自动启动相应的应用程序:将启动 ArcMap
并将图层添加到空地图中,或者当图层文件包含纯 3D 内容时,将启动 ArcGlobe 并将图层添加到地球中。
1)创建一个命名图层,这个图层专门显示标签和标记点
//创建一个名为myOverlay的图层GMapOverlay markerOverlay = new GMapOverlay("myOverlay")
//将图层加入到地图控件
mapControl.Overlays.Add(markOverlay)
2)向命名图层中添加标记点
//首先,通过图层名字,从地图控件找到上一步添加的图层GMapOverlay overlay = mapControl.Overlays["myOverly"]
//然后,向这个图层添加标记点
GMapMarker marker = new GMapMarker(32.11183, 118.398202)
overlay.Markers.Add(marker)
3)清除命名图层中的Maker
//首先,通过图层名字,从地图控件找到上一步添加的图层GMapOverlay overlay = mapControl.Overlays["myOverly"]
//然后清除这个图层上的所有标记点
overlay.Markers.Clear()
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)