PDA

View Full Version : آموزش: کد نویسی در GIS



a1053r
جمعه 14 مرداد 1390, 03:23 صبح
سلام خدمت تمامی برنامه نویسان و اساتید گرامی از اونجائی که همه دوستانی که در مورد برنامه نویسی در GIS به نحوی اشاه به نکات ابتدایی کردن واصلا راجب کد نویسی صحبتی به میان نیاوردن و تاپیک گذاشتن به حال خودشون
من در اینجا تصمیم دارم مستقیم کد نویسی در این سیستم رو آموزش برم البته مفاهیم پایه اون رو چون واقعیت اینه که من نه زمان کافی واسه آموزش کل و نه حوصلش رو چون فوت فن خاص داره
فقط خواهشا دوستان سوالاتشون رو در آخر که ازتون خواستم بپرسین که تاپیک رو بعد اتمام سوالات خاتمه بدم


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.esriSystem;
namespace MapsAndLayers
{
public partial class frmDocInfo : Form
{
private IMapDocument m_mapDocument;
private IEnumLayer m_enumLayers;
private IMap m_map;
private ILayer2 m_layer;
public frmDocInfo()
{
InitializeComponent();
}
private void btnClose_Click(object sender, EventArgs e)
{
Close();
}
private void btnLayerInfo_Click(object sender, EventArgs e)
{
MessageBox.Show(String.Format("{0:#} layers in the active map", m_map.LayerCount));
}
private void btnFieldInfo_Click(object sender, EventArgs e)
{
MessageBox.Show("You will learn how to access fields in a later lesson");
}
private void btnLoadMxd_Click(object sender, EventArgs e)
{
// ArcGIS Desktop (ArcView)
// ArcGIS Engine
openFileDialog1.Title = "Browse";
openFileDialog1.Filter = "Map Documents (*.mxd) | *.mxd";
openFileDialog1.InitialDirectory = "\\Student\\IPAN";
openFileDialog1.ShowDialog();
string sFilePath;
sFilePath = openFileDialog1.FileName;
//IMapDocument mapDocument;
m_mapDocument = new MapDocument();
if (!m_mapDocument.get_IsMapDocument(sFilePath))
{
return;
}
m_mapDocument.Open(sFilePath, "");
for (int i = 0; i < m_mapDocument.MapCount; i++)
{
cboMaps.Items.Add(m_mapDocument.get_Map(i).Name);
}
cboMaps.Text = m_mapDocument.get_Map(0).Name;
lblDataFrame.Text = "Active Data Frame: "
+ m_mapDocument.ActiveView.FocusMap.Name;
}
private void cboMaps_SelectedValueChanged(object sender, EventArgs e)
{
lboMapLayers.Items.Clear();
for (int i = 0; i < m_mapDocument.MapCount; i++)
{
//Pull a map from the collection
m_map = m_mapDocument.get_Map(i);
if (m_map.Name.Equals(cboMaps.SelectedItem))
{
axMapControl1.Map = m_map;
break;
//Exits the loop once the map is found
}
}
m_enumLayers = m_map.get_Layers(null,true);
m_layer = m_enumLayers.Next() as ILayer2;
do
{
lboMapLayers.Items.Add(m_layer.Name);
m_layer = m_enumLayers.Next() as ILayer2;
} while (m_layer != null);
btnFrameInfo.Enabled = cboMaps.Text != "";
btnLayerInfo.Enabled = cboMaps.Text != "";
}
private void btnFrameInfo_Click(object sender, System.EventArgs e)
{
string sDocName = m_mapDocument.DocumentFilename;
string sMapName = m_map.Name;
int iMapCount = m_mapDocument.MapCount;
MessageBox.Show(("Mxd Name: "
+ (sDocName + ("\r\n" + ("Active Frame: "
+ (sMapName + ("\r\n" + ("Data Frames: "
+ (iMapCount + "\r\n")))))))));
}
private void axMapControl1_OnMapReplaced(object sender, _
ESRI.ArcGIS.Controls.IMapControlEvents2_OnMapRepla cedEvent e)
{
// ArcGIS Snippet Title:
// Copy map
//
// Long Description:
// Copy a map to a layout
//
// Intended ArcGIS Products for this snippet:
// ArcGIS Desktop (ArcView, ArcEditor, ArcInfo)
// ArcGIS Engine
// This snippet is intended to be inserted inside a Method.
// It is not intended to be added to the base level of the Class.
axPageLayoutControl1.ActiveView.Clear();
IObjectCopy objectCopy;
objectCopy = new ObjectCopy();
object toCopyMap;
toCopyMap = axMapControl1.ActiveView.FocusMap;
object copiedMap;
copiedMap = objectCopy.Copy(toCopyMap);
object toOverwriteMap;
toOverwriteMap = axPageLayoutControl1.ActiveView.FocusMap;
// Overwrite the PageLayoutControl's map
objectCopy.Overwrite(copiedMap, ref toOverwriteMap);
}
private void lboMapLayers_SelectedValueChanged(object sender, EventArgs e)
{
btnLayerInfo.Enabled = (lboMapLayers.Text != "");
lboFields.Items.Clear();
m_enumLayers.Reset();
//move the enum pointer above the first layer
m_layer = m_enumLayers.Next() as ILayer2;
//Return the first layer from the enumeration
do //begin the loop
{
if (m_layer.Name == lboMapLayers.Text) //check whether this is the layer
{
//Determine whether you have a feature layer
if (!(m_layer is IFeatureLayer2))
{
lboFields.Items.Add("Not a feature layer");
}
break;
//If the layer is found, exit the loop (but not the event)
}
m_layer = m_enumLayers.Next() as ILayer2;
//Return another layer
} while (m_layer != null);
btnFieldInfo.Enabled = (lboMapLayers.Text != "");
}
}
}

