本文主要是介绍arcgis js api 4.x根据Graphic数组创建FeatureLayer。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
FeatureLayer在大部分情况下是使用已发布的地图服务的要素图层里的数据,如果想要展示特定的业务数据,比如数据库查询的数据点,首先想到的是GraphicsLayer,也可以使用FeatureLayer,给FeatureLayer设置数据源(Graphic数组)、字段信息、渲染器等信息。接下来分基本的四步(定义字段、创建Graphic数组、定义渲染器、创建FeatureLayer)记录这个过程。
1、定义字段
var fields = [{name: "ObjectID",alias: "ObjectID",type: "oid" // 每个要素必须的字段,字段值必须唯一,当做是整数类型。。。},{name: "title",alias: "title",type: "string" //字符串类型},{name: "size", //可以用来渲染符号大小alias: "size",type: "integer" //整数类型}]; //除了上面的三种类型,还有 double、date。。。
2、创建Graphic数组
var graphics=[]; var startx=118;var starty=38;var i=1; // 用于ObjectID属性// 每隔 0.05经度 0.05纬度创建一个点for(var x=startx;x<120;x+=0.05){for(var y=starty;y<40;y+=0.05){ //一共创建1600个点graphics.push({geometry: new Point({x: x,y: y //没指定坐标系,默认是WGS84坐标系}),attributes: {ObjectID:i,title: "title",size:parseInt(Math.random()*5000+5000), },});i++;}}
3、创建渲染器
var renderer = {type: "simple", // 简单渲染器 new SimpleRenderer()symbol: {type: "point-3d", // 符号类型 new PointSymbol3D()symbolLayers: [{type: "object", // “符号子类型” new ObjectSymbol3DLayer()//几何体样式 sphere(球) cylinder(圆柱) cube(立方块) cone(圆锥) inverted-cone(倒圆锥) diamond(钻石) tetrahedron(四面体)resource: { primitive: "sphere" },material: { color: "blue" }}]},visualVariables: [{ //视觉变量type: "size",field: "size",valueUnit: "feet" // 指定渲染字段的单位,还有meter。。。}]};
4、创建FeatureLayer,创建地图,创建Scene,设置初始的地图视图位置。
var featureLayer = new FeatureLayer({source: graphics,fields: fields,renderer: renderer});var map = new Map({basemap: "satellite",ground: "world-elevation",layers:[featureLayer]});var initCam = {position: {x: 119,y: 37,z: 332780,spatialReference: {wkid: 4326}},heading: 358.8,tilt:30};var view = new SceneView({map: map,container: "viewDiv",camera: initCam});
渲染效果图:
这篇关于arcgis js api 4.x根据Graphic数组创建FeatureLayer。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!