You are on page 1of 20

‫ﻤﻥ ﻨﺎﺩﻱ ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ‪www.gisclum.

net‬‬

‫ﺃﻭﻻ‪ :‬ﺩﺭﺱ ﻓﻲ ﺒﺭﻤﺠﻴﺔ ﻓﻲ ﻤﺠﺎل ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺒﺭﻨﺎﻤﺞ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ‪Visual Basic‬‬
‫ﻤﻊ ﺃﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ ‪ MapObjects‬ﻤﻥ ﺸﺭﻜﺔ ﺇﻴﺯﺭﻱ ‪ ،‬ﻟﻸﺴﺘﺎﺫ ‪ /‬ﻴﺎﺴﺭ ﻨﻭﺭ ﺍﻟﺩﻴﻥ‬

‫ﺜﺎﻨﻴﺎ‪ :‬ﺩﺭﺴﺎﻥ ﻓﻲ ﺘﺼﻤﻴﻡ ﻭﺍﺠﻬﺔ ﺒﺭﻤﺠﻴﺔ ﺘﺘﻔﺎﻋل ﻤﻊ ﺨﺭﺍﺌﻁ ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ‪ ،‬ﻟﻸﺴﺘﺎﺫ ‪ /‬ﻓﻬﺩ ﺍﻟﻤﻁﻠﻕ‬
‫________________________________________________________________________‬

‫ﺃﻭﻻ‪:‬‬

‫ﺩﺭﻭﺱ ﺒﺭﻤﺠﻴﺔ ﻓﻲ ﻤﺠﺎل ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺒﺭﻨﺎﻤﺞ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ‪ Visual Basic‬ﻤﻊ‬
‫ﺃﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ ‪ MapObjects‬ﻤﻥ ﺸﺭﻜﺔ ﺇﻴﺯﺭﻱ‪.‬‬

‫ﻟﻸﺴﺘﺎﺫ ‪ /‬ﻴﺎﺴﺭ ﻨﻭﺭ ﺍﻟﺩﻴﻥ‬

‫ﺍﻟﻤﺴﺘﻭﻯ‪ :‬ﻤﺒﺘﺩﺉ – ﻤﺘﻭﺴﻁ‬

‫ﻟﻠﻤﺒﺘﺩﺉ ﻓﻲ ﻋﺎﻟﻡ ﺍﻟﺒﺭﻤﺠﺔ ﻭﺍﻟﺫﻱ ﻟﻡ ﺘﺘﺎﺡ ﻟﻪ ﺍﻟﻔﺭﺼﺔ ﻓﻲ ﺘﺠﺭﺒﺔ ﺒﻌﺽ ﺒﺭﺍﻤﺞ ﻟﻐﺔ ﺍﻟﺒﺭﻤﺠﺔ ﻓـﺈﻨﻨﻲ ﻻ ﺃﻨـﺼﺤﻪ‬
‫ﺒﺎﻟﺩﺨﻭل ﻤﺒﺎﺸﺭﺓ ﻓﻲ ﺍﻟﻌﻤل ﻋﻠﻰ ﻤﺜل ﻫﺫﻩ ﺍﻟﺩﺭﻭﺱ‪ ،‬ﻓﻴﺘﻁﻠﺏ ﻤﻨﻪ ﺃﻭﻻ ﺍﻟﻤﻌﺭﻓﺔ ﺒﺄﺴﺎﺴـﻴﺎﺕ ﺍﻟﺒﺭﻤﺠـﺔ ﻭﻜﻴﻔﻴـﺔ‬
‫ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺃﻭﺍﻤﺭﻫﺎ‪ ،‬ﻭﺒﻤﺎ ﺃﻨﻨﺎ ﻨﻌﻤل ﻋﻠﻰ ﻟﻐﺔ ﺒﺭﻤﺠﺔ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﻓﻤﻥ ﺍﻟﻀﺭﻭﺭﻱ ﺇﺠﺎﺩﺓ ﺒﻌـﺽ ﺍﻟﻭﻅـﺎﺌﻑ‬
‫ﺍﻷﺴﺎﺴﻴﺔ ﻓﻴﻪ‪ .‬ﺃﻤﺎ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﺫﻴﻥ ﻟﺩﻴﻬﻡ ﺨﺒﺭﺓ ﻭﻟﻭ ﺒﺴﻴﻁﺔ ﻓﻲ ﺍﻟﻌﻤل ﻤﻊ ﻟﻐﺎﺕ ﺍﻟﺒﺭﻤﺠﺔ ﻭﻫﻭ ﻤﺒﺘﺩﺉ ﻓـﻲ ﻤﺠـﺎل‬
‫ﺒﺭﻤﺠــﺔ ﻨﻅــﻡ ﺍﻟﻤﻌﻠﻭﻤــﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴــﺔ ﻓﻘــﺩ ﺘﺠــﺩ ﻓــﻲ ﻫــﺫﻩ ﺍﻟــﺩﺭﻭﺱ ﻤﻨﻔﻌــﺔ ﻟــﻙ‪.‬‬

‫ﺘﻌﺭﻴﻔﺎﺕ‪:‬‬

‫ﺃﻭﻻ‪ :‬ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ‪MapObjects‬‬

‫ﺃﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ ﻋﺒﺎﺭﺓ ﻋﻥ ﺃﺩﺍﺓ ﺒﺭﻤﺠﻴﺔ ﺘﺠﺎﺭﻴﺔ ﻗﺎﻤﺕ ﺒﺘﻁﻭﻴﺭﻫﺎ ﺸﺭﻜﺔ ‪ ESRI‬ﺍﻟﻤﻌﺭﻭﻓﺔ ﻜﺄﺤـﺩ ﺍﻟـﺸﺭﻜﺎﺕ‬
‫ﺍﻟﺭﺍﺌﺩﺓ ﻓﻲ ﻤﺠﺎل ﺼﻨﺎﻋﺔ ﺍﻟﺒﺭﻤﺠﻴﺎﺕ‪ ،‬ﻭﺘﻌﺭﻑ ﻓﻲ ﻋﺎﻟﻡ ﺍﻟﺒﺭﻤﺠﺔ ﺒﺄﻨﻬـﺎ ﺃﺩﺍﺓ ﺃﻜﺘﻴـﻑ ﺇﻜـﺱ ‪ ActiveX‬ﺘﻘـﻭﻡ‬
‫ﺒﻤﺠﻤﻭﻋﺔ ﻤﺨﺘﻠﻔﺔ ﻤﻥ ﺍﻟﻭﻅﺎﺌﻑ ﻜﻌﻤﻠﻴﺎﺕ ﻋﺭﺽ ﺍﻟﺨﺭﺍﺌﻁ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ﺒﺼﻭﺭﺓ ﺩﻴﻨﺎﻤﻴﻜﻴﺔ‪ ،‬ﻭﺒﻤﺠﻤﻭﻋﺔ ﺃﺨﺭﻯ ﻤـﻥ‬
‫ﻋﻤﻠﻴﺎﺕ ﺍﻻﺴﺘﻌﻼﻡ‪ ،‬ﻭﺘﺤﻠﻴل ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻜﺎﻨﻴﺔ‪ .‬ﻭﻤﻤﺎ ﺘﺠﺩﺭ ﺍﻹﺸﺎﺭﺓ ﺇﻟﻴﻪ ﻫـﻭ ﺃﻥ ﺍﺴـﺘﺨﺩﺍﻡ ﻫـﺫﻩ ﺍﻷﺩﺍﺓ ﺘـﺴﺎﻋﺩ‬
‫ﺍﻟﻤﺒﺭﻤﺞ ﻋﻠﻰ ﺇﻨﺸﺎﺀ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺒﺭﺍﻤﺞ ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ﺘﺅﺩﻱ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﻤﺫﻜﻭﺭﺓ ﻭﻟﻜﻥ ﺒﻘﺎﺒﻠﻴـﺎﺕ‬
‫ﺃﻗل ﻤﻥ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﻜﺒﻴﺭﺓ ﻤﺜل ‪ ArcGIS‬ﻭ ‪ Geomedia‬ﺍﻟﺦ‪..‬‬
‫ﺜﺎﻨﻴﺎ‪ :‬ﺃﻜﺘﻴﻑ ﺇﻜﺱ ﻜﻭﻨﺘﺭﻭل‪ActiveX Control‬‬

