SVG روشی استاندارد جهت نمایشهای دو بعدی بر روی اینترنت که قابلیتهای کارتوگرافی ویژه را در این محیط فراهم می کند.
•SVG  زبانی بر پایه XML(eXtensible Markup Language)
•با استفاده از زبانهای اسکریپت سازی ازقبیل Javascript تصاویر می توانند به هر دو روش Interactive  و Dynamic  در  Web Browser نمایش داده شوند.

مهمترین کاربردهای این سیستم عبارتند از :

•قابلیت های متفاوت نمایش مکانهای خاص بر روی نقشه
•توانایی Zoom و Pan  که به دو روش قابل انجام است یا با کلیک دکمه راست موس و یا با انتخاب مقدار Zoom از لیست انتخابی .

Pan  نیز به دو روش قابل انجام می باشد یا با نگه داشتن دکمه Alt واستفاده از دکمه راست موس و یا با کشیدن مستطیل سبز رنگ بر روی نقشه Overview

•تغییرات متقابل رنگ لایه ها بر روی نقشه
•قابلیت دسترسی به مدارک مختلف از طریق ساختار درختی
•نمایش انتخابی عوارض جغرافیایی با انتخاب یا عدم انتخاب Check Box های نقشه
•نمایش   Scale Bar
•نمایش مختصات نقشه
•فراخوانی داده از منابع مختلف
•SVG می تواند به پروژه های GIS اعمال شود چراکه کاملا“ازابزارهای  Open Source  استفاده می کند که باعث کاهش هزینه های اجرا می گردد.

مزایای SVG نسبت به فرمتهای   JPG,GIF

•این فرمت توسط برنامه های بسیاری قابل خواندن است مثل Notepad
•حجم این فایل ها از فرمتهای پیکسلی کم تر است .
•قابلیت تغییر اندازه بدون تغییر کیفیت
•متون نوشته شده در این عکس ها بصورت TEXT بوده و قابل انتخاب و جستجو می باشد.
•با تکنولوژی جاوا کار می کند و یک استاندارد است.
•فایل های SVG کاملا“ XML هستند.
•با زوم روی گرافیک کیفیت پایین نمی آید.
•پشتیبانی برای سایر دستگاهها شامل GPS و موبایلها
•محتوا و انیمیشن dynamic و قابلیت ارتباط برقرار کردن با کاربر به صورت script نویسی
•کیفیت بالای گرادیانت، سایه و سایر افکتها
•کنترل رنگ و دقت رنگ بهبود یافته
•سایز کوچک برای Download
•درجه های مختلف شفافیت transparency

قابل مقایسه ترین برنامه با SVG را میتوان Flash نامید . با این تفاوت که SVG یک استاندارد بیش از فلش دارد و آن موازی بودن تکنولوژی آن با استاندارد هایی مانند XSL و DOM است . در ضمن فلش یک تکنولوژی اوپن سورس نیست . تنها مشکلی که پیش پای SVG قرار دارد این است که هنوز تمام مرورگر ها بصورت کامل از آن پشتیبانی نمی کنند . گرچه میتوان آینده SVG را روشن توصیف کرد . زیرا بنیاد موزیلا و مایکروسافت هر دو برنامه هایی برای پشتیبانی از SVG در مرورگر هایشان دارند ..

•توانایی تبادل اطلاعات با کامپیوترهای مختلف مطابق قوانین XML
•بین المللی کردن یا Unicode support
•تبدیل آسان از طریق XML Stylesheet Language Transformation (XSLT)
•همچنین برنامه 5  Adobe Golive  بطور کامل از ویرایش SVG پشتیبانی میکند و ادیتور های آن درحال گسترش هستند . باید بدانید که فایل های SVG با پسوند .svg ذخیره میشوند .
•برای دیدن فایل های SVG در مرورگر شما باید پلاگین Adobe SVG viewer را در سیستم خود نصب کرده باشید. البته اگر از فایرفاکس ۱.۵ استفاده میکنید نیازی به دانلود این پلاگین نیست .چون مرورگر فایرفاکس شما بصورت کامل ازین تکنولوژی استفاده میکند

XML

یک زبان استاندارد جهانی برای مدارک ساختاریافته تحت وب که به وسیله کنسرسیوم W3C به منظور پوشش محدودیتهای HTML و ایجاد چهارچوبی برای فرمتهای دیتا  توسعه داده شده است وبه عنوان پایه و اساسی برای تمامی تخصصات از جمله

