خانه / وب جی آی اس (WebGIS) (برای مطالب بیشتر اینجا کلیک کنید) / تبدیل نقطه به آدرس و تبدیل آدرس به نقطه

تبدیل نقطه به آدرس و تبدیل آدرس به نقطه

تبدیل نقطه به آدرس و تبدیل آدرس به نقطه-موسسه چشم انداز-آموزش کاربردی GIS و RS

رسم نقاط یا آدرس‌ها بر روی نقشه یکی از رایج ترین توابع مورد استفاده در اپلیکیشن‌های Web Gis است. برای اینکه یک آدرس را به صورت یک نقطه بر روی نقشه رسم کنید نیاز به مختصات طول و عرض جغرافیایی دارید. Geocoding فرآیند تبدیل آدرس فیزیکی به مختصات جغرافیایی و reverse geocoding فرآیند تبدیل مختصات جغرافیایی به آدرس فیزیکی است. برای آدرس‌هایی که می‌خواهید به نقشه اضافه کنید، طی فرآیند Geocoding یک مختصات به آدرس اختصاص می‌یابد. فرآیند Geocoding با استفاده از یک سرویس Locator که خود شامل یک کلاس Locator است، انجام می‌شود. Geocoding به پارامترهای ورودی مختلفی نیاز دارد. شی Address یکی از پارامترهای ورودی است که برای تطبیق آدرس است؛ اما در فرآیند reverse geocoding به جای شی Address از شی Point استفاده می‌شود. شی Address در سرویس geocoding ثبت شده سپس یک شی AddressCandidate که شامل تطبیق آدرس با نقطه‌ای از نقشه است، برگردانده می‌شود. سپس این نقطه بر روی نقشه ترسیم می‌شود.

در این بخش مفاهیم زیر را تحت پوشش قرار می‌دهیم.

1- معرفی geocoding

2- Geocoding موجود سرویس Locator

3- فرآیند geocoding

4- فرآیند reverse geocoding

5- بررسی سرویس Locator

معرفی geocoding

ابتدا به نمونه‌ای از geocoding نگاهی می‌کنیم. مثلاً اگر شما آدرس 150 Main St را دارید، ابتدا باید آدرس را geocode و سپس به صورت یک نقطه بر روی نقشه نمایش دهید. اگر آدرس 150 Main St روی تکه‌ای از خیابان با محدوده‌ی آدرس 100 Main St تا 200 Main St قرار می‌گیرد، فرآیند geocoding موقعیت 150 Main St را درونیابی می‌کند و دقیقاً وسط خیابان را به این آدرس تخصیص می‌دهد و با توجه به مختصات جغرافیایی آدرس 100 Main St و مختصات جغرافیایی آدرس 200 Main St، مختصات جغرافیایی آدرس 150 Main St را به دست می‌آورد. حال که مختصات جغرافیایی این آدرس را داریم، یک نقطه در این مختصات قرار می‌دهیم.

متد geocoding از فرآیند درونیابی استفاده می‌کند و در نواحی شهری با آدرس‌های دقیق و با قاعده، بیشترین دقت را دارد.

 ابزار Geocoding موجود در سرویس Locator

سرویس Locator موجود در ArcGIS Server، فرآیندهای geocoding و reverse geocoding را انجام می‌دهد. با استفاده از ArcGIS Server API for JavaScript یک آدرس را در سرویس Locator ثبت و سپس مختصات جغرافیایی این آدرس را بازیابی می‌کنید و آدرس را به صورت نقطه بر روی نقشه رسم می‌کنید. این فرآیند را در تصویر زیر می‌بینید. آدرس با شی JSON مشخص می‌شود که این شی، ورودی شی Locator است. خروجی شی Locator، شی AddressCandidate است که یک نقطه را بر روی نقشه نمایش می‌دهد. عملیات geocoding شبیه کارهایی است که در فصل قبل یاد گرفتیم. شی Address پارامترهای ورودی را تعیین می‌کند، نتایج در شی AddressCandidate قرارگرفته و به تابع بازخوردی فرستاده می‌شود. این تابع شی نتیجه را پردازش می‌کند.

