在网上搜索上N多的示例,都告诉我们,例如我想将一个要素扩边4米,得做缓冲分析代码大至如下:
var geoService = new GeometryService(geoServiceUrl);
geoService.BufferCompleted +=
(sender, args) =>
{
geo = args.Results[0].Geometry;
QueryListByGeometry(geo, objLayerUrl, objWhere, objField, intersect, handler);
};
geoService.Failed += (sender, args) =>
{
message = string.Format("Step 2 Failed: {0}", geoLayerUrl);
handler(null, message);
};
var bufferParams = new BufferParameters
{
BufferSpatialReference = geo.SpatialReference,
OutSpatialReference = geo.SpatialReference,
Unit = LinearUnit.Meter
};
bufferParams.Distances.Add(4);//扩展4米
bufferParams.Features.Add(new Graphic{ Geometry = geo });
geoService.BufferAsync(bufferParams);
如果是线要素做扩展,以上代码是不可能得到你想结果的,得这么做
//bufferParams.Unit = LinearUnit.Meter;
bufferParams.Distances.AddRange(new double[] { 0.00035, 0.00035 });//0.00035约等于4米
实际我发现不管这个Unit设成什么都没用,可能是ArcGIS for SilverLight 3.0的BUG吧