SMIL (multimedia)

مخفف Synchronized Multimedia Integration Language كه يك زبان نشانه مشتق شدهاز XML بوده و جهت تنظيم ، صفحه آرايى و نمايش چند رسانه اي كاربرد دارد :
 

SVG (vector graphics)

  MathML (special mathematical symbols and formats)

جهت توصيف نماد هاي رياضيات مورد استفاده قرار مي گيرد

X3D (3D graphics)

 XHTML (successor of HTML)

HTML بسط يافته مي باشد و از قوانين XML پيروي مي كند   

XFORM (form generation)

GML (Geography Markup Language)

می باشد.


 DOCUMENT OBJECT MODEL:DOM

اغلب فرمتهای برداری WWW در Browser ها به وسیله ابزارهایی از Plug in نمایش داده می شوند بدین معنا که با یک برنامه اضافی که اساسا“ قسمتی از Browser  نمی باشد سروکار داریم .همچنین ما اغلب با فرمتهای داده ای ضعیفی که تنها با برنامه های گرافیکی خاصی قابل اجرا می باشند که مخالف اصول اینترنت Open Source می باشد .بیشتر معایب به واسطه استفاده از فرمتهای باینری که خارج از برنامه مربوطه غیر قابل ویرایش و تصحیح می باشد بوجود می آید .تقریبا“همه پروژه های نقشه های اینترنتی نیاز به ویرایش دارند چرا که مکانیزمهای تقابلی و نمایش نیاز به بروزرسانی دستی مانند اضافه نمودن داده های جدیدوآنالیزوانتخاب و تغییر سمبلهای نقشه دارد.

تقابلی بدین معناست که المانهای موجود در یک صفحه وب شامل اشیاء برداری که نمایش داده می شوند در مقابل دستورات صادره عکس العمل نشان دهند.به منظور دسترسی به این اشیاء یک ساختار سلسله مراتبی با نام DOM و مطابق شکل زیر مورد نیاز است :

          Example for a simple DOM object hierarchy

يک رابط برنامه نويسی برای سندهای XML  و Html است . با استفاده از اينترفيس فوق، نحوه دستيابی و انجام پردازش های لازم در رابطه با سند های XML و Html فراهم می گردد . برنامه نويسان با استفاده از DOM ، قادر به ايجاد يک سند ،حرکت در طول ساختار سند، افزودن ، اصلاح و يا حذف المان های يک سند XML و يا Html می باشند .

معماری دام، نه به زبان برنامه‌نویسی خاصّی وابستگی دارد و نه به سکّوی برنامه‌نویسی ویژه‌ای، بلکه، به منظور اجراء و پیاده‌سازی آن باید از یک زبان برنامه‌نویسی همچون جاوا، سی‌شارپ، جاوااسکریپت یا مشابه آن‌ها سود بجوییم. آنسوی رابط کاربر سند با مدلی شیء‌گرا نمایانده می‌شود.


JavaScript

جاوااسکریپت زبانی است که توسط NetScape تولید شده است. این زبان، زبان برنامه نویسی اسکریپت مبتی بر اشیاء است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شده است. ساختار این زبان به سی پلاس پلاس(C++) و جاوا شباهت دارد؛ این زبان می‌تواند هم به صورت ساخت یافته و هم به صورت شی گرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته می‌شوند، بر خلاف جاوا. بعد از ساخته شدن یک شی به روش فوق، این شی می‌تواند به عنوان نمونه‌ای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد.
 کاربرد گسترده این زبان در سایتها و صفحات اینترنی می‌باشد و به کمک این زبان می‌توان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویا نمایی در سمت کاربر, از این زبان استفاده می‌شود
 


Scalable Vector  Graphics:SVG
این تکنولوژی برای کاربران و توسعه دهندگان GIS  جذاب است امروزه اکثر سیستمهای بر پایه نقشه دو روش را جهت تبادل اطلاعات نقشه ای بر روی وب بکار می گیرند .

روش اول : Java Applet

 به طور كلي واژه اپلت « Applet‌ » به برنامه هايي اطلاق مي گردد كه در زمينه برنامه هاي ديگر اجرا مي شوند. به عنوان مثال فايلهاي فلش كه در صفحات وب قرار گرفته و توسط مرورگر اجرا مي گردند، نوعي از اپلت ها مي باشند.

روش دوم : ایجاد نقشه بر روی Server و انتقال آنها به کاربر در فرمتهای GIF,GPEG


 اشکالات استفاده از تصاویر برای گرافیکهای دو بعدی وب

