حالت آفلاین-موسسه چشم انداز هزاره سوم ملل-آموزش کاربردی GIS و RS
بسیاری از سازمانها به دلایل امنیتی به اینترنت دسترسی ندارند و از اینترانت استفاده میکنند. در این مواقع از حالت آنلاین برای توسعهی JavaScript API استفاده نمیشود. یک راه حل این است که کتابخانهی ArcGIS JavaScript API را دانلود کنید و در وبسایت به آن ارجاع دهید. قبل از شروع باید مطمئن باشید که IIS را نصبکردهاید. پوشهی arcgis_js_api (کتابخانهی ArcGIS JavaScript API) در مسیر 7364EN_03_ Files\AGSA\jsapi35 قرار دارد. این پوشه را در مسیر c:\inetpub\wwwroot کپی کنید. ویرایشگر متنی خود را بازکنید و کد مشابهی که در حالت آنلاین استفاده کردیم را اضافه کنید. فقط یک تغییر کوچک باید ایجاد کنیم. اینکه به کتابخانهای که در مسیر c:\inetpub\wwwroot کپی کردیم، ارجاع دهیم. در اینجا از وب سرور WEB-SERVER01 استفاده میکنیم. میتوانید بهجای این وب سرور از GIS-SERVER01 استفاده کنید.
<html>
<header>
<script src=”http://WEB-SERVER01/arcgis_js_api/library/3.5/3.5/init.js”></script>
<script>
dojo.require(“esri.map”);
function startup()
{
var map = new esri.Map(“MapCanvas”);
var parcelsLayer = new esri.layers.ArcGISDynamicMapServiceLayer(
“http://WEB-SERVER01/wa/rest/services/Parcels/MapServer”
);
var electriclayer = new esri.layers.ArcGISDynamicMapServiceLayer(
“http://WEB-SERVER01/wa/rest/services/Electricity/MapServer”
);
map.addLayer(parcelsLayer);
map.addLayer(electriclayer);
}
dojo.addOnLoad(startup);
</script>
</header>
<body>
<div id =”MapCanvas” style = “height: 100%;width:100%” ></div>
</body>
</html>
این کد را در یک فایل HTML به نام agsJS_Offline_Mode.html و در مسیر c:\inetpub\wwwroot ذخیره کنید. اجرای این فایل به دو صورت است. راه اول اینکه Chrome را بازکنید و URL زیر را در نوار آدرس وارد کنید و اینتر بزنید:
http://WEB-SERVER01/agsJS_Offline_Mode.html
راه دوم این است که روی فایل که در مسیر c:\inetpub\wwwroot قرار دارد، دو بار کلیک کنید تا در مرورگر اجرا شود. از هر سیستمی که در شبکهی شما قرار دارد، به این URL دسترسی دارید. دو فایل agsJS_Online_Mode_Original.html و agsJS_Offline_Mode_Original.html را از قبل ایجاد کردهایم. این فایلها در مسیر 7364EN_03_Files\AGSA\Code قرار دارند. در این فایلها کمی کد CSS استفاده کردهایم که برای طرح بندی فایلهای HTML استفاده میشود.
کاربرد GIS سرویسها در ویرایش
برای ویرایش به چند مرحله نیاز داریم. متأسفانه هیچ سند و یا منبع خوبی برای توضیح این بخش (ویرایش) وجود ندارد. ویرایش داده در یک GIS سرویس، بسیار کاربردی و مفید است. فرض کنید که حادثهای در جاده مانند شکستگی لولهی اصلی یا آتش سوزی کابل برقرخ داده است و میخواهید فوراً آن را گزارش دهید و زمان کافی برای رسیدن به اداره و اتصال به ژئودیتابیس که حاوی دادههای حوادث است را ندارید. در این مواقع بهتر است با لپ تاپ یا موبایلتان مستقیماً به ژئودیتابیس متصل شوید و حادثه را به ژئودیتابیس اضافه کنید. GIS سرویسی که قابلیت ویرایش دارد، feature سرویس نامیده میشود. در این بخش یک کلاس عارضه در یک ژئودیتابیس Enterprise میسازیم. یک feature سرویس منتشر و آن را در ArcMap ویرایش میکنیم.
پیش نیازها
قبل از ویرایش یک feature سرویس، نکات و مواردی باید ذکر و رعایت شوند. اولین مورد این است که feature سرویسی که به یک ژئودیتابیس personal اشاره میکند، قابل ویرایش نیست. ژئودیتابیس باید از نوع Enterprise یا همان موتور پایگاه داده ی شرکت esri که به SDE معروف است، باشد. در اینجا از یک ژئودیتابیس SQL Server Enterprise استفاده میکنیم. همچنین میتوانید از PostgreSQL استفاده کنید. PostgreSQL را میتوانید از سایت www.postgresql.org دانلود کنید. پیشنهاد میشود که بهجای احراز هویت سیستمعامل ، از احراز هویت پایگاه داده استفاده کنید. احراز هویت پایگاه داده قابل کنترل است. در صورتی که از احراز هویت سیستمعامل استفاده میکنید، همهی GIS سرورها با احراز هویت سیستمعامل به پایگاه داده دسترسی دارند و هنگامیکه دادهها را در پایگاه داده ذخیره میکنید، ممکن است دچار مشکل شوید. اخیراً ژئودیتابیس باید در data store موجود در ArcGIS for Server ذخیره شود و دادههای باید بهصورت نسخه شده در SDE ثبت شوند. همهی این مراحل را انجام خواهیم داد.
تنظیم ژئودیتابیس SDE
ابتدا باید پایگاه دادهای بسازیم که کاربر بتواند به آن متصل شود و ژئودیتابیس را ویرایش کند. اگر از قبل یک ژئودیتابیس SDE دارید، از این مرحله صرفنظر کنید. به سرور ژئودیتابیس enterprise متصل شوید. در این مثال، نام سرور SDE-SERVER01 است. SQL Server Management Studio را بازکنید. با حساب کاربری sa و یا هر حسابی که مجوزهای مدیر پایگاه داده را دارد، وارد شوید. هنگامیکه SQL Server نصب میشود، کاربر sa بهطور پیشفرض ایجاد میشود. از قسمت درختی Object Explorer، پوشهی Security را بازکنید. روی Logins راست کلیک کنید و New Login را بزنید. در پنجره ظاهر شده در فیلد Login name عبارت agsEditor را وارد کنید و SQL Server authentication را انتخاب کنید. در فیلدهای Password و Confirm password رمز را وارد کنید. تیک گزینهی Enforce password policy را بردارید. از لیست بازشوی Default database ژئودیتابیستان را انتخاب کنید که باید از نوع SDE باشد. در لیست Select a page روی User Mapping کلیک کنید تا مجوزها را تنظیم کنید و پایگاه دادهی SDE را انتخاب کنید. از پنجرهی Database role membership که مربوط به ژئودیتابیس SDE است، db_datareader و db_datawriter را تیک بزنید تا کاربر agsEditor مجوز خواندن و نوشتن داشته باشد. برای اینکه کاربر ژئودیتابیس را مدیریت کند، روی Server Roles کلیک کنید و تیک sysadmin را بزنید. OK را کلیک کنید.
در حال حاضر کاربر agsEditor مانند یک سرور sysadmin میباشد. وقتی کاربر در نقش یک سرور sysadmin باشد، میتواند یک کلاس عارضه ایجاد کند. اگر کلاس عارضه از قبل ایجاد شده است، میتوانید آن را پاککنید.
اتصال و ذخیرهی ژئودیتابیس SDE
اگر از قبل یک ژئودیتابیس enterprise تنظیم کردهاید، باید یک حساب کاربری با نام agsEditor و با مجوز خواندن/نوشتن داشته باشید. به سیستمی که ArcGIS for Desktop در آنجا نصب شده است بروید. روی این سیستم باید DBMS 64 بیتی و GIS سرورها نصب باشند. ArcCatalog را بازکنید. از درخت Catalog گزینهی Database Connections را بازکنید. روی Add Database Connection دوبارکلیک کنید تا یک اتصال جدید ایجاد شود. در پنجرهای که ظاهر میشود، از لیست باز شوی Database Platform گزینهی SQL Server را انتخاب کنید. در فیلد Instance نام سرور ژئودیتابیس را وارد کنید. در مثال ما SDE-SERVER01 است. در لیست بازشوی Authentication Type گزینهی Database Authentication را انتخاب کنید و نام کاربری و رمز مربوط به کاربری که قبلاً ایجاد کردیم را وارد کنید. از لیست بازشوی Database گزینهی SDE را انتخاب کنید. OK را بزنید. نام اتصال را agsEditor@SDEServer بگذارید.
اگر از پایگاه دادهی دیگری بهجز SQL Server استفاده میکنید، آن را از لیست بازشوی Database Platform انتخاب کنید.
زمان آن رسیده که ژئودیتابیس را در data store ذخیره کنید. این کار را در فصل دو در بخش ” ذخیرهی یک ژئودیتابیس enterprise” انجام دادهایم. نام اتصال را agsEditor@SDEServer بگذارید تا یک فایل با نام agsEditor@SDEServer.sde ایجاد شود. حالا باید یک کلاس عارضه ایجاد تا بعداً آن را ویرایش کنیم. نام این کلاس عارضه نقطهای را Incidents بگذارید تا برای ثبت حوادث در ژئودیتابیس از آن استفاده کنیم. این کلاس عارضه از قبل ایجاد شده است پس آن را درون ژئودیتابیس کپی کنید. ArcCatalog را بازکنید. از درخت Catalog در مسیر 7364EN_03_Files\AGSA\Data که حاوی دادههای کتاب است، قرار بگیرید. روی ژئودیتابیس Incidents دو بار کلیک کنید. روی کلاس عارضهی Incidents راست کلیک کنید و گزینهی Copy را کلیک کنید. روی اتصال agsEditor@SDEServer دو بار کلیک کنید تا اتصال باز شود. سپس روی آن راست کلیک و از منوی ظاهر شده paste را بزنید تا کلاس عارضه در اینجا قرار گیرد. حال باید برای ویرایش کلاس عارضه، یک نسخه از این کلاس عارضه فعال کنیم. روی کلاس عارضهی Incidents راست کلیک و Manage را انتخاب کنید و روی Register As Versioned کلیک کنید. حال میتوان این کلاس عارضه را ویرایش کرد. پنجرهی جدیدی باز میشود تیک گزینهی Register the selectedobjects with the option to move edits to base را بزنید و OK را کلیک کنید. این گزینه؛ هر ویرایشی را مستقیماً به جداول منتقل میکند.
انتشار یک feature سرویس
زمانی را برای تنظیم ژئودیتابیس enterprise صرف کردیم. حالا آمادهایم تا feature سرویس را منتشر کنیم. برای این انتشار به Geo Smith نیاز داریم. ArcMap را بازکنید و روی Add Data کلیک کنید. کلاس عارضهی Incidents را با استفاده از اتصال agsEditor@SDEServer اضافه کنید. حال یک الگوی عارضه ایجاد خواهیم کرد. ArcGIS 10 الگوهایی را ارائه کرده است. ویرایشگر با استفاده از این الگوها، الگویی از یک عارضه ذخیره میکند. منظور از الگو، برچسبگذاری و سمبولوژی و دیگر نمادهای ظاهری است که به عارضه اعمال میشود. الگوی عارضه بعداً در feature سرویس استفاده میشود. درون ArcMap نوار ابزار Editor را فعال کنید و روی Start Editing کلیک کنید. از پنجرهی Create Feature الگوی Incidents را انتخاب کنید. اگر این پنجره ظاهر نشود، گزینهای به نام Create Feature در نوار ابزار Editor وجود دارد. روی این گزینه کلیک کنید تا پنجرهی Create Feature ظاهر شود. نام الگوی Incidents را به Power Surge تغییر دهید. در پنجرهی Create Feature گزینهای به نام Manage Templates وجود دارد. روی آن کلیک و لایهی water leaks را انتخاب کنید. سپس در همین پنجره روی Properties کلیک کنید و الگویی برای این لایه تعیین کنید.
حال باید این نقشه را منتشر کنیم. نام سرویس نقشهای را Incidents_FS بگذارید. قبلاً باید ژئودیتابیس را در data store سایت سرور ذخیره کرده باشید. در حین عملیات انتشار سرویس در پنجرهی Service Editor روی CapabilitiesCapabilities کلیک کنید. تیک گزینهی Feature Access را بزنید. روی Publish کلیک کنید. بدین ترتیب سرویس بهصورت یک feature سرویس منتشر میشود. یک feature سرویس، URL منحصر بفرد خودش را دارد که متفاوت از URL سرویس نقشهای است.
برای انتشار feature سرویس میتوانید از فایل Incidents.mxd استفاده کنید. این فایل شامل سمبولوژی و الگوهای عارضه است. اگر قصد دارید از این فایل برای انتشار سرویس استفاده کنید، باید منبع داده را به سرویس ژئودیتابیس Enterprise تنظیم کنید.
ویرایش feature سرویس در ArcMap
تا اینجا feature سرویس را منتشر کردیم. زمان آن رسیده که از این سرویس استفاده و ویرایش آن را شروع کنیم. ArcMap را بازکنید. روی Add Data کلیک کنید. در پنجره ظاهر شده سایت سرور را انتخاب کنید. feature سرویس Incidents_FS را انتخاب کنید و روی Add بزنید تا به ArcMap اضافه شود. دقت کنید دو سرویس با نام Incidents_FS وجود دارند. یکی سرویس نقشهای و دیگری feature سرویس است. توجه کنید که feature سرویس را انتخاب کنید. سرویسهای نقشهای Parcels و Electricity را نیز به ArcMap بیاورید.
هنگامیکه با feature سرویس کار میکنید، نمیتوانید از نوار ابزار editor گزینهی start editing را فعال و شروع به ویرایش کنید. برای ویرایش یک feature سرویس، ArcGIS for Server باید بخشی از داده که در Extent فعلی است را کپی کند.
منظور از Extent محدودهی قابلنمایش نقشه است. کاربر میتواند با ابزار pan در نقشه بگردد و محدودهی مورد نظرش را ببیند. محدودهای که کاربر در حال حاضر میبیند، همان Extent فعلی است.
میتوانیم در این بخش با دادهای که ArcGIS for Server کپی کرده است، کار را شروع کنیم. سپس کار ما تمام و ذخیره میشود. در اینجا فرآیندی به نام همزمانی را اجرا میکنیم تا ویرایشهایمان بهطور همزمان در feature سرویس ذخیره شوند. در ArcMap و در پنجرهی Table of Content که اصطلاحاً TOC نام دارد، روی لایهی گروهی Incidents_FS راست کلیک کنید. در این لایهی گروهی، feature سرویس قرار دارد. پس از راست کلیک کردن در منوی ظاهر شده از گزینهی Edit Features گزینهی Create Local Copy for Editing را کلیک کنید. بدین ترتیب یک ژئودیتابیس محلی ایجاد میشود تا ویرایشهای خود را انجام دهید.
حالا منبع لایهی Incidents_FS با یک ژئودیتابیس محلی تنظیم شده است. در نوار ابزار editor گزینهی editor را بزنید. در منوی ظاهر شده روی Start Editing کلیک کنید. یک عارضهی Power Surge در کلاس عارضهی power cable ایجاد کنید و یک عارضهی Water Leak در نزدیکی یک خانه ایجاد کنید. در نوار ابزار editing از گزینهی editor روی Save Editing کلیک کنید. سپس در همین منو روی Stop Editing کلیک کنید. برای همزمانی ویرایشهایتان با feature سرویس روی لایهی Incidents_FS راست کلیک کنید و از گزینهی Edit Features گزینهی Synchronize Local Edits with Server را کلیک کنید.
تا این مرحله یک feature سرویس ایجاد و آن را در ArcMap ویرایش کردیم. بهتر است یک بررسی انجام دهیم. روی لپ تاپ خود، نرمافزار ArcGIS for Desktop را نصب و لپ تاپ را به شبکهی LAN متصل کنید. از ArcMap موجود در لپ تاپ feature سرویس را ویرایش کنید. اگر به سایت سرور دسترسی ندارید، میتوانید با گزینهی Disconnect local copy from Server دادهها را ویرایش کنید. با این گزینه میتوانید ویرایشهایتان را روی لپ تاپ خود در خانه یا هر مکان دیگری انجام دهید. سپس به ادارهتان برگردید و به سایت سرور متصل شوید و ویرایشهایتان را به feature سرویس اعمال کنید.
برگرفته از کتاب نصب، اجرا و مدیریت Arc GIS for server
نویسنده: دکتر محمد بافقی زاده
نشر: انتشارات اکادمیک
بدون دیدگاه