当前位置: 首页 > 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
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • C学习-枚举(九)
  • go语言学习初探(一)
  • java正则表式的使用
  • Kibana配置logstash,报表一体化
  • linux安装openssl、swoole等扩展的具体步骤
  • oschina
  • php面试题 汇集2
  • React的组件模式
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 手写双向链表LinkedList的几个常用功能
  • 学习JavaScript数据结构与算法 — 树
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ###C语言程序设计-----C语言学习(6)#
  • #FPGA(基础知识)
  • (Matlab)使用竞争神经网络实现数据聚类
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)【Hibernate总结系列】使用举例
  • (转)shell调试方法
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net与java建立WebService再互相调用
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [100天算法】-目标和(day 79)
  • [20171113]修改表结构删除列相关问题4.txt
  • [Android]RecyclerView添加HeaderView出现宽度问题
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [BZOJ5250][九省联考2018]秘密袭击(DP)
  • [C++]——带你学习类和对象
  • [Effective C++读书笔记]0012_复制对象时勿忘其每一部分
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能
  • [HDU5685]Problem A
  • [iOS]iOS获取设备信息经常用法
  • [iOS]让Xcode 4.2生成的app支持老的iOS设备(armv6)