•Image Size:اندازه یک تصویر تحت تاثیر عرض و ارتفاع و تعداد بیتهای تشکیل دهنده هر پیکسل می باشد کارایی فشرده سازی بستگی به تکنیکهای فشرده سازی موجود و نوع تصویر دارد.
•Resolution:هنگامی که تصویربا رزولوشن خاص بزرگ نمایی شود جزئیات بیشتری ارائه نمی کند.به منظور کسب جزئیات بیشتر بایستی تصویری با رزولوشن بالاتر استفاده شود.
•Binary Format:فرمت تصاویر معمولا“باینری بوده در نتیجه درج Metadata به تصویر و دیگر فرایندهای تکنولوژی وب مشکل است .
•Minimal Animation : فرمت GIF اجازه استفاده از چندین تصویر را جهت ایجاد یک تصویر را می دهد که Animated GIFs نامیده می شود.اما اشکال آن این است که هر تصویر حکم یک تصویر واحد را دارد جهت رفع این اشکال از فرمتهای ویدیوئی استفاده می شود.
•Hyper linking : نیاز به استفاده از تصاویر به عنوان جزئی از HTML می باشد که با هندسه خاصی به نواحی از تصویر Link  شده اندتنها لینک

•به نواحی از تصویر برقرار می گردد ونه از اجزاء خاص تشکیل دهنده تصویر
•Transformation: از آنجایی که فرمت تصاویر بر پایه XML  نمی باشدامکان استفاده از تکنولوژی هایی از قبیل XSLT به منظور نمایش اطلاعات توصیفی در یک سطح بالاتر زبان XML مانند نمایشهای جدولی وجود ندارد.

SVG  تمامی مشکلات ذکر شده را حل کرده است .SVG یک استاندارد HTTP می باشد که امکان کاربردهای نقشه سازی را بدون نیاز به Applet  ها در Server هر زمانی که نقشه به نمایش در می آید را می دهد.

 SVG چیست؟

SVG یک زبان XML جدید برای تعریف گرافیکهای دوبعدی برداری که در صفحات وب ودیگر کاربردها استفاده می شود SVG اجازه استفاده از سه نوع گرافیک را میدهد

•اشکال گرافیکی برداری مانند دایره , مستطیل, مسیر شامل خطوط و منحنی ها

دایره 

Style=”fill:orange;opacity:1;stroke-

width:1.5;stroke:red>

مستطیل

Style=”fill:orange;opacity:1;stroke-

width:1.5;stroke:red>

خطوط و منحنی ها

•240 40 240 90
•90“Style="fill:#ffffcc;stroke:#ff6633;stroke-
•width:100;opacity:1">
•تصاویر
•نوشته ها

به منظورنمایش تصاویر SVG در Web Browser نیاز به نصب یک نرم افزار Viewer  از قبیل Abobe’s SVG Viewer می باشد.