‫ﺘﻡ ﺼﻨﺎﻋﺔ ﺃﺩﺍﺓ ﺃﻜﺘﻴﻑ ﺇﻜﺱ ‪ ActiveX‬ﺘﻡ ﻓﻲ ﺍﻷﺴﺎﺱ ﻋﻥ ﻁﺭﻴﻕ ﺸﺭﻜﺔ ﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ ﺍﻟﻤﻌﺭﻭﻓﺔ ﻭﻫﻲ ﻋﺒﺎﺭﺓ‬
‫ﻋﻥ ﻤﻜﻭﻨﺎﺕ ﺒﺭﻤﺠﻴﺔ ﺘﺴﺘﺨﺩﻡ ﻷﻏﺭﺍﺽ ﻤﻌﻴﻨﺔ ﻭﺒﻭﻅﺎﺌﻑ ﻤﺤﺩﺩﺓ‪ ،‬ﻭﺒﺎﺨﺘﺼﺎﺭ ﺸﺩﻴﺩ ﻴﻤﻜﻥ ﺍﻟﻘﻭل ﺒـﺄﻥ ﻤﻜﻭﻨـﺎﺕ‬
‫ﺍﻷﻜﺘﻴﻑ ﺇﻜﺱ ﻻ ﺘﻌﺘﺒﺭ ﺒﺭﺍﻤﺞ ﺒﺤﺩ ﺫﺍﺘﻬﺎ ﺒل ﻫﻲ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺘﻌﻁﻰ ﻟﺒﺭﺍﻤﺞ ﻤﻭﺠﻭﺩﺓ ﺒﺎﻟﻔﻌـل ﻋﻠـﻰ‬
‫ﺍﻟﺠﻬﺎﺯ ﺘﺤﺩﺩ ﻟﻬﺎ ﻤﺩﻯ ﻭﻜﻴﻔﻴﺔ ﺘﺒﺎﺩل ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﻴﻥ ﺒﻌﻀﻬﺎ ﺍﻟﺒﻌﺽ ﻭﻫﻲ ﺘﻌﻠﻴﻤﺎﺕ ﻴﻤﻜﻥ ﻜﺘﺎﺒﺘﻬﺎ ﺒﻠﻐـﺎﺕ ﺒﺭﻤﺠﻴـﺔ‬
‫ﻋﺩﻴﺩﺓ ﻭﻻ ﻴﺸﻜل ﺫﻟﻙ ﺃﻱ ﻓﺭﻕ ﻓﻬﻲ ﻓﻲ ﺍﻟﻨﻬﺎﻴﺔ ﺴﺘﻜﻭﻥ ﺴﻴﻘﺒﻠﻬﺎ ﻨﻅﺎﻡ ﺘﺸﻐﻴل ﺍﻟﻭﻴﻨﺩﻭﺯ ﻭﻴﻨﻔﺫ ﻤﺎﻓﻴﻬـﺎ ﺒـﺩﻭﻥ ﺃﻱ‬
‫ﻨﻘﺎﺵ ﻓﻬﻲ ﻤﻜﺘﻭﺒﺔ ﺨﺼﻴﺼﺎﹰ ﻟﻪ ﻭﺒﺎﻟﻁﺭﻴﻘﺔ ﺍﻟﺘﻲ ﻻ ﻴﻔﻬﻤﻬﺎ ﻏﻴﺭ ﺍﻟﻭﻴﻨﺩﻭﺯ ﻭﻫﻲ ﻤﺜﻠﻬـﺎ ﻤﺜـل ﺍﻟﻔﻴﺠـﻭﺍل ﺒﻴـﺴﻙ‬
‫ﺴﻜﺭﻴﺒﺘﺱ ﺃﻭ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﻌﺎﺩﻴﺔ ﻗﺩ ﺘﻜﺘﺏ ﻟﻤﺨﺘﻠﻑ ﺍﻷﻏﺭﺍﺽ ﺴﻭﺍﺀ ﺍﻟﺨﻴﺭﺓ ﺃﻭ ﺍﻟﺸﺭﻴﺭﺓ‪ .‬ﺇﻀﺎﻓﺔ ﺇﻟـﻰ ﺫﻟـﻙ ﻓﺈﻨـﻪ‬
‫ﻴﻤﻜﻨﻙ ﺼﻨﺎﻋﺔ ﺃﺩﺍﺓ ﺃﻜﺘﻴﻑ ﺃﻜﺱ ﺒﻨﻔﺴﻙ ﺇﺫﺍ ﻜﻨﺕ ﺘﺠﻴﺩ ﺍﻟﺒﺭﻤﺠﺔ ﻭﺘﻀﻤﻨﻬﺎ ﺒﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﻤﺤﺩﺩﺓ ﺘﺴﺎﻋﺩ‬
‫ﺍﻵﺨﺭﻴﻥ ﻋﻠﻰ ﺇﻨﺸﺎﺀ ﺘﻁﺒﻴﻘﺎﺕ ﻤﻌﻴﻨﺔ‪.‬‬