اشیاء ورودی شی Locator

Locator، شی پارامتر ورودی را به دو صورت شی JSON یا شی Point می‌پذیرد. ایجاد هر کدام از این اشیاء با دیگری متفاوت است. ایجاد هر کدام را در بخش‌های بعدی توضیح می‌دهیم.

شی ورودی JSON

سرویس Locator، برای reverse geocoding شی Point و برای geocoding شی JSON را می‌گیرد. شی JSON یک آدرس را در قالب شی تعریف می‌کند. در کد زیر، آدرس به صورت مجموعه زوج‌های نام/مقدار است که با {} مشخص می‌شوند. یک زوج نام/مقدار می‌تواند برای یک خیابان، یک شهر، یک ایالت و موارد مشابه تعریف شود؛ اما این زوج نام/ مقدار، وابستگی زیادی به نوع و استانداردهای سرویس geocoding دارد.

var address = {
street: “380 New York”,
city: “Redlands”,
state: “CA”,
zip: “92373”
}

 شی ورودی Point

reverse geocoding یک شی ورودی point می‌گیرد. این شی در قالب esri/ geometry/Point است. شی point با کلیک کاربر بر روی نقشه، تعریف می‌شود. رویداد Map.click شی point را برمی‌گرداند سپس این شی را به عنوان ورودی سرویس Locator استفاده می‌کند.

شی Locator

برای اجرای عملیات reverse geocoding و geocoding از کلاس Locator استفاده می‌شود. این کلاس شامل رویدادها و متدهایی است که از اشیاء ورودی Point و Address استفاده می‌کند. Locator یک اشاره گر به آدرس سرویس geocoding است. ArcGIS Server این URL را فراهم می‌کند. در کد زیر یک نمونه از شی Locator ایجاد می‌شود.

var locator = new Locator
(“http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Locators/ESRI_Geocode_USA/GeocodeServer”);

 

ابتدا یک نمونه از کلاس Locator ایجاد می‌شود. برای عملیات geocoding متد addressToLocations() و برای عملیات reverse geocoding متد locationToAddress() را صدا می‌زنیم. برای تکمیل عملیات geocoding رویداد address-to-locations-complete() و برای تکمیل عملیات reverse geocoding رویداد on-location-to-address-complete() اجرا می‌شود.

شی AddressCandidate

در نتیجه‌ی عملیات Locator یک شی AddressCandidate برمی‌گردد. ویژگی‌هایی مانند آدرس، اطلاعات توصیفی، موقعیت و نمره در این شی ذخیره می‌شود.

اطلاعات توصیفی شامل یک زوج نام/مقدار یا همان نام فیلد و مقدار فیلد است. مختصات x و y آدرس به یک نام تبدیل می‌شوند و این نام در ویژگی مکان قرار می‌گیرد. ویژگی نمره، عددی بین 0 تا 100 است. عدد بالاتر نشان می‌دهد که تطبیق آدرس با مکان با دقت خوبی انجام شده است. آدرس‌های چندگانه نیز می‌توانند در شی AddressCandidate ذخیره شوند.

حال می‌خواهیم نگاه عمیق تری به متدهای Locator بیاندازیم. متد Locator.addressToLocations() درخواست عملیات geocoding را می‌فرستد. یک شی آدرس ایجاد شده و به عنوان پارامتر ورودی متد addressToLocations() استفاده می‌شود. نتایج عملیات geocoding در شی AddressCandidate قرار می‌گیرد. سپس آدرس به صورت یک گرافیک بر روی نقشه ترسیم می‌شود.