Client-Side  & Server Side 

  در اصطلاح به کامپیوتر کاربر یا بیننده صفحه , مشتری (  (Client و به کامپیوتری که به کامپیوتر های دیگر جهت مشاهده صفحات وب سرویس می دهد , سرویس دهنده یا میزبان   (Server ) می گوییم

Client-Side Scripting کدهای برنامه نویسی است که در یک فایل HTML بر روی مرورگر اجرا می شود(مثل JavaScript)

اسکریپتClient-Side  هرگز توسط سرویس دهنده وب پردازش نمیشود , بلکه تنها توسط سرویس گیرنده (مرورگر کاربر)پردازش می شود.

اسکریپتهای Server-Side تماما“بر روی سرویس دهنده وب پردازش می شوند.سرویس گیرنده هیچ کدی را از اسکریپتهای Server Side دریافت نمیکند و نمی شناسد بلکه تنها خروجی اسکریپتهای Server Side را می گیرد.اسکریپتهای Server-Side و Client-Side هیچ فعل و انفعالی بر روی یکدیگر ندارند زیرا اسکریپتهای Client-Side بعد از اینکه اسکریپتهای Server Side پردازش خود را به طور کامل انجام دادند بر روی سرویس گیرنده اجرا می شوند.

SVG on Client-Side

تغییرات درفایلهای SVG در قسمت Client Side قابل انجام است .این بدان معناست که نیازی به ارسال هیچگونه داده ای از Client به Server نمی باشددر نتیجه زمان پاسخ دهی حداقل ممکن میشود در صورتی که اگر می خواستیم از تصاویر رستری با یک تغییر نقطه دید رفتار متقابلی داشته باشیم نیاز به تغییر کامل نقشه و ارسال نقشه جدید از Server به Client می بود که به معنای از دست دادن زمان و اشغال حافظه سیستم می باشد.

صفحات وب اطلاعات متفاوتی رادر خود نگهداری می نمايند. صفحات فوق بر روی سرويس دهندگان وب و بر اساس يک ساختار مشخص ، سازماندهی و ذخيره خواهند شد. کاربران اينترنت بااستفاده از مرورگر خود، درخواست يک صفحه وب را می نمايند، در خواست موردنظر پس از ارسال از طريق محيط انتقال در اختيار سرويس دهنده وب قرار خواهدگرفت. سرويس دهنده وب پس از دريافت درخواست کاربران، عمليات جستجو ويافتن فايل درخواست شده را آغاز می نمايند. در صورتيکه فايل ( صفحه وب)درخواستی پيدا نگردد، سرويس دهنده برای برنامه مرورگر کاربر کدی رابمنزله عدم يافتن فايل ارسال و مرورگر پيام مناسبی در رابطه با عدم يافتن فايل را در اختيار کاربر قرارخواهد داد.

CGI

 

در صورتيکه سرويس دهنده فايل درخواستی را پيدا نمايد، آن را به منظور نمايش برای مرورگر کاربر ارسال خواهد کرد.
فرآيند فوق ، نحوه برخورد سرويس دهنده وب با فايل های ايستا ( صفحات وب ايستا ) را تشريح می نمايد. صفحات وب ايستا ، قبل از درخواست کاربران توسط مولفين مربوطه ، طراحی و بر اساس ساختار سازماندهی شده بر روی سرويس دهنده وب مستقر خواهند شد. محتويات اين نوع صفحات همواره يکسان بوده و اطلاعات موجود را صرف نظر از زمان، مکان، تمايلات درخواست کننده بصورت يکسان نمايش خواهند داد. اکثر سرويس دهندگان امکان استفاده از فايل های پويا را نيز فراهم می آورند. برای ارائه تکنولوژی فوق از امکانات متعددی استفاده می گردد . (CGI (Common Gateway Interface يکی از امکانات موجود در اين زمينه است .

امروزه از اينترفيس CGI در موارد متعددی استفاده می گردد :

يک دفترچه تلفن امکان ارسال اطلاعات کاربران را از طريق يک فرم Html فراهم و پس از ارسال اطلاعات موجود در فرم ، اطلاعات در بانک های اطلاعاتی ذخيره خواهد شد.


يک فروشگاه online کتاب ، امکان ارسال اطلاعات مربوط به يک گروه از کتاب را فراهم و در ادامه اطلاعات تکميلی در رابطه به هر يک از کتاب های موجود در گروه در اختيار کاربران قرار خواهد گرفت .
- در برنامه های موتور جستجو ، امکان درج کلمات مورد نظر برای جستجو در اختيار کاربران گذاشته خواهد شد ، در ادامه برنامه مورد نظر، آدرس صفحات وب شامل اطلاعات مورد نظر ( جستجو) را در اختيار کاربران قرار خواهد داد.

مکانيزم نحوه عملکرد CGI در اکثر سرويس دهندگان وب ، يکسان و استاندارد است . در اين راستا فولدری با نام cgi-bin در فهرست ريشه وب سايت مورد نظر ايجاد می گردد. نحوه برخورد سرويس دهنده با فايل هائی که در فولدر فوق قرار می گيرند، متفاوت خواهد بود. سرويس دهنده در رابطه با فايل های فوق صرفا" عمليات ساده خواندن و ارسال را انجام نخواهد داد. اين نوع فايل ها می بايست اجراء و خروجی بدست آمده در اثر اجرای برنامه، برای مرورگر متقاضی ارسال خواهد گرديد. از زبانهای متعددی برای نوشتن برنامه ها در اين زمينه استفاده می گردد. زبان اسکريپتی PERL يکی از متداولترين گزينه ها برای نوشتن اسکريپت های CGI، می باشد.


بمنظور نوشتن فايل های CGI، می توان از زبانهای برنامه نويسی و زبانهای اسکريپت استفاده کرد. زبانهای C و PERL دو گزينه مناسب در اين راستا می باشند. مسئوليت برخورد با اسکريپت های CGI برعهده سرويس دهنده وب است.

 چندين راه برای دسترسی يك فرد درون اينترانت  Intranet) )به پايگاه داده يك شركت وجود دارد كه يكی از پر طرفدارترين آنها CGI يا (Common Gateway Interface) می باشد. CGI به هر برنامه اجرايی اجازه ميدهد اجرا شده و خروجی خود را به مشتری  Client)  )متقاضی برگرداند. بنابراين به برنامه نويسان اينترانت امكان نوشتن برنامه ها و اسكريپتهايی را می دهد كه با استفاده از آنها كاربران درون اينترانت بتوانند به سادگی با پر كردن فرمهايی از مرورگر وب خود برای جستجو در پايگاه داده و دريافت نتايج به فرمت HTML ،كه برای مرورگر قابل فهم است، استفاده نمايند .