‫ﻓﺄﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﺃﺤﺩ ﺃﺩﻭﺍﺕ ﺃﻜﺘﻴﻑ ﺃﻜﺱ ﻗﺎﻤﺕ ﺸﺭﻜﺔ ﺇﻴﺯﺭﻱ ﺒﺘﻁﻭﻴﺭﻫﺎ ﻭﻫﻲ ﺘﺤﺘﻭﻱ ﻋﻠـﻰ‬
‫ﻤﺎ ﻴﻘﺎﺭﺏ ﻤﻥ ‪ ٥٠‬ﻭﻅﻴﻔﺔ ﻤﻥ ﺍﻟﻤﻤﻜﻥ ﺃﻥ ﺘﻌﻤل ﻋﻠﻰ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺘﻁﺒﻴﻘﺎﺕ ﺍﻟﺒﺭﻤﺠﻴﺔ ﺍﻟﻤﻜﺘﺒﻴﺔ ﻤﺜـل ﻓﻴﺠـﻭﺍل‬
‫ﺒﻴﺴﻙ )‪ ، (VB‬ﻭﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﻟﻠﺘﻁﺒﻴﻘﺎﺕ )‪ ، (VBA‬ﻓﻴﺠﻭﺍل ﺴﺘﻭﺩﻴﻭ ﺩﻭﺕ ﻨﺕ )‪(Visual Stoudio.NET‬‬
‫ﻭﻓﻴﺠﻭﺍل ﺴﻲ ﺒﻠﺱ ﺒﻠﺱ )‪ (++Visual C‬ﻭﺩﻟﻔﻲ )‪ (Delphi‬ﻭﺒﻭﺭﻻﻨﺩ ﺴﻲ ﺒﻠـﺱ ﺒﻠـﺱ ‪(Borland C++‬‬
‫)‪ ،Builder‬ﻓﻴﺠﻭﺍل ﻓﻭﻜﺱ ﺒﺭﻭ )‪ (Visual FoxPro‬ﻭﺒﻭﺭ ﺒﻠﺩﺭ )‪ (Power Builder‬ﻭﺠﺎﻓﺎ‪(Java).‬‬

‫ﺍﻟﻔﺎﺌﺩﺓ ﻤﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻷﺩﺍﺓ‪:‬‬

‫ﺃﻨﻬﺎ ﺘﺴﺎﻋﺩ ﺍﻟﻤﺅﺴﺴﺎﺕ ﻭﺍﻟﺸﺭﻜﺎﺕ ﻭﺍﻟﺠﻬﺎﺕ ﺍﻷﺨﺭﻯ ﻋﻠﻰ ﺇﻨﺠﺎﺯ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ﺒﺴﺭﻋﺔ ﻭﺒﻐﺎﻴﺎﺕ ﻤﺤﺩﺩﺓ‬ ‫‪-‬‬
‫ﻭﻤﻌﻴﻨﺔ‪.‬‬
‫ﺃﻨﻬﺎ ﻻ ﺘﺘﻁﻠﺏ ﻭﺠﻭﺩ ﺨﺒﺭﺍﺀ ﻭﻤﺤﻠﻠﻴﻥ ﻭﺃﺨﺼﺎﺌﻴﻴﻥ ﻟﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴـﺔ ﻟﻠﻌﻤـل ﻋﻠﻴﻬـﺎ‪ ،‬ﻓﺒﺎﻹﻤﻜـﺎﻥ‬ ‫‪-‬‬
‫ﻟﻠﻤﺴﺘﺨﺩﻤﻴﻥ ﺍﻟﻌﺎﺩﻴﻴﻥ ﺃﻥ ﻴﻌﻤﻠﻭﺍ ﻋﻠﻰ ﻤﺜل ﻫﺫﻩ ﺍﻟﺘﻁﺒﻴﻘﺎﺕ ﺍﻟﻤﻨﺸﺄﺓ‪.‬‬
‫ﺘﺴﺎﻋﺩ ﺍﻟﻤﺒﺭﻤﺠﻴﻥ ﻋﻠﻰ ﺭﺒﻁ ﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﺘﻲ ﻴﺼﻨﻌﻭﻨﻬﺎ ﺒﺒﺭﺍﻤﺞ ﺃﺨﺭﻯ ﺩﺍﺨل ﺍﻟﻤﺅﺴﺴﺔ‪.‬‬ ‫‪-‬‬
‫ﺘﺤﺘﻭﻱ ﻋﻠﻰ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﺭﺌﻴﺴﻴﺔ ﻭﺍﻟﺘﻲ ﻏﺎﻟﺒﺎ ﻤﺎ ﺘﻜﻔﻲ ﺤﺎﺠﺔ ﺍﻟﻤﺅﺴﺴﺎﺕ ﻭﺍﻟﺠﻬـﺎﺕ ﺍﻷﺨـﺭﻯ‪،‬‬ ‫‪-‬‬
‫ﻭﺒﺎﻟﺘﺎﻟﻲ ﺍﻻﺴﺘﻌﺎﻀﺔ ﻋﻥ ﺸﺭﺍﺀ ﺒﺭﺍﻤﺞ ﺒﺎﻫﻅﺔ ﺍﻟﺜﻤﻥ‪.‬‬
‫ﺒﻌﺽ ﺍﻷﻤﺜﻠﺔ ﺍﻟﺘﻲ ﺘﺴﺘﻁﻴﻊ ﺃﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ ﺃﻥ ﺘﻘﻭﻡ ﺒﻬﺎ ﺍﻋﺘﻤﺎﺩﺍ ﻋﻠﻰ ﻤﺠﻤﻭﻋـﺔ ﻤـﻥ ﺍﻟﺒـﺭﺍﻤﺞ ﺍﻟﺘﻁﺒﻴﻘﻴـﺔ‬
‫ﻜﻔﻴﺠﻭﺍل ﺒﻴﺴﻙ‪ ،‬ﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ ﺃﻜﺴﺱ‪ ،‬ﺴﻜﻴﻭﺍل ﺴﻴﺭﻓﺭ‪ ،‬ﺃﻭﺭﺍﻜل ﻭﻏﻴﺭﻫﺎ‪...‬‬

‫ﻤﻊ ﺃﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ ﻴﻤﻜﻨﻙ‪:‬‬

‫‪ -‬ﺇﻀﺎﻓﺔ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺨﺭﺍﺌﻁ ﺍﻟﺩﻴﻨﺎﻤﻴﻜﻴﺔ ﻜﻤﺠﻤﻭﻋﺔ ﻁﺒﻘﺎﺕ‪Layers‬‬


‫‪ -‬ﺒﻨﺎﺀ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ‬
‫‪ -‬ﺃﻨﺸﺎﺀ ﺨﺭﺍﺌﻁ ﻤﻭﻀﻭﻋﻴﺔ ‪Thematic Maps‬‬
‫‪ -‬ﻋﺭﺽ ﺍﺴﻡ ﺍﻟﻅﺎﻫﺭﺓ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ‪ Label Text‬ﻤﻥ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ‬
‫‪ -‬ﻋﺭﺽ ﺼﻭﺭ ﺠﻭﻴﺔ ﺃﻭ ﺼﻭﺭ ﻟﻸﻗﻤﺎﺭ ﺍﻻﺼﻁﻨﺎﻋﻴﺔ‬
‫‪ -‬ﺇﻤﻜﺎﻨﻴﺔ ﺍﻟﺘﺤﺭﻴﻙ ‪ Pan‬ﻭﺍﻟﺘﻜﺒﻴﺭ‪/‬ﺍﻟﺘﺼﻐﻴﺭ‪Zoom‬‬
‫‪ -‬ﺭﺴﻡ ﺃﺸﻜﺎل ﻫﻨﺩﺴﻴﺔ ﺃﻭ ﺠﺭﺍﻓﻴﻜﻴﺔ ﻤﺘﻀﻤﻨﺔ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻨﺼﻭﺹ‬
‫‪ -‬ﺭﺴﻡ ﻤﻠﻔﺎﺕ ﺸﻜﻠﻴﺔ‪ShapeFiles‬‬
‫‪ -‬ﺍﺨﺘﻴﺎﺭ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻅﺎﻫﺭﺍﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ﺍﻋﺘﻤﺎﺩ ﻋﻠﻰ ﻤﺒﺩﺃ ﺍﻟﺘﺤﺩﻴﺩ ﺍﻟﻬﻨﺩﺴﻲ ﺒﺭﺴﻡ )ﺩﺍﺌﺭﺓ‪ ،‬ﻤﺭﺒﻊ‪ ،‬ﺨﻁ( ﻋﻠﻰ‬
‫ﺤﺩﻭﺩ ﺍﻟﻅﺎﻫﺭﺓ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ‬
‫‪ -‬ﺍﻨﺘﻘﺎﺀ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﻅﺎﻫﺭﺍﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ﺒﺎﺴﺘﺨﺩﺍﻡ ‪SQL Expression‬‬
‫‪ -‬ﺇﺠﺭﺍﺀ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻹﺤﺼﺎﺀﺍﺕ ﺍﻟﺭﻴﺎﻀﻴﺔ ﻋﻠﻰ ﺍﻟﻅﻭﺍﻫﺭ ﺍﻟﻤﺭﺍﺩ ﺍﻨﺘﻘﺎﺀﻫﺎ‬
‫‪ -‬ﺃﺠﺭﺍﺀ ﻋﻤﻠﻴﺎﺕ ﺍﻻﺴﺘﻌﻼﻡ ﺍﻟﻭﺍﺴﻌﺔ‬
‫‪ -‬ﺘﺤﺩﻴﺙ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ‬
‫‪ -‬ﻜﺘﺎﺒﺔ ﺍﻟﻌﻨﻭﺍﻥ ﺍﻟﺠﻐﺭﺍﻓﻲ ﻭﺍﻟﺒﺤﺙ ﻋﻨﻪ ﺒﺴﻬﻭﻟﺔ‬
‫‪ -‬ﻋﺭﺽ ﻨﻅﺎﻡ ﺍﻹﺤﺩﺍﺜﻴﺎﺕ ﻟﻠﺨﺭﻴﻁﺔ ﻭﺘﻐﻴﻴﺭﻩ ﺃﻴﻀﺎ‬
‫ﺍﻟﺒﺩﺍﻴﺔ ﻤﻊ ﺃﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ‪:‬‬

‫ﺘﺤﻤﻴل ﺃﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ ﺩﺍﺨل ﺒﻴﺌﺔ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ‬

‫ﺃﻭﻻ‪ :‬ﻗﻡ ﺒﺘﺸﻐﻴل ﺒﺭﻨﺎﻤﺞ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﻭﺍﺨﺘﺭ ﻤﻥ ﻤﺭﺒﻊ ﺍﻻﺨﺘﻴﺎﺭﺍﺕ ﺍﻟﻅﺎﻫﺭ ﺃﻤﺎﻤﻙ( ﺨﻴﺎﺭ)‪Standard EXE‬‬

‫ﺴﺘﻅﻬﺭ ﻟﻙ ﺍﻟﻭﺍﺠﻬﺔ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬


‫ﺜﺎﻨﻴﺎ‪ :‬ﺇﻀﺎﻓﺔ ﺃﺩﺍﺓ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ ﻟﻤﺸﺭﻭﻋﻙ‬

‫‪ -١‬ﻤﻥ ﺨﻼل ﺍﻟﻭﺍﺠﻬﺔ ﺍﻟﺴﺎﺒﻘﺔ ﻗﻡ ﺒﺎﻟﻨﻘﺭ ﺠﻬﺔ ﺍﻟﻴﻤﻴﻥ ﻤﻥ ﺍﻟﻤﺎﻭﺱ ﻋﻠﻰ ﺼﻨﺩﻭﻕ ﺍﻷﺩﻭﺍﺕ ﻭﻗﻡ ﺒﺎﺨﺘﻴـﺎﺭ‬
‫ﺨﻴﺎﺭ ﻤﻜﻭﻨﺎﺕ ‪ Components‬ﺃﻭ ﻤﻥ ﺨﻼل ﻗﺎﺌﻤﺔ ﻤﺸﺭﻭﻉ ‪ Project‬ﻭﺍﺨﺘﻴـﺎﺭ‪Components‬‬

‫‪ -٢‬ﻗـﻡ ﺒﺎﺨﺘﻴـﺎﺭ )‪ Esri MapObjects 2.0/2.4 (Last Version‬ﻭﺍﻨﻘـﺭ ﻤﻭﺍﻓـﻕ‪Ok‬‬


‫‪ -٣‬ﻓﻲ ﺼﻨﺩﻭﻕ ﺍﻷﺩﻭﺍﺕ ﺴﻴﻅﻬﺭ ﻟﻙ ﺸﻜل )ﺨﺭﻴﻁﺔ( ﻗﻡ ﺒﺎﺨﺘﻴﺎﺭﻫﺎ‪ ،‬ﻭﻤﻥ ﺜﻡ ﺘﻭﺠﻪ ﺇﻟﻰ ﻭﺍﺠﻬﺔ ﺍﻟﻨﻤﻭﺫﺝ‬
‫ﻭﻗــﻡ ﺒﺘﺤﺩﻴــﺩ ﻤــﺴﺎﺤﺔ ﻟﻠﺨﺭﻴﻁــﺔ‪/‬ﺍﻟﺨــﺭﺍﺌﻁ ﺍﻟﺘــﻲ ﺘﺭﻴــﺩ ﺃﻥ ﺘﻅﻬــﺭ ﺒﻴﺎﻨﺎﺘﻬــﺎ‪.‬‬

‫‪ -٤‬ﺴﻨﻘﻭﻡ ﺍﻵﻥ ﺒﻌﺭﺽ ﺨﺭﻴﻁﺔ ﺍﻟﻭﻻﻴﺎﺕ ﺍﻟﻤﺘﺤﺩﺓ ﺍﻷﻤﺭﻴﻜﻴﺔ ﺒﺎﻤﺘﺩﺍﺩ ‪ .shp‬ﻓﻲ ﻭﺍﺠﻬﺔ ﺍﻟﻨﻤـﻭﺫﺝ )ﻤـﻥ‬
‫ﻋﻠﻰ ﺍﻟﺨﺭﻴﻁﺔ(‪ ،‬ﻭﺫﻟﻙ ﺒﺎﻟﻨﻘﺭ ﺠﻬﺔ ﺍﻟﻴﻤﻴﻥ ﻋﻠﻰ ﺍﻟﻤـﺎﻭﺱ ﻭﺍﺨﺘﻴـﺎﺭ ﺃﻤـﺭ ﺨـﺼﺎﺌﺹ ‪Properties‬‬
‫‪ -٥‬ﺴﺘﻅﻬﺭ ﻟﻙ ﺍﻟﻭﺍﺠﻬﺔ ﺍﻟﺘﺎﻟﻴﺔ‪ ،‬ﻗﻡ ﺒﺈﻀﺎﻓﺔ ‪ Add‬ﻭﺘﺤﺩﻴﺩ ﻤﻭﻗﻊ ﺍﻟﺨﺭﻴﻁـﺔ ﺍﻟﺘـﻲ ﺘﺭﻴـﺩ ﺇﻅﻬﺎﺭﻫـﺎ‪.‬‬

‫ـﺸﻜل‪:‬‬
‫ـﺫﺍ ﺍﻟـ‬
‫ـﺩﻭ ﺒﻬـ‬
‫ـﻙ ﺘﺒـ‬
‫ـﺭﻯ ﺨﺭﻴﻁﺘـ‬
‫ـﺎﻤﺞ ‪ F5‬ﻟﺘـ‬
‫ـﺸﻐﻴل ﺍﻟﺒﺭﻨـ‬
‫ـﻡ ﺒﺘـ‬
‫ـﻕ ﻭﻗـ‬
‫ـﺭ ﻤﻭﺍﻓـ‬
‫‪ -٦‬ﺃﻨﻘـ‬
‫ﻤﻼﺤﻅﺔ‪:‬‬

‫ﺘﺴﺘﻁﻴﻊ ﺃﻴﻀﺎ ﻤﻥ ﺨﻼل ﺼﻨﺩﻭﻕ ﺍﻟﺤﻭﺍﺭ ﺍﻟﺴﺎﺒﻕ ﻤﻥ ﺃﻥ‪:‬‬

‫‪ -١‬ﺘﻐﻴﺭ ﻟﻭﻥ ﺍﻟﺨﺭﻴﻁﺔ ﺍﻟﻤﻌﺭﻭﻀﺔ‬


‫‪ -٢‬ﺘﻐﻴﺭ ﺍﺴﻡ ﺍﻟﺨﺭﻴﻁﺔ‬
‫‪ -٣‬ﺇﻀﺎﻓﺔ ﺃﻜﺜﺭ ﻤﻥ ﺨﺭﻴﻁﺔ ﻭﻻ ﺘﻨﺴﻰ ﺍﻟﺘﺭﺘﻴﺏ ﺍﻟﺘﺎﻟﻲ )ﻨﻘﻁﺔ‪ ،‬ﺨﻁ‪ ،‬ﻤﻀﻠﻊ ﻤﻐﻠﻕ(‬

‫ﻜﻴﻔﻴﺔ ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﻨﺴﺨﺔ ﻤﻥ ﻤﺎﺏ ﺃﻭﺒﺠﻜﺕ‪:‬‬


‫ﺇﻤﺎ ﺸﺭﺍﺌﻬﺎ ﻤﻥ ﺍﻟﻭﻜﻴل ﺍﻟﻤﻌﺘﻤﺩ ﻓﻲ ﺒﻠﺩﻙ‪ ،‬ﺃﻭ ﻴﻤﻜﻨﻙ ﺘﺤﻤﻴﻠﻬﺎ ﻋﻠﻰ ﺠﻬﺎﺯﻙ ﻭﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻟﻔﺘﺭﺓ ﺘﺠﺭﻴﺒﻴـﺔ )ﺜﻼﺜـﺔ‬
‫ﺸﻬﻭﺭ( ﻋﻠﻰ ﺍﻟﻌﻨﻭﺍﻥ ﺍﻟﺘﺎﻟﻲ‪:‬‬

‫‪ESRI has released a 90-day evaluation version of MapObjects available as a‬‬


‫‪free download at‬‬
‫‪http://www.gisclub.net/vb/redirector.php?url=http://www.esri.com/software/ma‬‬
‫‪pobjects/download.html‬‬
‫‪This may be useful for testing and experimenting with MapObjects without‬‬
‫‪having to make the purchase‬‬

‫ﻤﻨﺫ ﻓﺘﺭﺓ ﻭﺠﻴﺯﺓ ﻜﺎﻥ ﺒﺈﻤﻜﺎﻨﻙ ﺍﻟﺩﺨﻭل ﻋﻠﻰ ﺍﻟﻤﻭﻗﻊ ﺍﻟﻤﺫﻜﻭﺭ ﺃﻋﻼﻩ ﻭﺘﺤﻤﻴل ﺍﻟﻨﺴﺨﺔ ﺍﻟﺘﺠﺭﻴﺒﻴﺔ ﻟﻔﺘﺭﺓ ﺜﻼﺜﺔ ﺸﻬﻭﺭ‪،‬‬
‫ﺤﺎﻭﻟﺕ ﺍﻵﻥ ﺍﻟﺩﺨﻭل ﻭﺍﻟﺭﺴﺎﻟﺔ ﻜﺎﻨﺕ‪:‬‬

‫‪The item you requested cannot be found. The item may have been moved or‬‬
‫‪deleted.‬‬

‫ﻻ ﺃﺩﺭﻱ ﺇﻥ ﻜﺎﻨﺕ ﻫﻨﺎﻙ ﻤﻭﺍﻗﻊ ﺃﺨﺭﻯ ﻻ ﺯﺍﻟﺕ ﺘﺴﻤﺢ ﺒﺘﺤﻤﻴل ﺍﻟﻨﺴﺨﺔ ﻟﻤﺩﺓ ﺜﻼﺜﺔ ﺸﻬﻭﺭ ﺃﻡ ﻻ!! ﻭﻗـﺩ ﻭﺠـﺩﺕ‬
‫ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻟﻤﻭﺍﻗﻊ ﻭﻟﻜﻥ ﻟﻸﺴﻑ ﺴﺘﺴﻤﺢ ﻟﻙ ﺒﺘﻨﺯﻴل ﺍﻟﻨﺴﺨﺔ ﻜﺎﻤﻠﺔ )ﺃﻱ ﻏﻴﺭ ﻤﺠﺎﻨﻴﺔ( ﻭﻫـﺫﺍ ﻤﺨـﺎﻟﻑ ﻟﻘﻭﺍﻋـﺩ‬
‫ﺍﻟﻤﺸﺎﺭﻜﺔ ﻓﻲ ﺍﻟﻤﻠﺘﻘﻴﺎﺕ‪.‬‬

‫____________________________________________________________________‬
‫ﺜﺎﻨﻴﺎ‪:‬‬

‫ﺩﺭﻭﺱ ﺘﺼﻤﻴﻡ ﻭﺍﺠﻬﺔ ﺒﺭﻤﺠﻴﺔ ﺘﺘﻔﺎﻋل ﻤﻊ ﺨﺭﺍﺌﻁ ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ‬

‫ﻟﻸﺴﺘﺎﺫ ‪ /‬ﻓﻬﺩ ﺍﻟﻤﻁﻠﻕ‬

‫ﻫﺫﺍ ﺩﺭﺱ ﺒﺴﻴﻁ ﻓﻲ ﺘﺼﻤﻴﻡ ﻭﺍﺠﻬﺔ ﺒﺭﻤﺠﻴﺔ ﺘﺘﻔﺎﻋل ﻤﻊ ﺨﺭﺍﺌﻁ ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴـﺔ ﻭﻟﻘـﺩ ﺍﺴـﺘﺨﺩﻤﺕ‬
‫ﺍﻟﻔﻴﺠﻭﺍل ﺒﻴﺴﻙ ﺍﻟﺘﻁﺒﻴﻘﻲ‪ VBP‬ﺍﻟﻤﺭﻓﻕ ﻤﻊ ﺤﺯﻤﺔ ‪ ArcGIS‬ﻭﺫﻟﻙ ﺤﺘﻰ ﺍﻀﻤﻥ ﺃﻥ ﻤﻌﻅﻡ ﺍﻷﻋـﻀﺎﺀ ﻟـﺩﻴﻬﻡ‬
‫ﺒﺭﻨﺎﻤﺞ ‪ GIS‬ﻭﻤﻥ ﻴﺭﻴﺩ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻔﺠﻭﺍل ﺒﻴﺴﻙ ‪VB‬ﻻ ﺤﺭﺝ ﻓﻲ ﺫﻟﻙ ﻓﻼ ﻴﻭﺠﺩ ﻓﺭﻕ ﺒﻴﻨﻬﻤﺎ ﻓﻲ ﻫﺫﺍ ﺍﻟﺘﻁﺒﻴﻕ‬

‫ﺍﻟﻤﺭﺤﻠﺔ ﺍﻷﻭﻟﻰ‬
‫ﻁﺭﻴﻘﺔ ﺍﻟﺩﺨﻭل ﺇﻟﻰ ﺍﻟﻔﺠﻭﺍل ﺒﻴﺴﻙ ﺍﻟﺘﻁﺒﻴﻘﻲ ﺍﻟﻤﺭﻓﻕ ﻤـﻊ ﺤﺯﻤـﺔ ‪ ArcGIS‬ﻜﻤـﺎ ﻓـﻲ ﺍﻟـﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴـﺔ‬

‫ﺍﻟﻤﺭﺤﻠﺔ ﺍﻟﺜﺎﻨﻴﺔ‬
‫ﻨﻀﻴﻑ ﺍﻟﻭﺍﺠﻬﺔ ﺍﻟﺒﺭﻤﺠﻴﺔ ﻜﻤﺎ ﻓﻲ ﺍﻟﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬
‫ﺍﻟﻤﺭﺤﻠﺔ ﺍﻟﺜﺎﻟﺜﺔ‬
‫ﻨﻀﻴﻑ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻓـﻲ ﺘـﺼﻤﻴﻡ ﺍﻟﻭﺍﺠﻬـﺔ ﻭﻫـﻲ ‪ Mapcontrol‬ﻭ ‪Microsoft Common‬‬
‫‪Dialog Control‬ﻤﻥ ﺨﻼل ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﺎﻟﻴﺔ ﻭﻴﻤﻜﻥ ﺍﻟﻭﺼﻭل ﺇﻟﻴﻬﺎ ﻤﻥ ﺨﻼل ﺍﻟﻀﻐﻁ]‪Ctrl+T‬‬

