এস.ই.ও এর পূর্ণ রুপ হচ্ছে সার্চ ইঞ্জিন অপটিমাইজেশন : SEO

এস.ই.ও এর পূর্ণ রুপ হচ্ছে সার্চ ইঞ্জিন অপটিমাইজেশন। এটি মূলত কিছু কৌশলের সমন্বয়। সার্চ ইঞ্জিন অপটিমাইজেশন হচ্ছে এমন একটি প্রক্রিয়া যার একটি ওয়েব সাইটকে সার্চ ইঞ্জিনের কাছে গুরুত্বপূর্ণ করে তোলা হয়। এটি ওয়েব মাস্টারদের জন্য খুবই গুরুত্বপূর্ণ কেননা তারা সার্চ ইঞ্জিন অপটিমাইজেশন এর মাধ্যমে তাদের নিজস্ব ওয়েবসাইটকে সার্চ রেজাল্ট এর প্রথম পেজে নিয়ে আসতে পারে। তাই বলা যায় য়ে এস.ই.ও হচ্ছে সেই প্রক্রিয়া যার ওয়েব সাইটকে একটি নিদির্ষ্ট শব্দ এর উপর ভিত্তি করে সার্চ ইঞ্জিনে গুরুত্বপূর্ণ পজিশন দখল করা। যাতে একটি নিদিষ্ট বিষয়ের সার্চ রেজাল্টে অন্য ওয়েব সাইটকে পেছনে ফেলে নিজের ওয়েব সাইটকে সবার আগে সার্চ ইঞ্জিনে প্রকাশিত করা।

সার্চ ইঞ্জিনের মাধ্যমে নিজের ওয়েব সাইটকে সবার আগে প্রকাশিত করা। সাইটের ভিজিটর বাড়ানোর যায় এবং নিজের ওয়েব সাটকে সকলের কাছে পরিচিত করানো যায়।

SEO বা Search Engine Optimization। SEO সম্পর্কে বিস্তারিত আলোচনা

SEO হল Search Engine Optimization এর মাধ্যমে একটি ওয়েবসাইট বা ওয়েবপেজকে সার্চ ইঞ্জিন ব্যবহারকারীদের সার্চ বা অনুসন্ধান ফলাফলের তালিকায় প্রথম দিকে দেখানোর চেষ্টা করা হয়। ইহা কোন একক কাজ নয়। ইহা অনেক গুলো কাজের সম্মিলিত ফল। সাধারণত একটি সার্চ ইঞ্জিনের ওয়েব ক্রাউলার বিভিন্ন সময় কিংবা কোনো নির্দিষ্ট সময় ওয়েবে থাকা বিভিন্ন ওয়েবসাইট ঘুরে বেড়ায়। তখন ওয়েব ক্রাউলার কিছু নির্দিষ্ট বৈশিষ্ট্য খুঁজে বেড়ায়। সাধারণত রবোট একটি ওয়েবসাইট ক্রাউল করার সময় যে বিষয়গুলোতে দৃষ্টিপাত করে, সেগুলো হলো:

ওয়েবসাইটের টাইটেল বা নাম, ওয়েবসাইটের ডেসক্রিপশন বা বিবরণ, ওয়েবসাইটের মেটা ট্যাগ, ওয়েবসাইটের সাইট ম্যাপ, ওয়েবসাইটে ব্যবহৃত ছবিগুলোর টাইটেল বা নাম, ওয়েবসাইটে ব্যবহৃত ছবিগুলোর অল্ট বিবরণ, ওয়েবসাইটে ব্যবহৃত ছবিগুলোর ক্যাপশন ইত্যাদিseo এর মাধ্যমে যে কোন ওয়েবসাইটকে সার্চ ইঞ্জিন এর প্রথমে পাতায় আনতে পারলে, ভিজিটর পাওয়ার সম্ভাবনাও অনেকাংশে বেড়ে যায়।

Internet থেকে যদি আমরা একটি বই ডাউনলোড করতে চাই, তাহলে আমরা সাধারণত যে কাজটি করি তা হল google এ আমরা ঐ বই এর নামটি লিখে search করি। এখন লক্ষ্য করুন আমরা search button press করার পর google কিছু website এর নাম দেখায় যেখানে আমরা ঐ বইটি পেতে পারি। এভাবে google প্রতি page এ ১০টি ওয়েরসাইটএর নাম দেখায়। এখন আপনার মনে প্রশ্ন জাগতেই পারে কেন কিছু সাইট প্রথম পেজে আসলো, আর কেনইবা বাকি ওয়েবসাইটগুলো পেছনের পেজে গেলো – google কি ইচ্ছা মত করছে নাকি এর পেছনে অন্য কোন কারণ আছে? নিশ্চয় প্রথমপেজের সাইটগুলোর মধ্যে বিশেষ কিছু আছে, যা অন্য সাইটগুলাতে নাই। এই বিশেষ কিছুই হল seo এর কৌশল, যার মাধ্যমে আপনিও আপনার ওয়েবসাইটটিকে প্রথম পেজে নিতে পারেন। আর প্রথম পেজ মানেই বেশি বেশি ভিজিটর।

