GeoJSON
来源地址:https://segmentfault.com/a/1190000015104965
什么是GeoJSON?
使用mapbox不得不先了解以下GeoJSON格式规范,首先po个对比,
使用第1,2个库时,我们渲染多个坐标点可能是这样的,使用类似 的组件通过数组遍历并渲染,一个点需要一个
//数据

const data = [{coordinate:[100.0, 0.0]]},{coordinate:[101.0, 1.0]]},{coordinate:[100.1, 1.0]]},{coordinate:[101.1, 0.0]]},
]

//组件

<MapView>{data.map(marker=>{return (<Marker...propscoordinate={marker.coordinate}/>)})}
</MapView>

使用mapbox-gl时思想完全变了,
这里先不急介绍组件的用法,可以轻易看出没有了数组的循环遍历
//数据

const geoJSON = {"type": "FeatureCollection","features": [{"type": "Feature","id": "id0","geometry": {"type": "MultiPoint","coordinates":[[100.0, 0.0], [101.0, 1.0],[100.0, 1.0], [101.0, 0.0],...]}}]
}

//组件

<MapboxGL.ShapeSource shape={geoJSON}><MapboxGL.SymbolLayer style={[styles.mark, {textField: '{text}',iconImage : '{icon}'}]}/>
</MapboxGL.ShapeSource>

GeoJSON文档
GeoJSON是基于JavaScript 对象表示法的地理空间信息数据交换格式
GeoJSON文档地址

GeoJSON解构
type基础类型

Point
LineString
Polygon
MultiPoint
MultiLineString
MultiPolygon
{"type":'几何形状的类型',"coordinates":[]    //坐标点
}



Multipart geometries

type高级类型
GeometryCollection
点、线、面的集合

{"type": "GeometryCollection","geometries": [{"type": "Point","coordinates": [100.0, 0.0]},{"type": "LineString","coordinates": [[101.0, 0.0], [102.0, 1.0]]}]
}

Feature
GeometryCollection基础上可添加最标点的属性properties

{"type": "Feature","geometry": {"type": "LineString","coordinates": [[100.0, 0.0], [101.0, 1.0]]},"properties": {"prop0": "value0","prop1": "value1"}
}

geometry内可以使用"GeometryCollection"

{"type": "Feature","geometry": {"type": "GeometryCollection","geometries": [{"type": "Point","coordinates": [100.0, 0.0]},{"type": "LineString","coordinates": [[101.0, 0.0], [102.0, 1.0]]}]},"properties": {"prop0": "value0","prop1": "value1"}
}

FeatureCollection
Feature集合

{"type": "FeatureCollection","features": [{"type": "Feature","id": "id0","geometry": {"type": "LineString","coordinates": [[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]]},"properties": {"prop0": "value0","prop1": "value1"}},{"type": "Feature","id": "id1","geometry": {"type": "Polygon","coordinates": [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]]]},"properties": {"prop0": "value0","prop1": "value1"}}]
}

properties
样式集合
geojson.io

crs
坐标参考规则:地球坐标,火星坐标

"crs": {"type": "EPSG","properties": { "code": 4326,"coordinate_order": [1, 0]}
}

注意:要使用GeoJSON,就必须抛开之前的靠大量DOM渲染思想,这在理解上会成为绊脚石,我之前就困扰了很久

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

案例
https://github.com/1uokun/rea…

什么是GeoJSON?相关推荐

  1. 使用GeoServer导出地图数据GeoJSON并应用

    在项目中,需要使用乡镇街道的地图边界,之前一直使用的是百度地图或Echarts地图,其没有这部分行政区的数据,需要在第三方购买数据,其提供的是shp文件 主文件:counties.shp 索引文件:c ...

  2. IDEA Java解析GeoJson.json文件

    IDEA Java解析GeoJson.json文件 一.遇到的问题 1. 无法导入成功 2. org.geotools.StyleFactory is not an ImageIO SPI class ...

  3. 升级 | Fastjson 1.2.68 发布,支持 GEOJSON

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | https://ww ...

  4. geojson地图_ThingJS的三维城市地图搭建逻辑解析

    一个城市越智慧,综合竞争力越强,面向用户的可视化更是必不可少,ThingJS的三维城市地图搭建工具应运而生. Citybuilder是ThingJS旗下三维地图城市搭建工具,使用Citybuilder ...

  5. java 使用gdal_java-gdal实现shp转geojson

    安装gdal的话,将shp转geojson会非常简单.本文因项目需要,以java-gdal讲述如何实现.ps:当然只要装有gdal就都可以实现功能. ogr2ogr命令 在控制台执行如下语句: D:\ ...

  6. geojson地图_PowerBI地图应用之形状地图

    PowerBI中有一个隐藏的图表,那就是形状地图.在使用这个功能之前需要先将其开启,然后才能使用. 开启形状地图 依次点击"文件"."选项",弹出"选 ...

  7. dxf geojson 转换_将Geopandas中geojson文件的linestring转换为polygon

    我有dxf格式的以下CAD文件,它以autocad显示,如下所示: 我用gdalorg2org将它转换成geojson格式的文件,名为test.geojson,但都是type: LineString{ ...

  8. Android中使用WebChromeClient显示Openlayers加载本地GeoJson文件显示地图(跨域问题解决)

    场景 Openlayers中加载GeoJson文件显示地图: Openlayers中加载GeoJson文件显示地图_BADAO_LIUMANG_QIZHI的博客-CSDN博客 上面加载显示GeoJso ...

  9. 用shp制作geoJson格式地图数据(shp convert to geoJson)

    本文紧接前文,简单说明利用shp数据制作Echarts支持的geoJson格式的地图数据.本文以北京市通州区各镇的shp数据为例进行说明. 今天是香港回归20周年之际,在这个特殊的日子,祝愿祖国繁荣昌 ...

  10. Json 与GeoJson

    1.JSON介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后 ...

最新文章

  1. 统计学习方法|逻辑斯蒂原理剖析及实现
  2. SQL性能--left join和inner join的运行速度与效率
  3. PHP+MYSQL的OA为何没有Java的值钱?
  4. 如何设计企业内部的数据平台?
  5. 软考备战系列一----软件测试基础
  6. 2021牛客暑期多校训练营4 H-Convolution(数学)
  7. python 片段_python片段程序
  8. javascript中alert函数的替代方案,一个自定义的对话框的方法
  9. linux 容器_Linux容器如何演变
  10. 生成交叉表的简单通用存储过程
  11. 网易云Api,轻松获取音乐数据
  12. 【CSS】关键字 -webkit-fill-available 详解
  13. mysql之my.cnf
  14. django 改端口_django更改默认的runserver端口
  15. 【故障检测】基于 KPCA 的故障检测【T2 和 Q 统计指数的可视化】(Matlab代码实现)
  16. android图片压缩工具类
  17. H5 微信授权登录功能实现
  18. IDEA settings.xml 阿里云配置备份
  19. ASA 5520 内网互访实验
  20. SQL 对WITH CHECK OPTION的理解

热门文章

  1. Android源码看设计模式(十二)--------关于观察者模式的Rxjava的相关分析
  2. 史上最全的android studio 插件大全整理
  3. Python求两数之和
  4. SOCKET_RAW 手动封装TCP协议
  5. 计算两个矩阵乘积(两种方式实现)(C语言)
  6. 让IE8兼容console
  7. 围绕竞争优势,看看电商企业的战略选择
  8. linux定时执行sh文件
  9. 香侬读 | 让预训练模型学习知识:使用多学习器增强知识建模能力
  10. android模拟门禁,IT之家学院:利用tasker实现门禁卡模拟