• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gisoracle

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

ArcGIS Pro创建线有问题

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ArcGIS.Core.CIM;
using ArcGIS.Core.Data;
using ArcGIS.Core.Geometry;
using ArcGIS.Desktop.Catalog;
using ArcGIS.Desktop.Core;
using ArcGIS.Desktop.Editing;
using ArcGIS.Desktop.Extensions;
using ArcGIS.Desktop.Framework;
using ArcGIS.Desktop.Framework.Contracts;
using ArcGIS.Desktop.Framework.Dialogs;
using ArcGIS.Desktop.Framework.Threading.Tasks;
using ArcGIS.Desktop.Mapping;

namespace TKPrint
{
    internal class MapTool1 : MapTool
    {
        public MapTool1()
        {
            IsSketchTool = true;
            SketchType = SketchGeometryType.Line;
            SketchOutputMode = SketchOutputMode.Screen;
        }

        protected override Task OnToolActivateAsync(bool active)
        {
            return base.OnToolActivateAsync(active);
        }

        //protected override Task<bool> OnSketchCompleteAsync(Geometry geometry)
        //{
        //    Map activeMap = MapView.Active.Map;
        //    var polygonLayer = activeMap.GetLayersAsFlattenedList().OfType<FeatureLayer>().Where(
        //       lyr => lyr.ShapeType == ArcGIS.Core.CIM.esriGeometryType.esriGeometryPolygon).FirstOrDefault();

        //    if (polygonLayer == null)
        //        return Task.FromResult(false);
        //    return QueuedTask.Run(() =>
        //    {
        //        var newPolygon = geometry as Polygon;
        //        FeatureClass featureClass = polygonLayer.GetFeatureClass();
        //        RowBuffer rowBuffer = featureClass.CreateRowBuffer();
        //        rowBuffer["Shape"] = newPolygon;

        //        featureClass.CreateRow(rowBuffer);
        //        rowBuffer.Dispose();
        //        return Task.FromResult(true);
        //    });

        //}
        protected override Task<bool> OnSketchCompleteAsync(Geometry geometry)
        {

            if (CurrentTemplate == null || geometry == null)
                return Task.FromResult(false);
            try
            {
                // Create an edit operation
                var createOperation = new EditOperation();
                createOperation.Name = string.Format("Create {0}", CurrentTemplate.Layer.Name);
                createOperation.SelectNewFeatures = true;

                // pass the point geometry to the Create method
                createOperation.Create(CurrentTemplate, geometry);

                // Execute the operation
                return createOperation.ExecuteAsync();
            }
            finally
            {
                MapView.Active.RedrawAsync(true);
            }
            //Map activeMap = MapView.Active.Map;
            //var polygonLayer = activeMap.GetLayersAsFlattenedList().OfType<FeatureLayer>().Where(
            //   lyr => lyr.ShapeType == ArcGIS.Core.CIM.esriGeometryType.esriGeometryPolyline).FirstOrDefault();

            //if (polygonLayer == null)
            //    return Task.FromResult(false);
            //return QueuedTask.Run(() =>
            //{
            //    var createOperation = new EditOperation()
            //    {
            //        Name = "Create polylins",
            //        SelectNewFeatures = false
            //    };
            //    var newPolygon = geometry as Polyline;
            //    // queue the polygon creation
            //    createOperation.Create(polygonLayer, newPolygon);

            //    // execute the edit (polygon create) operation


            //    return Task.FromResult(createOperation.Execute());
            //});
        }

    }
}

 

posted on 2022-03-24 19:57  gisai  阅读(90)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3