seo কে সাধারণত ২ভাগে ভাগ করা হয়:

  • On Page Seo এবং
  • Off page seo.

একটি ক্রিকেট বিষয়ক সাইট আছে যা বর্তমানে #১০ এ অবস্থান করছে। আপনি চাচ্ছেন কেউ যদি search engine এ ” Cricket” লিখে search করে তাহলে এটি #১ অবস্থানে দেখাবে – এটা করতে হলে ঐ সাইট এর seo করতে হবে। seo সাধারণত কোন popular search term বা keyword ব্যবহার করে করা হয়। যদি seo করে আপনার Brand name কে উপরের দিকে নিতে চান এবং সফলও হন, তাহলেও এটিকে ঠিক seo বলা যায় না। কারণ search engine যথেষ্ট smart এবং seo আপনার company name ও keyword কে খুব সহজেই আলাদা করতে পারে। আর প্রধান ব্যাপার হল, যে keyword এর জন্য যত প্রতিযোগীতা, সেই keyword এ rank করা তত কঠিন।

এসইও বা “সার্চ ইঞ্জিন অপ্টিমাইজেশান” কী ? What is SEO?

এসইও বা “সার্চ ইঞ্জিন অপ্টিমাইজেশান” কী ?

এসইও বা “সার্চ ইঞ্জিন অপ্টিমাইজেশান” হচ্ছে, বিনামূল্যে” , “সম্পাদকীয়” বা সার্চ ইঞ্জিন এ “প্রাকৃতিক” তালিকা থেকে ট্রাফিক বা ভিসিটর পাবার প্রক্রিয়া। যেমন – গুগল, ইয়াহু এবং বিং প্রধান সার্চ ইঞ্জিন হিসেবে কোন নির্দিষ্ট অনুসন্ধানের জন্যে লক্ষ লক্ষ ফলাফল প্রকাশ করে। কিন্তু লক্ষ লক্ষ ফলাফলের মধ্যে যাদের ওয়েবসাইট গুলোকে প্রথম পাতায় প্রদরশন করা হয়, তারা যে প্রক্রিয়াই প্রথম পাতাই আসে তাকেই এসইও বলে।

তবে প্রথম পাতাই আসার আরেক্তি উপাই হচ্ছে, বিজ্ঞাপন। তবে এতি এসইও এর পরজাএ পড়ে না, কারন এতে শুধু মাত্র গুগল কে বিজ্ঞাপনের জন্যে খরছ প্রদান করেই প্রথম পাতাই আসা যায়। ভিসিতর আনার জন্যে সার্চ ইঞ্জিন অপটিমাইজেসেন এর গুরুত্ব অবর্ণনীয়।

সার্চ ইঞ্জিন অপটিমাইজেশন এর উপর প্রাথমিক ধারণা

সার্চ ইঞ্জিন অপটিমাইজেশন এর সংক্ষিপ্ত রূপ হল এস ই ও। এসইও এর কিছু মূলনীতি রয়েছে- যার প্রথমেই আসে, ওয়েবপেজটি কি ধরনের হবে? ওয়েবসাইটের প্রতি পেজের অবশ্যই একটি টাইটেল দিতে হবে এবং প্রতিটি টাইটেল এর মধ্যে ভিন্নতা থাকতে হবে। তবে এর মূল শব্দগুলো (keyword) সম্পর্কে সচেতন থাকতে হবে, শব্দগুলো যেন ভিজিটরদের কাছে অর্থবহ হয়। দ্বিতীয়ত, পেজ এর কন্টেন্ট সম্পর্কেও সচেতন থাকতে হবে, নিম্ন মান সম্পন্ন কন্টেন্ট যেমন ব্যবহার করা যাবে না তেমনি নকল কোন কন্টেন্টও ব্যবহার করা উচিত হবে না। এমন ধরনের কন্টেন্ট ব্যবহার করতে হবে যার মাঝে বৈচিত্র্যতা আছে, তবে তা যেন ভিজিটরদের বিরক্তির কারন না হয়ে আকৃষ্ট করতে পারে। তৃতীয়ত,অ্যাংকর (a tag) টেক্সট ব্যবহারে হতে হবে সচেতন। অর্থবহ এবং বর্ণনামূলক অ্যাংকর টেক্সট ব্যবহার করতে হবে। একই অ্যাংকর টেক্সট বার বার ব্যবহার করা যাবে না। চতুর্থত, h1থেকে h6 ট্যাগ এর ব্যবহার এমন হতে হবে যা ওয়েবপেজের কন্টেন্ট স্ট্রাকচার তুলে ধরতে পারে। এছাড়া robots.txt ফাইল ব্যবহার করতে হবে যাতে করে ক্রলার ওয়েবসাইটের নির্দিষ্ট কোন অংশকে ইন্ডেক্সিং করা থেকে বিরত থাকে।

