জায়গার আইডি

প্ল্যাটফর্ম বেছে নিন: Android iOS JavaScript ওয়েব পরিষেবা
ইউরোপীয় অর্থনৈতিক অঞ্চল (EEA)-এর ডেভেলপার

ভূমিকা

প্লেস আইডি, Google Places ডেটাবেস ও Google Maps-এ কোনও জায়গাকে অনন্যভাবে শনাক্ত করে। নিম্নলিখিত Maps API-তে করা অনুরোধে জায়গার আইডি গ্রহণ করা হয়:

  • Geocoding API এবং Geocoding Service, Maps JavaScript API-তে কোনও প্লেস আইডির জন্য ঠিকানা খুঁজে পাওয়া।
  • Routes API এবং Directions API (Legacy) এবং Directions Service, Maps JavaScript API (Legacy)-এ যাত্রা শুরু করার স্থান, গন্তব্য ও মধ্যবর্তী ওয়েপয়েন্ট নির্দিষ্ট করা।
  • Routes API এবং Distance Matrix API (Legacy) এবং Distance Matrix Service, Maps JavaScript API (Legacy)-তে গন্তব্য ও উৎস নির্দিষ্ট করা।
  • Places API (নতুন), Android-এর জন্য Places SDK (নতুন), iOS-এর জন্য Places SDK (নতুন) এবং Places লাইব্রেরিতে জায়গার বিবরণ ফিরিয়ে আনা।
  • Maps Embed API-তে Place ID প্যারামিটার ব্যবহার করা।
  • Maps URL-এ সার্চ কোয়েরি ফিরিয়ে আনা হচ্ছে।
  • Roads API-তে স্পিড লিমিট দেখানো।
  • সীমানার জন্য ডেটা-ড্রিভেন স্টাইলিংয়ে সীমানা সংক্রান্ত পলিগন খুঁজে পাওয়া ও স্টাইল করা।

কোনও নির্দিষ্ট জায়গার আইডি খুঁজে পাওয়া

আপনি কি কোনও নির্দিষ্ট জায়গার প্লেস আইডি খুঁজছেন? কোনও জায়গা খুঁজতে এবং তার আইডি পেতে, নিচে দেওয়া প্লেস আইডি ফাইন্ডার ব্যবহার করুন:

বিকল্প হিসেবে, আপনি Maps JavaScript API ডকুমেন্টেশনে কোড সহ প্লেস আইডি ফাইন্ডার দেখতে পারবেন।

এক নজরে

প্লেস আইডি হল একটি টেক্সচুয়াল শনাক্তকারী যা কোনও জায়গাকে অনন্যভাবে শনাক্ত করে। শনাক্তকারীর দৈর্ঘ্য আলাদা হতে পারে (প্লেস আইডির কোনও সর্বাধিক দৈর্ঘ্য নেই)। উদাহরণ:

  • ChIJgUbEo8cfqokR5lP9_Wh_DaM
  • GhIJQWDl0CIeQUARxks3icF8U8A
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
  • IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ

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

আপনি Places API এবং একাধিক Google Maps Platform API জুড়ে একই প্লেস আইডি ব্যবহার করতে পারবেন। যেমন, আপনি একই প্লেস আইডি ব্যবহার করে Places API, Maps JavaScript API, Geocoding API, Maps Embed API ও Roads API-তে কোনও জায়গার রেফারেন্স দিতে পারেন।

প্লেস আইডি ব্যবহার করে জায়গার বিবরণ রিট্রিভ করা

Maps JavaScript API-তে Places API বা Places লাইব্রেরি ব্যবহার করে কোনও জায়গা সার্চ করা হল প্লেস আইডি ব্যবহার করার একটি সাধারণ উপায়। তারপর, জায়গার বিবরণ পেতে, ফেরত পাওয়া জায়গার আইডি ব্যবহার করুন। আপনি প্লেস আইডি স্টোর করতে এবং পরে একই জায়গার বিবরণ ফিরিয়ে আনতে এটি ব্যবহার করতে পারবেন। এই ডকুমেন্টে পরে প্লেস আইডি সেভ করা সম্পর্কে পড়ুন।

iOS-এর জন্য Places SDK ব্যবহার করার উদাহরণ

প্লেস আইডি হল একটি টেক্সচুয়াল শনাক্তকারী যা কোনও জায়গাকে অনন্যভাবে শনাক্ত করে। iOS-এর জন্য Places SDK-তে, আপনি GMSPlace অবজেক্ট থেকে কোনও জায়গার আইডি ফিরিয়ে আনতে পারবেন। আপনি প্লেস আইডি স্টোর করতে এবং পরে আবার অবজেক্ট GMSPlace রিট্রিভ করতে এটি ব্যবহার করতে পারবেন।

আইডি দিয়ে কোনও জায়গা পেতে, GMSPlacesClient fetchPlaceFromPlaceID: কল করুন, নিম্নলিখিত প্যারামিটার পাস করুন:

  • একটি স্ট্রিং যাতে একটি স্থান আইডি রয়েছে।
  • ফেরত পাঠানোর জন্য ডেটার ধরন নির্দিষ্ট করে এক বা একাধিক GMSPlaceField।
  • অটোকমপ্লিট কোয়েরি সম্পূর্ণ করার জন্য কল করা হলে সেশন টোকেন। অন্যথায়, nil পাস করুন।
  • ফলাফল ম্যানেজ করার জন্য একটি GMSPlaceResultCallback।

