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

马上搞懂 GeoJSON

用于描述地理空间信息的数据格式,语法是基于 JSON 格式的。

每一个 GeoJSON 对象都有一个 type 属性:

  • Point:点
  • MultiPoint:多点
  • LineString:线
  • MultiLineString:多线
  • Polygon:面
  • MultiPolygon:多面
  • GeometryCollection:几何体集合
  • Feature:特征
  • FeatureCollection:特征集合

分类

  • type:Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon

    则该对象必须有属性 coordinates,这类对象称为几何对象。

    // 点对象
    {
      'type': 'Point',
      'coordinates': [-105, 39]
    }
    // 线对象
    {
      'type': 'LineString',
      'coordinates': [[-105, 39], [-107, 38]]
    }
    // 面对象
    {
      'type': 'Polygon',
      'coordinates': [
        [[30, 0], [31, 0], [31, 5], [30, 5], [30, 0]]
      ]
    }
  • type:GeometryCollection

    则该对象必须有属性 geometries,其值是一个数组,每一项都是一个 GeoJSON 的几何对象。

    {
      'type': 'GeometryCollection',
      'geometries': [
        {
          'type': 'Point',
          'coordinates': [100, 40]
        },
        {
          'type': 'LineString',
          'coordinates': [[100, 30], [100, 35]]
        }
      ]
    }
  • type:Feature

    则该对象必须有属性 geometry,其值为一个几何对象;此外还有一个属性 properties,可以是任意 JSON 或 null

    {
      'type': 'Feature',
      'properties': {
        'name': '北京'
      },
      'geometry': {
        'type': 'Point',
        'coordinates': [116.3671875, 39.977120098439634]
      }
    }
  • type:FeatureCollection

    则该对象必须有属性 features,其值为一个数组,每一项都是一个 Feature 对象。

    {
      'type': 'FeatureCollection',
      'features': [
        {
          'type': ...,
          'properties': ...,
          'geometry': ...
        },
        ...
      ]
    }

参考

  • 《精通D3.js:交互式数据可视化高级编程》

相关文章:

  • 阿里国际站新外贸系统上线 助中小企业“数字化出海”
  • 2019-1-21作业
  • bug集合js1--Unexpected token o in JSON at position 1
  • 为什么阿里巴巴不建议在for循环中使用+进行字符串拼接
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • Android进阶(三)Activity启动
  • TCP长连接的一些事儿
  • ObjC中KVC原理简析
  • MySQL 整数(int)数据类型
  • 2018年香港消防处接火警逾3万宗 救护服务超80万宗
  • GCD - Extreme (II) UVA - 11426 数学
  • 博客搭建祭
  • python3 --- locale命名空间让程序更加安全了
  • 学习第一周
  • C# 8将为断言和自动化测试带来Caller Expression Attribute
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【技术性】Search知识
  • Effective Java 笔记(一)
  • exports和module.exports
  • HTTP--网络协议分层,http历史(二)
  • JAVA并发编程--1.基础概念
  • Laravel 菜鸟晋级之路
  • laravel5.5 视图共享数据
  • npx命令介绍
  • PHP变量
  • sessionStorage和localStorage
  • Spark RDD学习: aggregate函数
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 基于axios的vue插件,让http请求更简单
  • 优化 Vue 项目编译文件大小
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ###C语言程序设计-----C语言学习(6)#
  • #pragma 指令
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (175)FPGA门控时钟技术
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (Java)【深基9.例1】选举学生会
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (力扣题库)跳跃游戏II(c++)
  • (七)c52学习之旅-中断
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET的微型Web框架 Nancy
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • @ResponseBody
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ JavaScript ] JSON方法
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [20160902]rm -rf的惨案.txt
  • [Android Pro] AndroidX重构和映射
  • [Android]常见的数据传递方式
  • [BUG]vscode插件live server无法自动打开浏览器
  • [C#]winform使用引导APSF和梯度自适应卷积增强夜间雾图像的可见性算法实现夜间雾霾图像的可见度增强