এসইও – লিঙ্ক বিল্ডিং । SEO – Link Building

স্বর্ণা আখতার

 

লিঙ্ক বিল্ডিং এস ই ওর গুরুত্বপূর্ণ কাজগুলোর মধ্যে অন্যতম যার মাধ্যমে ওয়েব সাইট এর ভিজিটর বৃদ্ধির পাশাপাশি গুগল এ এর রাঙ্ক বৃদ্ধিতেও কাজ করা যায়। সর্বোপরি ভাবে বলা যায়, লিঙ্ক বিল্ডিং শুধুমাত্র ওয়েবসাইট এর জনপ্রিয়তা বৃদ্ধিতেই সহায়তা করে।

কিভাবে লিঙ্ক বিল্ডিং করবেন

লিঙ্ক বিল্ডিং এর বিভিন্ন নিয়ম-কানুন বা পদ্ধতি প্রচলিত আছে। নিচে কিছু পদ্ধতি সম্পর্কে সংক্ষিপ্ত আলোচনা করা হল,

  1. ওয়েবসাইট কে বিভিন্ন ডিরেক্টরিতে সাবমিট করুন। তবে কোন অটোম্যাটিক উপায় অবলম্বন করবেন না এতে গুগল আপনার রাঙ্ক কমিয়ে দিতে পারে।
  2. অনেক মুক্ত ডিরেক্টরি আছে যেমন, “dmog.org, yahoo.com” এগুলোতে আপনার সাইটটিকে অন্তর্ভুক্ত করুন। যার ফলে অন্যান্য যেসব সার্চ ইঞ্জিন আছে সেগুলোতে আপনার সাইট এর জনপ্রিয়তা বৃদ্ধি পাবে।
  3. আপনার ওয়েবপেজ এর জন্য উন্নত মানের আর্টিকেল লিখুন যা ভিজিটর ধরে রাখতে সহায়তা করবে। এবং যার ফলে, আপনার ওয়েবসাইট এর বাউন্স রেট কম হবে।
  4. লিঙ্ক বিনিময় কাজে অংশগ্রহণ করুন। যার মাধ্যমে আপনার সাইট এ ভিজিটর বৃদ্ধি পেতে পারে। তবে একপাক্ষিক হলেই বেশি ভাল হয়।
  5. আপনার সাইট এর জনপ্রিয়তা বৃদ্ধিতে ফোরামগুলোতে সিগনেচার হিসাবে আপনার লিঙ্ক রেখে আসতে পারেন ।
  6. বুকমারকিং সাইটগুলোতে আপনার সাইট এর লিঙ্ক সাবমিট করতে পারেন।
  7. ব্লগিং সাইটগুলোতে ভাল মানের আর্টিকেল লিখতে পারেন এবং সেখানে আপনার সাইটএর লিঙ্ক বিজ্ঞাপন হিসাবে দিতে পারেন।
  8. সবসময় আপনার সাইট এর ভিজিটরদের ভাল মানের সেবা সরবরাহ করুন এবং তাদেরকে ব্যাস্ত রাখার চেষ্টা করুন।

 

লিঙ্ক বিল্ডিং এ আরও কিছু উপায় আছে কিন্তু সেগুলোতে আপনাকে অর্থ খরচ করতে হতে পারে। এমন কিছু পদ্ধতি হল,

  1. কিছু উচ্চ মানে ওয়েব সাইট কিনুন যেগুলোতে আপনি আপনার লিঙ্কগুলোকে রেখে আসতে পারবেন।
  2. গুগল এডওয়ার্ড এ যোগ দিতে পারেন। এর মাধ্যমে আপনার সাইট এর ভিজিটর নিশ্চিতভাবে বৃদ্ধি পেতে পারে।

পরিশেষে বলা যায় যে, ওয়েব সাইটএর ভিজিটর বৃদ্ধিতে লিঙ্ক বিল্ডিং অনেক অবদান রাখে। এস ই ওর অনেক পদ্ধতি প্রচলিত থাকলেও লিঙ্ক বিল্ডিং এ একমাত্র উপায় যেটা দীর্ঘমেয়াদি জনপ্রিয়তা বয়ে আনতে কাজ করে থাকে।

 

এসইও – ওয়েব সাইট ডোমেন । SEO – Web Site Domain

নয়ন চন্দ্র দত্ত

 

আমরা যদি সার্চ ইঞ্জিন অপটিমাইজেশনকে ১০০% ধরি এবং একে বিভিন্ন ভাগে ভাগ করি তাহলে দেখা যাবে যে এর মধ্যে প্রায় ২০% ই হলো ডোমেন নেইম এর তথ্য। তাহলে চিন্তা করুন ডোমেনের নামকরণ বা এর সঠিক তথ্য সার্চ ইঞ্জিন অপটিমাইজেশনে কতটা গুরুত্বপূর্ণ। তাই এসইও করার সময় প্রথমেই আপনাকে নজর দিতে হবে আপনার ডোমেইনের নামের দিকে। লক্ষ্য রাখতে হবে আপনি যে বিষয় নিয়ে এসইও করতে যাচ্ছেন সে বিষয় এর সাথে আপনার ডোমেইন নামের মিল থাকে।

 