لطفا عکس ضمینه شده رو دانلود کنید.

a1053r
جمعه 14 مرداد 1390, 15:17 عصر
خوب حالا نوبت به قسمت دوم کد نویسی در GIS lمیرسیم در قسمت اول سعی بر این شد که طرز فراخونی نقشه رو با کد نویسی یاد بگیرد و طرز انتخاب لایه ها و اطلاعات مربوطه رو
در این قسمت طریقه دسترسی به دیتا رو یاد میگیرید

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.ADF;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesGDB;
namespace DataAccess
{
public sealed partial class MainForm : Form
{
#region class private members
private IMapControl3 m_mapControl = null;
private string m_mapDocumentName = string.Empty;
private ILayer m_layer;
#endregion
#region class constructor
public MainForm()
{
InitializeComponent();
}
#endregion
private void MainForm_Load(object sender, EventArgs e)
{
//get the MapControl
m_mapControl = (IMapControl3)axMapControl1.Object;
//disable the Save menu (since there is no document yet)
menuSaveDoc.Enabled = false;
axMapControl1.ShowMapTips = false;
chkShowTips.CheckState = CheckState.Unchecked;
AddData();
}
#region Main Menu event handlers
private void menuNewDoc_Click(object sender, EventArgs e)
{
ICommand command = new CreateNewDocument();
command.OnCreate(m_mapControl.Object);
command.OnClick();
}
private void menuOpenDoc_Click(object sender, EventArgs e)
{
ICommand command = new ControlsOpenDocCommandClass();
command.OnCreate(m_mapControl.Object);
command.OnClick();
}
private void menuSaveDoc_Click(object sender, EventArgs e)
{
if (m_mapControl.CheckMxFile(m_mapDocumentName))
{
IMapDocument mapDoc = new MapDocumentClass();
mapDoc.Open(m_mapDocumentName, string.Empty);
//Make sure that the MapDocument is not readonly
if (mapDoc.get_IsReadOnly(m_mapDocumentName))
{
MessageBox.Show("Map document is read only!");
mapDoc.Close();
return;
}
mapDoc.ReplaceContents((IMxdContents)m_mapControl. Map);
mapDoc.Save(mapDoc.UsesRelativePaths, false);
//close the MapDocument
mapDoc.Close();
}
}
private void menuSaveAs_Click(object sender, EventArgs e)
{
//execute SaveAs Document command
ICommand command = new ControlsSaveAsDocCommandClass();
command.OnCreate(m_mapControl.Object);
command.OnClick();
}
private void menuExitApp_Click(object sender, EventArgs e)
{
//exit the application
Application.Exit();
}
#endregion
private void axMapControl1_OnMapReplaced(object sender,
IMapControlEvents2_OnMapReplacedEvent e)
{
m_mapDocumentName = m_mapControl.DocumentFilename;
if (m_mapDocumentName == string.Empty)
{
menuSaveDoc.Enabled = false;
statusBarXY.Text = string.Empty;
}
else
{
menuSaveDoc.Enabled = true;
statusBarXY.Text = Path.GetFileName(m_mapDocumentName);
}
}
private void axMapControl1_OnMouseMove(object sender,
IMapControlEvents2_OnMouseMoveEvent e)
{
statusBarXY.Text =
string.Format("{0}, {1} {2}", e.mapX.ToString("#######.##"),
e.mapY.ToString("#######.##"),
axMapControl1.MapUnits.ToString().Substring(4));
}
private void AddData()
{
IWorkspaceFactory wsFactory;
wsFactory = new FileGDBWorkspaceFactory();
IWorkspace workspace;
workspace = wsFactory.OpenFromFile(
"\\Student\\IPAN\\Database\\World.gdb", 0);
IFeatureWorkspace fWS;
fWS = workspace as IFeatureWorkspace;
IFeatureClass fcCountries;
fcCountries = fWS.OpenFeatureClass("Countries");
IFeatureClass fcLakes;
fcLakes = fWS.OpenFeatureClass("Lakes");
IFeatureLayer countriesLayer;
countriesLayer = new FeatureLayer();
IFeatureLayer lakesLayer;
lakesLayer = new FeatureLayer();
countriesLayer.FeatureClass = fcCountries;
lakesLayer.FeatureClass = fcLakes;
countriesLayer.Name = "World Countries";
//countriesLayer.ShowTips = true;
lakesLayer.Name = "World Lakes";
//lakesLayer.ShowTips = false;
lakesLayer.Visible = false;
axMapControl1.AddLayer(countriesLayer);
axMapControl1.AddLayer(lakesLayer);
}
private void axTOCControl1_OnMouseDown(object sender,
ITOCControlEvents_OnMouseDownEvent e)
{
// ArcGIS Snippet Title:
// ArcGIS Desktop (ArcView, ArcEditor, ArcInfo)
IBasicMap map = null;
ILayer layer = null;
object other = null;
object index = null;
esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone;
axTOCControl1.HitTest(e.x, e.y, ref item, ref map, ref layer,
ref other, ref index);
if ((item == esriTOCControlItem.esriTOCControlItemLayer))
{
m_layer = layer as ILayer;
}
}
private void chkShowTips_CheckStateChanged(object sender, System.EventArgs e)
{
// ArcGIS Desktop (ArcView, ArcEditor, ArcInfo)
ILayer layer;
// Loop through the layers in the map
for (int i = 0; (i < (axMapControl1.LayerCount)); i++)
{
layer = axMapControl1.get_Layer(i);
if (layer is IFeatureLayer)
{
// Show MapTips based for selected layer,
// depending on status of CheckBox
if (layer == m_layer)
{
if (chkShowTips.CheckState == CheckState.Checked)
{
layer.ShowTips = true;
}
else
{
layer.ShowTips = false;
}
}
else
{
layer.ShowTips = false;
}
}
}
}
private void chkShowTips_CheckedChanged(object sender, EventArgs e)
{
if (chkShowTips.CheckState == CheckState.Checked)
{
axMapControl1.ShowMapTips = true;
else
axMapControl1.ShowMapTips = false;
}
}
}
}