‫ﺍﻟﻤﺭﺤﻠﺔ ﺍﻟﺭﺍﺒﻌﺔ‬
‫ﻨﺒﺩﺃ ﺒﺘﺼﻤﻴﻡ ﺍﻟﻭﺍﺠﻬﺔ ﻓﻨﺭﺴﻡ ‪ Mapcontrol‬ﻋﻠﻰ ﺍﻟﻭﺍﺠﻬﺔ ﺤﺴﺏ ﺍﻟﺤﺠﻡ ﺍﻟﺫﻱ ﻨﺭﻴﺩﻩ ﺜﻡ ﻨﻀﻊ ﺃﺩﺍﺘﻴﻥ ﻤﻥ‬
‫‪Microsoft Common Dialog Control‬ﻭﻜﻤﺎ ﻨﻀﻊ ﺴﺕ ﺃﺯﺭﺍﺭ ‪ CommandButton‬ﻜﻤﺎ‬
‫ﻓﻲ ﺍﻟﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬

‫ﺍﻟﻤﺭﺤﻠﺔ ﺍﻟﺨﺎﻤﺴﺔ‬
‫ﻨﻘﻭﻡ ﺒﺘﻐﻴﺭ ﺼﻭﺭ ﺍﻷﻴﻘﻭﻨﺎﺕ ﻜﻤﺎ ﻓﻲ ﺍﻟﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬
‫ﺍﻟﻤﺭﺤﻠﺔ ﺍﻟﺨﺎﻤﺴﺔ‬