যখনই আপনি ইন্টারনেট এর মাধ্যমে একটি ব্যবসা শুরু করার চিন্তা করছেন, আমার মনে হয় যে আপনি প্রথমে আপনার ওয়েবসাইট ডোমেইন নাম নিয়ে ভাববেন। একটি ডোমেন নাম চয়েজ করার আগে আপনার নিম্নলিখিত বিষয়গুলো বিবেচনা করা উচিতঃ

  1. আপনার লক্ষ্য পাঠকবর্গ কারা হবে?
  2. আপনি তাদের কাছে কি বিক্রি করতে মনস্থ করেছেন। এটা কি একটা বাস্তব আইটেমট বা শুধু টেক্সট কন্টেন্ট ?
  3. কি আপনার ব্যবসায়িক ধারণাকে ইউনিক করে তুলবে অথবা বাজারে ইতিমধ্যে available যা অন্য সব কিছুর থেকে আলাদা হবে ?

অনেকে ডোমেইন এর মধ্যে কীওয়ার্ড থাকাকে গুরুত্বপূর্ণ মনে করে। ডোমেইন নামে কীওয়ার্ড বা মূলশব্দ সাধারণত গুরুত্বপূর্ণ কিন্তু এটা সাধারণত ডোমেইন নাম, সংক্ষিপ্ত স্মরণীয় (সহজে মনে থাকে) এবং হাইফেনবিহীন হলে সম্ভব হতে পারে।

আপনার ডোমেইন নাম এর মধ্যে কীওয়ার্ড ব্যবহার আপনার প্রতিযোগীদের থেকে আপনাকে একটি শক্তিশালী প্রতিযোগিতামূলক সুবিধা দেয়। আপনার ডোমেইন নাম এর মধ্যে কীওয়ার্ড থাকলে সার্চ ইঞ্জিন লিস্টে ক্লিক-মাধ্যম- হার বৃদ্ধি করতে পারে এবং শব্দ সমৃদ্ধ বর্ণনামূলক আগমনকারী লিঙ্ক পেতে কীওয়ার্ডের ব্যবহার যা বিজ্ঞাপন দেওয়াকে সহজ করে তুলে।

 

দীর্ঘ এবং বিভ্রান্তিকর ডোমেইন নাম কেনা থেকে এড়িয়ে চলুন। অনেক মানুষ ড্যাশ বা হাইফেন ব্যবহার করে তাদের ডোমেইন নামের মধ্যে শব্দ আলাদা করে থাকে। আগে ডোমেইন নাম নিজেই একটি গুরুত্বপূর্ণ র‍্যাংকিং ফ্যাক্টর ছিল কিন্তু এখন সার্চ ইঞ্জিনের উন্নত বৈশিষ্ট্য আছে এবং এটি আর এখন খুব গুরুত্বপূর্ণ ফ্যাক্টর নেই। আপনার ডোমেন নাম এর মধ্যে দুই থেকে তিন শব্দ রাখুন মনে রাখা সহজ হবে। কিছু সর্বাদিক লক্ষণীয় (notable) ওয়েবসাইট তাদের নিজস্ব শব্দ তৈরি করে ব্র্যান্ডিং এর কাজ করে। যেমন কয়েকটি উদাহরণ ইবে, ইয়াহু!, এক্সপিডিয়া, স্ল্যাশডট, Fark , উইকিপিডিয়া, গুগল ইত্যাদি।

 

আপনাকে একবার টেলিফোনে এটা বলতে সক্ষম হওয়া উচিত এবং অন্যান্য ব্যক্তি এটির বানান কিভাবে জানতে পারে এবং আপনি কি বিক্রি করছেন তারা যেন সেটা অনুমান করতে পারে।

গুরু মন্ত্র

অবশেষে, আপনাকে নিম্নলিখিত প্রশ্নের উত্তর দিতে সক্ষম হতে হবেঃ

  1. কেন আপনি আপনার ওয়েবসাইট তৈরি করতে চান?
  2. কেন মানুষ আপনার সাইটে থেকে কিনবে এবং অন্যান্য সাইট থেকে কেন নয়?
  3. কি অন্যদের থেকে আপনার সাইটকে আলাদা করে তোলবে ?
  4. কে আপনার লক্ষ্য পাঠক এবং আপনি কি বিক্রি করতে মনস্থ করেছেন?
  5. আপনি কি মনে করেন যে তালিকা 5 থেকে 10 ওয়েবসাইটগুলো আশ্চর্যজনক এখন চিন্তা করুন কেন তারা আশ্চর্যজনক?
  6. 5টি বিভিন্ন ডোমেইন নাম তৈরি করুন। তাদের মধ্যে অন্তত 1টা মজার করুন। অর্ধ ডজন মানুষকে বলুন এবং কোনটি সবচেয়ে বেশী স্মরণ থাকে। সেই মানুষগুলো যদি আপনাকে ভাল না জানে তাহলে আপনি আরো সৎ প্রতিক্রিয়া পাবেন।
  7. আপনার ডোমেন কিনুন যা catchy, স্মরণীয় এবং আপনার ব্যবসা প্রাসঙ্গিক ।

 

