电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

寫給小白學習的地理信息的表示法GeoJSON

瀏覽:203日期:2022-06-09 14:32:35
目錄
  • 簡介
    • 舉例
  • 空間行狀
    • FeatureCollection
    • Feature
  • 幾何對象
    • Point
    • MultiPoint
    • LineString
    • MultiLineString
    • Polygon
    • MultiPolygon
    • GeometryCollection
  • 可選屬性
    • 其他
      • coordinate
      • 坐標參考系
      • 在 ts 中使用

    簡介

    GeoJSON 是一種使用 JSON 來編碼各種地理數據結構的格式,是一種輕量級的數據交換格式,可以用來表示幾何對象、屬性數據、空間參考系統等信息

    由兩種對象組成:Geometry(幾何對象)和 Feature(空間行狀)

    • 幾何對象用來描述地理空間中的點、線、面等幾何形狀
    • 空間行狀用來描述一個有界的實體,包括幾何對象和其他屬性信息

    幾何對象類型有:

    • 點:Point
    • 多點:MultiPoint
    • 線:LineString
    • 多線:MultiLineString
    • 面:Polygon
    • 多面:MultiPolygon
    • 幾何集合:GeometryCollection

    空間行狀類型有:

    • 空間行狀:Feature
    • 空間形狀集合:FeatureCollection

    舉例

    幾何對象和空間行狀可以相互嵌套

    const GeoJSON = {
      type: "FeatureCollection",
      features: [
        {
          type: "Feature",
          geometry: { type: "Point", coordinates: [121.4737, 31.2304] },
          properties: { id: 1 },
        },
        {
          type: "Feature",
          geometry: { type: "Point", coordinates: [121.4837, 31.2504] },
          properties: { id: 2 },
        },
      ],
    };

    空間行狀

    FeatureCollection

    FeatureCollection 是 Feature 對象的集合,用來表示一組 Feature 對象

    由 type 和 features 兩個屬性組成:

    • type 屬性的值為 FeatureCollection
    • features 屬性的值為 Feature 對象的數組
    const FeatureCollectionJSON = {
      type: "FeatureCollection",
      features: [feature],
    };

    Feature

    Feature 對象用來表示幾何對象的屬性信息

    由 typegeometry 和 properties 三個屬性組成:

    • type 屬性的值為 Feature
    • geometry 屬性的值為 Geometry 幾何對象
    • properties 屬性的值為屬性對象(可選)
    const FeatureJSON = {
      type: "Feature",
      geometry: { type: "Point", coordinates: [121.4737, 31.2304] },
      properties: { id: 1 },
    };

    幾何對象

    Point

    Point 用來表示一個點

    由 type 和 coordinates 兩個屬性組成:

    • type 屬性的值為 Point
    • coordinates 屬性的值為一個數組,數組的第一個元素為經度,第二個元素為緯度
    const PointJSON = {
      type: "Point",
      coordinates: [121.4737, 31.2304],
    };

    MultiPoint

    MultiPoint 用來表示多個點

    由 type 和 coordinates 兩個屬性組成:

    • type 屬性的值為 MultiPoint
    • coordinates 屬性的值為一個數組,數組的每個元素都是一個點的坐標
    const MultiPointJSON = {
      type: "MultiPoint",
      coordinates: [
        [121.4737, 31.2304],
        [121.4837, 31.2504],
      ],
    };

    LineString

    LineString 用來表示一條線

    由 type 和 coordinates 兩個屬性組成:

    • type 屬性的值為 LineString
    • coordinates 屬性的值為一個數組,數組的每個元素都是一個點的坐標
    const LineStringJSON = {
      type: "LineString",
      coordinates: [
        [121.4737, 31.2304],
        [121.4837, 31.2504],
      ],
    };

    MultiLineString

    MultiLineString 用來表示多條線

    由 type 和 coordinates 兩個屬性組成:

    • type 屬性的值為 MultiLineString
    • coordinates 屬性的值為一個數組,數組的每個元素都是一個線的坐標數組
    const MultiLineStringJSON = {
      type: "MultiLineString",
      coordinates: [
        [
          [121.4737, 31.2304],
          [121.4837, 31.2504],
        ],
        [
          [121.4727, 31.2314],
          [121.4827, 31.2514],
        ],
      ],
    };

    Polygon

    Polygon 用來表示一個面

    由 type 和 coordinates 兩個屬性組成:

    • type 屬性的值為 Polygon
    • coordinates 屬性的值為一個數組,數組的第一個元素為外環的坐標數組,后面的元素為內環的坐標數組

    polygon 的坐標數組的第一個元素和最后一個元素是相同的,表示閉合

    const PolygonJSON = {
      type: "Polygon",
      coordinates: [
        [
          [121.4737, 31.2304],
          [121.4837, 31.2504],
          [121.4937, 31.2304],
          [121.4737, 31.2304],
        ],
        [
          [121.4717, 31.2314],
          [121.4827, 31.2524],
          [121.4937, 31.2334],
          [121.4757, 31.2344],
        ],
      ],
    };

    MultiPolygon

    MultiPolygon 用來表示多個面

    由 type 和 coordinates 兩個屬性組成:

    • type 屬性的值為 MultiPolygon
    • coordinates 屬性的值為一個數組,數組的每個元素都是一個面的坐標數組
    const MultiPolygonJSON = {
      type: "MultiPolygon",
      coordinates: [
        [
          [
    [121.4737, 31.2304],
    [121.4837, 31.2504],
    [121.4937, 31.2304],
    [121.4737, 31.2304],
          ],
          [
    [121.4737, 31.2304],
    [121.4837, 31.2504],
    [121.4937, 31.2304],
    [121.4737, 31.2304],
          ],
        ],
        [
          [
    [121.4737, 31.2304],
    [121.4837, 31.2504],
    [121.4937, 31.2304],
    [121.4737, 31.2304],
          ],
          [
    [121.4737, 31.2304],
    [121.4837, 31.2504],
    [121.4937, 31.2304],
    [121.4737, 31.2304],
          ],
        ],
      ],
    };

    GeometryCollection

    GeometryCollection 用來表示幾何對象的集合

    由 type 和 geometries 兩個屬性組成:

    • type 屬性的值為 GeometryCollection
    • geometries 屬性的值為幾何對象的數組
    const GeometryCollectionJSON = {
      type: "GeometryCollection",
      geometries: [
        { type: "Point", coordinates: [121.4737, 31.2304] },
        {
          type: "LineString",
          coordinates: [
    [121.4737, 31.2304],
    [121.4837, 31.2504],
          ],
        },
      ],
    };

    可選屬性

    這些屬性都是 GeoJSON 的擴展屬性,不是 GeoJSON 規范的一部分

    • id 屬性,用來描述 FeatureCollection 的唯一標識
    • bbox 屬性,用來描述 FeatureCollection 的邊界框

      • 四至坐標,一般用來做數據裁剪
      • 這是一組左上角和右下角的坐標,示例:[minLon, minLat, maxLon, maxLat]
    • properties 屬性,用來描述 FeatureCollection 的屬性
    • crs 屬性,用來描述坐標參考系

    其他

    coordinate

    coordinate 是一個數組,表示一個點的坐標,數組的長度表示坐標的維度,一般是 2 維或 3 維

    • 2 維:[lon, lat]
    • 3 維:[lon, lat, height]

    coordinate 的第一個元素表示經度,第二個元素表示緯度,第三個元素表示高度

    坐標順序是 [lon, lat],這個是推薦順序,可由 crs 屬性指定

    coordinates 是多維數組:

    • 點:[lon, lat]
    • 線:[[lon, lat], [lon, lat]]
    • 面:[[[lon, lat], [lon, lat]]]
    • 多面:[[[[lon, lat], [lon, lat]]]]

    坐標參考系

    最常使用的坐標系是 EPSG:4326 和 EPSG:3857

    • EPSG:4326 是 WGS84(CGCS2000,大地) 坐標系,是 GeoJSON 規范的默認坐標系
    • EPSG:3857 是 Web Mercator(墨卡托) 坐標系,是 OpenLayers 的默認坐標系

    它們的區別:

    • EPSG:4326 是經緯度坐標系,EPSG:3857 是投影坐標系
    • EPSG:4326 的坐標范圍是 [-180, -90, 180, 90]EPSG:3857 的坐標范圍是 [-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244]
    • EPSG:4326 的坐標單位是度,EPSG:3857 的坐標單位是米
    • EPSG:4326 的坐標原點是 [0, 0]EPSG:3857 的坐標原點是 [-20037508.342789244, -20037508.342789244]
    • EPSG:4326 的坐標軸方向是 [x, y]EPSG:3857 的坐標軸方向是 [x, -y]

    在 ts 中使用

    為了在 ts 使用 GeoJSON 能夠有類型約束,我整理整理了一些 GeoJSON 的 ts 類型定義和創建 GeoJSON 的方法:

    • geojson.d.ts
    • geojson.helper.ts

    舉例:

    表示一個點和多個點的 GeoJSON 集合:

    使用geojson.d.ts

    type PointType = FeatureCollection<Point | MultiPoint, GeoJsonProperties<T>>;
    const point2Geojson: PointType<{ id: string; name?: string }> = {
      type: "FeatureCollection",
      features: [
        {
          type: "Feature",
          geometry: {
    type: "Point",
    coordinates: [120.4737, 31.2304],
          },
          properties: { id: "12", name: "uccs" },
        },
        {
          type: "Feature",
          geometry: {
    type: "MultiPoint",
    coordinates: [
      [121.4737, 31.2304],
      [111.4737, 31.2204],
    ],
          },
          properties: { id: "1" },
        },
      ],
    };

    創建一個幾何對象

    使用geojson.helper.ts

    const pointGeometry = point<{ id: string }>([120.4737, 31.2304], {
      id: "1",
    });
    const featureGeoJSON = feature<Point>(pointGeometry);

    參考

    • GeoJSON
    • GeoJSON 格式
    • GeoJSON 格式規范
    • EPSG 4326 vs EPSG 3857 (投影,數據集,坐標系)
    • turf.js

    以上就是寫給小白的地理信息的表示法GeoJSON的詳細內容,更多關于GeoJSON地理信息表示法的資料請關注其它相關文章!

    標簽: JavaScript
    主站蜘蛛池模板: 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 火锅底料批发-串串香技术培训[川禾川调官网] | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 无刷电机_直流无刷电机_行星减速机-佛山市藤尺机电设备有限公司 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 防潮防水通风密闭门源头实力厂家 - 北京酷思帝克门窗 | 紫外荧光硫分析仪-硫含量分析仪-红外光度测定仪-泰州美旭仪器 | 高尔夫球杆_高尔夫果岭_高尔夫用品-深圳市新高品体育用品有限公司 | 裹包机|裹膜机|缠膜机|绕膜机-上海晏陵智能设备有限公司 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | Maneurop/美优乐压缩机,活塞压缩机,型号规格,技术参数,尺寸图片,价格经销商 | 礼至家居-全屋定制家具_一站式全屋整装_免费量房设计报价 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 创富网-B2B网站|供求信息网|b2b平台|专业电子商务网站 | 广东教师资格网-广东教师资格证考试网 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 真空搅拌机-行星搅拌机-双行星动力混合机-广州市番禺区源创化工设备厂 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 缠膜机|缠绕包装机|无纺布包装机-济南达伦特机械设备有限公司 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 威廉希尔WilliamHill·足球(中国)体育官方网站 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 流变仪-热分析联用仪-热膨胀仪厂家-耐驰科学仪器商贸 | 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 淘趣英语网 - 在线英语学习,零基础英语学习网站 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 北京租车牌|京牌指标租赁|小客车指标出租 | 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | 防爆电机_防爆电机型号_河南省南洋防爆电机有限公司 |