عملیات Reverse geocoding با شی Locator در متد locationToAddress() انجام می‌شود. شی point با کلیک کاربر بر روی نقشه ایجاد و به عنوان پارامتر ورودی به متد locationToAddress() ارسال می‌شود. یک پارامتر فاصله بر حسب متر نیز به این متد فرستاده می‌شود. یک نقطه را تعیین کرده و باید مطابق با آن نقطه، یک آدرس برگردانده شود. این پارامتر، حداکثر فاصله‌ای که آدرس برگشتی تا نقطه دارد را تعیین می‌کند و در واقع برای دقت آدرس برگشتی مهم است. اینکه آدرس برگشتی در چه فاصله‌ای از نقطه قرار دارد؟ متد addressToLocations() یک شی AddressCandidate برمی‌گرداند. این شی شامل یک آدرس است.

فرآیند geocoding

ابتدا با استفاده از سرویس geocoding موجود در ArcGIS Server، یک شی Locator ایجاد می‌کنیم. آدرس ورودی در قالب شی JSON است. متد addressToLocations()، شی JSON را در شی Locator ثبت می‌کند. این متد یک یا چند شی AddressCandidate برمی گرداند.

فرآیند reverse geocoding

این فرآیند از شی Locator استفاده می‌کند. شی Locator توسط یک URL به سرویس geocoding ارجاع می‌کند. در نتیجه‌ی کلیک کاربر بر روی نقشه، یک شی Point ایجاد می‌شود. توسط متد locationToAddress()، شی point در شی Locator ذخیره می‌شود. متد locationToAddress() یک پارامتر شعاع بر حسب متر نیز دارد. شی Locator تلاش می‌کند تا در این شعاع، یک آدرس پیدا کند. اگر آدرسی در این شعاع پیدا شود، شی AddressCandidate ایجاد و رمزگشایی می‌شود و یک آدرس برمی‌گرداند.

برگرفته از کتاب تولید و طراحی اپلیکیشن‌ های Web GIS و Mobile GIS با استفاده از ArcGIS API for JavaScript

نویسنده: دکتر محمد بافقی زاده

نشر: انتشارات اکادمیک

درباره‌ی سعید جوی زاده

دکتر سعید جوی زاده مدیر موسسه علمی تحقیقاتی چشم انداز هزاره سوم ملل و عاشق مجموعه علوم جغرافیایی است. وی معتقد است که دشمنان اصلی بشریت ترس، شک و بی هدفی هستند. کارشناسی جغرافیای طبیعی را در سال 1381 از دانشگاه یزد، کارشناسی ارشد جغرافیای طبیعی گرایش اقلیم شناسی محیطی را از دانشگاه خوارزمی در سال 1384 و مدرک دکتری خود را در سال 1398 در رشته اقلیم شناسی از دانشگاه خوارزمی اخذ کرده است. عنوان رساله ایشان "تحلیل فضایی خشکسالی در ایران" است. او متخصص سیستم های اطلاعات جغرافیایی(GIS) و سنجش از دور(RS) وآمار فضایی است. از سال 1381 مشغول تدریس در دانشگاه ها و مراکز دولتی و خصوصی است. وی همه ساله کارگاه های تخصصی را برای علاقه مندان به GIS و RS برگزار می کند. کتاب هایی مفید و کاربردی را در زمینه سیستم های اطلاعات جغرافیایی و سنجش از دور و آمار فضایی را به رشته تحریر درآورده است. هم اکنون نیز بروی سیستم های پهباد و برنامه نویسی پیشرفته در سیستم های اطلاعات جغرافیایی و سنجش از دور مشغول به فعالیت است. علاوه بر این سعید جوی زاده علاقه مند به مطالعات خشکسالی و بلایای طبیعی است و در زمینه خشکسالی نیز کتاب های متعددی را به رشته تحریر درآورده است. از آرزوهای دکتر جوی زاده همه گیر شدن سیستم های اطلاعات جغرافیایی و سنجش از دور و آمار فضایی در بین مردم و نهاد هادی تصمیم گیری است.

همچنین ببینید

 طراحی اپلیکیشن با الگوهای ArcGIS و Dojo

عملیات geoprocessing

عملیات geoprocessing-موسسه چشم انداز هزاره سوم ملل-آموزش کاربردی GIS و RS اگر بخواهید روی یک …

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تماس با ما

Open chat
Powered by
× چگونه می‌توانم به شما کمک کنم؟