পিএইচপি ৫ while লুপ (PHP 5 while Loops)

প্রতাপ চন্দ্র

 

পিএইচপি while লুপ কোডের একটি ব্লক নির্বাহ করে যতক্ষণ পর্যন্ত একটি বেধে দেয়া শর্ত TRUE হতে থাকে।
যখন কোড লেখা হয় তখন এমন প্রয়োজন হতে পারে যে একই কাজ বার বার করার দরকার পড়ছে। তখন ওই কাজের জন্য বার বার কোড না লিখে লুপ ব্যবহার করে একই ফল পাওয়া যায়। এতে কোড পরিচ্ছন্ন থাকে এবং সহজে ও দ্রুত কাজ সম্পন্ন হয়।

পিএইচপিতে নিচের লুপ স্টেটমেন্টগুলো ব্যবহার করা হয়:

  • while – যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ কোডের একটি ব্লক নির্বাহ করতে থাকে।
  • do…while – একবার লুপটি সম্পন্ন করে, অতপর যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ পুরো লুপটি নির্বাহ করতে থাকে।
  • for – একটি নির্দিষ্ট সংখ্যক বার কোডের একটি ব্লক নির্বাহ হতে থাকে।
  • foreach – একটি অ্যারের সবগুলো উপাদানে না পৌছানো পর্যন্ত কোডের একটি ব্লক নির্বাহ করতে থাকে।

পিএইপি while লুপ

যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ কোডের একটি ব্লক নির্বাহ করতে থাকে।

গঠনরীতি


while (condition is true) {
     code to be executed;
 }

নিচের উদাহরণে $x চলকের প্রাথমিক মান 1 ধরা হয় ($x = 1)। এরপর $x এর মান যতক্ষণ পর্যন্ত 5 এর কম থাকবে কিংবা সমান হবে ($x <= 5) ততক্ষণ প্রতি লুপে ($x++) চলক $x এর মান 1 করে বাড়তে থাকবে।


<?php 
 $x = 1;
while($x <= 5) {
     echo "The number is: $x <br>";
     $x++;
 } 
 ?>

 

কোডটি রান করালে ফলাফল আসবে:


The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5


 

পিএইচপি do…while লুপ

do…while লুপ কোডের একটি ব্লক একবার রান করবে। এরপর শর্ত যাচাই করবে। যতক্ষণ শর্ত TRUE হবে ততক্ষণ লুপ চলতে থাকবে।

গঠনরীতি:


do {
     code to be executed;
 } while (condition is true);

নিচের উদাহরণে $x চলকের প্রাথমিক মান 1 ধরা হয়েছে ($x = 1)। এরপর do…while লুপ প্রাথমিক আউটপুট দেবে। এরপর $x এর মান 1 বাড়াবে। এরপর শর্ত পরীক্ষা করে দেখবে $x এর মান 5 এর কম আছে কিংবা সমান হয়েছে কিনা। যতক্ষণ পর্যন্ত তা TRUE হবে ততক্ষণ লুপে দেয়া কোড নির্বাহ হবে এবং আউটপুট আসতে থাকবে।
যেমন:


<?php 
 $x = 1;
do {
     echo "The number is: $x <br>";
     $x++;
 } while ($x <= 5);
 ?>

 

কোডটি রান করলে আগের মতোই ফলাফল আসবে:


The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5


 

এখানে লক্ষ্য করুন, do…while লুপে শর্ত যাচাই করা হয় লুপের মধ্যকার স্টেটমেন্টটি নির্বাহ হবার পরে। এর অর্থ হলো do…while লুপ কোডটি নূন্যতম একবার নির্বাহ হবে, এমনকি শর্ত যদি FALSE হয় তবুও।

নিচের উদাহরণে $x চলকের প্রাথমিক মান 6 ধরা হয়েছে। এরপর কোডটি রান করে। তারপর শর্ত পরীক্ষা করে দেখে লুপ করবে কিনা। যেহেতু শর্ত FALSE হয় তাই আর লুপ হয় না।


<?php 
 $x = 6;
do {
     echo "The number is: $x <br>";
     $x++;
 } while ($x<=5);
 ?>

 

উপরের উদাহরেণের ক্ষেত্রে ফলাফল আসবে:


The number is: 6


 

গুগল ম্যাপের প্রকার (Google Maps Types)

