GeoJson格式数据:

//这是一个简单的矩形(坐标系:WGS_84)

{

"type":"FeatureCollection",

"features": [

{

"type":"Feature",

"geometry":{

"type":"Polygon",

"coordinates":

[

[[117.42218831167838,31.68971206252246],

[118.8025942451759,31.685801564127132],

[118.79961418869482,30.633841626314336],

[117.41920825519742,30.637752124709664],

[117.42218831167838,31.68971206252246]]

]

},

"properties":{"Id":0}

}

]

}

TopoJson格式数据:

//这是一个简单的矩形(坐标系:WGS_84)

{

"type":"Topology","arcs":

[

[[0,100],[100,0],[0,-100],[-100,0],[0,100]]

],

"transform":

{

"scale":

[0.013833859899784785,0.010558704362081244],

"translate":

[117.41920825519742,30.633841626314336]

},

"objects":

{

"polygon":

{

"type":"GeometryCollection",

"geometries":

[

{

"arcs":[[0]],

"type":"Polygon",

"properties":{"Id":0}

}

]

}

}

}

两个JSON数据展示是同一个矩形面,对比一下差异:

GeoJson:

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

(2)GeoJson 的最外层是一个单独的对象(object)。这个对象有:

几何体(Geometry)

特征(Feature)

特征集合(FeatureCollection)

每一个对象都有一个成员变量 coordinates。

(3)type 的值为 GeometryCollection,那么该对象一定要有变量 geometries。

{

"type": "GeometryCollection",

"geometries": [

{

"type": "Point",

"coordinates": [116.3232, 35.2154]

},

{

"type": "LineString",

"coordinates": [ [116.3232, 35.2154], [116.854,35.8854] ]

}

]

}

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

{

"type": "Feature",

"properties": {

"name": "合肥"

},

"geometry": {

"type": "Point",

"coordinates": [ 116.3751, 31.5631]

}

}

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

TopoJson:

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

TopoJSON 消除了冗余,文件大小缩小了 80%,因为:边界线只记录一次(省界线为例)。地理坐标使用整数,不使用浮点数。

推荐网站:

在线生成 GeoJSON:http://geojson.io/

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

GeoServer装载插件可以生成GeoJson和TopoJson

现在大多数地图API支持GeoJson和TopoJson格式数据地图的调用(Openlayers、Leaflet等),这些Json文件只记录空间要素的几何属性,数据在前端渲染进行展示。

Cesium加载GeoJson数据效果

//贴出部分代码

var promise = Cesium.GeoJsonDataSource.load('date/wuhu.json');

promise.then(function(dataSource) {

viewer.dataSources.add(dataSource);

var entities = dataSource.entities.values;

var colorHash = {};

for (var i = 0; i < entities.length; i++) {

var entity = entities[i];

var name = entity.name;

var color = colorHash[name];

if (!color) {

color = Cesium.Color.fromRandom({

alpha : 1.0

});

colorHash[name] = color;

}

entity.polygon.material = color;

entity.polygon.outline = false;

entity.polygon.extrudedHeight =5000.0;

}

});

viewer.flyTo(promise);

java geojson和数据库_GeoJson和TopoJson数据格式的对比相关推荐

  1. geojson和topojson数据格式

    要对地理要素数据进行传输和渲染,有两种数据格式必须要了解,基于json的地理要素扩展格式geojson,和基于geojson的拓扑扩展格式topojson. 一.geojson GeoJSON是一种基 ...

  2. Java面试:数据库,Java,框架,前端技术。应有尽有

    ** Java面试宝典 ** 一. HTML&CSS部分 1.HTML中定义表格的宽度用80px和80%的区别是什么? PX标识像素,%标识整个页面的宽度百分比 2.CSS样式定义优先级顺序是 ...

  3. Java:JVM+数据库(搬砖整理,侵权删文)

    Java:JVM+数据库(搬砖整理,侵权删文) 十一.JVM 1.Java内存区域 1.说一下 JVM 的主要组成部分及其作用? ​ JVM包含两个子系统和两个组件,两个子系统为Class loade ...

  4. 2021最新Java面经整理 | 数据库篇(一)MySQL

    2021最新Java面经整理 | 数据库篇(一)MySQL 目录 一.基础 1.数据库范式 2.视图 3.游标 4.存储过程与函数 5.触发器 6.常用问题 二.事务 1.事务四大特性(ACID) 2 ...

  5. java连接Hbase数据库

    java连接Hbase数据库 如果是是连接机群上的Hbase服务,需要提前将相关的几个xml文件存放在本地的编程目录下,否则开发端无法获取机群信息及授权: hdfs-site.xml core-sit ...

  6. java连接Orcale数据库并查询、插入、删除数据

    java连接Orcale数据库并查询.插入.删除数据 oci和thin是Oracle提供的两套Java访问Oracle数据库方式. thin是一种瘦客户端的连接方式 oci是一种胖客户端的连接方式 J ...

  7. java linux mysql数据库_Linux Java连接MySQL数据库

    Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1.1 ...

  8. 【Java】Java连接Mysql数据库的demo示例

    [Java]Java连接Mysql数据库的demo示例 1.安装mysql数据库 2.下载java-mysql-connector.jar包 3.完成java配置 4.写java代码运行测试 1.安装 ...

  9. java连接Excel数据库读取,写入,操纵Excel表格

    java连接Excel数据库读取,写入,操纵Excel表格 (2009-11-15 14:21:03) 转载 标签: java excel 连接 杂谈 分类:技术文档 java连接MicroSoft ...

最新文章

  1. List复制:深拷贝和浅拷贝用法及区别
  2. Python学习笔记之基本数据结构方法
  3. Linux/Centos7系统管理之进程与计划任务管理
  4. jQuery快速入门专题
  5. Windows 10 Edge 浏览器续航对比火狐/Chrome
  6. 基础 - jQuery选项卡
  7. 如何从命令行浏览和连接到无线网络
  8. XML文档的简易增删查改
  9. HTML学习笔记4之第五章第六章
  10. HAO3GP整站源码学生当时就蒙了
  11. Spring Boot如何以优雅的姿势校验参数
  12. 微软Code Hunt答案(00-05)——沉迷娱乐的我
  13. uni-app 获取当前的一周的年月日
  14. Pyhon3 批量合并哔哩哔哩缓存的m4s视频文件
  15. 负反馈放大电路(附Multisim)
  16. 我用FreeMind
  17. AndrewNG机器学习听课笔记(1 )——线性回归(linear regression)
  18. COPU副主席刘澎:中国开源在局部领域已接近或达到世界先进水平
  19. 前端开发工程师工作梳理
  20. DOS命令——calcs和icacls

热门文章

  1. 国内知名MCU厂商官网整理
  2. python27.dll引起的appcrash_Python已经停止工作(APPCRASH)Python
  3. 阿里云ECS上CentOS关闭阿里云盾
  4. Windows下挂载MSR分区
  5. HDMI 之 HPD .
  6. phpadmin安装到mysql中,mysql 和phpadmin安装
  7. 30岁学习编程晚么?
  8. HDU - 1546 Idiomatic Phrases Game(dijkstra最短路)
  9. 当当图书,这又是何苦。
  10. python查找元素在列表中位置