:‫ﻨﻘﻭﻡ ﺒﺘﻐﻴﺭ ﻤﺴﻤﻰ ﺍﻷﻴﻘﻭﻨﺎﺕ‬


commandButton1 = cmdopenfile
commandButton2 = cmdExtent
commandButton3 = cmdZoomin
commandButton4 = cmdPan
commandButton5 = cmdMouse
commandButton6 = cmdPrinter

‫ ﻜﻤﺎ ﻓﻲ ﺍﻟﺼﻭﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬Name ‫ﻭﺘﺘﻡ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ ﻤﻥ ﺨﻼل ﺨﺎﺼﻴﺔ‬

‫ﺍﻟﻤﺭﺤﻠﺔ ﺍﻟﺴﺎﺩﺴﺔ‬
‫ﻓﻲ ﻫﺫﻩ ﺍﻟﻤﺭﺤﻠﺔ ﻨﻘﻭﻡ ﺒﻜﺘﺎﺒﺔ ﺍﻻﻜﻭﺍﺩ ﺍﻟﺒﺭﻤﺠﻴﺔ ﻭﺘﺘﻡ ﻜﺎﻵﺘﻲ‬

‫ ﻭﺘﻜﺘﺏ ﺍﻟﺸﻔﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬cmdopenfile‫ﺩﺒل ﻜﻠﻙ ﻋﻠﻰ‬


