GeoJSON

GeoJSON 是用于描述地理空间信息的数据格式。GeoJSON 不是一种新的格式,其语法规范是符合 JSON 格式的,只不过对其名称进行了规范,专门用于表示地理信息。

GeoJSON 的最外层是一个单独的对象(object)。这个对象可表示:

几何体(Geometry)。

特征(Feature)。

特征集合(FeatureCollection)。

最外层的 GeoJSON 里可能包含有很多子对象,每一个 GeoJSON 对象都有一个 type 属性,表示对象的类型,type 的值必须是下面之一。

Point:点。

MultiPoint:多点。

LineString:线。

MultiLineString:多线。

Polygon:面。

MultiPolygon:多面。

GeometryCollection:几何体集合。

Feature:特征。

FeatureCollection:特征集合。

下面举几个例子。

点对象:

{

"type": "Point",

"coordinates": [ -105, 39 ]

}

1

2

3

4

{

"type": "Point",

"coordinates": [ -105, 39 ]

}

线对象:

{

"type": "LineString",

"coordinates": [[-105, 39 ], [-107, 38 ]]

}

1

2

3

4

{

"type": "LineString",

"coordinates": [[-105, 39 ], [-107, 38 ]]

}

面对象:

{

"type": "Polygon",

"coordinates":[[ [30, 0], [31, 0], [31, 5], [30, 5], [30, 0] ]]

}

1

2

3

4

{

"type": "Polygon",

"coordinates":[[ [30, 0], [31, 0], [31, 5], [30, 5], [30, 0] ]]

}

由以上格式可以发现,每一个对象都有一个成员变量 coordinates。如果 type 的值为 Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon 之一,则该对象必须有变量 coordinates。

如果 type 的值为 GeometryCollection(几何体集合),那么该对象必须有变量 geometries,其值是一个数组,数组的每一项都是一个 GeoJSON 的几何对象。例如:

{

"type": "GeometryCollection",

"geometries": [

{

"type": "Point",

"coordinates": [100, 40]

},

{

"type": "LineString",

"coordinates": [ [100, 30], [100, 35] ]

}

]

}

1

2

3

4

5

6

7

8

9

10

11

12

13

{

"type": "GeometryCollection",

"geometries": [

{

"type": "Point",

"coordinates": [100, 40]

},

{

"type": "LineString",

"coordinates": [ [100, 30], [100, 35] ]

}

]

}

如果 type 的值为 Feature(特征),那么此特征对象必须包含有变量 geometry,表示几何体,geometry 的值必须是几何体对象。此特征对象还包含有一个 properties,表示特性,properties 的值可以是任意 JSON 对象或 null。例如:

{

"type": "Feature",

"properties": {

"name": "北京"

},

"geometry": {

"type": "Point",

"coordinates": [ 116.3671875, 39.977120098439634]

}

}

1

2

3

4

5

6

7

8

9

10

{

"type": "Feature",

"properties": {

"name": "北京"

},

"geometry": {

"type": "Point",

"coordinates": [ 116.3671875, 39.977120098439634]

}

}

如果 type 的值为 FeatureCollection(特征集合),则该对象必须有一个名称为 features 的成员。features 的值是一个数组,数组的每一项都是一个特征对象。

TopoJSON

TopoJSON 是 GeoJSON 按拓扑学编码后的扩展形式,是由 D3 的作者 Mike Bostock 制定的。相比 GeoJSON 直接使用 Polygon、Point 之类的几何体来表示图形的方法,TopoJSON 中的每一个几何体都是通过将共享边(被称为arcs)整合后组成的。

TopoJSON 消除了冗余,文件大小缩小了 80%,因为:

边界线只记录一次(例如广西和广东的交界线只记录一次)。

地理坐标使用整数,不使用浮点数。

3. 在线工具

简化、转换 GeoJSON 和 TopoJSON:http://mapshaper.org/

mysql geojson_GeoJSON相关推荐

  1. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

  2. mysql并发更新数据,多用户并发修改数据解决方案。

    mysql并发更新数据,多用户并发修改数据解决方案. 在系统中,有一些如余额.资产.积分的数据,是要保证数据一致性的.如,一个人使用两个设备同时进行消费操作,如何保证数据一致性的问题. 我们一起来思考 ...

  3. mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

    下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...

  4. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  5. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  6. docker一步安装mysql,docker的魅力就在于此

    正常来说,使用docker安装东西的步骤是serach它有没有,然后pull它 这里其实只要一步(如果你没有安装过.没有端口占用等问题的话!!) $ docker run -d -p 3306:330 ...

  7. 设置腾讯云linux服务器中 MySQL 允许远程访问

    申请了一台linux腾讯云服务器,想要把数据库搭建在上面,本地的Windows直接可以访问 以下就是具体的操作流程,首先你需要安装好一个mysql,安装方法–>mysql安装(Linux) 接着 ...

  8. Linux安装mysql,一步到位!

    今天在腾讯云上面买了一个服务器,想要把自己的项目部署一下,就要安装mysql,以下是我的安装步骤,在网上有很多人把install敲错了,还有的少-get,种种错误试完之后,我决定发一篇 sudo ap ...

  9. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

最新文章

  1. 借用计算机不及时归还,陕西省农村信用社笔试试题(二)
  2. DDoS攻防战(三):ip黑白名单防火墙frdev的原理与实现
  3. MM的Windows 7 登录密码忘记之后
  4. try catch用法_synchronized用法总结
  5. python线性回归分析看相关性_机器学习入门-相关分析之简单线性回归
  6. UNIX环境高级编程笔记
  7. 服务器 .err文件,IIS 关闭HTTPERR(IIS日志)的方法
  8. 二分+树的直径 [Sdoi2011]消防
  9. 前后端分离必备的接口规范,十分接地气
  10. 搭建xxpay支付平台
  11. ASP.NET页面间的传值的几种方法
  12. 低压抽屉柜常见故障处理方法_传真机常见故障如何处理 传真机常见故障处理方法【详解】...
  13. Samba通过ad域进行认证并限制空间大小
  14. 餐饮智能化:餐饮机器人正当时餐饮机器人的喜与忧
  15. 阿里巴巴开源前端框架--Weex实践
  16. hp计算机u盘启动,惠普台式机u盘启动(免费分享惠普电脑u盘启动步骤)
  17. Linux实用命令杂集
  18. Andriod Studio 安装过程
  19. java实现十进制数转换成二进制数
  20. “撒旦”勒索病毒再曝4.2变种 腾讯电脑管家文档守护者可一招解密

热门文章

  1. C#添加美化包样式 索引的制作,NavMenu组件与TabControl添加页面
  2. VirtualBox安装Ubuntu16.04
  3. 看完这篇还不会Elasticsearch,我跪搓衣板,90%程序员已收藏
  4. 卷积神经网络四:人脸识别和风格变迁
  5. 微支付基础:零确认支付及简易支付模型
  6. scheduled java 失败_Java SpringBoot方法仍然在错误的@Profile下@Sche...
  7. 深湛高铁线路(echarts)
  8. 【自考】-操作系统概论
  9. 小公司技术管理者的点滴--周例会制度
  10. 产品8D报告是指哪8D步骤