গুগল ম্যাপের প্রকার
Sheikh Mahfuzur Rahman

একটি হাইব্রিড(HYBRID) গুগল ম্যাপঃ

গুগল ম্যাপ – প্রাথমিক প্রকারের কিছু ম্যাপ

গুগল ম্যাপ এপিআই নিচের ম্যাপের প্রকারগুলোকে সাপোর্ট করেঃ
ROADMAP (সাধারণ, টু’ডি ম্যাপ)
SATELLITE (ফটোগ্রাফিক ম্যাপ – ম্যাপটি তোলা ছবি থেকে তৈরি করা হয়েছে)
HYBRID (ফটোগ্রাফিক + রাস্তা ও শহরের নাম)
TERRAIN (পর্বত, নদী ইত্যাদি সহ ম্যাপ)।
ম্যাপের প্রকার হয় mapTypeId প্রপার্টি’র মাধ্যমে ম্যাপ প্রপার্টি অবজেক্টের ভিতরে নির্দিষ্ট করা হয়ঃ

var mapProp = {
center:new google.maps.LatLng(51.508742,-0.120850),
zoom:7,
mapTypeId: google.maps.MapTypeId.HYBRID
};

অথবা ম্যাপের setMapTypeId() মেথডকে কল করে করা হয়ঃ

map.setMapTypeId(google.maps.MapTypeId.HYBRID);

গুগল ম্যাপ – ৪৫ ডিগ্রি পার্সপেক্টিভ ভিউ

SATELLITE এবং HYBRID ম্যাপ হাই জুম লেভেলে কিছু কিছু অঞ্চলের জন্য একটি ৪৫ডিগ্রি ইমেজারি(যেখানে ঐ এলাকার রাস্তা, বাড়িঘরের ছবি থাকে) ভিউকে সাপোর্ট করে। আপনি যদি ৪৫ডিগ্রি ইমেজারি ভিউতে একটি এলাকাকে জুম করেন, ম্যাপ সয়ংক্রিয়ভাবে পার্স্পেকটিভ ভিউকে উল্টে দেবে। সেই সাথে, ম্যাপটি নিচের জিনিসগুলোকে যোগ করবেঃ
প্যান কন্ট্রোলের কাছে একটি কম্পাস, আপনার ছবি রোটেট বা ঘুরাতে সাহাজ্য করবে।
প্যান ও জুম কন্ট্রোলের মাঝখানে একটি রোটেট কন্ট্রোল, ইমেজকে ৯০ডিগ্রি পর্যন্ত ঘুরাতে দেয়।
স্যাটেলাইট কন্ট্রোল/লেবেলের নিচে ৪৫ডিগ্রি পার্সপেক্টিভ ভিউকে দেখানোর জন্য একটি টগল কন্ট্রোল

লক্ষ্যণীয়ঃ ৪৫ডিগ্রি ইমেজারি’র ম্যাপ থেকে জুম আউট করলে উপরের পরিবর্তনগুলো আর থাকবেনা এবং আসল ম্যাপটি দেখানো হবে।

নিচের উদাহরণটি ইটালির ভেনিসের পালাজ্জো ডুকালের একটি ৪৫ডিগ্রি পার্স্পেক্টিভ ভিউ দেখায়ঃ

var mapProp = {
center:myCenter,
zoom:18,
mapTypeId:google.maps.MapTypeId.HYBRID
};

টিপসঃ গুগল নতুন নতুন এলাকার জন্য ৪৫ডিগ্রি ইমেজারি ভিউ যোগ করছে। এখানে গুগল ম্যাপের ৪৫ডিগ্রি ইমেজারি’র তালিকাটি দেখে নিন।

গুগল ম্যাপ – ৪৫ডিগ্রি পার্সপেক্টিভ ভিউকে বাদ দেয়া

ম্যাপ অবজেক্টে etTilt(0) কে কল করে আপনি ৪৫ডিগ্রি ইমেজারি ভিউকে বাদ দিয়ে দিতে পারেনঃ

map.setTilt(0);

টিপসঃ পরবর্তীতে ৪৫ডিগ্রি পার্স্পেক্টিভ ভিউকে কার্যকর করতে setTilt(45) কে কল করুন।

 

 

গুগল ম্যাপ কন্ট্রোল (Google Maps Controls)

ডিফল্ট কন্ট্রোল সেটসহ একটি গুগল ম্যাপঃ

গুগল ম্যাপ – ডিফল্ট কট্রোল

যখন একটি স্ট্র্যান্ডার্ড গুগল ম্যাপ দেখানো হয় তখন তাতে যে কন্ট্রোলসেটটি ডিফল্ট হিসেবে থাকে তা নিম্নরূপঃ