:‫ﻜﻭﺩ‬

CommonDialog1.DialogTitle = "Browse Map Document"


CommonDialog1.Filter = "Map Documents (*.mxd)|*.mxd"
CommonDialog1.ShowOpen
MapControl1.LoadMxFile CommonDialog1.FileName

‫ ﻭﺘﻜﺘﺏ ﺍﻟﺸﻔﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬cmdExtent‫ﺩﺒل ﻜﻠﻙ ﻋﻠﻰ ﺃﻴﻘﻭﻨﺔ‬


:‫ﻜﻭﺩ‬

MapControl1.Extent = MapControl1.FullExtent

‫ ﻭﺘﻜﺘﺏ ﺍﻟﺸﻔﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬cmdZoomin‫ﺩﺒل ﻜﻠﻙ ﻋﻠﻰ ﺃﻴﻘﻭﻨﺔ‬


:‫ﻜﻭﺩ‬

MapControl1.MousePointer = esriPointerZoomIn
‫ ﻭﻨﻜﺘﺏ ﺍﻟﺸﻔﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬cmdPan‫ﺩﺒل ﻜﻠﻙ ﻋﻠﻰ ﺃﻴﻘﻭﻨﺔ‬
:‫ﻜﻭﺩ‬

MapControl1.MousePointer = esriPointerPan
MapControl1.Pan

