日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

寫給小白學(xué)習(xí)的地理信息的表示法GeoJSON

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

    簡介

    GeoJSON 是一種使用 JSON 來編碼各種地理數(shù)據(jù)結(jié)構(gòu)的格式,是一種輕量級的數(shù)據(jù)交換格式,可以用來表示幾何對象、屬性數(shù)據(jù)、空間參考系統(tǒng)等信息

    由兩種對象組成: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 對象的數(shù)組
    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 屬性的值為一個數(shù)組,數(shù)組的第一個元素為經(jīng)度,第二個元素為緯度
    const PointJSON = {
      type: "Point",
      coordinates: [121.4737, 31.2304],
    };

    MultiPoint

    MultiPoint 用來表示多個點

    由 type 和 coordinates 兩個屬性組成:

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

    LineString

    LineString 用來表示一條線

    由 type 和 coordinates 兩個屬性組成:

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

    MultiLineString

    MultiLineString 用來表示多條線

    由 type 和 coordinates 兩個屬性組成:

    • type 屬性的值為 MultiLineString
    • coordinates 屬性的值為一個數(shù)組,數(shù)組的每個元素都是一個線的坐標(biāo)數(shù)組
    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 屬性的值為一個數(shù)組,數(shù)組的第一個元素為外環(huán)的坐標(biāo)數(shù)組,后面的元素為內(nèi)環(huán)的坐標(biāo)數(shù)組

    polygon 的坐標(biāo)數(shù)組的第一個元素和最后一個元素是相同的,表示閉合

    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 屬性的值為一個數(shù)組,數(shù)組的每個元素都是一個面的坐標(biāo)數(shù)組
    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 屬性的值為幾何對象的數(shù)組
    const GeometryCollectionJSON = {
      type: "GeometryCollection",
      geometries: [
        { type: "Point", coordinates: [121.4737, 31.2304] },
        {
          type: "LineString",
          coordinates: [
    [121.4737, 31.2304],
    [121.4837, 31.2504],
          ],
        },
      ],
    };

    可選屬性

    這些屬性都是 GeoJSON 的擴(kuò)展屬性,不是 GeoJSON 規(guī)范的一部分

    • id 屬性,用來描述 FeatureCollection 的唯一標(biāo)識
    • bbox 屬性,用來描述 FeatureCollection 的邊界框

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

    其他

    coordinate

    coordinate 是一個數(shù)組,表示一個點的坐標(biāo),數(shù)組的長度表示坐標(biāo)的維度,一般是 2 維或 3 維

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

    coordinate 的第一個元素表示經(jīng)度,第二個元素表示緯度,第三個元素表示高度

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

    coordinates 是多維數(shù)組:

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

    坐標(biāo)參考系

    最常使用的坐標(biāo)系是 EPSG:4326 和 EPSG:3857

    • EPSG:4326 是 WGS84(CGCS2000,大地) 坐標(biāo)系,是 GeoJSON 規(guī)范的默認(rèn)坐標(biāo)系
    • EPSG:3857 是 Web Mercator(墨卡托) 坐標(biāo)系,是 OpenLayers 的默認(rèn)坐標(biāo)系

    它們的區(qū)別:

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

    在 ts 中使用

    為了在 ts 使用 GeoJSON 能夠有類型約束,我整理整理了一些 GeoJSON 的 ts 類型定義和創(chuàng)建 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" },
        },
      ],
    };

    創(chuàng)建一個幾何對象

    使用geojson.helper.ts

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

    參考

    • GeoJSON
    • GeoJSON 格式
    • GeoJSON 格式規(guī)范
    • EPSG 4326 vs EPSG 3857 (投影,數(shù)據(jù)集,坐標(biāo)系)
    • turf.js

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

    標(biāo)簽: JavaScript
    日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
    国产综合视频| 日韩免费高清| 国产视频一区欧美| 欧美日韩免费观看一区=区三区| 欧美激情国产在线| 国产日韩电影| 岛国av在线网站| 蜜桃av.网站在线观看| 日韩av在线播放网址| 国产资源在线观看入口av| 黑人精品一区| 夜鲁夜鲁夜鲁视频在线播放| 日韩中文欧美| 蜜臀国产一区| 欧美日韩精品免费观看视欧美高清免费大片| 国产99在线| 久久国产亚洲精品| 国产精品日韩| 亚洲区国产区| 国产精品一区亚洲| 精品三级在线| 亚洲四虎影院| 美女黄网久久| 18国产精品| 精品视频在线观看网站| 国产自产自拍视频在线观看| 欧美日韩在线观看视频小说| 午夜久久tv| 久久高清国产| 欧美日韩1区2区3区| 国产精品蜜月aⅴ在线| 国产一区二区三区精品在线观看| 日韩精品首页| 视频一区二区三区入口| 欧美一级二区| 日韩影院二区| 爽爽淫人综合网网站| 青草综合视频| 天堂√8在线中文| 一本一本久久| 国产精品一区二区三区四区在线观看 | 中文字幕中文字幕精品| 国产亚洲精品美女久久 | 久久国产精品99国产| 97精品国产99久久久久久免费| 黄色网一区二区| 婷婷精品进入| 不卡在线一区二区| 日韩精品五月天| 国产粉嫩在线观看| 久久香蕉精品| 精品视频一区二区三区在线观看| 亚洲先锋成人| 久久黄色影视| 欧美日韩中文一区二区| 青青草伊人久久| 999久久久91| 91嫩草精品| 亚洲手机在线| 国产精区一区二区| 激情自拍一区| 美女在线视频一区| 亚洲午夜91| 国产麻豆精品| 91久久国产| 欧美激情日韩| 三级欧美韩日大片在线看| 精品国产美女a久久9999| 三级欧美在线一区| 久久久久久网| 日韩欧美三区| 不卡在线一区| 久久久久伊人| 综合激情网...| 久久精品播放| 精品视频97| 日本成人手机在线| 女人av一区| 久久国内精品自在自线400部| 国产一区日韩一区| 国产精品2023| 亚洲精品伦理| 婷婷激情图片久久| 国产成人免费av一区二区午夜| 免费日本视频一区| 亚洲www啪成人一区二区| 你懂的网址国产 欧美| 蜜桃久久久久久久| 国精品一区二区三区| 免费一级欧美在线观看视频| 视频一区二区中文字幕| 久久天堂精品| 高清一区二区| 日韩免费精品| 麻豆9191精品国产| 蜜桃成人av| 波多视频一区| 国产精品免费99久久久| 在线精品一区二区| 欧美女激情福利| 久久精品一区二区不卡| 精品视频91| 麻豆精品在线观看| 国产伦精品一区二区三区视频| 亚洲一区欧美| 男人天堂欧美日韩| 好吊视频一区二区三区四区| 免费观看亚洲| 国产精品jk白丝蜜臀av小说| 亚洲资源网站| 爽爽淫人综合网网站| 欧美在线网站| 久久精品国产大片免费观看| 黄色aa久久| 国产成人精选| 高清日韩中文字幕| 四虎成人av| 国产精品国产一区| 麻豆91精品视频| 欧美日韩一区二区三区不卡视频 | 国产亚洲字幕| 久久精品99国产精品| 日本一区二区中文字幕| 日韩精品亚洲专区| 日韩欧乱色一区二区三区在线| 亚洲天堂av资源在线观看| 巨乳诱惑日韩免费av| 蜜臀久久久99精品久久久久久| 亚洲免费中文| 美日韩精品视频| 一区二区电影在线观看| 亚洲久草在线| 日本亚洲欧美天堂免费| 日韩黄色免费网站| 国产欧美日韩精品高清二区综合区 | 黄色日韩精品| 快she精品国产999| 日韩av中文字幕一区| 国产精品一区亚洲| 国产成人a视频高清在线观看| 四季av一区二区凹凸精品| 播放一区二区| 蜜桃av一区| 欧美精品三级在线| 国产精品久久久久77777丨| 麻豆成人91精品二区三区| 最新中文字幕在线播放| 美女亚洲一区| 日韩欧美高清一区二区三区| 国产精品a久久久久| 热三久草你在线| 国产视频一区欧美| 日本一区二区三区中文字幕| 91精品国产自产在线丝袜啪| 久久性天堂网| 日本精品久久| 久久影院一区二区三区| 国产成人精品免费视| 最新亚洲一区| 快she精品国产999| 蜜臀久久99精品久久久久宅男| 日韩精品一二三四| 欧美日韩视频一区二区三区| 一区二区三区网站| 四虎成人精品一区二区免费网站| 日本久久一区| 免费在线亚洲| 香蕉精品视频在线观看| 亚洲欧美日本视频在线观看| 日韩激情一二三区| 毛片不卡一区二区| 亚洲精品午夜av福利久久蜜桃| 亚洲精选91| 日本欧美一区二区| 国产精品日韩精品中文字幕| 成人国产精品久久| 国产videos久久| 国产麻豆久久| 日韩精品一区二区三区av| 美女在线视频一区| 欧产日产国产精品视频| 首页欧美精品中文字幕| 国产精品一页| 免费福利视频一区二区三区| 免费欧美一区| 青青草视频一区| 亚洲成av人片一区二区密柚| 香蕉久久国产| 国产伦乱精品| 欧美日韩一区二区综合| 亚洲精品系列| 精品亚洲a∨一区二区三区18| 欧美日韩在线观看视频小说| 中文字幕中文字幕精品| 欧美国产专区| 蜜桃视频第一区免费观看| 国产毛片一区二区三区 | 日韩影院免费视频| 精品亚洲二区| 水野朝阳av一区二区三区|