چگونه Mapserver کار می کند
زمان گذشته ما در مورد برخی از معیارها صحبت کردیم چرا MapServer و اصول نصب. حال بیایید برخی از عملکردهای آن را در تمرینی با نقشه دوستان Chiapas ببینیم.
کجا نصب شده است
هنگامی که Apache نصب شده است، دایرکتوری انتشار به طور پیش فرض برای MapServer پوشه OSGeo4W به طور مستقیم بر روی C: /
در داخل ، پوشه های مختلفی با برنامه ها بسته به آنچه نصب شده وجود دارد ، اما پوشه برای انتشار باید داخل apache باشد. در این حالت پوشه ای به نام gis است.
- سپس در داخل پوشه داده ها حاوی لایه ها، ارتوپدی و غیره است.
- در پوشه etc ، قلم های نوع واقعی برای برچسب ها ، با پسوند .ttf وجود دارد. همچنین در اینجا یک فایل txt وجود دارد که آنها را بلند می کند و دیگری که علائم را تعریف می کند.
- و در نهایت در پوشه httdocs صفحات وب که خدمات را ارتقا می دهند، می روند.
صفحه وب
در مثال ، من از موردی که دفعه قبل نشان داده شده استفاده می کنم. در اصل حاوی یک پرونده فهرست است که با پسوند phtml به یکی هدایت می شود ، و این به نوبه خود عملکردهای ساخته شده بر روی php و نقشه ها را افزایش می دهد. یک پوشه شامل تصاویر پیوند داده شده از صفحه است.
اگر به آن نگاه کنیم ، phtml فقط پوسته ساخته شده از جداول است و توابع mapscript / php نامیده می شود. شما باید با استفاده از:
http://localhost/gis/gispalenque.phtml
نتیجه در زیر نشان داده شده است:
- به مرکز تابع GMapDrawMap ()،
- در سمت راست تماس به GMapDrawKeyMap keymap ()،
- نوار مقیاس پایین GMapDrawScaleBar ()،
- و در مورد توابع استقرار، یک شرط در مورد لیست جعبه if (! IsHtmlMode ()) echo " با تصمیمات: ZOOM_IN ، ZOOM_OUT ، خواننده ، QUERY_POINT.
در حال حاضر در حال اجرا، صفحه نمایش به نظر می رسد این است:
فایل های .map
ترکیبی از انتشار Maperver در آنچه آپاچی بالا می برد، است که پی اچ پی را از طریق آن می فرستد نقشه نقشه و سپس از طریق آن پوسته بیرون می آید. اما بیشتر این دانش در پرونده های .map است ، که نباید با پرونده های تولید شده توسط Mapinfo ، Manifold یا Mobile Mapper Office با همان پسوند اشتباه گرفته شود.
این .map فایلهای متنی است که حاوی نقشه به صورت اسکریپت است. اگر متوجه شوید که یکی برای نقشه اصلی ، یکی برای Keymap و دو برای سرویس OGC wms و wfs وجود دارد ، اینها را می توان با برنامه های دسک تاپ مانند Quantum GIS ایجاد کرد. بیایید ببینیم mapscript چگونه کار می کند:
MAP
NAME PALENQUE_DEMO
وضعیت در
SIZE 600 450
SYMBOLSET ../etc/symbols.txt
EXTENT 604299 1933386 610503 1939300 # مشاهده کل نقشه پالنک
#EXTENT 605786 1935102 608000 1938800 #SOLO بخش 01
واحد متر
شکل "../data"
شفاف بر
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt
- MAP نشان می دهد که اسکریپت را شروع می کنید
- وضعیت، نشان می دهد که آیا نقشه پیش فرض روی آن است یا خیر
- SIZE اندازه صفحه نمایش است
- SYMBOLSET مسیر نمادها را نشان می دهد
- EXTENT مختصات نمایشگر هستند. از نماد # برای ایجاد حاشیه نویسی استفاده می شود
- واحد برای واحد
- شبیه سازی، مسیری که لایه ها می باشند
- همه در پایان با دستور END پایان می یابد
در داخل، کد با یک خط فرمان شروع می شود و به پایان می رسد با END، برای مثال برای حداقل و حداکثر مقیاس؛ دایرکتوری تصاویر موقت:
WEB
MINSCALE 2000000
MAXSCALE 50000000IMAGEPATH "C: \ OSGeo4W / tmp / ms_tmp /"
IMAGEURL "/ ms_tmp /"
END
نوار مقیاس:
SCALEBAR
IMAGECOLOR 255 255 255
LABEL
رنگ 0 0 0
اندازه کوچک
END
SIZE 300 5
رنگ 255 255 255
BACKGROUNDCOLOR 0 0 0
OUTLINECOLOR 0 0 0
یونیتی کیلومتر
مصاحبه 3
وضعیت در
END
یک لایه شطرنجی: از پسوندی که در پوشه داده قرار دارد ، در پس زمینه قرار می گیرد ، و یک توضیح در لیست با عنوان "Orthophoto" وجود دارد:
LAYER
NAME orthophoto
METADATA
"DESCRIPTION" "OrtoFoto"
END
نوع Rastter
وضعیت خاموش
DATA "C: \ OSGeo4W / apps / gis / data / ortofotoGral.tif"
#OFFSITE 0 0 0
END
tematizada لایه SHP چند ضلعی بر اساس معیارهای، بالا بردن برخی از داده ها در یک قالب HTML با یک فونت بدون برچسب، اندازه 6، لبه های سیاه و سفید بافر 5 ...
LAYER
بخش NAME 02Zone
نوع POLYGON
وضعیت خاموش
50 شفافیت
EXTENT 607852 1935706 610804 1938807 METADATA
"DESCRIPTION" "طرح زمینه توسط بخش ارزش 02"
"RESULT_FIELDS" "MsLink Cve_Mz Cve_Pred دامنه محدوده محدوده VALUE"
END
DATA PALENQUE_SECTOR01
TEMPLATE "ttt_query.html"
TOLERANCE 5
#TOLERANCEUNITS PIXELS
LABELITEM "VALOR"
CLASSITEM "VALOR"
بر روی LABELCACHE ON
کلاس
SYMBOL 1
رنگ 128 128 128
OUTLINECOLOR 0 0 0
NAME "ZoneNULL"
EXPRESSION ([VALUE] = 0)
LABEL
ANGLE AUTO
رنگ 0 0 0
FONT بدون
TRYTYPE TYPE
موقعیت مک
تقسیمات نادرست
BUFFER 5
6 اندازه
OUTLINECOLOR 200 200 200
END
END #class مقدار 0
کلاس
SYMBOL 3
رنگ 255 128 128
#COLOR -1 -1 -1 #SIN FILLING
... و به همین ترتیب تا زمانی که بسته شدن با
END
END ارزش #Class
پایان # لایه
در نتیجه
از این رو ، کار با Mapserver گرچه کاملاً ساده است ، اما برای کارهای بزرگ پیچیده و بسیار محدود می شود زیرا همه چیز در نقشه .m است. بزرگترین نقطه ضعف این است که همه کارها به صورت پیاده روی انجام می شود ، مانند تعریف هر رنگ در یک مضمون ، و به همین دلیل ابزارهایی مانند CartoWeb بوجود می آیند ، که در Mapserver کار می کند اما پلاگین ها و مثالهای داخلی را با ویژگی هایی ارائه می دهد که این نسخه ابتدایی را شبیه می کند برای اولین بار:
- فریم های جداگانه را با AJAX بسازید تا آنها را به طور جداگانه بازخوانی کنید
- کد را تجزیه کنید، با توجه به اینکه یک اسکریپت بر اساس معیارهای پارامتریک می نویسد .map
- پیمایش پویای برگشت بدون نیاز به بازخوانی، همانطور که یک لایه فلش بود
- ویرایش بردار آنلاین، نوشتن فوری در حافظه پنهان
- لایه را در فرم بردار بارگیری کنید
- صادرات به Google Earth
- ایجاد پی دی اف از استقرار
در آینده ما CartoWeb را نگاه خواهیم کرد، اینجا لینک را به نمونه های اصلی ترک می کنم.
یک راه برای خروج قالب استاندارد phtml وجود دارد، با تشکر
خوش آمدید،
من سعی می کنم یک لایه از نقشه را تماس بگیرم، به شرح زیر است:
LAYER
آزمایشگاه NAME
نقطه TYPE
همگام سازی OTP
اتصال #"virtual.ovf"
"
XXXXX
EXEC
eess_id
wkbPoint
WGS84
"
مشکل من این است که سرویس DSN مشکل ایجاد می کند: هنگام درخواست GetCapabilities رمز پایگاه داده را برمی گرداند ... آیا می توانم با یک فایل تماس بگیرم تا رمز عبور را "دادن" نکنم یا خطای DSN است؟؟؟؟ با تشکر!
MapServer یک پروژه محبوب Open Source است که هدف آن نمایش نقشه های مکانی پویا از طریق اینترنت است. یک Drive درایو یک درایو است که به یک پوشه خالی بر روی یک حجم که از سیستم فایل NTFS استفاده می شود، نقشه برداری می شود. درایوهای نصب شده به عنوان هر درایو دیگری عمل می کنند، اما به جای درایو، مسیرهای درایو اختصاص داده می شوند.