‫ ﻭﻨﻜﺘﺏ ﺍﻟﺸﻔﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬cmdMouse‫ﺩﺒل ﻜﻠﻙ ﻋﻠﻰ ﺃﻴﻘﻭﻨﺔ‬


:‫ﻜﻭﺩ‬

MapControl1.MousePointer = esriPointerDefault

‫ ﻭﻨﻜﺘﺏ ﺍﻟﺸﻔﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬cmdPrinter‫ﺩﺒل ﻜﻠﻙ ﻋﻠﻰ ﺃﻴﻘﻭﻨﺔ‬


:‫ﻜﻭﺩ‬

CommonDialog2.ShowPrinter
MapControl1.MousePointer = esriPointerHourglass

‫ ﻭﻨﻜﺘﺏ ﺍﻟﺸﻔﺭﺓ ﺍﻟﺘﺎﻟﻴﺔ‬Mapcontrol1‫ﺩﺒل ﻜﻠﻙ ﻋﻠﻰ‬


:‫ﻜﻭﺩ‬

If button = 1 Then
MapControl1.Extent = MapControl1.TrackRectangle
ElseIf button = 2 Then
MapControl1.Pan
End If

‫ﻭﺍﻵﻥ ﺘﻤﺘﻊ ﺒﺒﺭﻨﺎﻤﺠﻙ ﺍﻟﺠﺩﻴﺩ‬

‫ﻨﺴﻌﺩ ﺒﺎﻨﺘﻘﺎﺩﺍﺘﻜﻡ ﻤﻊ ﺍﻟﺘﺼﻭﻴﺏ ﻓﻼ ﺘﺒﺨﻠﻭﺍ ﻋﻠﻴﻨﺎ ﺒﻬﺎ‬


‫ﻭﺃﺨﻴﺭﺍﹰ ﻨﺴﺄل ﺍﻷﻋﻀﺎﺀ ﺍﻟﺩﻋﺎﺀ‬
___________________________________________________________________
‫ﺍﻟﺩﺭﺱ ﺍﻟﺜﺎﻨﻲ ﻓﻲ ﺘﺼﻤﻴﻡ ﻭﺍﺠﻬﺔ ﺒﺭﻤﺠﻴﺔ ﺘﺘﻔﺎﻋل ﻤﻊ ﺨﺭﺍﺌﻁ ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ‬

‫ﻓﻲ ﻫﺫﺍ ﺍﻟﺩﺭﺱ ﺴﻭﻑ ﻨﺘﻌﺎﻤل ﻤﻊ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﺘﺎﺤﺔ ﻭﺍﻟﻤﺘﻴﺴﺭﺓ ﻟﻠﻤﺒﺭﻤﺞ ﻓﻲ ﻨﻅﻡ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ ﻭﺴـﻭﻑ‬
‫ﻴﺘﻤﻴﺯ ﻫﺫﺍ ﺍﻟﺩﺭﺱ ﺒﺈﻀﺎﻓﺔ ﺃﻭﺍﻤﺭ ﺠﺩﻴﺩﺓ‪ ،‬ﻜﻡ ﻤﻥ ﺍﻷﻋﻀﺎﺀ ﺴﺄل ﻋﻨﻬﺎ ﻭﺤﺎﻭل ﺃﻥ ﻴﺠﺩ ﻟﻬﺎ ﻋﻥ ﺠﻭﺍﺏ ﻭﻟﻜﻥ ﺩﻭﻥ‬
‫ﺠﺩﻭﻯ‪.‬‬

‫ﻭﻻﻥ ﻨﻘﻭل ﻟﻬﻡ ﺸﺩﻭﺍ ﺍﻷﺤﺯﻤﺔ ﻭﺴﺘﻌﺩﻭ ﻟﻼﻨﻁﻼﻕ ﻓﻲ ﺘﺼﻤﻴﻡ ﻭﺍﺠﻬﺔ ﺒﺭﻤﺠﻴﺔ ﺘﻌﻤل ﺒﻜﻔﺎﺀﺓ ﻤـﻊ ﺨـﺭﺍﺌﻁ ﻨﻅـﻡ‬
‫ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﺠﻐﺭﺍﻓﻴﺔ‬

