侧边栏壁纸
博主头像
YouGIS博文 - YouGIS顽石工坊 博主等级

行动起来,活在当下

  • 累计撰写 11 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

YouGIS顽石工坊空间工具 - 坐标拾取详解

Administrator
2025-12-23 / 0 评论 / 0 点赞 / 21 阅读 / 0 字

qr-wechat.jpg扫码体验更多精彩内容

yougis-tool-qrcode-pick.png移动端扫码体验

YouGIS顽石工坊 - 坐标拾取工具

一、功能概述

坐标拾取工具是YouGIS顽石工坊空间工具中最具交互性的模块,提供了在地图上直接获取和绘制空间数据的能力。用户可以通过关键字搜索定位目标位置,或在地图上交互式绘制点、线、面等几何图形,并为每个图形添加属性信息,同时将图形和属性信息导出为GeoJSON文件。该工具特别适合实地调查、数据采集、规划设计等需要快速获取空间数据的场景。

二、核心功能

2.1 地图操作类型

关键字搜索:

  • 基于高德地图POI搜索服务

  • 支持地名、地址、兴趣点名称搜索

  • 实时显示搜索结果列表

  • 点击结果自动定位并添加到地图

绘制点:

  • 单击地图添加点要素

  • 自动弹出属性编辑对话框

  • 支持添加名称和备注信息

绘制线:

  • 单击开始绘制,双击结束

  • 支持多段线绘制

  • 实时显示绘制轨迹

绘制面:

  • 单击开始绘制,双击结束

  • 自动闭合多边形

  • 支持复杂面的绘制

2.2 底图切换

支持四种国内主流地图服务:

高德地图(GCJ02):

  • 默认底图

  • 火星坐标系

  • 数据更新及时

天地图(WGS84):

  • 国家地理信息公共服务平台

  • 国际标准坐标系

  • 权威数据源

腾讯地图(GCJ02):

  • 火星坐标系

  • 街景数据丰富

  • 移动端优化好

百度地图(BD09):

  • 百度专用坐标系

  • POI数据丰富

  • 路况信息准确

2.3 图形管理

绘制列表:

  • 显示所有已绘制的图形

  • 支持折叠/展开,优化界面空间

  • 显示图形序号、名称、类型、备注

  • 提供编辑、定位、查看坐标、删除等操作

图形编辑:

  • 修改图形名称

  • 添加或修改备注信息

  • 实时更新图层列表

图形定位:

  • 快速定位到指定图形

  • 自动调整地图视野

  • 高亮显示目标图形

坐标查看:

  • 显示图形的详细坐标信息

  • 支持一键复制坐标

  • 显示图形的属性信息

2.4 数据导出

支持多种格式导出:

GeoJSON格式:

  • Web开发标准格式

  • 包含完整的几何和属性信息

  • 易于在其他应用中使用

CSV格式:

  • 表格形式存储

  • WKT字段存储几何信息

  • 便于在Excel中查看和编辑

GML格式:

  • OGC标准格式

  • XML结构化数据

  • 适合标准数据交换

Shapefile格式:

  • GIS行业标准格式

  • 按几何类型分组导出

  • 可直接在ArcGIS、QGIS中打开

三、使用场景

3.1 实地调查数据采集

场景描述:
在实地调查过程中,需要快速记录调查点的位置和相关信息。

操作流程:

  1. 打开坐标拾取工具

  2. 选择合适的底图

  3. 搜索目标区域或直接在地图上定位

  4. 选择"绘制点"模式

  5. 在目标位置点击添加点

  6. 在弹出的对话框中输入名称和备注

  7. 重复步骤5-6完成所有调查点的标注

  8. 导出为Shapefile或GeoJSON格式

应用实例:

  • 环境监测点位采集

  • 文物古迹位置记录

  • 商业网点调查

  • 基础设施巡检

3.2 规划方案绘制

场景描述:
在规划设计初期,需要在地图上快速绘制规划方案的草图。

操作流程:

  1. 选择合适的底图作为参考

  2. 使用"绘制线"功能绘制道路规划

  3. 使用"绘制面"功能绘制用地规划

  4. 使用"绘制点"功能标注重要节点

  5. 为每个图形添加详细的说明信息

  6. 导出为GeoJSON用于进一步设计

应用实例:

  • 城市规划方案

  • 景观设计方案

  • 交通路线规划

  • 土地利用规划

3.3 兴趣点标注

场景描述:
收集和整理某个区域内的兴趣点(POI)信息。