জুম – একটি স্লাইডার অথবা “+/-” বাটনগুলো দেখায় যা ম্যাপের জুম লেভেল নিয়ন্ত্রন করতে ব্যবহৃত হয়
প্যান – ম্যাপকে প্যানিং অর্থাৎ ভার্টিকেল/হরাইজন্টালি নাড়াচাড়া করার জন্য একটি প্যান কন্ট্রোল দেখায়
ম্যাপটাইপ – ইউজারদের ম্যাপটাইপ (স্যটেলাইট/রোডম্যাপ) পরিবর্তন করতে দেয়
স্ট্রিট ভিউ – একটি পেজম্যান আইকন দেখায় যা ম্যাপের উপর টেনে নিয়ে স্ট্রিট ভিউ সচল করা যায়

গুগল ম্যাপ – আরও কিছু কন্ট্রোল

ডিফল্ট কন্ট্রোলের সাথে, গুগল ম্যাপে আরও কিছু কন্ট্রোল রয়েছেঃ
স্কেল – ম্যাপের স্কেল এলিমেন্ট দেখায়
রোটেট – একটি ছোট বৃত্তাকার আইকন দেখায় যা ম্যাপটিকে ঘুরাতে সাহাজ্য করে
অভারভিউ ম্যাপ – একটি থাম্বনেল অভারভিউ দেখায় যা বৃহত্তর এলাকায় বর্তমান ম্যাপের ভিউপোর্ট প্রতিফলিত করে।

আপনি যখন ম্যাপঅপশনে ম্যাপ তৈরি করবেন অথবা যখন setOptions() কে কল করার মাধ্যমে ম্যাপের অপশন পরিবর্তন করবেন তখন কোন কন্ট্রোলগুলো দেখাবেন তা নির্দিষ্ট করে দিতে পারবেন।

গুগল ম্যাপ – ডিফল্ট কন্ট্রোলগুলো ডিজেবল করা

আপনি হয়তো ডিফল্ট কন্ট্রোলগুলো বন্ধ করে দিতে চাইবেন। এটা করতে, ম্যাপ অপশন অবজক্টের ভেতরে disableDefaultUI প্রপার্টিকে ট্রু (true) করে দিনঃ

disableDefaultUI:true

গুগল ম্যাপ – সবগুলো কন্ট্রোলকে চালু করা

কিছু কন্ট্রোল ম্যাপে ডিফল্ট হিসেবে দেখায় এবং কিছু কন্ট্রোল আপনি যতক্ষণ না চালু করছেন ততক্ষণ দেখা যাবেনা। ম্যাপে কোন কন্ট্রোল যোগ করা হবে বা কোনটা লুকানো হবে তা ম্যাপ অপশন অবজেক্টে ঠিক করে দিতে হয়। কন্ট্রোলকে দৃশ্যমান করতে ট্রু সেট করতে হবে এবং লুকাতে হাইড (hide) সেট করতে হবে।
নিচের উদাহরণটি সবগুলো কন্ট্রোলকে অন করে বা দেখায়ঃ
panControl:true,
zoomControl:true,
mapTypeControl:true,
scaleControl:true,
streetViewControl:true,
overviewMapControl:true,
rotateControl:true

গুগল ম্যাপ – কন্ট্রোলগুলো মডিফাই করা

কিছু কিছু ম্যাপ কন্ট্রোল কনফিগার করা যায়। কন্ট্রোল অপশন ফিল্ডকে নির্দিষ্ট করে দেয়ার মাধ্যমে কন্ট্রোলগুলো কনফিগার করা যায়।
উদাহরণস্বরূপ, একটি জুম কন্ট্রোলকে মডিফাই বা পরিবর্তন করার অপশনগুলো zoomControlOptions ফিল্ডকে ঠিক করে দেয়া হয়। zoomControlOptions ফিল্ড নিচের অপশনগুলো ধারণ করতে পারেঃ

google.maps.ZoomControlStyle.SMALL – একটি ছোট জুম কন্ট্রোল দেখায় (শুধু + এবং – বাটন থাকে)
google.maps.ZoomControlStyle.LARGE – স্ট্যান্ডার্ড জুম স্লাইডারকে দেখায়
google.maps.ZoomControlStyle.DEFAULT – ডিভাইস ও ম্যাপের আকার অনুযায়ী সবথেকে ভালো জুম কন্ট্রোল দেখায়

উদাহরণঃ
zoomControl:true,
zoomControlOptions: {
style:google.maps.ZoomControlStyle.SMALL
}

নোটঃ আপনি যদি কোন কন্ট্রোলকে মডিফাই করতে চান তাহলে প্রথমে কন্ট্রোলটিকে সচল (ট্রু হিসেবে সেট করুন) করে নিন।

আরেকটি কনফিগার করার মতো কন্ট্রোল হলো MapType কন্ট্রোল
mapTypeControlOptions ফিল্ডে এই কন্ট্রোলের অপশনগুলো কিভাবে মডাফাই করা হবে তা ঠিক করে দিতে হয়। mapTypeControlOptions ফিল্ড নিচের অপশনগুলো ধারণ করতে পারেঃ