‫ﺍﻟﺨﻁﻭﺓ ﺍﻷﻭﻟﻰ‪:‬‬
‫ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻓﻲ ﺘﺼﻤﻴﻡ ﺍﻟﻭﺍﺠﻬﺔ‬
‫‪1- Mapcontrol‬‬
‫‪2- Microsoft Common Dialog Control‬‬
‫‪3 Toolbar‬‬
‫‪4- ImageList‬‬
‫‪5- Label‬‬
‫ﻭﺍﻟﺤﻤﺩ ﺍﷲ ﻜـل ﻫـﺫﻩ ﺍﻟﻤﻜﻭﻨـﺎﺕ ﻤﺘـﻭﻓﺭﺓ ﻟـﺩﻴﻜﻡ ﻭﺘـﺴﺘﻁﻴﻌﻭﻥ ﺇﻀـﺎﻓﺘﻬﺎ ﻤـﻥ ﺨـﻼل ﺍﻟﻨﺎﻓـﺫﺓ ﺍﻟﺘﺎﻟﻴـﺔ‬
‫ﻭﺃﻋﺘﻘﺩ ﺃﻨﻜﻡ ﺘﻌﺭﻓﻭﻥ ﻜﻴﻑ ﺍﻟﻭﺼﻭل ﺇﻟﻰ ﻫﺫﻩ ﺍﻟﻨﺎﻓﺫﺓ ) ﺭﺍﺠﻊ ﺍﻟﺩﺭﺱ ﺍﻷﻭل(‬

‫ﺍﻟﺨﻁﻭﺓ ﺍﻟﺜﺎﻨﻴﺔ‬
‫ﻨﺭﺴﻡ ﻫﺫﻩ ﺍﻷﺩﻭﺍﺕ ﻋﻠﻰ ﺍﻟﻭﺍﺠﻬﺔ ﺍﻟﺒﺭﻤﺠﻴﺔ‬
‫ﺍﻟﺨﻁﻭﺓ ﺍﻟﺜﺎﻟﺜﺔ‬
‫ﻨﺄﺨﺫ ‪ Right Click‬ﻋﻠﻰ ﺃﺩﺍﺓ ‪ ImageList‬ﺜﻡ ﻨﺨﺘﺎﺭ ‪ Properties‬ﻜﻤﺎ ﻫﻭ ﻤﻭﻀﺢ ﻓﻲ ﺍﻟﺼﻭﺭﺓ ﺍﻟـﺴﺎﺒﻘﺔ‬
‫ﺘﻅﻬﺭ ﻟﻨﺎ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﺎﻟﻴﺔ‬

‫ﻤﻥ ﺨﻼل ﺃﻴﻘﻭﻨﺔ ‪ Insert Picture‬ﻨﺴﺘﻁﻴﻊ ﺇﻀﺎﻓﺔ ﺼﻭﺭ ﺍﻷﻴﻘﻭﻨﺎﺕ ) ﻭﺃﻜﻴﺩ ﺘﻌﺭﻓﻭﻥ ﻤـﺴﺎﺭ ﻤﻜـﺎﻥ ﺼـﻭﺭ‬
‫ﺍﻷﻴﻘﻭﻨﺎﺕ ( ﺭﺍﺠﻊ ﺍﻟﺩﺭﺱ ﺍﻟﺴﺎﺒﻕ( ﻭﻫﻨﺎ ﻴﺠﺏ ﻋﻠﻴﻨﺎ ﺍﻟﺩﻗﺔ ﺒﻤﺎ ﻨﻜﺘﺒﻪ ﻫل ﻷﺤﺭﻑ ﻜﺒﺘل ﺃﻭ ﺍﺼﻤﻭل ﻭﺤﻔﻅ ﺘﺭﺘﻴﺏ‬
‫ﻤﻜﺎﻥ ﺍﻷﻴﻘﻭﻨﺎﺕ ﻭﻴﺴﺘﺤﺴﻥ ﺇﺤﻀﺎﺭ ﻭﺭﻗﺔ ﻭﻗﻠﻡ‬
‫‪Key . Index . Image‬‬
‫ﺼﻭﺭﺓ ﻓﺘﺢ ﻤﻠﻑ‪. 1 . Open‬‬
‫ﺼﻭﺭﺓ ﺇﻀﺎﻓﺔ ﻁﺒﻘﺔ ‪. LoadData٢ .‬‬
‫ﺼﻭﺭﺓ ﻤﺅﺸﺭ ﺍﻟﺴﻬﻡ ‪. Pointer٣ .‬‬
‫ﺼﻭﺭﺓ ﺍﻟﺯﻭﻭﻡ ‪. Zoom٤ .‬‬
‫ﺼﻭﺭﺓ ﺍﻟﻭﻀﻊ ﺍﻟﻁﺒﻴﻌﻲ ‪. FullExtent٥ .‬‬
‫ﺼﻭﺭﺓ ﺍﻻﺴﺘﻌﻼﻡ ‪. Identify ٦ .‬‬
‫ﺼﻭﺭﺓ ﺘﺤﺩﻴﺩ ﺍﻟﻅﺎﻫﺭﺍﺕ ‪. Trackevents٧ .‬‬

‫ﺒﻌﺩ ﻻﻨﺘﻬﺎﺀ ﻨﻀﻐﻁ ﻋﻠﻰ‪OK‬‬

‫ﺍﻟﺨﻁﻭﺓ ﺍﻟﺭﺍﺒﻌﺔ‬
‫ﻨﺄﺨﺫ ‪ Right Click‬ﻋﻠﻰ ﺃﺩﺍﺓ ‪ Toolbar‬ﺜﻡ ﻨﺨﺘﺎﺭ ‪ Properties‬ﻜﻤﺎ ﻫﻭ ﻤﻭﻀﺢ ﻓﻲ ﺍﻟﺼﻭﺭﺓ ﺘﻅﻬﺭ ﻟﻙ‬
‫ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﺎﻟﻴﺔ ﻭﻗﻭﻡ ﺒﺘﻐﻴﺭ ﻤﺎﻫﻭ ﻤﻭﻀﺢ ﻓﻲ ﺭﻗﻡ ) ‪(٢‬‬
‫ﺒﻌﺩ ﺫﻟﻙ ﺍﻨﺘﻘل ﺇﻟﻰ ﺍﻟﺘﺒﻭﻴﺏ ‪ Button‬ﺘﻅﻬﺭ ﻟﻙ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﺎﻟﻴﺔ‬

‫ﻤﻥ ﻫﺫﻩ ﺍﻟﻨﺎﻓﺫﺓ ﻨﻘﻭﻡ ﺒﺈﻀﺎﻓﺔ ﺍﻷﻴﻘﻭﻨﺎﺕ ﺍﻟﺘﻲ ﺼﻤﻤﻨﺎﻫﺎ ﻓﻲ ﺍﻟﺨﻁﻭﺓ ﺍﻟﺜﺎﻟﺜﺔ ﻭﻫﻨﺎ ﺘﻌﺭﻓﻭﻥ ﻟﻤﺎﺫﺍ ﻁﻠﺒﻨﺎ ﻤﻨﻜﻡ ﺇﺤﻀﺎﺭ‬
‫ﻭﺭﻗﺔ ﻭﻗﻠﻡ‬

‫ﻓﻲ ﺭﻗﻡ ) ‪ ( ١‬ﻴﻤﺜل ﺭﻗﻡ ﺍل ‪ 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

OnMouseDown‫ ﻋﻥ ﺍﻟﺤﺩﺙ‬Mapcontrol ‫ﻨﻀﻴﻑ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﺇﻟﻰ‬


:‫ﻜﻭﺩ‬
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‬‬
‫;‪'Ýå&Iuml‬‬
‫;‪ÇáãØá&THORN‬‬

‫ﺍﻟﺨﻁﻭﺓ ﺍﻟﺴﺎﺩﺴﺔ‬

‫ﻭﺍﻵﻥ ﻨﻀﻴﻑ ﻤﻠﻔﺎﺕ ﺍﻟﻨﻅﺎﻡ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻤﻥ ‪ References‬ﺤﺘﻰ ﻻ ﺘﻅﻬﺭ ﻟﻜﻡ ﺍﻟﺭﺴﺎﺌل ﺍﻟﻤﺯﻋﺠـﺔ ﻭﺘﺨﺒـﺭﻜﻡ‬
‫ﺒﻭﺠﻭﺩ ﺨﻁﺄ‬

‫ﻭﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻫﻲ ) ﺃﻨﻅﺭ ﺍﻟﺼﻭﺭﺓ(‬


‫ﻭﺍﻵﻥ ﺘﻤﺘﻊ ﺒﺒﺭﻨﺎﻤﺠﻙ ﺍﻟﺠﺩﻴﺩ‬

You might also like