操作流程:

  1. 使用关键字搜索功能查找目标POI

  2. 从搜索结果中选择需要的POI

  3. 系统自动添加到地图并创建点要素

  4. 查看和编辑POI的属性信息

  5. 继续搜索和添加其他POI

  6. 导出为CSV格式用于数据分析

应用实例:

  • 旅游景点收集

  • 餐饮店铺整理

  • 公共设施统计

  • 竞品门店分析

3.4 路线规划

场景描述:
规划和记录行进路线,如徒步路线、巡检路线等。

操作流程:

  1. 选择"绘制线"模式

  2. 沿着规划路线依次点击关键节点

  3. 双击结束绘制

  4. 添加路线名称和说明

  5. 使用"绘制点"标注沿途重要地点

  6. 导出为GeoJSON用于导航应用

应用实例:

  • 徒步路线规划

  • 配送路线设计

  • 巡检路线记录

  • 旅游线路设计

四、界面设计

4.1 地图操作区

位置: 页面主体区域

组成:

  • 地图操作类型选择(单选框)

  • 清除所有按钮(右侧对齐)

  • 搜索框(关键字搜索模式下显示)

  • 绘制提示(绘制模式下显示)

交互:

  • 切换操作类型时自动启用相应功能

  • 搜索结果浮动显示在地图上方

  • 绘制过程中实时显示轨迹

4.2 绘制列表

位置: 地图右上角,可折叠

特点:

  • 默认收起,有图形时自动展开

  • 显示蓝色脉冲指示器提示有内容

  • 点击切换按钮展开/收起

  • 半透明背景,不遮挡地图

内容:

  • 图形序号和名称

  • 图形类型(点/线/面)

  • 备注信息

  • 操作按钮(编辑、定位、查看坐标、删除)

4.3 底图选择

位置: 地图卡片头部右侧

功能:

  • 下拉选择底图类型

  • 切换时自动调整坐标系

  • 保持当前视野范围

4.4 属性编辑对话框

触发时机:

  • 绘制完成后自动弹出

  • 点击编辑按钮手动打开

内容:

  • 名称输入框

  • 备注文本域

  • 确定和取消按钮

行为:

  • 新绘制时取消会删除图形

  • 编辑时取消会保留原信息

五、技术实现

5.1 地图初始化

initMap() {
  this.olMap = new OLMap('map', {
    baseMapType: this.baseMapType,
    center: [116.397428, 39.90923],
    zoom: 10,
    onDrawEnd: this.onDrawEnd
  })
}

5.2 绘制交互

startDraw(type) {
  // 移除现有的绘制交互
  if (this.drawInteraction) {
    this.map.removeInteraction(this.drawInteraction)
  }
  
  // 创建新的绘制交互
  this.drawInteraction = new Draw({
    source: this.drawLayer.getSource(),
    type: type
  })
  
  // 绘制完成事件
  this.drawInteraction.on('drawend', (event) => {
    const feature = event.feature
    const geometry = feature.getGeometry()
    const coordinates = this.transformCoordinates(geometry, 'toLonLat')
    
    // 创建要素对象
    const featureObj = {
      id: this.generateId(),
      type: type,
      coordinates: coordinates,
      properties: {
        name: `${this.getTypeName(type)}${this.getFeatureCount(type) + 1}`,
        remark: ''
      }
    }
    
    this.features.push(featureObj)
    this.showEditDialog = true
  })
  
  this.map.addInteraction(this.drawInteraction)
}

5.3 POI搜索

async searchByKeyword() {
  if (!this.searchKeyword.trim()) {
    ElMessage.warning('请输入搜索关键词')
    return
  }
  
  this.searching = true
  
  try {
    const results = await searchByKeyword(this.searchKeyword)
    this.searchResults = results
    
    if (results.length === 0) {
      ElMessage.info('未找到相关结果')
    }
  } catch (error) {
    console.error('搜索失败:', error)
    ElMessage.error('搜索失败,请稍后重试')
  } finally {
    this.searching = false
  }
}

5.4 数据导出

