ভৌগলিক অবস্থান অনুরোধ এবং প্রতিক্রিয়া

ভূ-অবস্থান অনুরোধ

ভূ-অবস্থান অনুরোধগুলি নিম্নলিখিত URL-এ POST ব্যবহার করে পাঠানো হয়:

https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY

আপনাকে আপনার অনুরোধে একটি 'কী' (key) উল্লেখ করতে হবে, যা একটি key প্যারামিটারের মান (value) হিসেবে অন্তর্ভুক্ত থাকে। ' key হলো আপনার অ্যাপ্লিকেশনের এপিআই (API) কী। এই কী কোটা ব্যবস্থাপনার উদ্দেশ্যে আপনার অ্যাপ্লিকেশনকে শনাক্ত করে। কীভাবে একটি 'কী' পাবেন তা জানুন।

অনুরোধকারী শরীর

অনুরোধের মূল অংশ অবশ্যই JSON ফরম্যাটে হতে হবে। অনুরোধের মূল অংশ অন্তর্ভুক্ত না করা হলে, অনুরোধের স্থানের আইপি ঠিকানার উপর ভিত্তি করে ফলাফল ফেরত দেওয়া হয়। নিম্নলিখিত ফিল্ডগুলি সমর্থিত, এবং অন্যথায় উল্লেখ না থাকলে সমস্ত ফিল্ড ঐচ্ছিক:

মাঠ JSON টাইপ বর্ণনা নোট
homeMobileCountryCode number ( uint32 ) ডিভাইসটির হোম নেটওয়ার্কের মোবাইল কান্ট্রি কোড (MCC)। radioType gsm (ডিফল্ট), wcdma , lte এবং nr এর জন্য সমর্থিত ; cdma জন্য ব্যবহৃত হয় না।
বৈধ পরিসর: ০–৯৯৯।
homeMobileNetworkCode number ( uint32 ) ডিভাইসটির হোম নেটওয়ার্কের মোবাইল নেটওয়ার্ক কোড। এটি GSM, WCDMA, LTE এবং NR-এর জন্য ব্যবহৃত MNC।
সিডিএমএ সিস্টেম আইডি (এসআইডি) ব্যবহার করে।
MNC-এর জন্য বৈধ পরিসর: ০–৯৯৯।
SID-এর জন্য বৈধ পরিসর: ০–৩২৭৬৭।
radioType string মোবাইল রেডিওর ধরণ। সমর্থিত মানগুলো হলো gsm , cdma , wcdma , lte এবং nr যদিও এই ফিল্ডটি ঐচ্ছিক, ক্লায়েন্টের কাছে রেডিও টাইপটি জানা থাকলে এটি সর্বদা অন্তর্ভুক্ত করা উচিত
ফিল্ডটি বাদ দেওয়া হলে, জিওলোকেশন এপিআই ডিফল্টভাবে gsm ব্যবহার করে, যার ফলে অনুমান করা রেডিও টাইপটি ভুল হলে ফলাফল অবৈধ বা শূন্য হবে
carrier string বাহকের নাম।
considerIp boolean ডিভাইসের অবস্থান অনুমান করার জন্য ওয়াইফাই এবং সেল টাওয়ার সিগন্যাল অনুপস্থিত, খালি বা অপর্যাপ্ত হলে আইপি জিওলোকেশন ব্যবহার করা হবে কিনা তা নির্দিষ্ট করে। ডিফল্টরূপে এটি ' true থাকে। ফলব্যাক প্রতিরোধ করতে considerIp ' false এ সেট করুন।
cellTowers array সেল টাওয়ার অবজেক্টের একটি অ্যারে। নিচের সেল টাওয়ার বস্তুসমূহ বিভাগটি দেখুন।
wifiAccessPoints array ওয়াইফাই অ্যাক্সেস পয়েন্ট অবজেক্টগুলোর একটি অ্যারে। নিচের ওয়াইফাই অ্যাক্সেস পয়েন্ট অবজেক্টস বিভাগটি দেখুন।

নিচে একটি জিওলোকেশন এপিআই অনুরোধের বডির উদাহরণ দেখানো হলো।

{
  "homeMobileCountryCode": 310,
  "homeMobileNetworkCode": 410,
  "radioType": "lte",
  "carrier": "Vodafone",
  "considerIp": true,
  "cellTowers": [
    // See the Cell Tower Objects section below.
  ],
  "wifiAccessPoints": [
    // See the WiFi Access Point Objects section below.
  ]
}

সেল টাওয়ার বস্তু

অনুরোধের বডির cellTowers অ্যারেতে শূন্য বা তার বেশি সংখ্যক সেল টাওয়ার অবজেক্ট থাকে।

মাঠ JSON টাইপ বর্ণনা নোট
cellId number ( uint32 ) সেলটির অনন্য শনাক্তকারী। radioType gsm (ডিফল্ট), cdma , wcdma এবং lte এর জন্য আবশ্যক ; nr এর জন্য প্রত্যাখ্যাত
নিচের 'সেলআইডি গণনা' অংশটি দেখুন, যেখানে প্রতিটি রেডিও টাইপের জন্য বৈধ মানের পরিসীমাও তালিকাভুক্ত করা আছে।
newRadioCellId number ( uint64 ) এনআর (5G) সেলের অনন্য শনাক্তকারী। radioType nr জন্য আবশ্যক ; অন্যান্য প্রকারের জন্য প্রত্যাখ্যাত
নিচের 'Calculating newRadioCellId' অংশটি দেখুন, যেখানে ফিল্ডটির জন্য বৈধ মানের পরিসরও তালিকাভুক্ত করা আছে।
locationAreaCode number ( uint32 ) জিএসএম এবং ডব্লিউসিডিএমএ নেটওয়ার্কের জন্য লোকেশন এরিয়া কোড (এলএসি)।
সিডিএমএ নেটওয়ার্কের নেটওয়ার্ক আইডি (এনআইডি)।
LTE এবং NR নেটওয়ার্কের জন্য ট্র্যাকিং এরিয়া কোড (TAC)।
radioType gsm (ডিফল্ট) এবং cdma জন্য আবশ্যক , অন্যান্য মানের জন্য ঐচ্ছিক।
gsm , cdma , wcdma এবং lte এর জন্য বৈধ পরিসর: ০–৬৫৫৩৫।
nr এর জন্য বৈধ পরিসর: ০–১৬৭৭৭২১৫।
mobileCountryCode number ( uint32 ) সেল টাওয়ারের মোবাইল কান্ট্রি কোড (MCC)। radioType gsm (ডিফল্ট), wcdma , lte এবং nr এর জন্য আবশ্যক ; cdma জন্য ব্যবহৃত হয় না।
বৈধ পরিসর: ০–৯৯৯।
mobileNetworkCode number ( uint32 ) সেল টাওয়ারের মোবাইল নেটওয়ার্ক কোড। এটি হলো জিএসএম, ডব্লিউসিডিএমএ, এলটিই এবং এনআর-এর এমএনসি।
সিডিএমএ সিস্টেম আইডি (এসআইডি) ব্যবহার করে।
প্রয়োজনীয়।
MNC-এর জন্য বৈধ পরিসর: ০–৯৯৯।
SID-এর জন্য বৈধ পরিসর: ০–৩২৭৬৭।

নিম্নলিখিত ঐচ্ছিক ক্ষেত্রগুলি ব্যবহৃত হয় না, তবে মান উপলব্ধ থাকলে অন্তর্ভুক্ত করা যেতে পারে।

মাঠ JSON টাইপ বর্ণনা নোট
age number ( uint32 ) এই কোষটি প্রাথমিক হওয়ার পর থেকে অতিবাহিত মিলিসেকেন্ডের সংখ্যা। বয়স ০ হলে, cellId বা newRadioCellId বর্তমান পরিমাপকে নির্দেশ করে।
signalStrength number ( double ) রেডিও সংকেতের শক্তি dBm এককে পরিমাপ করা হয়।
timingAdvance number ( double ) টাইমিং অ্যাডভান্স মান।

cellId গণনা করা হচ্ছে

NR (5G)-এর পূর্ববর্তী রেডিও টাইপগুলো জিওলোকেশন এপিআই-তে নেটওয়ার্ক সেল আইডি পাঠানোর জন্য ৩২-বিটের cellId ফিল্ড ব্যবহার করে।

  • জিএসএম (২জি) নেটওয়ার্কগুলো ১৬-বিটের সেল আইডি (সিআইডি) অপরিবর্তিতভাবে ব্যবহার করে। বৈধ পরিসর: ০–৬৫৫৩৫।
  • CDMA (2G) নেটওয়ার্কগুলো ১৬-বিটের বেস স্টেশন আইডি (BID) অপরিবর্তিতভাবে ব্যবহার করে। বৈধ পরিসর: ০–৬৫৫৩৫।
  • WCDMA (3G) নেটওয়ার্কগুলো UTRAN/GERAN সেল আইডেন্টিটি (UC-ID) ব্যবহার করে, যা হলো একটি ২৮-বিট পূর্ণসংখ্যা মান এবং এটি ১২-বিট রেডিও নেটওয়ার্ক কন্ট্রোলার আইডেন্টিফায়ার (RNC-ID) ও ১৬-বিট সেল আইডি (CID) সংযুক্ত করে তৈরি করা হয়।
    সূত্র: rnc_id << 16 | cid .
    বৈধ পরিসর: ০–২৬৮৪৩৫৪৫৫।
    দ্রষ্টব্য: WCDMA নেটওয়ার্কে শুধুমাত্র ১৬-বিট সেল আইডি মান নির্দিষ্ট করলে ভুল বা শূন্য ফলাফল পাওয়া যায়।
  • LTE (4G) নেটওয়ার্কগুলো E-UTRAN সেল আইডেন্টিটি (ECI) ব্যবহার করে, যা হলো একটি ২৮-বিট পূর্ণসংখ্যা মান এবং এটি ২০-বিট E-UTRAN নোড বি আইডেন্টিফায়ার (eNBId) ও ৮-বিট সেল আইডি (CID) সংযুক্ত করে তৈরি করা হয়।
    সূত্র: enb_id << 8 | cid .
    বৈধ পরিসর: ০–২৬৮৪৩৫৪৫৫।
    দ্রষ্টব্য: এলটিই নেটওয়ার্কে শুধুমাত্র ৮-বিট সেল আইডি মান উল্লেখ করলে ভুল বা শূন্য ফলাফল পাওয়া যায়।

এপিআই অনুরোধে এই পরিসরের বাইরে মান রাখলে অনির্ধারিত আচরণ দেখা দিতে পারে। এপিআই, গুগলের বিবেচনার ভিত্তিতে, সংখ্যাটিকে নথিভুক্ত পরিসরের মধ্যে আনার জন্য সংক্ষিপ্ত করতে পারে, radioType এর কোনো সংশোধন অনুমান করতে পারে, অথবা প্রতিক্রিয়ায় কোনো নির্দেশক ছাড়াই একটি NOT_FOUND ফলাফল ফেরত দিতে পারে।

অনুরোধের মূল অংশের একটি উদাহরণ এলটিই সেল টাওয়ার অবজেক্ট নিচে দেওয়া হলো।

{
  ...

  "cellTowers": [
    {
      "cellId": 170402199,
      "locationAreaCode": 35632,
      "mobileCountryCode": 310,
      "mobileNetworkCode": 410,
      "age": 0,
      "signalStrength": -60,
      "timingAdvance": 15
    }
  ]
}

পূর্ববর্তী অনুরোধের প্রতিক্রিয়াটি দেখতে এইরকম:

{
  "location": {
    "lat": 37.7801129,
    "lng": -122.4168229
  },
  "accuracy": 180.052
}

newRadioCellId গণনা করা হচ্ছে

নতুন নেটওয়ার্কগুলো, যাদের সেল আইডি ৩২ বিটের চেয়ে দীর্ঘ, তারা জিওলোকেশন এপিআই-তে নেটওয়ার্ক সেল আইডি পাঠানোর জন্য ৬৪-বিটের newRadioCellId ফিল্ড ব্যবহার করে।

  • এনআর (5G) নেটওয়ার্কগুলো ৩৬-বিটের নিউ রেডিও সেল আইডেন্টিটি (NCI) অপরিবর্তিতভাবে ব্যবহার করে।
    বৈধ পরিসর: ০–৬৮৭১৯৪৭৬৭৩৫।

অনুরোধের মূল অংশের একটি উদাহরণ NR সেল টাওয়ার অবজেক্ট নিচে দেওয়া হলো।

{
  ...

  "cellTowers": [
    {
      "newRadioCellId": 68719476735,
      "mobileCountryCode": 310,
      "mobileNetworkCode": 410,
      "age": 0,
      "signalStrength": -60,
    }
  ]
}

পূর্ববর্তী অনুরোধের প্রতিক্রিয়াটি দেখতে এইরকম:

{
  "location": {
    "lat": 37.7646157,
    "lng": -122.4127361
  },
  "accuracy": 1458.5570522410717
}

ওয়াইফাই অ্যাক্সেস পয়েন্ট অবজেক্ট

রিকোয়েস্ট বডির wifiAccessPoints অ্যারেতে অবশ্যই দুই বা ততোধিক ওয়াইফাই অ্যাক্সেস পয়েন্ট অবজেক্ট থাকতে হবে, যা ভৌতিকভাবে স্বতন্ত্র স্থির অ্যাক্সেস পয়েন্ট ডিভাইসকে প্রতিনিধিত্ব করে। macAddress ফিল্ডটি আবশ্যক। অন্য সব ফিল্ড ঐচ্ছিক। সার্ভিসটি চলমান অ্যাক্সেস পয়েন্টগুলোকে উপেক্ষা করে, যেমন উড়োজাহাজ এবং ট্রেনের অ্যাক্সেস পয়েন্ট।

মাঠ JSON টাইপ বর্ণনা নোট
macAddress string ওয়াইফাই নোডের MAC অ্যাড্রেস। এটিকে সাধারণত BSS, BSSID বা MAC অ্যাড্রেস বলা হয়। আবশ্যক। কোলন ( : দ্বারা পৃথক করা হেক্সাডেসিমাল স্ট্রিং।
এপিআই ব্যবহার করে শুধুমাত্র সার্বজনীনভাবে পরিচালিত ম্যাক অ্যাড্রেসগুলোই সনাক্ত করা যায়। অন্যান্য ম্যাক অ্যাড্রেসগুলো নীরবে বাদ দেওয়া হয় এবং এর ফলে এপিআই অনুরোধটি কার্যত খালি হয়ে যেতে পারে। বিস্তারিত জানতে, ‘অপ্রয়োজনীয় ওয়াইফাই অ্যাক্সেস পয়েন্ট বাদ দেওয়া’ দেখুন।
signalStrength number ( double ) বর্তমান সংকেতের শক্তি dBm-এ পরিমাপ করা হয়। ওয়াইফাই অ্যাক্সেস পয়েন্টের ক্ষেত্রে, dBm মান সাধারণত -35 বা তার কম হয় এবং এর পরিসীমা -128 থেকে -10 dBm পর্যন্ত। মাইনাস চিহ্নটি অবশ্যই অন্তর্ভুক্ত করবেন।
-10 dBm-এর চেয়ে বেশি মানের ক্ষেত্রে, API NOT FOUND রিটার্ন করে।
age number ( uint32 ) এই অ্যাক্সেস পয়েন্টটি শনাক্ত হওয়ার পর থেকে অতিবাহিত মিলিসেকেন্ডের সংখ্যা।
channel number ( uint32 ) যে চ্যানেলের মাধ্যমে ক্লায়েন্ট অ্যাক্সেস পয়েন্টের সাথে যোগাযোগ করছে।
signalToNoiseRatio number ( double ) বর্তমান সিগন্যাল-টু-নয়েজ অনুপাত ডিবি-তে পরিমাপ করা হয়।

অনুরোধের মূল অংশের অন্তর্ভুক্ত একটি ওয়াইফাই অ্যাক্সেস পয়েন্ট অবজেক্টের উদাহরণ নিচে দেখানো হলো।

{
  ...
  
  "macAddress": "f0:d5:bf:fd:12:ae",
  "signalStrength": -43,
  "signalToNoiseRatio": 0,
  "channel": 11,
  "age": 0
}

পূর্ববর্তী অনুরোধের প্রতিক্রিয়াটি দেখতে এইরকম:

{
  "location": {
    "lat": 37.7801129,
    "lng": -122.4168229
  },
  "accuracy": 180.052
}

নমুনা অনুরোধ

আপনি যদি নমুনা ডেটা দিয়ে জিওলোকেশন এপিআই চেষ্টা করতে চান, তাহলে নিম্নলিখিত JSON-টি একটি ফাইলে সংরক্ষণ করুন:

{
  "considerIp": "false",
  "wifiAccessPoints": [
    {
      "macAddress": "3c:37:86:5d:75:d4",
      "signalStrength": -35,
      "signalToNoiseRatio": 0
    },
    {
      "macAddress": "30:86:2d:c4:29:d0",
      "signalStrength": -35,
      "signalToNoiseRatio": 0
    }
  ]
}

এরপর আপনি কমান্ড লাইন থেকে আপনার অনুরোধটি পাঠানোর জন্য curl ব্যবহার করতে পারেন:

$ curl -d @your_filename.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY"

পূর্ববর্তী MAC অ্যাড্রেসগুলোর জন্য প্রতিক্রিয়াটি দেখতে এইরকম:

{
  "location": {
    "lat": 37.4241173,
    "lng": -122.0915717
  },
  "accuracy": 20
}

অব্যবহৃত ওয়াইফাই অ্যাক্সেস পয়েন্টগুলি বাদ দেওয়া

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

00:00:5E:00:00:00 এবং 00:00:5E:FF:FF:FF মধ্যবর্তী MAC অ্যাড্রেসগুলো IANA-এর জন্য সংরক্ষিত এবং প্রায়শই নেটওয়ার্ক ম্যানেজমেন্ট ও মাল্টিকাস্ট ফাংশনের জন্য ব্যবহৃত হয়, ফলে এগুলোকে অবস্থানের সংকেত হিসেবে ব্যবহার করা যায় না। আপনার API-এর ইনপুটগুলো থেকেও এই MAC অ্যাড্রেসগুলো সরিয়ে ফেলা উচিত।

উদাহরণস্বরূপ, জিওলোকেশনের জন্য ব্যবহারযোগ্য MAC অ্যাড্রেসগুলো macs নামের macAddress স্ট্রিংগুলোর একটি অ্যারে থেকে সংগ্রহ করা যেতে পারে:

জাভা
String[] macs = {"ff:ff:ff:ff:ff:ff", "1c:34:56:78:9a:bc", "00:00:5e:00:00:01"};
ArrayList<String> _macs = new ArrayList<>(Arrays.asList(macs));
_macs.removeIf(m -> !(!m.toUpperCase().equals("FF:FF:FF:FF:FF:FF")
                      && !m.substring(0, 8).toUpperCase().equals("00:00:5E")));
    
পাইথন
macs = ['ff:ff:ff:ff:ff:ff', '1c:34:56:78:9a:bc', '00:00:5e:00:00:01']
macs = [m for m in macs if (m.upper() != "FF:FF:FF:FF:FF:FF" and m[:8].upper() != '00:00:5E')]
    
জাভাস্ক্রিপ্ট
macs = ['ff:ff:ff:ff:ff:ff', '1c:34:56:78:9a:bc', '00:00:5e:00:00:01'];
macs = macs.filter(m => m.toUpperCase() !== "FF:FF:FF:FF:FF:FF"
                        && m.substr(0, 8).toUpperCase() !== '00:00:5E');
    

এই ফিল্টারটি ব্যবহার করার ফলে তালিকায় শুধুমাত্র 1c:34:56:78:9a:bc অবশিষ্ট থাকে। যেহেতু এই তালিকায় ২টির কম ওয়াইফাই ম্যাক অ্যাড্রেস রয়েছে, তাই অনুরোধটি সফল হবে না এবং একটি HTTP 404 ( notFound ) প্রতিক্রিয়া ফেরত আসবে।

ভূ-অবস্থান প্রতিক্রিয়া

একটি সফল জিওলোকেশন অনুরোধ একটি JSON-ফরম্যাটের প্রতিক্রিয়া প্রদান করে, যা অবস্থান এবং ব্যাসার্ধ নির্ধারণ করে।

  • location : ব্যবহারকারীর আনুমানিক অক্ষাংশ এবং দ্রাঘিমাংশের স্থানাঙ্ক, ডিগ্রিতে। এতে একটি lat এবং একটি lng উপক্ষেত্র রয়েছে।
  • accuracy : আনুমানিক অবস্থানের নির্ভুলতা, মিটারে। এটি প্রদত্ত location চারপাশের একটি বৃত্তের ব্যাসার্ধকে বোঝায়।
{
  "location": {
    "lat": 37.421875199999995,
    "lng": -122.0851173
  },
  "accuracy": 120
}

এপিআইটি ইনপুট সিগন্যালের উপর ভিত্তি করে একটি অবস্থান এবং নির্ভুলতার ব্যাসার্ধ প্রদান করে। যদিও এপিআইটি অত্যন্ত নির্ভুল একটি অবস্থান প্রদান করতে পারে, তবে উপলব্ধ সিগন্যালের উৎস, সংখ্যা, ঘনত্ব এবং শক্তির উপর নির্ভর করে এর নির্ভুলতা পরিবর্তিত হতে পারে। আপনি সাধারণত নিম্নলিখিত নির্ভুলতার ব্যাসার্ধগুলো আশা করতে পারেন:

  • ওয়াইফাই অ্যাক্সেস পয়েন্ট : যদি অনুরোধে দুই বা ততোধিক wifiAccessPoints অন্তর্ভুক্ত থাকে, তবে ফেরত আসা নির্ভুলতার ব্যাসার্ধ সাধারণত প্রায় ২০ মিটার হয়। অ্যাক্সেস পয়েন্টের সংখ্যা এবং শক্তিশালী সিগন্যালের (dBm-এ পরিমাপ করা) সাথে নির্ভুলতা উন্নত হয়, যেখানে সিগন্যালের শক্তি সাধারণত -১০০ থেকে -২০ dBm পর্যন্ত থাকে।
  • সেল টাওয়ার : যদি ওয়াইফাই তথ্য অনুপলব্ধ বা অপর্যাপ্ত হয়, তাহলে এপিআই অবস্থানের জন্য cellTowers ব্যবহার করে। সেল টাওয়ারের ধরন, সিগন্যালের শক্তি এবং নেটওয়ার্কের ঘনত্বের ওপর ভিত্তি করে এর নির্ভুলতা উল্লেখযোগ্যভাবে পরিবর্তিত হয়।
    • ম্যাক্রো সেল (সবচেয়ে সাধারণ প্রকার, যা বিস্তৃত এলাকা কভারেজের জন্য ব্যবহৃত হয়) কম নির্ভুলতা প্রদান করে। এর ব্যাসার্ধ সাধারণত কয়েকশ মিটারের মধ্যে থাকে এবং যেসব এলাকায় সেল টাওয়ারের কভারেজ কম, সেখানে এটি কয়েক হাজার মিটার পর্যন্ত হতে পারে। ম্যাক্রো সেলের ক্ষেত্রে ১০০ মিটারের কম নির্ভুল ব্যাসার্ধ অর্জন করা অস্বাভাবিক। শক্তিশালী সিগন্যালযুক্ত সেল টাওয়ারের ক্ষেত্রে নির্ভুলতা সাধারণত বেশি হয়। শক্তিশালী সিগন্যাল সাধারণত LTE-এর জন্য > -110 dBm (সিগন্যাল রেঞ্জ -140 থেকে -55 dBm), WCDMA-এর জন্য > -100 dBm (সিগন্যাল রেঞ্জ -111 থেকে -53 dBm), CDMA-এর জন্য > -100 dBm (সিগন্যাল রেঞ্জ -120 থেকে -40 dBm), এবং GSM-এর জন্য > -80 dBm (সিগন্যাল রেঞ্জ -121 থেকে -1 dBm) হয়ে থাকে।
    • ছোট সেল (যেমন, ফেমটোসেল, পিকোসেল বা ইনডোর রিপিটার) সবচেয়ে নির্ভুল সেল-ভিত্তিক অবস্থান প্রদান করে, যার নির্ভুলতার ব্যাসার্ধ ১০-৩০ মিটারের মধ্যে হতে পারে।
  • আইপি জিওলোকেশন : যদি considerIp true হয় এবং কোনো ওয়াইফাই বা সেল টাওয়ার সিগন্যাল জিওলোকেট করা না যায়, তাহলে এপিআই অনুরোধের আইপি অ্যাড্রেসের উপর ভিত্তি করে অবস্থান অনুমান করে। এই পদ্ধতিটি সর্বনিম্ন নির্ভুলতা প্রদান করে, যার ব্যাসার্ধ হাজার হাজার মিটার পর্যন্ত হতে পারে। ট্রাবলশুট গাইডে "Why is the accuracy radius very large?" অংশটি দেখুন।