a1053r
جمعه 14 مرداد 1390, 15:22 عصر
شرمنده عکس از برنامه یادم رفت
فرمهاتون رو مثل من درست کنید تا مشکلی پیش نیاد

a1053r
یک شنبه 16 مرداد 1390, 12:32 عصر
دوستان تا اینجا اگه کسی سوال داره بپرسه تا مبحث پیشرفته ای رو شروع کنم که نیاز به درک از مفاهیم پایه داره

complexcoding
یک شنبه 16 مرداد 1390, 13:14 عصر
آقا GIS که یک نرم افزار زمین شناسیه!!!!
می شه با سی شارپ توش کدنویسی کرد؟ اگر یاد بگیریم توش نون داره؟ با چه زبانهای دیگه ای می شه برنامه نویسی کرد ؟

elena2007
یک شنبه 16 مرداد 1390, 17:12 عصر
میشه در مورد GIS کمی توضیح بدین که اصلا چی هستش ؟؟؟
شرمنده

a1053r
دوشنبه 17 مرداد 1390, 00:50 صبح
از دید برنامه نویس تو جاهایی مثل شهرداری ثبت اسناد و املاک سازمان پارکها و فضای شهری و شهرسازی و غیره...... میشه تولید نرم افزار کرد این سیستم از سی شارپ و جاوا و اکثر زبانهای برنامه نویسی پشتیبانی میکنه که خیلی هم کار کردن با این سیستم جدا از دونستن برنامه نویسی فوت و فن خودشو میخواد و با صراحت کامل می تونم بگم پول خوبی از این راه میشه در آورد

