当前位置: 首页 > 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
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 2017 前端面试准备 - 收藏集 - 掘金
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CSS 三角实现
  • fetch 从初识到应用
  • Golang-长连接-状态推送
  • happypack两次报错的问题
  • JS变量作用域
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Node + FFmpeg 实现Canvas动画导出视频
  • Selenium实战教程系列(二)---元素定位
  • tweak 支持第三方库
  • webpack+react项目初体验——记录我的webpack环境配置
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 服务器从安装到部署全过程(二)
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 排序算法学习笔记
  • 悄悄地说一个bug
  • 写给高年级小学生看的《Bash 指南》
  • 再谈express与koa的对比
  • 自动记录MySQL慢查询快照脚本
  • 自制字幕遮挡器
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • C# - 为值类型重定义相等性
  • python最赚钱的4个方向,你最心动的是哪个?
  • 阿里云ACE认证学习知识点梳理
  • ​TypeScript都不会用,也敢说会前端?
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (Java数据结构)ArrayList
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)计算机毕业设计高校学生选课系统
  • .net CHARTING图表控件下载地址
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Core 中的路径问题
  • .NET Remoting学习笔记(三)信道
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)