ArcGIS js api 手动构建FeatureLayer

当前文档arcgis js版本为3.x,4.x版本传送门→ArcGIS js api 4.x手动构建FeatureLayer
坐标系

var spatialReference = new SpatialReference(4326);

要素坐标点

var pointArr = [
	new Point(116.94431351934418, 36.642791191513744, spatialReference),
	new Point(116.94313181636085,36.644263733181496, spatialReference),
	new Point(116.94323946773243, 36.644333923319806, spatialReference),
	new Point(116.94214699103674, 36.64316768441554, spatialReference),
	new Point(116.94173145496477, 36.643359669286696, spatialReference),
	new Point(116.94251530866333, 36.644235392555245, spatialReference),
];

构建features


var features = [];
for (var i = 0; i < pointArr.length; i++) {
	var graphics = new Graphic(pointArr[i], pointSymbol, { "OBJECTID": i, "LON": pointArr[i].x, "LAT": pointArr[i].y });
	features.push(graphics);
}

构建fields

var fields = [
	{ name: "OBJECTID", type: "esriFieldTypeOID", alias: "OBJECTID" },
    { name: "LON", type: "esriFieldTypeDouble", alias: "LON" },
    { name: "LAT", type: "esriFieldTypeDouble", alias: "LAT" }
];

构建featuresSet

var featureSetJson = {
	displayFieldName: "",
	geometryType: "esriGeometryPoint",
	fieldAliases: {
		OBJECTID: "OBJECTID",
		LON: "LON",
		LAT: "LAT"
	},
	fields: fields,
	spatialReference: spatialReference,
	features: features
};
var featuresSet = new FeatureSet(featureSetJson);

构建featureCollection

var layerDefinition = {
	"geometryType": "esriGeometryPoint",
	"fields": fields
};

var featureCollection = {
	layerDefinition: layerDefinition,
	featureSet: featuresSet
};

构建FeatureLayer

var featureLayer = new FeatureLayer(featureCollection);

完整代码

require([
           "esri/map",
           "esri/SpatialReference",
           "esri/layers/FeatureLayer",
           "esri/geometry/Point",
           "esri/tasks/FeatureSet",
           "esri/graphic",
           "dojo/domReady!"
        ],
        function (Map, SpatialReference, FeatureLayer, Point,  FeatureSet, Graphic) {
	        var map = new Map("viewDiv", {
                   basemap: "streets",
                   center: [116.943089, 36.643737],
                   zoom: 18
               });
            var spatialReference = new SpatialReference(4326);

            var pointArr = [
				new Point(116.94431351934418, 36.642791191513744, spatialReference),
				new Point(116.94313181636085,36.644263733181496, spatialReference),
				new Point(116.94323946773243, 36.644333923319806, spatialReference),
				new Point(116.94214699103674, 36.64316768441554, spatialReference),
				new Point(116.94173145496477, 36.643359669286696, spatialReference),
				new Point(116.94251530866333, 36.644235392555245, spatialReference),
			];

			var features = [];
			for (var i = 0; i < pointArr.length; i++) {
				var graphics = new Graphic(pointArr[i], pointSymbol, { "OBJECTID": i, "LON": pointArr[i].x, "LAT": pointArr[i].y });
				features.push(graphics);
			}
			
			var fields = [
				{ name: "OBJECTID", type: "esriFieldTypeOID", alias: "OBJECTID" },
			    { name: "LON", type: "esriFieldTypeDouble", alias: "LON" },
			    { name: "LAT", type: "esriFieldTypeDouble", alias: "LAT" }
			];
			
			var featureSetJson = {
				displayFieldName: "",
				geometryType: "esriGeometryPoint",
				fieldAliases: {
					OBJECTID: "OBJECTID",
					LON: "LON",
					LAT: "LAT"
				},
				fields: fields,
				spatialReference: spatialReference,
				features: features
			};
			var featuresSet = new FeatureSet(featureSetJson);
			
			var layerDefinition = {
				"geometryType": "esriGeometryPoint",
				"fields": fields
			};
			
			var featureCollection = {
				layerDefinition: layerDefinition,
				featureSet: featuresSet
			};
			
			var featureLayer = new FeatureLayer(featureCollection);
			map.addLayer(featureLayer);
        })

api参考
https://developers.arcgis.com/javascript/3/jsapi/featurelayer-amd.html#featurelayer2
https://developers.arcgis.com/javascript/3/jsapi/featureset-amd.html#featureset2

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值