انجمن تخصصی جی.آی.اس (GIS)

نسخه‌ی کامل: نحوه high light کردن عوارض انتخاب شده - کد سی شارپ
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
میخواستم بدونم چطوری میشه فیچرهای انتخاب شده به وسیله کوئری رو های لایت کرد. کد سی شارپ میخوام.
ممنون میشم کمک کنید. 
 

 
در کدی که برای انتخاب فیچرها استفاده می کنید به جای Search از Select استفاده کنید فیچرها اتوماتیک سلکت میشن - یعنی آبی میشن.
ممنون از راهنماییتون
کد من به به صورت زیره           
کد php:
IWorkspaceFactory ws_Factory;
            
ws_Factory = new FileGDBWorkspaceFactory();
            
IWorkspace work_space;
            
work_space ws_Factory.OpenFromFile("C:\\...\\Test3.gdb"0);
            
IFeatureWorkspace feature_work_space;
            
feature_work_space work_space as IFeatureWorkspace;
            
IFeatureClass feature_class;
            
feature_class feature_work_space.OpenFeatureClass("Province");

            
IFeatureLayer feature_layer = new FeatureLayer();
            
feature_layer.FeatureClass feature_class;

            
ILayer2 layer_2 feature_layer as ILayer2;
            
IFeatureLayer2 f_layer layer_2 as IFeatureLayer2;

            
IFeatureSelection feature_Selection;

            
IQueryFilter query_Filter = new QueryFilterClass();
            
//query_Filter.WhereClause = "OSTAN_ENG = 'Esfahan' OR OSTAN_ENG = 'Tehran'";

            
query_Filter.WhereClause "OBJECTID = 1 OR OBJECTID = 4 ";

            
feature_Selection f_layer as IFeatureSelection;

            if (
feature_Selection != null)
                
feature_Selection.Clear();
            else
                return;

            
feature_Selection.SelectFeatures(query_FilteresriSelectionResultEnum.esriSelectionResultNewfalse); 
سرچ تو کدم ندارم. یه سوال دیگه هم که دارم اینه که چطوری به صورت لایه تبدیل کنم عوارض انتخاب شده رو؟ نمی خوام اکسپورت بگیرم فقط میخوام به صورت .lyr ذخیره کنم.

بازم سپاس از راهنمایی تون

 
بعد از اجرای متد Select صفحه رو Refresh می کنید؟

یک راه ساده تر:
کد php:
Dim GP As ESRI.ArcGIS.Geoprocessor.Geoprocessor = New ESRI.ArcGIS.Geoprocessor.Geoprocessor
 Dim SelectTool 
As New ESRI.ArcGIS.DataManagementTools.SelectLayerByAttribute
 SelectTool
.in_layer_or_view pLaySelected
SelectTool
.where_clause tbxSQLString.Text
Select 
Case cboMethod.SelectedIndex
                
Case 'Create a new selection
                    SelectTool.selection_type = "NEW_SELECTION"
                Case 1 '
Add to the current selection
                    SelectTool
.selection_type "ADD_TO_SELECTION"
                
Case 'Remove from the current selection
                    SelectTool.selection_type = "REMOVE_FROM_SELECTION"
                Case 3 '
Select from the current selection
                    SelectTool
.selection_type "SUBSET_SELECTION"
            
End Select

 Dim pGPResult 
As ESRI.ArcGIS.Geoprocessing.IGeoProcessorResult
 GP
.OverwriteOutput True
 pGPResult 
GP.Execute(SelectToolNothing)

 
frmMain.MapControl.Refresh() 
 
بلی با کد زیر رفرش میکنم

axMapControl1.ActiveView.Refresh();

سعی میکنم کدی که نوشتید رو با سی شارپ بنویسم ببینم چی میشه. بسیار ممنون

فقط اگه جواب سوال دوم بدید بسیار ممنون میشم. چطوری عوارض انتخاب شده رو به صورت لایه ذخیره کنم. (*.lyr)
معمولا راحت تر و بهتره که مثل کد بالا از ژئوپروسسینگ استفاده کنید.

عوارض رو نمیشه به فرمت lyr خروجی گرفت. این فرمت فقط برای ذخیره نحوه نمایش دیتا هست نه ذخیره خود دیتا. به جاش می تونید به فرمت Shp خروجی بگیرید.
جناب علوی اگه ممکنه کد مربوط به خروجی گرفتن فیچرهای انتخاب شده به فرمت shp را بزارید. ممنون
 
(۵-۷-۱۳۹۳ ۰۴:۴۸ عصر)'Arezoo' نوشته شده توسط: [ -> ]جناب علوی اگه ممکنه کد مربوط به خروجی گرفتن فیچرهای انتخاب شده به فرمت shp را بزارید. ممنون
 

 


شبیه کد بالاست. فقط به جای ابزار بالا، از ابزار CopyFeatures - در همون جعبه ابزار DataManagementTools - یا ابزار FeatureClassToFeatureClass  که در جعبه ابزار ConvertionTools قرار داره استفاده کنید.
 
لینک مرجع