اما در مورد خود GIS :
تو خود انجمن هست یه جستجوی ساده بزنید بهتر از توضیحات من جواب میگیرید.

a1053r
دوشنبه 17 مرداد 1390, 00:51 صبح
از دید برنامه نویس تو جاهایی مثل شهرداری ثبت اسناد و املاک سازمان پارکها و فضای شهری و شهرسازی و غیره...... میشه تولید نرم افزار کرد این سیستم از سی شارپ و جاوا و اکثر زبانهای برنامه نویسی پشتیبانی میکنه که خیلی هم کار کردن با این سیستم جدا از دونستن برنامه نویسی فوت و فن خودشو میخواد و با صراحت کامل می تونم بگم پول خوبی از این راه میشه در آورد

اما در مورد خود GIS :
تو خود انجمن هست یه جستجوی ساده بزنید بهتر از توضیحات من جواب میگیرید.

quantomquery
دوشنبه 17 مرداد 1390, 10:42 صبح
اگه میشه در پایان ، برنامتون رو هم بزارین

complexcoding
دوشنبه 17 مرداد 1390, 10:57 صبح
دوست من یک سوال مهم :
1- پس باید GIS رو هم یاد بگیریم وگر نه از کجا بدونیم این کدها رو شما کجا(تو کدوم بخش) می نویسید؟

a1053r
دوشنبه 17 مرداد 1390, 23:10 عصر
از فراخونی نام ایتم ها می تونی راحت جاش رو پیدا کنید و بدونی کدوم کد ماله کدوم ایتمه خوب اگه کسی سوال فنی نداره میرم سر اتصال به GEODATA که همون مبحث اتصال بانک اطلاعاتی به نقشه هاست

complexcoding
سه شنبه 18 مرداد 1390, 10:59 صبح
بیبین داداش شروع کردی تا آخر برو ها نصف ول نکنی بعد هی پیام بدن چرا ادامه نمی دی.........کجایی.........تو رو خدا ادامه بده .... از این حرفا.
.................................................. .................................................. .................................................. .................................................. .....................
یه پیشنهاد :
می تونی به جای تاپیک زدن این اطلاعات رو به پی دی اف تبدیل کنی بعد از پخش کردنش فرصت داری که در نسخه های بعدی تکمیلش کنی چطوره؟اونجوری کسی که به اینترنت دسترسی نداره هم می تونه یک دقیقه بره کافی نت دانلود کنه تو خونه ازش استفاده کنه.