google.maps.MapTypeControlStyle.HORIZONTAL_BAR – প্রতি ম্যাপ টাইপের জন্য একটি বাটন দেখায়
google.maps.MapTypeControlStyle.DROPDOWN_MENU – একটি ড্রপডাউন মেন্যু থেকে ম্যাপ টাইপ সিলেক্ট করার ব্যবস্থা করে
google.maps.MapTypeControlStyle.DEFAULT – স্ক্রিনের আকার অনুযায়ী ডিফল্ট ম্যাপ টাইপ দেখায়

উদাহরণঃ
mapTypeControl:true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.DROPDOWN_MENU
}

আপনি ControlPosition প্রপার্টির মাধ্যমে একটি কন্ট্রোলের অবস্থানও ঠিক করে দিতে পারবেনঃ

mapTypeControl:true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position:google.maps.ControlPosition.TOP_CENTER
}

গুগল ম্যাপ – কাস্টম কন্ট্রোল

এমন একটি কাস্টম কন্ট্রোল তৈরি করা যাক যা আপনাকে ক্লিক করার পর সব সময় লন্ডনে নিয়ে ( যদি ম্যাপকে ড্র্যাগ করা হয়) যাবেঃ

controlDiv.style.padding = ‘5px’;
var controlUI = document.createElement(‘div’);
controlUI.style.backgroundColor = ‘yellow’;
controlUI.style.border=’1px solid’;
controlUI.style.cursor = ‘pointer’;
controlUI.style.textAlign = ‘center’;
controlUI.title = ‘Set map to London’;
controlDiv.appendChild(controlUI);
var controlText = document.createElement(‘div’);
controlText.style.fontFamily=’Arial,sans-serif’;
controlText.style.fontSize=’12px’;
controlText.style.paddingLeft = ‘4px’;
controlText.style.paddingRight = ‘4px’;
controlText.innerHTML = ‘Home
controlUI.appendChild(controlText);

 

 

গুগল ম্যাপ এর ঘটনাবলি (Google Maps Events)

Google Maps Events(গুগল ম্যাপ এর ঘটনাবলি)

Click The Marker to Zoom(জুম করার জন্য মার্কার Click করুন)
আমরা এখনও পূর্বের page এর map ব্যাবহার করচিঃ এখানে যে map টি ব্যাবহার করা হয়েছে তা লন্ডন, ইংল্যান্ড কেন্দ্রিক ।

যখন একজন ব্যাবহারকারী মার্কার এ ক্লিক করেন তখন আমরা map টিকে বড় করে উপস্থাপন করি (আমরা marker হিসেবে একটি
event handler যুক্ত করেছি যা map টি কে বড় করে দেখায় Click করার পর)।

কোড টি এরূপ ঃ

// Zoom to 9 when clicking on marker
google.maps.event.addListener(marker,’click’,function() {
map.setZoom(9);
map.setCenter(marker.getPosition());
});

আমরা addListener নামক event handler টি যুক্ত করেছি event গুলির notification খুব সহজে পাওয়ার জন্য ।
এই প্রক্রিয়াটি একটি object এর জন্য দরকার হয়, যেমনঃ শোনার জন্য একটি event কে call করা হয় যখন এটি ঘটে।

Pan Back to Marker
এই পর্যায়ে map টি তে একটি event handler ব্যাবহার করা হয় ‘center’ property পরিবর্তন করার জন্য এবং marker
কে pan back করলে map টি তে ৩ সেকেন্ড পরে একটি center_changed ঘটনা ঘটে, codeগুলি নিম্নরূপঃ

google.maps.event.addListener(map,’center_changed’,function() {
window.setTimeout(function() {
map.panTo(marker.getPosition());
},3000);
});

Open an InfoWindow When Clicking on The Marker(একটি InfoWindow Open হয় যখন Marker
এ Click করা হয় )
Marker এ Click করা হলে নিম্নরূপ কিছু text দেখা যায় infowindow তেঃ

var infowindow = new google.maps.InfoWindow({
content:”Hello World!”
});

google.maps.event.addListener(marker, ‘click’, function() {
infowindow.open(map,marker);
});

Set Markers and Open InfoWindow for Each Marker(Marker নির্দিষ্ট করন এবং প্রত্যেক Marker এর
জন্য InfoWindow খুলা )
একটি function Run হয় যখন ব্যাবহারকারী map এ click করেন।

placeMarker() function টি একটি marker এর স্থান নির্দিষ্ট করে যেখানে ব্যাবহারকারী click করে এবং একটি
infowindow এটিতে marker এর latitudes and longitudes দেখায়ঃ

উদাহরনঃ
google.maps.event.addListener(map, ‘click’, function(event) {
placeMarker(event.latLng);
});

function placeMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map,
});
var infowindow = new google.maps.InfoWindow({
content: ‘Latitude: ‘ + location.lat() +

Longitude: ‘ + location.lng()
});
infowindow.open(map,marker);
}