मैं Google जियोकोडर काम करता है जानने के लिए उत्सुक हूँ।Google geocoder कैसे काम करता है?
मैं geocommons' geocoder या PostGIS's new Tiger Geocoder जैसे ओपन सोर्स जियोकोडर्स के कुछ कार्यान्वयन का अध्ययन कर रहा हूं। यह लगभग अब तक मुझे पता है (उम्मीद है कि मैं अपना होमवर्क कर रहा हूं):
मुझे एहसास है कि ओपन सोर्स जियोकोडर्स के मूल में, तीन मुख्य तत्व हैं।
1.- एक पता नॉर्मलाइज़र कि एक मनमाना स्ट्रिंग लेता है और यह सामान्य हो (taking the example from here):
normalize_address('address string');
e.g.: SELECT naddy.* FROM normalize_address('29645 7th Street SW Federal Way 98023') AS naddy;
address | predirabbrev | streetname | streettypeabbrev | postdirabbrev | internal | location | stateabbrev | zip | parsed
---------+-------------+-----------------------+------------------+---------------+----------+----------+-------------+-------+--------
29645 | | 7th Street SW Federal | Way | | | | | 98023 |
और:
2.- एक जियोकोडर कि नाम के लिए कुछ जादुई फजी मिलान करता है जहां कोर एल्गोरिदम Levenshtein Distance है।
: एक अच्छा उदाहरणविकिपीडिया लेख जहां यह शब्द बिल्ली का बच्चा और बैठे (दूरी 3 है के बाद से है कि अन्य में एक स्ट्रिंग को बदलने के लिए आवश्यक संपादन की संख्या है) के बीच Levenshtein दूरी की गणना करता है से एक है
kitten → sitten (substitution of 's' for 'k')
sitten → sittin (substitution of 'i' for 'e')
sittin → sitting (insertion of 'g' at the end).
3.- अंत में सड़क खंडों में से कुछ प्रक्षेप अनुमान लगाना जहां घर है। इस उदाहरण को बनाने के लिए मैंने मुफ्त Census Tiger street dataset का एक हिस्सा डाउनलोड किया।
उपरोक्त उदाहरण में, ब्याज की सड़क खंड (Schaeffer हिल्स डॉ) नोड कि 300 (ताकि 300 Schaeffer हिल्स डॉ) और एक पर शुरू होता है नोड के लिए से एक है पर समाप्त होता है 400 (400 शेफेर हिल्स डॉव)। यदि मैं यह Schaeffer हिल्स Drv करने के लिए मिलान, और अनुरोध सड़क 310 के लिए था, तो एल्गोरिथ्म सिर्फ interpolate इसे करने के लिए जहाँ मेरा हरा तीर है (इसके बारे में 10% को पार) होगा।
यह वही मुक्त स्रोत जियोकोडर उपकरण करते हैं। फिर भी, Google उस से स्पष्ट रूप से चालाक है और सभी प्रकार के गैर पारंपरिक संकेतों का उपयोग करता है।
ऐसा कैसे?
उदाहरण के लिए, मैं टाइप कर सकते हैं 680 Mission st (कोई शहर, राज्य, काउंटी, कुछ भी)। अधिकांश मानक पता सामान्यकर्ता उड़ाएंगे क्योंकि उन्हें बहुत सारे मैच मिलेंगे। लेकिन जब से मैं एसएफ में हूं, मैं अनुमान लगा रहा हूं Google कुछ geoip-like information प्राप्त करने के लिए मेरे आईपी का उपयोग करता है, some expanding bounding कुछ अस्पष्ट खोज के संकेत के रूप में करता है, और तुरंत निकटतम सेगमेंट पाता है जो मुझे मेल खाता है और बताता है कि यह मेरा जवाब है (जो सही है !)।
मैं उन उत्तरों की तलाश कर रहा हूं जो Google geocoder को ऊपर वर्णित तकनीकों के अलावा काम करता है और कुछ और प्रकाश डाल सकता है।
अद्यतन:
ठीक है, अब तक हम (पॉल उदाहरण देखें) सूचीबद्ध
- GeoIP संकेत
- रुचि के क्षेत्र bounding बॉक्स के रूप में संकेत के दो प्रकार की है।
- अन्य?
मैं suspec टी-नो-सटीक जानकारी के साथ एक गोपनीयता समझौते का उल्लंघन किए बिना आपके प्रश्न का उत्तर देने में सक्षम होने जा रहा है। –
आपको यहां इस प्रश्न पूछने के लिए बेहतर भाग्य हो सकता है: http://gis.stackexchange.com/ –
@ सुवी मुझे gis.stackexchange के बारे में पता है। फिर भी, इस मंच में अधिक आंखों के आदेश हैं और मैं उम्मीद कर रहा था कि: -/ – rburhum