اول یه سوال؟ ببخشید شما تا آخرش بلد هستید و سر کار می رید؟ درباره خودتون که چی شد رفتید تو این شاخه یه توضیح کامل بدید؟ الان سر همین تخصص دارید کار می کنید؟
__________________________________________________ __________________________________________________ _________________________

نه دیگه حرفی نیست ادامه بدید

a1053r
سه شنبه 18 مرداد 1390, 23:17 عصر
من قصد ول کردن این آموزش رو ندارم چون حق همست یاد بگیرن من راستش 7 سال دارم سی شارپ کار میکنم و از اونجایی که یه بار تو حرفه خودم یه نفر ازم یه سوال پرسید و نتونستم جواب بدم قسم خوردم کاری کنم که تو شهر خودم نفر اول برنامه نویس باشم و راستیتش 4 سال رو GIS,GPS وقت گذاشتم اصولا ادم خود ساخته ای هستم و تا اخر متد روز برنامه نویسی من هستم و میرم جلو

مشخصات تکمیلی من :
آرش حاتمی
شماره تماسم :09116205046
از تماس گرفتن خجالت نکشید مشکلی بود تماس بگیرید تونستم تلفنی حل می کنیم

a1053r
سه شنبه 18 مرداد 1390, 23:27 عصر
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.ADF;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Display;
namespace QueryFilters
{
public sealed partial class MainForm : Form
{
#region class private members
private IMapControl3 m_mapControl = null;
private string m_mapDocumentName = string.Empty;
#endregion
#region class constructor
public MainForm()
{
InitializeComponent();
}
#endregion
private void MainForm_Load(object sender, EventArgs e)
{
//get the MapControl
m_mapControl = (IMapControl3)axMapControl1.Object;
//disable the Save menu (since there is no document yet)
menuSaveDoc.Enabled = false;
}
#region Main Menu event handlers
private void menuNewDoc_Click(object sender, EventArgs e)
{
//execute New Document command
ICommand command = new CreateNewDocument();
command.OnCreate(m_mapControl.Object);
command.OnClick();
}
private void menuOpenDoc_Click(object sender, EventArgs e)
{
//execute Open Document command
ICommand command = new ControlsOpenDocCommandClass();
command.OnCreate(m_mapControl.Object);
command.OnClick();
}
private void menuSaveDoc_Click(object sender, EventArgs e)
{
//execute Save Document command
if (m_mapControl.CheckMxFile(m_mapDocumentName))
{
//create a new instance of a MapDocument
IMapDocument mapDoc = new MapDocumentClass();
mapDoc.Open(m_mapDocumentName, string.Empty);
//Make sure that the MapDocument is not readonly
if (mapDoc.get_IsReadOnly(m_mapDocumentName))
{
MessageBox.Show("Map document is read only!");
mapDoc.Close();
return;
}
//Replace its contents with the current map
mapDoc.ReplaceContents((IMxdContents)m_mapControl. Map);
//save the MapDocument in order to persist it
mapDoc.Save(mapDoc.UsesRelativePaths, false);
//close the MapDocument
mapDoc.Close();
}
}
private void menuSaveAs_Click(object sender, EventArgs e)
{
//execute SaveAs Document command
ICommand command = new ControlsSaveAsDocCommandClass();
command.OnCreate(m_mapControl.Object);
command.OnClick();
}
private void menuExitApp_Click(object sender, EventArgs e)
{
//exit the application
Application.Exit();
}
#endregion
//listen to MapReplaced event in order to
update the statusbar and the Save menu
private void axMapControl1_OnMapReplaced(
object sender, IMapControlEvents2_OnMapReplacedEvent e)
{
//get the current document name from the MapControl
m_mapDocumentName = m_mapControl.DocumentFilename;
if (m_mapDocumentName == string.Empty)
{
menuSaveDoc.Enabled = false;
statusBarXY.Text = string.Empty;
}
else
{
//enable the Save menu and write the doc name to the statusbar
menuSaveDoc.Enabled = true;
statusBarXY.Text = Path.GetFileName(m_mapDocumentName);
}
}
private void axMapControl1_OnMouseMove(
object sender, IMapControlEvents2_OnMouseMoveEvent e)
{
statusBarXY.Text = string.Format("{0}, {1} {2}",
e.mapX.ToString("#######.##"),
e.mapY.ToString("#######.##"),
axMapControl1.MapUnits.ToString().Substring(4));
}
private void btnLandlocked_Click(object sender, EventArgs e)
{
IFeatureLayer fLayer;
fLayer = axMapControl1.get_Layer(2) as IFeatureLayer;
IFeatureClass fClass;
fClass = fLayer.FeatureClass;
IQueryFilter qFilter = new QueryFilter();
IFeatureCursor fCursor;
qFilter.WhereClause = "LANDLOCKED = \'Y\'";
fCursor = fClass.Search(qFilter, true);
double dblArea = 0;
long lngCountries = 0;
lngCountries = fClass.FeatureCount(qFilter);
IFeature feat = fCursor.NextFeature();
while (feat != null)
{
dblArea += Convert.ToDouble(feat.get_Value(10));
// Area in square km is the 11th field
feat = fCursor.NextFeature();
}
MessageBox.Show(String.Format("Number of landlocked countries:
{0}\r\n Area: {1:#} sq km", lngCountries, dblArea));
}
private void btnSpatialFilter_Click(object sender, EventArgs e)
{
IFeatureSelection cntryLyr;
ISelectionSet cntrySel;
ICursor cntryCursor;
cntryLyr = axMapControl1.get_Layer(2) as IFeatureSelection;
cntrySel = cntryLyr.SelectionSet;
cntrySel.Search(null, true, out cntryCursor);
IFeatureCursor featCursor = cntryCursor as IFeatureCursor;
IFeature country;
country = featCursor.NextFeature();
if ((country == null))
{
MessageBox.Show("Please select a country");
return;
}
ISpatialFilter spatFilt;
spatFilt = new SpatialFilter();
IQueryFilter qFilt;
qFilt = spatFilt;
spatFilt.WhereClause = "Population > 2000000";
spatFilt.Geometry = country.Shape;
spatFilt.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;
IFeatureLayer cityLyr;
IFeatureClass cityFClass;
cityLyr = axMapControl1.get_Layer(0) as IFeatureLayer;
cityFClass = cityLyr.FeatureClass;
IFeatureCursor cityCursor;
cityCursor = cityFClass.Search(spatFilt, true);
long lngCities = 0;
lngCities = cityFClass.FeatureCount(spatFilt);
MessageBox.Show("This country has" + "\r\n"
+ lngCities + " cities with population > 2,000,000");
}
private void btnSelectCities_Click(object sender, EventArgs e)
{
IMap map;
map = axMapControl1.ActiveView.FocusMap;
IFeatureSelection featSel;
featSel = m_layer as IFeatureSelection;
IQueryFilter qFilt = new QueryFilter();
qFilt.WhereClause = "Population > 10000000";
if (featSel != null)
featSel.Clear();
else
return;
featSel.SelectFeatures(qFilt,
esriSelectionResultEnum.esriSelectionResultNew, false);
MessageBox.Show(featSel.SelectionSet.Count + " features selected");
IRgbColor grn = new RgbColor();
grn.Green = 255;
featSel.SelectionColor = grn;
axMapControl1.ActiveView.Refresh();
}
private void axTOCControl1_OnMouseDown(object sender,
ITOCControlEvents_OnMouseDownEvent e)
{
IBasicMap map = null;
ILayer layer = null;
object other = null;
object index = null;
esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone;
axTOCControl1.HitTest(
e.x, e.y, ref item, ref map, ref layer, ref other, ref index);
if ((item == esriTOCControlItem.esriTOCControlItemLayer))
{
m_layer = layer;
}
}
}
}

a1053r
سه شنبه 18 مرداد 1390, 23:29 عصر
این نمونه کدی واسه اتصال به GEODATA که اگه فایل کامل GIS رو داشته باشین این بانک همراهش هست و مثل مثال قبلی برید جلو با این تفاوت با نگه داشتن موس مشخصاتی که قبلا در بانک وجود داشته به ایتم انتخاب شده در نقشه اختصاص داده میشه

a1053r
یک شنبه 23 مرداد 1390, 00:35 صبح
دوستان خوبم کسی سوالی در مورد اتصال به دیتا نداره اگه داره بپرسه تا بقیشو برم

complexcoding
یک شنبه 23 مرداد 1390, 18:10 عصر
آقا من چیکار کنم کامپیوترم اسقات شده نمی تونم GIS نصب کنم فعلا شما می تونید درس بدید بعد من سوالامو بپرسم؟؟

a1053r
سه شنبه 25 مرداد 1390, 21:42 عصر
باشه دوستان من درس بعدی با عنوان کار بر روی لایه ها شروع خواهم کرد

ITJennifer
شنبه 12 آذر 1390, 16:06 عصر
من هم میخوام شروع کنم فقط یکی قبلش لطف کنه این سوال رو جواب بده
1- ارزش وقت گذاشتن داره؟
2- چه مدت طول میکشه حرفه ای بشم
3- کجا میتونم کار براش پیدا کنم

z.nasr
چهارشنبه 26 مهر 1391, 09:05 صبح
با سلام
ضمن تشكر از همه دوستاني كه دانششون رو به اشتراك گذاشتن
كسي با Arcgis silverlight كار كرده من سوال دارم ؟؟؟

morteza271
چهارشنبه 26 مهر 1391, 10:37 صبح
سلام دوست عزیز.
بابت این آموزش ازتون ممنونم.
ولی بهتر نبود اول از همه یه توضیحی در مورد این ArcGIS می دادین.
و اینکه مثلا باید چه چیرهایی نصب بشه و کلا چه نیازهایی داره!

اگه لطف کنید و در مورد این موارد هم توضیحاتی بذارین خیلی بهتر میشه!
به نظرم وقتی یه تایپیک با عنوان آموزش میذارین باید از ابتدا شروع کنید و کم کم برین جلو...
نه اینکه شما اومدین کلی کد گذاشتین و نه توضیح در موردشون دادین و نه گفتین که به چه dllهایی نیاز داره و ....

اگه لطف کنید موارد ابتدایی رو هم توضیح بدین و آموزشتون رو کامل کنید ممنون میشم...
با تشکر...

peymanjon
دوشنبه 08 آبان 1391, 08:55 صبح
سلام من داخل MapControlApplication خودم یک نقطه را در axMapControl پیدا کردم و زوم کردم حالا می خوام بفرستمش برای پرینت از اینجا آدرس کمک گرفتم ولی کار نمی کنه:
http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Printing_maps/0001000002w4000000/
اگه می تونید کمک کنید ، لطفاً توجه داشته باشید من map زوم شده را می خوام بفرستم برای پرینت نه کل map.

راستش از axPageLayoutControl اگر map لود کنم با این توابع می تونم بفرستم به پرینت ولی نمی تونم زوم کنم روی یه قسمت خاص و کل نقشه را می فرسته :

//Set printer papers orientation to that of the page.
axPageLayoutControl1.Printer.Paper.Orientation =
axPageLayoutControl1.Page.Orientation;
axPageLayoutControl1.PageLayout.ZoomToPercent((int )axPageLayoutControl1.PageLayout.ZoomPercent);
axPageLayoutControl1.PageLayout.ZoomToWhole();
//Scale to the page.
axPageLayoutControl1.Page.PageToPrinterMapping =
esriPageToPrinterMapping.esriPageMappingScale;
//Send the page layout to the printer.
axPageLayoutControl1.PrintPageLayout();

این قسمتم اگه می تونید کمک کنید .
ممنون.

morteza271
دوشنبه 08 آبان 1391, 10:02 صبح
از آخرین پست ایشون حدود 70 روزه که میگذره!!! پس به احتمال زیاد قصد ادامه دادن و پاسخ به سوالات رو ندارن!!!!!!!!! واقعا توی این سایت ندیم یه آموزش تا انتها جلو بره!!! چرا ما ایرانی ها اینطوری هستیم و پشتکارمون .........

من قصد ول کردن این آموزش رو ندارم چون حق همست یاد بگیرن

اینم بمونه!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

peymanjon
پنج شنبه 11 آبان 1391, 09:03 صبح
خوب من خودم یه کاریش کردم تا اونجا که متوچه شدم mapcontrol خاصیت print نداره بنابراین من با ربط دادن mapcontrol به یک PageLayoutControl تونستم printdocument را به pagelayout متصل کنم و در printpreview نقشه زوم شده ای در map control را نمایش بدهم .این توضیح من خیلی کلی بود و پیاده سازیش یکمی اعصاب خورد کن بود چون لقمه را یه بار دور سرم پیچوندم و قسمت بدش اینه که من باید pagelayout را هم Visible را false کنم چون به در برنامه به کارم نمیاد و قضیه زمانی بدتر شد که نقشه زوم شده را باید با mapcontrol اول save کنم و بعد در pagelayout لود کنم و در نهایت بفرستمش به printpreview .

peymanjon
چهارشنبه 24 آبان 1391, 11:32 صبح
کسی از دوستان اطلاع داره چجوری در فروم خود ArcGIS می شه ثبت نام کرد که اجازه log in بده ؟
http://forums.arcgis.com/
راستش من با IP غیر ایران هم ثبت نام کردم ولی می نویسه اطلاعات در دست بررسی است و اجازه login نمی ده ، الان 7 روزی هست که همین پیغام می ده.

mehti_ip
جمعه 03 آذر 1391, 15:38 عصر
سلام و خسته نباشید چگونه می توان در ARCGIS یک Toolbar با استفاده از زبان Vb و استفاده از function های Arcobjects ساخت؟

FirstLine
یک شنبه 29 بهمن 1391, 08:31 صبح
با سلام
لطفا راهنمایی بفرمایید که برای کد نویسی چه چیزی را باید به ویژوال استودیو و پروژه C#‎ اضافه کنم؟
از کدهای زیر ایراد میگیره:

using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.ADF;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesGDB;
با تشکر

a1053r
جمعه 03 خرداد 1392, 01:11 صبح
عزیزان اموزش به اتمام رسید.بیشتر واقعا ازم برنمیاد چون زحمت زیادی واسشون کشیدم تا یاد گرفتم.بپرسید تا جواب بدم ولی قصد اموزش جامع شون رو ندارم.
این رفرنسها وقتی arc gis devlopment رو نصب میکنید اتوماتیک میان تو سولوشن.

rasoul2023
جمعه 03 خرداد 1392, 07:09 صبح
آقا GIS که یک نرم افزار زمین شناسیه!!!!
می شه با سی شارپ توش کدنویسی کرد؟ اگر یاد بگیریم توش نون داره؟ با چه زبانهای دیگه ای می شه برنامه نویسی کرد ؟

سلام کی گفته GIS برنامه زمین شناسیه ؟ Gis در واقع تشکیل شده از کلمات Geo spacial information system هستش که به بعضیها که دید کوچکی نسبت به GIS دارند Geographic information systemبهش میگند در واقع هسته مرکزی GIS که Toolbox نام داره قادره محاسبات آماری و آنالیزها را انجام بده حالا بسته به هر نیازی این کار انجام میشه در ضمن GIS یکی از تخصصهای نقشه برداری هستش

vahidvpa
پنج شنبه 02 آبان 1392, 17:45 عصر
از اینکه وقت خود را در راستای آموزش دادن GIS به افرادی مبتدی مثل من قرار دادید متشکرم

saeed1717
یک شنبه 13 اردیبهشت 1394, 17:59 عصر
داداش وقتی کل دنیا GIS را به سیستم اطلاعات جغرافیایی ترجمه می کنند شما واسه چی آن را به سیستم اطلاعات مکانی ترجمه می کنید؟ یه کمی دیدتون را جهانی کنید
اینم سایت ESRI
http://www.esri.com/what-is-gis