arcgis api js 使用GeoJSON格式数据

1、GeoJSON是什么?

     GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。

2、GeoJSON的数据结构是什么?

      一个完整的GeoJSON数据结构总是一个(JSON术语里的)对象。在GeoJSON里,对象由名/值对--也称作成员的集合组成。对每个成员来说,名字总是字符串。成员的值要么是字符串、数字、对象、数组,要么是下面文本常量中的一个:"true","false"和"null"。数组是由值是上面所说的元素组成。GeoJSON总是由一个单独的对象组成。这个对象(指的是下面的GeoJSON对象)表示几何、特征或者特征集合。

(1)GeoJSON对象可能有任何数目成员(名/值对)。

(2)GeoJSON对象必须有一个名字为"type"的成员。这个成员的值是由GeoJSON对象的类型所确定的字符串。

(3)type成员的值必须是下面之一:"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon",        "GeometryCollection", "Feature", 或者 "FeatureCollection"。

(4)GeoJSON对象可能有一个可选的"crs"成员,它的值必须是一个坐标参考系统的对象。

(5)GeoJSON对象可能有一个"bbox"成员,它的值必须是边界框数组。

数据示例如下:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [
              113.31000566482544,
              23.120400299789445
            ],
            [
              113.31287026405334,
              23.120400299789445
            ],
            [
              113.31287026405334,
              23.121140331350293
            ],
            [
              113.31000566482544,
              23.121140331350293
            ],
            [
              113.31000566482544,
              23.120400299789445
            ]
          ]
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [
            113.31015586853026,
            23.12181128977129
          ],
          [
            113.31278443336487,
            23.121771821721737
          ]
        ]
      }
    },
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Point",
        "coordinates": [
          113.31148624420166,
          23.12290652351527
        ]
      }
    }
  ]
}

3、在arcgis api js中如何使用GeoJSON格式数据?

     那直接引用这份示例数据在地图上展示吧,效果如下:

//实例化ArcGISGeojsonLayer对象,进行参数构造初始化
var geojsonLayer = new ArcGISGeojsonLayer({
	"url": "data/map.geojson"
});

//将geojsonLayer 图层添加到map
map.addLayer(geojsonLayer);

//当图层加载完毕之后,设置当前地图的范围为geojsonLayer图层的范围
geojsonLayer.on("update-end", function(e) {
	map.setExtent(e.target.extent.expand(1.2));
});


 

4、扩展接口ArcGISGeojsonLayer

     该接口是自定义封装了一个接口,已经整合到arcgis api js中,和其他图层对象的调用方式是一样的,我们可以在代码中打印   geojsonLayer对象,看看该图层会有哪些属性、方法、事件。

4.1 构造初始化

  new ArcGISGeojsonLayer({})

  4.1.1 三种加载方式

   

参数名  描述
urlString 文件或服务器路径,服务器必须在同一个域或启用CORS,或使用代理。
dataObject[]OptionalFeatureCollection,如果同时使用data和url,data会覆盖url。
maxdrawNumberOptional最大绘制的图形数,默认为1000。

4.2 属性:extent

    控制台输出结果如下,表示为当前图层的范围,坐标系为4326

extent:{
cache: undefined
spatialReference: {wkid: 4326}
xmax: 113.31287026405334
xmin: 113.31000566482544
ymax: 23.12290652351527
ymin: 23.120400299789445
}

4.3 属性:graphics

 控制台输出结果如下:表示该图层中有3个元素,分别为刚刚我们看到到点、线、面。

  4.4 属性:infoTemplate

    该属性为图层.graphics元素的模板弹窗,infoTemplate有两个属性:title和content,我这里暂未设置,可自定义通过${属性}显示  属性对应的值,效果如下:

4.5 事件

    本来是打算整理出一份属性、函数、事件的表格。但是通过F12打印图层对象可以见到所有的属性、函数、事件等... 该图层对象还有其他的渲染扩展等....

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值