اساسا CGI يك اينترفيس است كه اطلاعات را از سرور به برنامه شما تحويل داده و از برنامه شما به مشتری متقاضی برمی گرداند . CGI يك زبان برنامه نويسی نيست .

همه پردازشها توسط برنامه انجام می شود و CGI تنها ديتا را از برنامه می گيرد . CGI استانداردی است كه به برنامه نويس اجازه می دهدبرنامه هايی بنويسد كه قابليت دسترسی به سرور های اطلاعات و پايگاههای داده را داشته باشند و سپس اطلاعات را به كاربران درون يك اينترانت ارسال نمايند . با استفاده از CGI فن آوريهای اينترانت مبتنی بر وب می توانند با منابع و پايگاههای داده غير TCP/IP ارتباط برقرار كنند.


SVG Structure
 

دو راه برای تعریف SVG در صفحات وب وجود دارد

•SVG  با یک سیستم مستقل از سیستمهای دیگر . به عنوان مثال :

1.

2.

     "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">

3.

4.

5.

در خط اول SVG به عنوان تابعی از  XML واز کامپایلر XML  استفاده می کند .

در خط دوم DTD مخفف Document Type Declaration و نحوه ي نگارش يك سند است . سندي كه شامل تگ ها ، ويژگي هاي آن ، توضيحات و محتويات مي باشد . سندی XML را در صورتی (Valid) معتبر می دانیم که مطابق با DTD تعریف شده برای سند باشد.

DOCTYPE چيست ؟
اعلان نوع سند و نسخه ي آن مي باشد . جهت مطابقت با نحوه ي نگارش صحيح سند مربوطه (استاندارد بودن) به اعلان آن صفحه رجوع مي شود ؛ همچنين مرورگرها با توجه به اعلان سند ، صفحات را مرور كرده و نمايش مي دهند .
اعلان يك سند وب معمولا" در اولين خط (بالاترين قسمت سورس) قرار مي گيرد .

در خط سوم نشان دهنده آن است که یک سند SVG می باشد که محدوده سند SVG را با دو خصوصیت عرض و ارتفاع و مختصات قرارگیری سند SVG درون پنجره کاری را مشخص می کند در صورت وارد نکردن عرض و ارتفاع , کلیه ابعاد Browser  اشغال می شود.

در خط چهارم تمامی محتوای SVG  بین و  قرار می گیرد.

در خط پنجم از آنجایی که SVG یک کاربردی از XML می باشد  همه سندهای SVG بایستی در انتها بسته شوند.

راه دوم تعریف SVG در صفحات وب   
 

قرارگیری اسناد SVG درون HTML یا   XHTMLبا ساختار زیر می باشد:

•1. 
•2. 
•3. 
•4.  Object and Embed
•5. 
•6. 
•7.
•8.
•9. 
•10.
•11.

دستورات کامپیوتری ObjectوٍEmbed در مثال بالا اهمیت ویژه دارند. استفاده تنها از دستور Object باعث می شود فایل SVG مربوطه در Netscape Browser نشان داده نشود. پس بهتر است که از هر 2 دستور استفاده شود ویا فقط از embed استفاده شود.

خطهای 7 تا 9 شامل دستورات Objectو embed می باشد.توجه شود که دستور Object در خط 7 آدرس URL سند SVG را برای خصوصیت data  نسبت می دهد  در حالیکه در خط 8 دستور embeded خصوصیات آن را به  src نسبت می دهد.

از مهمترین خصوصیات این روش امکان ترکیب مزایای HTML وXHTML وSVG می باشد.

برای دریافت متن کامل از لینک دانلود  استفاده نمایید.