একটি তথ্য উইন্ডো আপনাকে ব্যবহারকারীর কাছে তথ্য প্রদর্শন করতে দেয় যখন তারা একটি মার্কারে ট্যাপ করে।
একটি তথ্য উইন্ডো ডিভাইসের স্ক্রিনের বিপরীতে আঁকা হয়, এটির সংশ্লিষ্ট মার্কার উপরে কেন্দ্র করে। ডিফল্ট তথ্য উইন্ডোতে শিরোনামটি বোল্ডে থাকে, শিরোনামের নিচে স্নিপেট টেক্সট থাকে।
তথ্য উইন্ডোর বিষয়বস্তু চিহ্নিতকারীর title
এবং snippet
বৈশিষ্ট্য দ্বারা সংজ্ঞায়িত করা হয়। title
এবং snippet
বৈশিষ্ট্য উভয়ই ফাঁকা বা nil
হলে মার্কারটিতে ক্লিক করা তথ্য উইন্ডো প্রদর্শন করে না।
একটি সময়ে শুধুমাত্র একটি তথ্য উইন্ডো প্রদর্শিত হয়. একজন ব্যবহারকারী অন্য মার্কারে ট্যাপ করলে, বর্তমান উইন্ডোটি লুকানো থাকে এবং নতুন তথ্য উইন্ডো খোলে। ব্যবহারকারী যদি একটি মার্কারে ক্লিক করে যা বর্তমানে একটি তথ্য উইন্ডো দেখাচ্ছে, সেই তথ্য উইন্ডোটি বন্ধ হয়ে যায় এবং পুনরায় খোলে।
অতিরিক্ত পাঠ্য বা ছবি যোগ করতে একটি কাস্টম তথ্য উইন্ডো তৈরি করুন। একটি কাস্টম তথ্য উইন্ডো আপনাকে পপআপের উপস্থিতির সম্পূর্ণ নিয়ন্ত্রণ দেয়৷
একটি তথ্য উইন্ডো যোগ করুন
নিম্নলিখিত স্নিপেটটি তথ্য উইন্ডোর পাঠ্যের জন্য শুধুমাত্র একটি শিরোনাম সহ একটি সাধারণ মার্কার তৈরি করে।
সুইফট
let position = CLLocationCoordinate2D(latitude: 51.5, longitude: -0.127) let london = GMSMarker(position: position) london.title = "London" london.map = mapView
উদ্দেশ্য-C
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(51.5, -0.127); GMSMarker *london = [GMSMarker markerWithPosition:position]; london.title = @"London"; london.map = mapView;
snippet
সম্পত্তির সাথে, আপনি অতিরিক্ত পাঠ্য যোগ করতে পারেন যা একটি ছোট ফন্টে শিরোনামের নীচে প্রদর্শিত হবে। তথ্য উইন্ডোর প্রস্থের চেয়ে দীর্ঘ স্ট্রিংগুলি স্বয়ংক্রিয়ভাবে বেশ কয়েকটি লাইনে মোড়ানো হয়। খুব দীর্ঘ বার্তাগুলি কাটা হতে পারে৷
সুইফট
london.title = "London" london.snippet = "Population: 8,174,100" london.map = mapView
উদ্দেশ্য-C
london.title = @"London"; london.snippet = @"Population: 8,174,100"; london.map = mapView;
একটি তথ্য উইন্ডো দেখান/লুকান
তথ্য উইন্ডোগুলি মার্কারে ব্যবহারকারীর স্পর্শ ইভেন্টগুলিতে প্রতিক্রিয়া জানাতে ডিজাইন করা হয়েছে৷ আপনি GMSMapView
এর selectedMarker
বৈশিষ্ট্য সেট করে প্রোগ্রাম্যাটিকভাবে একটি তথ্য উইন্ডো দেখাতে বা লুকাতে পারেন:
- এটি দেখানোর জন্য
selectedMarker
সেট করুন। - এটি লুকানোর জন্য
selectedMarker
nil
সেট করুন।
সুইফট
london.title = "London" london.snippet = "Population: 8,174,100" london.map = mapView // Show marker mapView.selectedMarker = london // Hide marker mapView.selectedMarker = nil
উদ্দেশ্য-C
london.title = @"London"; london.snippet = @"Population: 8,174,100"; london.map = mapView; // Show marker mapView.selectedMarker = london; // Hide marker mapView.selectedMarker = nil;
স্বয়ংক্রিয়ভাবে রিফ্রেশ করার জন্য একটি তথ্য উইন্ডো সেট করা হচ্ছে
আপনি যদি চান নতুন বৈশিষ্ট্য বা তথ্য উইন্ডোর বিষয়বস্তু পরিবর্তন করার সময় অবিলম্বে প্রদর্শিত হবে, তথ্য উইন্ডো লুকানোর জন্য অপেক্ষা করার পরিবর্তে এবং তারপরে আবার দেখানোর জন্য মার্কারে tracksInfoWindowChanges
সেট করুন YES
বা true
। ডিফল্ট NO
বা false
।
সুইফট
london.tracksInfoWindowChanges = true
উদ্দেশ্য-C
london.tracksInfoWindowChanges = YES;
tracksInfoWindowChanges
বৈশিষ্ট্য কখন সেট করতে হবে তা নির্ধারণ করতে, তথ্য উইন্ডোটি স্বয়ংক্রিয়ভাবে পুনরায় আঁকার সুবিধার বিপরীতে আপনার কার্যক্ষমতা বিবেচনা করা উচিত। যেমন:
- আপনার যদি একাধিক পরিবর্তন করতে হয়, তাহলে আপনি সম্পত্তিটি
YES
তে পরিবর্তন করতে পারেন তারপরNO
তে ফিরে যেতে পারেন। - যখন একটি অ্যানিমেশন চলছে বা বিষয়বস্তুগুলি অ্যাসিঙ্ক্রোনাসভাবে লোড করা হচ্ছে, তখন অ্যাকশনগুলি সম্পূর্ণ না হওয়া পর্যন্ত আপনার সম্পত্তিটি
YES
সেট করা উচিত।
চিহ্নিতকারীর iconView
বৈশিষ্ট্য ব্যবহার করার সময় বিবেচনার জন্য নোটগুলিও পড়ুন।
একটি তথ্য উইন্ডোর অবস্থান পরিবর্তন
একটি তথ্য উইন্ডো ডিভাইসের স্ক্রিনের বিপরীতে আঁকা হয়, এটির সংশ্লিষ্ট মার্কার উপরে কেন্দ্র করে। আপনি infoWindowAnchor
বৈশিষ্ট্য সেট করে মার্কার সম্পর্কিত তথ্য উইন্ডোর অবস্থান পরিবর্তন করতে পারেন। এই বৈশিষ্ট্যটি একটি CGPoint
গ্রহণ করে, একটি (x,y) অফসেট হিসাবে সংজ্ঞায়িত যেখানে x এবং y উভয়ই 0.0 এবং 1.0 এর মধ্যে থাকে। ডিফল্ট অফসেট হল (0.5, 0.0), অর্থাৎ কেন্দ্রের শীর্ষ। infoWindowAnchor
অফসেট সেট করা একটি কাস্টম আইকনের বিপরীতে তথ্য উইন্ডো সারিবদ্ধ করার জন্য দরকারী।
সুইফট
london.infoWindowAnchor = CGPoint(x: 0.5, y: 0.5) london.icon = UIImage(named: "house") london.map = mapView
উদ্দেশ্য-C
london.infoWindowAnchor = CGPointMake(0.5, 0.5); london.icon = [UIImage imageNamed:@"house"]; london.map = mapView;
তথ্য উইন্ডোতে ইভেন্ট পরিচালনা করা
আপনি নিম্নলিখিত তথ্য উইন্ডো ইভেন্ট শুনতে পারেন:
mapView:markerInfoWindow:
— যখন একটি মার্কার নির্বাচন হতে চলেছে তখন বলা হয়। মার্কার ব্যবহার করার জন্য ঐচ্ছিকভাবে একটিUIView
হিসাবে একটি কাস্টম তথ্য উইন্ডো ফেরত দিতে পারে। আরও তথ্যের জন্য নীচের কাস্টম তথ্য উইন্ডো দেখুন.mapView:markerInfoContents:
— কল করা হয় যখনmapView:markerInfoWindow
শূন্য প্রদান করে।mapView:didCloseInfoWindowOfMarker:
— মার্কারের তথ্য উইন্ডো বন্ধ হলে কল করা হয়।mapView:didLongPressInfoWindowOfMarker:
— একটি মার্কারের তথ্য উইন্ডোটি দীর্ঘক্ষণ চাপার পরে কল করা হয়।
ইভেন্টগুলি শুনতে, আপনাকে অবশ্যই GMSMapViewDelegate
প্রোটোকল প্রয়োগ করতে হবে৷ GMSMapViewDelegate
এ ইভেন্টের নির্দেশিকা এবং পদ্ধতির তালিকা দেখুন।
GitHub নমুনাগুলি অন্তর্ভুক্ত করে যা প্রদর্শন করে কিভাবে তথ্য উইন্ডো ইভেন্টগুলি পরিচালনা করতে হয়:
কাস্টম তথ্য উইন্ডোজ
UIView
এর একটি সাবক্লাস তৈরি করে তথ্য উইন্ডোর বিষয়বস্তু কাস্টমাইজ করুন যা কাস্টম তথ্য উইন্ডোর বিন্যাস সংজ্ঞায়িত করে। সেই সাবক্লাসে, দৃশ্যটি সংজ্ঞায়িত করুন যা আপনি চান। উদাহরণস্বরূপ, তথ্য উইন্ডোতে প্রদর্শিত চিত্রগুলি যুক্ত করতে আপনি শিরোনাম এবং স্নিপেট পাঠ্য এবং অন্যান্য ভিউ, যেমন UIImageView
দৃষ্টান্ত প্রদর্শন করতে কাস্টম UILabel
দৃষ্টান্ত ব্যবহার করতে পারেন।
নিশ্চিত করুন যে আপনার ViewController
GMSIndoorDisplayDelegate
প্রোটোকল প্রয়োগ করে এবং mapView:markerInfoWindow: ইভেন্টের জন্য একজন শ্রোতাকে সংজ্ঞায়িত করে। এই ইভেন্ট শ্রোতাকে ডাকা হয় যখন একটি মার্কার নির্বাচিত হতে চলেছে, এবং মার্কার দ্বারা ব্যবহৃত কাস্টম তথ্য উইন্ডোটি সংজ্ঞায়িত করতে আপনাকে আপনার কাস্টম UIView
ক্লাসের একটি উদাহরণ ফেরত দিতে দেয়৷
নীচের চিত্রগুলি একটি ডিফল্ট তথ্য উইন্ডো, কাস্টমাইজড বিষয়বস্তু সহ একটি তথ্য উইন্ডো এবং কাস্টমাইজড ফ্রেম এবং পটভূমি সহ একটি তথ্য উইন্ডো দেখায়৷
![তথ্য উইন্ডোর তুলনা. Info Window Comparison](https://developers.google.cn/static/maps/documentation/images/marker-infowindows.png?authuser=3&hl=bn)
IOS-এর জন্য Maps SDK-এর সাথে GitHub- এর কোড নমুনাগুলিতে কাস্টম তথ্য উইন্ডোগুলির নমুনা অন্তর্ভুক্ত রয়েছে। উদাহরণস্বরূপ, MarkerInfoWindowViewController.m (Objective-C) বা MarkerInfoWindowViewController.swift (Swift) এর সংজ্ঞা দেখুন।
এই নমুনাগুলি ডাউনলোড এবং চালানোর তথ্যের জন্য কোড নমুনাগুলি দেখুন৷