API, নির্দিষ্ট কলব্যাক পদ্ধতিকে ইনভোক করে, যার মধ্যে একটি GMSPlace অবজেক্ট থাকে। জায়গাটি খুঁজে না পাওয়া গেলে, জায়গার অবজেক্টটি শূন্য হয়।

iOS-এর জন্য Places Swift SDK

// Initialize Places Swift Client.
let placesClient = PlacesClient.shared

// A hotel in Saigon with an attribution
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
    
// Fetch Place Request.
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.displayName]
)
    
Task {
  switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
  case .success(let place):
    print("The selected place is: \(place.displayName): \(String(describing: place.description))")
  case .failure(let placesError):
    print("Place not found: \(placeID); \(placesError)")
  }
}

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

পরে ব্যবহারের জন্য প্লেস আইডি সেভ করা

Google Maps Platform পরিষেবার শর্তাবলীর ধারা ৩.২.৩(খ) -এ উল্লিখিত ক্যাশিং সংক্রান্ত বিধিনিষেধ থেকে প্লেস আইডি মুক্ত। তাই, আপনি পরে ব্যবহার করার জন্য প্লেস আইডি ভ্যালু সেভ করে রাখতে পারেন।

সেভ করা জায়গার আইডি রিফ্রেশ করা

Google Maps ডেটাবেসে আপডেট হওয়ার কারণে প্লেস আইডি পরিবর্তন হতে পারে, তাই Google ১২ মাসের বেশি পুরনো প্লেস আইডি রিফ্রেশ করার সাজেশন দেয়। আপনি কোনও চার্জ ছাড়াই প্লেস আইডি রিফ্রেশ করতে পারবেন, এর জন্য প্লেস বিবরণের অনুরোধ করতে হবে, fields প্যারামিটারে শুধুমাত্র GMSPlaceFieldPlaceID ফিল্ড উল্লেখ করতে হবে।

এই কলটি Places Details - ID Refresh SKU ট্রিগার করে।

প্লেস আইডি ব্যবহার করার সময় ত্রুটি কোড

INVALID_REQUEST

INVALID_REQUEST স্ট্যাটাস কোড থেকে বোঝা যায় যে নির্দিষ্ট করা প্লেস আইডি সঠিক নয়। প্লেস আইডি ট্রাঙ্কেট করা বা অন্য কোনওভাবে পরিবর্তন করা হলে এবং সেটি আর সঠিক না থাকলে, INVALID_REQUEST রিটার্ন করা হতে পারে।

NOT_FOUND

NOT_FOUND স্ট্যাটাস কোড থেকে বোঝা যায় যে নির্দিষ্ট করা জায়গার আইডি আর ব্যবহার করা হয় না। কোনও ব্যবসা বন্ধ হয়ে গেলে বা নতুন লোকেশনে চলে গেলে প্লেস আইডি অপ্রচলিত হয়ে যেতে পারে। Google Maps ডেটাবেস আপডেট হওয়ার কারণেও প্লেস আইডি পরিবর্তন হতে পারে। এই ধরনের ক্ষেত্রে, কোনও জায়গা নতুন জায়গা আইডি পেতে পারে এবং পুরনো আইডি NOT_FOUND উত্তর দেয়।

পুরনো হয়ে যাওয়া প্লেস আইডির ক্ষেত্রে ফলাফল রিফ্রেশ করতে, আসল অনুরোধটি স্টোর করুন যা প্রতিটি প্লেস আইডি রিটার্ন করেছে এবং প্রয়োজন অনুযায়ী অনুরোধটি আবার ইস্যু করুন। মনে রাখবেন যে আবার ইস্যু করা অনুরোধের জন্য উপযুক্ত SKU অনুযায়ী বিল করা হয়।

কিছু ধরনের প্লেস আইডি কখনও কখনও NOT_FOUND উত্তর দিতে পারে অথবা API উত্তরে একটি আলাদা প্লেস আইডি ফেরাতে পারে। এইসব জায়গার আইডি ধরনের মধ্যে অন্তর্ভুক্ত হল:

  • রাস্তার ঠিকানা যা Google Maps-এ সুনির্দিষ্ট ঠিকানা হিসেবে নেই, তবে ঠিকানাগুলির একটি রেঞ্জ থেকে অনুমান করা হয়।
  • দীর্ঘ রুটের সেগমেন্ট, যেখানে অনুরোধে কোনও শহর বা স্থানীয় এলাকাও উল্লেখ করা হয়েছে।
  • ইন্টারসেকশন।
  • subpremise ধরনের ঠিকানা কম্পোনেন্ট সহ জায়গা।

এইসব আইডি প্রায়ই একটি বড় স্ট্রিংয়ের মতো হয় (প্লেস আইডির কোনও সর্বাধিক দৈর্ঘ্য নেই)। যেমন:

EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4