async confirmExport() {
  const exportFeatures = this.features.map(f => ({
    id: f.id,
    type: f.type,
    coordinates: f.coordinates,
    properties: f.properties
  }))
  
  try {
    let blob = null
    let filename = ''
    
    switch (this.exportFormat) {
      case 'geojson':
        const geojsonData = JSON.stringify(exportToGeoJSON(exportFeatures), null, 2)
        blob = new Blob([geojsonData], { type: 'application/json' })
        filename = 'features.geojson'
        break
      case 'csv':
        const csvData = exportToCSV(exportFeatures)
        blob = new Blob([csvData], { type: 'text/csv' })
        filename = 'features.csv'
        break
      case 'shapefile':
        ElMessage.info('正在生成Shapefile,请稍候...')
        blob = await exportToShapefile(exportFeatures)
        filename = 'features.zip'
        break
    }
    
    if (blob) {
      saveAs(blob, filename)
      ElMessage.success('导出成功')
    }
  } catch (error) {
    console.error('导出失败:', error)
    ElMessage.error('导出失败: ' + error.message)
  }
}

六、使用技巧

6.1 快速定位

方法一: 使用关键字搜索

  • 输入地名、地址或POI名称

  • 从搜索结果中选择目标位置

  • 系统自动定位并添加标注

方法二: 直接在地图上操作

  • 拖动地图到目标区域

  • 使用鼠标滚轮缩放

  • 切换底图获得更好的参考

6.2 精确绘制

绘制线:

  • 沿着道路或边界依次点击关键节点

  • 节点不宜过密或过疏

  • 双击结束绘制

绘制面:

  • 按顺时针或逆时针方向绘制

  • 确保首尾点重合(系统自动闭合)

  • 避免自相交

6.3 批量操作

批量添加:

  • 选择操作类型后连续绘制

  • 每次绘制完成后快速填写信息

  • 使用默认名称可以加快速度

批量编辑:

  • 绘制完成后统一编辑属性

  • 使用有意义的命名规则

  • 添加详细的备注信息

6.4 数据管理

定期保存:

  • 完成一批数据后及时导出

  • 使用不同的文件名区分批次

  • 保留原始数据备份

质量检查:

  • 使用定位功能逐个检查

  • 查看坐标信息验证位置

  • 在不同底图上对比验证

七、常见问题

7.1 搜索不到目标位置?

可能原因:

  1. 关键词不够准确

  2. 目标位置较偏僻,POI数据库中没有

  3. 网络连接问题

解决方法:

  1. 尝试使用更具体的关键词

  2. 使用周边已知地点定位后手动绘制

  3. 检查网络连接

7.2 绘制的图形位置不准确?

可能原因:

  1. 底图精度不够

  2. 缩放级别不合适

  3. 坐标系不匹配

解决方法:

  1. 切换到更清晰的底图

  2. 放大地图到合适的级别

  3. 确认使用正确的底图和坐标系

7.3 如何修改已绘制的图形?

当前版本:

  • 支持修改图形的属性信息(名称、备注)

  • 不支持修改图形的几何形状

解决方法:

  • 删除错误的图形

  • 重新绘制正确的图形

7.4 导出的Shapefile在GIS软件中打开位置不对?

原因:
导出的Shapefile使用WGS84坐标系,而绘制时使用的是其他坐标系(如GCJ02)。

解决方法:

  1. 在GIS软件中进行坐标转换

  2. 或在绘制前切换到天地图(WGS84)底图

八、最佳实践

8.1 数据采集规范

  1. 统一命名: 使用统一的命名规则,如"类型_序号_名称"

  2. 完整备注: 记录采集时间、采集人、数据来源等信息

  3. 分类管理: 不同类型的数据分批采集和导出

  4. 及时保存: 完成一定数量后及时导出备份

8.2 质量控制

  1. 现场核对: 实地采集时现场核对位置准确性

  2. 多源验证: 使用多个底图交叉验证

  3. 逻辑检查: 检查数据的逻辑一致性

  4. 抽样复核: 随机抽取部分数据进行复核

8.3 效率提升

  1. 熟悉快捷操作: 熟练使用各种操作模式

  2. 准备参考资料: 提前准备好需要标注的清单

  3. 合理分工: 多人协作时明确分工

  4. 使用模板: 建立标准的属性填写模板

九、总结

坐标拾取工具是YouGIS顽石工坊空间工具中最具实用价值的模块之一,具有以下特点:

  1. 操作直观: 所见即所得的交互方式,易于上手

  2. 功能完整: 支持搜索、绘制、编辑、导出全流程

  3. 底图丰富: 集成多个主流地图服务,满足不同需求

  4. 格式多样: 支持多种标准格式导出,便于后续使用

  5. 界面友好: 绘制列表可折叠,优化界面空间利用

通过本工具,用户可以快速完成空间数据的采集和整理工作,大大提高了GIS数据获取的效率。


相关文章:

0

评论区