صفحة 1 من 5 123 ... الأخيرةالأخيرة
النتائج 1 إلى 10 من 48
  1. #1
    الصورة الرمزية فهد المطلق
    فهد المطلق غير متصل مشرف ملتقى مطوري نظم المعلومات الجغرافية
    تاريخ التسجيل
    Aug 2007
    المشاركات
    132

    الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    [align=center]~*¤ô§ô¤*~*¤ô§ô¤*~الدرس الثاني~*¤ô§ô¤*~*¤ô§ô¤*~[/align]


    في هذا الدرس سوف نتعامل مع الأدوات المتاحة والمتيسرة للمبرمج في نظم المعلومات الجغرافية وسوف يتميز هذا الدرس بإضافة أوامر جديدة، كم من الأعضاء سأل عنها وحاول أن يجد لها عن جواب ولكن دون جدوى .
    ولان نقول لهم شدوا الأحزمة وستعدو للانطلاق في تصميم واجهة برمجية تعمل بكفاءة مع خرائط نظم المعلومات الجغرافية


    [align=center]ونقول بالبداية][][§¤°^°¤§][][ ( بسم الله مجريها ومرساها)][][§¤°^°¤§][][[/align]


    الخطوة الأولى

    الأدوات المطلوبة في تصميم الواجهة

    1- Mapcontrol
    2- Microsoft Common Dialog Control
    3 Toolbar
    4- ImageList
    5- Label


    والحمد الله كل هذه المكونات متوفرة لديكم وتستطيعون إضافتها من خلال النافذة التالية
    وأعتقد أنكم تعرفون كيف الوصول إلى هذه النافذة ( راجع الدرس الأول

    )


    الخطوة الثانية

    نرسم هذه الأدوات على الواجهة البرمجية



    الخطوة الثالثة

    نأخذ Right Click على اداة ImageList ثم ناختار Propreties كما هو موضح في الصورة السابقة تظهر لنا النافذه التالية



    من خلال ايقونة Insert Picture نستطيع إضافة صور الأيقونات ( وأكيد تعرفون مسار مكان صور الايقونات ) راجع الدرس السابق
    وهنا يجب علينا الدقة بمانكتبه هل لاحرف كبتل او اصمول وحفظ ترتيب مكان الايقونات ويستحسن احضار ورقة وقلم


    Key . Index . Image

    صورة فتح ملف . 1 . Open
    صورة اضافة طبفة . 2 . LoadData
    صورة مؤشر السهم . 3 . Pointer
    صورة الزووم . 4 . Zoom
    صورة الوضع الطبيعي . 5 . FullExtent
    صورة الاستعلام . 6 . Identify
    صورة تحديد الظاهرات . 7 . Trackevents

    بعد لانتهاء نضغط على OK


    الخطوة الرابعة

    نأخذ Right Click على اداة Toolbar ثم ناختار Propreties كما هو موضح في الصورة تظهر لك النافذة التالية وقوم بتغير ماهو موضح في رقم ( 2 )


    بعد ذلك انتقل الى التبويب Button تظهر لك النافذة التالية



    من هذه النافذة نقوم بإضافة الايقونات التي صممناها في الخطوة الثالثة وهنا تعرفون لماذا طلبنا منكم إخضار ورقة وقلم

    في رقم ( 1 ) يمثل رقم ال Index وتفقنا ان رقم واحد هو فتح ملف والان ماعليك الا كتابة Open في خانة رقم ( 4 , 5 , 6 ) وبعد ذلك تضيف الايقونه الثانية من خلال الضغط على رقم ( 7 ) Insert Button وتفقنا انها تكون إضافة بيانات وتكتب LoadData في خانة رقم ( 4 , 5 , 6 ) وهكذا كرر العملية مع كل الايقونات

    حتى يخرج شكلها النهائي بهذا الشكل




    الخطوة الخامسة


    نقوم بإضافة الأكواد الى الواجهة البرمجية

    اعمل دبل كلك على Toolbar وكتب الكود التالي
    كود:
    Private Sub Toolbar1_ButtonClick(ByVal button As MSComctlLib.button)
    'ÝåÏ ÇáãØáÞ
    With MapControl1
      
      Select Case button.Key
    
        Case "Open"
         CommonDialog1.DialogTitle = "Browse Map Document"
      CommonDialog1.Filter = "Map Documents (*.mxd)|*.mxd"
      CommonDialog1.ShowOpen
      MapControl1.LoadMxFile CommonDialog1.FileName
         Case "LoadData"
         'Get IGxDialog interface
      Dim pGxDialog As IGxDialog
      Set pGxDialog = New GxDialog
      'Get IGxObjectFilter interface
      Dim pGxObjectFilter As IGxObjectFilter
      Set pGxObjectFilter = New GxFilterFeatureClasses
      'Set GxDialog properties
      Set pGxDialog.ObjectFilter = pGxObjectFilter
      pGxDialog.AllowMultiSelect = True
      pGxDialog.Title = "Add Feature Data"
      
      'Get IEnumGxObject
      Dim pEnumGxObject As IEnumGxObject
      'Display the GxDialog and set the EnumGxObject. Exit if user cancel the dialog
      If pGxDialog.DoModalOpen(MapControl1.hWnd, pEnumGxObject) = False Then Exit Sub
       Dim pFeatureLayer As IFeatureLayer
      Dim pFeatureClass As IFeatureClass
      Dim pGxDataset As IGxDataset
      
      'Get IGxObject interface
      Dim pGxObject As IGxObject
      pEnumGxObject.Reset
      Set pGxObject = pEnumGxObject.Next
      'Loop through the GxObjects
      Do While Not pGxObject Is Nothing
        'Query interface for IGxDataset interface
        Set pGxDataset = pGxObject
        'Get IFeatureClass interface
        Set pFeatureClass = pGxDataset.Dataset
        'Get IFeatureLayer interface
        Set pFeatureLayer = New FeatureLayer
        'Set layer properties
        Set pFeatureLayer.FeatureClass = pFeatureClass
        pFeatureLayer.Name = pFeatureClass.AliasName
        'Add the layer to the MapControl
        MapControl1.AddLayer pFeatureLayer, 0
        'Add the layer name to the control
        
        Set pGxObject = pEnumGxObject.Next
      Loop
      
        Case "Zoom"
                  .MousePointer = esriPointerZoomIn
        Case "Pointer"
                MapControl1.MousePointer = esriPointerDefault
        Case "Pan"
                MapControl1.MousePointer = esriPointerPan
                MapControl1.Pan
        Case "Fullextent"
                MapControl1.Extent = MapControl1.FullExtent
        Case "Trackevents"
               MapControl1.MousePointer = esriPointerHotLink
        Case "query"
              .MousePointer = esriPointerCrosshair
        Case "Identify"
             MapControl1.MousePointer = esriPointerDefault
               Dim pIdentifyDialog As IIdentifyDialog
                    Dim pIdentifyDialogProps As IIdentifyDialogProps
                    Dim pEnumLayer As IEnumLayer
                    Dim pLayer As ILayer
                    Dim pActiveView As IActiveView
                    '  Set pMxDoc = Application.Document
                    Set pActiveView = Me.MapControl1.ActiveView.FocusMap
                    
                    
                    'Create a new IdentifyDialog and associate it
                    'with the focus map and the map's display
                    Set pIdentifyDialog = New IdentifyDialog
                    Set pIdentifyDialogProps = pIdentifyDialog 'QI
                    Set pIdentifyDialog.Map = Me.MapControl1.ActiveView.FocusMap
                    Set pIdentifyDialog.display = pActiveView.ScreenDisplay
                    
                    'Clear the dialog on each mouse click
                    pIdentifyDialog.ClearLayers
                    
                    'Perform an identify on all of the layers the dialog
                    'says are searchable
                    Set pEnumLayer = pIdentifyDialogProps.Layers
                    pEnumLayer.Reset
                    Set pLayer = pEnumLayer.Next
                    Do While Not pLayer Is Nothing
                      pIdentifyDialog.AddLayerIdentifyPoint pLayer, x, y
                      Set pLayer = pEnumLayer.Next
                    Loop
                    
                    pIdentifyDialog.Show
      
      End Select
     End With
    End Sub

    نضيف الكود التالي الى Mapcontrol عن الحدثOnMouseDown


    كود:
    If button = vbLeftButton Then
    MapControl1.Extent = MapControl1.TrackRectangle
    End If
    With Toolbar1.Buttons
    If .Item("Zoom").Value = tbrPressed Then
    MapControl1.Extent = MapControl1.TrackRectangle
    ElseIf .Item("Pan").Value = tbrPressed Then
    MapControl1.Pan
    ElseIf .Item("Trackevents").Value = tbrPressed Then
    AddGeoEvent mapX, mapY
    ElseIf .Item("query").Value = tbrPressed Then
     SearchShape
    End If
    End With
    نضيف الكود التالي الى Mapcontrol عن الحدثOnMouseMove

    كود:
    Label1.Caption = "1:" & MapControl1.MapScale   'ÝåÏ ÇáãØáÞ
    الخطوة السادسة

    والآن نضيف ملفات النظام المطلوبة من References حتى لا تظهر لكم الرسائل المزعجة وتخبركم بوجود خطأ



    والملفات المطوبة هي ( أنظر الصورة)



    [align=center]
    والآن تمتع ببرنامجك الجديد
    [/align]




    [align=center]«®°·.¸.•°°·.¸¸.•°°·.¸.•°®»وأخيراً نسألكم الدعاء لي و لي والدي«®°·.¸.•°°·.¸¸.•°°·.¸.•°®»[/align]
    [align=center][mshosh2]http://up1.mlfnt.net/images/nyfiy0fvtw9p7m9yp1n1.gif[/mshosh2][/align]

    [align=center]موقع الشخصي
    [http://faculty.ksu.edu.sa/falmutlaq/default.aspx[/align]
  2. #2
    تاريخ التسجيل
    Jan 2007
    الدولة
    banha, egypt
    المشاركات
    411

    Post رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    سلمت يداك يا أخ فهد وبارك الله فيك ولك

    علي فكرة تم حذف الموضوع المكرر

    بالتوفيق
    ,Best Regards
    Dr. Mohamed Gamil Khatab
    دكتور/ محمد جميل خطاب
    Ph. D of Applied Geomorphology "geography" & GIS
    دكتوراه في الجغرافيا ونظم المعلومات الجغرافية
    El Khattab office for mapping and surveying services & GIS
    مكتب الخطاب لخدمات المساحة والخرائط ونظم المعلومات الجغرافية
    BENHA,EGYPT
    بنها -قليوبية - مصر
    Email: elgameel_nri@yahoo.com
    Tel.home : (+2) 0133269985
    Mob : (+2) 01220804572
    Web Site: http://cid-a33cde5fbb7d63bb.skydrive...px?sa=13911968
    thanks
  3. #3
    تاريخ التسجيل
    Jul 2007
    الدولة
    in wonderful home
    المشاركات
    358

    رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    بارك الله فيك وفيما تقدم جزاك الله عنا خيرا
    دمت في امان
    [align=center]استغفر الله رب العالمين[/align]

    إبدأ بالاستعانه بالله ثم بنفسك وتوكل على الله وأخلص النية لله وحده وتذكر دوماً أن العلماء ورثة الأنبياء وأن الله عز وجل أختص أهل العلم بأنهم الذين يخشونه عز وجل (إنما يخشى الله من عباده العلماء)، وأحرص دوماً على أن لا تكون طبعة مكررة من غيرك حتى ولو كلفك الأمر أحياناً الصدام فأولى بك أن تدافع عما أعتقدته من أن تكون عقل ممسوخ وفكر عاجز
  4. #4
    تاريخ التسجيل
    Sep 2005
    المشاركات
    599

    رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    أخى فهد رغم انه مش اهتمامى البرمجة لكن ما تقدمه من دروس تشجع على الدخول فى هذا المجال

    بارك الله فيك واعدت الروح للمنتدى بهذه الدروس المتخصصة جدا والتى تنطلق بالمنتدى إلى أفاق جديدة لم يتطرق إليها أى موقع أخر
    أرجو الدعاء لى يا اخوان بالله عليكم ، فانا فى حاجة لهذا الدعاء فى ظهر الغيب ، بتفريج الهم وتنفيس الكرب فأنا في أشد الحاجة لدعائكم

    اخوكم مختار الحسانين
  5. #5

    رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    بارك الله فيك اخى فهد المطلق ونرجوا الاستمرار
    اللـهم إجعـلني خيـراً مما يظنونـ ..واغفـر لـيــ مالا يعلمون
    تلاوة القران الكريم
    http://www.tvquran.com/
    موقع الحبيب رسول الله صلى الله عليه وسلم
    http://www.rasoulallah.net/

    http://gisibrahim.blogspot.com/

    ibrahimgis2005@yahoo.com

    فيس بوك
    http://www.facebook.com/photo.php?fb...#!/ibrahim.gis
  6. #6
    تاريخ التسجيل
    Mar 2006
    الدولة
    Holly Makkah
    المشاركات
    850

    رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    [align=center]غفر الله لك و لوالدك وجزاكما خير الجزاء

    [/align]
  7. #7
    تاريخ التسجيل
    Dec 2005
    المشاركات
    218

    رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    بارك الله فيك وفي جهودك يا فهد
    وأقول لمختار نعم ثم نعم فأنت والجميع لها
    أستغفر الله الذي لا إله إلا هو الحي القيوم وأتوب إليه ... اللهم أنفعنا بعلمنا واجعله حجة لنا لا علينا


    موقعي الشخصي:
    http://faculty.ksu.edu.sa/ghamdiam/default.aspx
  8. #8

    رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    اخى العزيز فهد المطلق
    شكرا كثيرا لك فقد قمت بحل الكثير من المشاكل التى واجهاتنى
    والحمد لله بفضل الله ثم لك قد تمكنت فى التغلب عليها
    ونتمنى عدم التوقف عن هذا الابداع ومحاولة التقدم الى الوصول الى مرحلة الاحتراف باذن الله
    ولى استفسار صغير ماهو الكود الخاص بعمل zoom out
    وارجو من حضرتك التواصل معنا وايضا من الاخوة الاعضاء ونتمنى ايضا طرح الاسئلة والمناقشات للاستفادة
    وغفر الله لك ولواالدك
    فى امن الله
  9. #9

    رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    شكرا لك اخي فهد ما قصرت

    جزاك الله كل خير

    يا طيب انا جربت الدرس التاني طلعلعى غلط وخصوصا في كود toolbar وخصوصا المتغيرا x ,y

    بتعمل معرف اذا بتحمل المشروع اللى عملتو مفتوح المصدر

    شكرا مسبقا
  10. #10
    تاريخ التسجيل
    May 2008
    المشاركات
    57

    رد : الدرس الثاني في تصميم واجهة برمجية تتفاعل مع خرائط نظم المعلومات الجغرافية

    السلام عليكم
    مشكور كتير اخى فهد على هدا المجهود
    وجارى التنفيذ
    كان لدى استفسار فى مشاركة ماضية عن الاستعلام ، وقد تكرمت ورفعت بروقرام
    بس لقيته ما الشئ اللى انا طالبته ، انا بدى اعمل تكست بوكس وكوماند ،
    فى التكست يكتب اليوزر اسم المنطقة مثلا ، ويضغط ع الكوماند ويعطيه تقرير عن هدى المنطقة فقط



    وشكرا
    انا فى انتظار الرد
صفحة 1 من 5 123 ... الأخيرةالأخيرة

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •