जियोकोडिंग के दौरान कोटा के इस्तेमाल को ऑप्टिमाइज़ करना

पते को कोड में बदलने का तरीका, पतों ("1600 Amphitheatre Parkway, Mountain View, CA") को भौगोलिक निर्देशांक (37.423021, -122.083739) में बदलने की प्रोसेस है. इसका इस्तेमाल मैप को मार्कर रखने या सही जगह पर रखने के लिए किया जा सकता है. Google Maps Platform API में, जियोकोडिंग के दो तरीके उपलब्ध हैं:

  • क्लाइंट-साइड जियोकोडिंग, जिसे ब्राउज़र पर एक्ज़ीक्यूट किया जाता है और आम तौर पर उपयोगकर्ता की कार्रवाई के जवाब में. Maps JavaScript API ऐसी क्लास उपलब्ध कराता है जो आपके अनुरोध करती हैं. इस तरीके के बारे में Maps JavaScript API दस्तावेज़ में बताया गया है.
  • एचटीटीपी सर्वर-साइड जियोकोडिंग, जो आपके सर्वर को भौगोलिक स्थान के लिए, Google के सर्वर से सीधे क्वेरी करने की अनुमति देता है. Geocoding API, ऐसी वेब सेवा है जो यह सुविधा देती है. आम तौर पर, आप इस सेवा को सर्वर-साइड पर चल रहे दूसरे कोड के साथ इंटिग्रेट करते हैं. सर्वर-साइड जियोकोडिंग के बारे में जियोकोडिंग एपीआई दस्तावेज़ में बताया गया है.

क्लाइंट-साइड और सर्वर-साइड जियोकोडिंग के उदाहरण

यहां क्लाइंट-साइड जियोकोडिंग का एक नमूना दिया गया है, जो पता लेता है, उसे भौगोलिक स्थान के तौर पर दिखाता है, मैप के केंद्र को उस जगह पर ले जाता है, और मैप मार्कर को वहां जोड़ता है:

geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function(results, status) {
  if (status == google.maps.GeocoderStatus.OK) {
    map.setCenter(results[0].geometry.location);
    var marker = new google.maps.Marker({
      map: map,
      position: results[0].geometry.location
    });
  }
});

ज़्यादा उदाहरणों के लिए, Maps JavaScript API से जुड़े दस्तावेज़ देखें.

यहां उदाहरण के तौर पर, सर्वर साइड जियोकोडिंग का अनुरोध करने के लिए Python का इस्तेमाल किया गया है:

import urllib2

address="1600+Amphitheatre+Parkway,+Mountain+View,+CA"
key="my-key-here"
url="https://maps.googleapis.com/maps/api/geocode/json?address=%s&key=%s" % (address, key)

response = urllib2.urlopen(url)

jsongeocode = response.read()

यह इस ऑब्जेक्ट के साथ एक JSON ऑब्जेक्ट बनाता है:

{
  "status": "OK",
  "results": [ {
    "types": street_address,
    "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": street_number
    }, {
      "long_name": "Amphitheatre Pkwy",
      "short_name": "Amphitheatre Pkwy",
      "types": route
    }, {
      "long_name": "Mountain View",
      "short_name": "Mountain View",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "San Jose",
      "short_name": "San Jose",
      "types": [ "administrative_area_level_3", "political" ]
    }, {
      "long_name": "Santa Clara",
      "short_name": "Santa Clara",
      "types": [ "administrative_area_level_2", "political" ]
    }, {
      "long_name": "California",
      "short_name": "CA",
      "types": [ "administrative_area_level_1", "political" ]
    }, {
      "long_name": "United States",
      "short_name": "US",
      "types": [ "country", "political" ]
    }, {
      "long_name": "94043",
      "short_name": "94043",
      "types": postal_code
    } ],
    "geometry": {
      "location": {
        "lat": 37.4220323,
        "lng": -122.0845109
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "southwest": {
          "lat": 37.4188847,
          "lng": -122.0876585
        },
        "northeast": {
          "lat": 37.4251799,
          "lng": -122.0813633
        }
      }
    }
  } ]
}

सर्वर साइड जियोडेटार, JSON के विकल्प के तौर पर एक्सएमएल फ़ॉर्मैट भी उपलब्ध कराता है. ज़्यादा उदाहरणों के लिए, Python कोड दस्तावेज़ और Python और दूसरी भाषाओं की क्लाइंट लाइब्रेरी देखें.

कोटा और लागत पर विचार

जियोकोडिंग लागत, कोटा, और दर की सीमाएं इस दस्तावेज़ में बताई गई रणनीतियों को बढ़ावा देती हैं.

कीमत

जियोकोडिंग अनुरोधों के लिए, हर दिन के हिसाब से कोटा (हर दिन के हिसाब से) की सीमा का इस्तेमाल नहीं किया जाता है. इसके बजाय, जियोकोडिंग एपीआई की वेब सेवा के ज़रिए क्लाइंट-साइड या सर्वर साइड से इस्तेमाल किया जाने वाला जियोकोडिंग का हर अनुरोध, हर एक कीमत के हिसाब से बिल किया जाता है. अपने इस्तेमाल की लागत को मैनेज करने के लिए, रोज़ के स्टोरेज की सीमा तय करने पर विचार करें.

तय सीमा

जियोकोडिंग सेवा, 50 QPS (प्रति सेकंड की क्वेरी) तक सीमित है, जिसे क्लाइंट-साइड और सर्वर साइड क्वेरी के योग के रूप में गिना जाता है.

समय-समय पर, जैसे कि किसी मोबाइल ऐप्लिकेशन में क्लाइंट-साइड जियोकोडिंग के अनुरोध करते समय, जब आपके सभी उपयोगकर्ता एक ही समय पर अनुरोध करते हैं, तब आपके अनुरोध में गड़बड़ियां आ सकती हैं. उदाहरण के लिए, हर मिनट के दूसरे हिस्से में. इससे बचने के लिए, इनमें से कोई एक चीज़ आज़माएं:

  • अपने अनुरोधों के लिए रैंडम इंटरवल के बारे में बताएं (जेटर). पक्का करें कि आपके सभी उपयोगकर्ताओं के लिए, किसी भी क्रम में अनुरोध भेजे गए हों.
  • अगर आप Android के लिए अलार्म सेट कर रहे हैं, तो बार-बार बजने वाला अलार्म इस्तेमाल करें.
  • अगर Android को डेवलप करना है, तो जगह के हिसाब से रणनीति चुनें.

कैश मेमोरी में ले जाना

कैश मेमोरी में सेव करने के बारे में जियोकोडिंग एपीआई से जुड़ी नीतियां देखें.

क्लाइंट-साइड जियोकोडिंग का इस्तेमाल कब करना चाहिए

कम शब्दों में जवाब है, हमेशा.&quot. इसकी वजहें ये हैं:

  • क्लाइंट-साइड से अनुरोध और जवाब मिलने पर, उपयोगकर्ताओं को तेज़ और इंटरैक्टिव अनुभव मिलता है.
  • क्लाइंट-साइड अनुरोध में, ऐसी जानकारी शामिल हो सकती है जिससे जियोकोडिंग की क्वालिटी बेहतर होती है: उपयोगकर्ता की भाषा, इलाका, और व्यूपोर्ट.

खास तौर पर, क्लाइंट-साइड जियोकोडिंग तब सबसे अच्छा तरीका होता है, जब उपयोगकर्ता से मिले इनपुट के आधार पर पते को कोड में बदला जा सकता है.

क्लाइंट-साइड जियोकोडिंग के लिए दो बुनियादी आर्किटेक्चर हैं:

  • जियोकोडिंग करना और ब्राउज़र में पूरी तरह से डिसप्ले करना. उदाहरण के लिए, उपयोगकर्ता आपके पेज पर कोई पता डालता है. आपका ऐप्लिकेशन इसे भौगोलिक जगह पर रखता है. इसके बाद, आपका पेज मैप पर मार्कर बनाने के लिए GCLID का इस्तेमाल करता है. इसके अलावा, आप ऐप्लिकेशन की मदद से, फ़नल का इस्तेमाल करके कुछ आसान विश्लेषण कर सकते हैं. आपके सर्वर पर कोई डेटा नहीं भेजा जाता. यह आपके सर्वर पर लोड को कम कर देता है.
  • ब्राउज़र में जियोकोडिंग करें और फिर उसे सर्वर पर भेजें. उदाहरण के लिए, उपयोगकर्ता आपके पेज पर कोई पता डालता है. आपका ऐप्लिकेशन, ब्राउज़र में इसे एम्बेड करता है. इसके बाद, ऐप्लिकेशन आपके सर्वर पर डेटा भेजता है. सर्वर कुछ डेटा के साथ रिस्पॉन्स देता है, जैसे कि आस-पास की लोकप्रिय जगहें. इससे, आप अपने डेटा के आधार पर जवाब को पसंद के मुताबिक बना सकते हैं.

सर्वर साइड जियोकोडिंग का इस्तेमाल कब करना चाहिए

सर्वर-साइड जियोकोडिंग का इस्तेमाल उन ऐप्लिकेशन के लिए किया जाता है जिनमें क्लाइंट के इनपुट के बिना पते को भौगोलिक रूप से जोड़ने की ज़रूरत होती है. इसका एक सामान्य उदाहरण है, जब आपको कोई ऐसा डेटासेट मिलता है जो उपयोगकर्ता के इनपुट से अलग आता है, जैसे कि अगर आपके पास ऐसे फ़िक्स, सीमित, और जाने-पहचाने पते हैं जिन्हें जियोकोडिंग की ज़रूरत है. क्लाइंट-साइड जियोकोडिंग के काम न करने पर, सर्वर-साइड जियोकोडिंग का इस्तेमाल बैक अप के तौर पर किया जा सकता है.

कुछ वजहों से, उपयोगकर्ता के लिए इंतज़ार का समय ज़रूरत के हिसाब से बढ़ जाता है और क्लाइंट-साइड की तुलना में खराब क्वालिटी के नतीजों के लिए ट्रांसकोडिंग होती है, क्योंकि अनुरोध में कम जानकारी उपलब्ध होती है.