2012-06-12 24 views
14

मैं 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 का एक हिस्सा डाउनलोड किया।

street interpolation example

उपरोक्त उदाहरण में, ब्याज की सड़क खंड (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 बॉक्स के रूप में संकेत के दो प्रकार की है।
  • अन्य?
+3

मैं suspec टी-नो-सटीक जानकारी के साथ एक गोपनीयता समझौते का उल्लंघन किए बिना आपके प्रश्न का उत्तर देने में सक्षम होने जा रहा है। –

+0

आपको यहां इस प्रश्न पूछने के लिए बेहतर भाग्य हो सकता है: http://gis.stackexchange.com/ –

+0

@ सुवी मुझे gis.stackexchange के बारे में पता है। फिर भी, इस मंच में अधिक आंखों के आदेश हैं और मैं उम्मीद कर रहा था कि: -/ – rburhum

उत्तर

6

ब्लैक बॉक्स पर पोक करके आप जो चीजें पा सकते हैं वह यह है कि Google geocoder टोकन के क्रम से पूरी तरह संवेदनशील नहीं है (कोई लागू सड़क/शहर/राज्य/देश की अपेक्षा नहीं है, हालांकि यह बेहतर होता है जब आप इसका पालन करते हैं)। जो मुझसे कहता है कि वे सबकुछ किसी प्रकार की पूर्ण पाठ खोज में डंप कर सकते हैं और फिर देख सकते हैं कि क्या आता है। या शायद नहीं। "सॉल्ट संत मैरी एडम्स 200" और "सॉल्ट सेंट मैरी 200 एडम्स" खोज करने का प्रयास करें।

अपने मिशन उदाहरण के संबंध में

, कि, एक महान एक है के रूप में आप नक्शे संकेत खेलने में आने वाले सीधे देख सकते हैं:

Query with map window over Europe: European results.

यूरोप भर मानचित्र खिड़की के साथ क्वेरी: यूरोपीय परिणाम

Query with map window over North America: American results.

नक्शा खिड़की उत्तरी अमेरिका में साथ क्वेरी: अमेरिकी परिणाम

4

डेटा का एक अन्य स्रोत है: काउंटी संपत्ति मानचित्र। इनमें न केवल सड़कों, बल्कि संपत्ति लाइनों (और उनके सड़क के पते) भी शामिल हैं। आप इसे अक्सर Google के मानचित्र पर देख सकते हैं, यह वास्तव में बेहोश रेखाएं दिखाएगा जो निकटवर्ती गुणों को अलग करते हैं। कभी-कभी वे इमारतों की रूपरेखा भी देते हैं (काउंटी मानचित्र अक्सर इन्हें भी शामिल करते हैं)।

आप रिवर्स लुकअप भी कर सकते हैं, आपके जीपीएस निर्देशांक को आपका सटीक पता ढूंढने के बाद 2 डी क्वेरी के रूप में सरल हो सकता है यह पता लगाने के लिए कि आप किस संपत्ति में बहुभुज हैं। मैंने यह काम ठीक से देखा है जब मैं शारीरिक रूप से दूर था सड़क से लेकिन अभी भी संपत्ति के अंदर और हैंडसेट किसी अन्य सड़क के करीब होने के बावजूद सही सड़क का पता चला।

ध्यान दें कि ये मानचित्र सार्वजनिक हैं और कुछ काउंटी के पास भी अपना स्वयं का ऑनलाइन इंटरफ़ेस है। आप यह भी देख सकते हैं कि एक विशेष साजिश कौन है।

+0

रिवर्स जियोकोडिंग एक बहुत ही आसान समस्या है। बस लेट/लॉन प्राप्त करें और निकटतम सुविधा (पार्सल या सड़क खंड) पर स्नैप करें। इससे पार्सल सुविधाओं का विषय सामने आता है जो भूगर्भलन करने के लिए डेटा का एक अन्य स्रोत हैं। उनके खिलाफ * पारंपरिक * जियोकोड की प्रक्रिया सड़क खंड दृष्टिकोण के समान ही है। तो मेरा प्रश्न अभी भी अनुत्तरित नहीं है :(हालांकि इसे इंगित करने के लिए धन्यवाद। – rburhum

+1

मेरे उत्तर को गलत के रूप में स्पष्ट करने के लिए धन्यवाद, अब इसे हटा दिया गया है। मैंने सोचा था कि Google जियोलोकेशन व्हाइट पेपर जियोकोडिंग से संबंधित संभावित आधारभूत संरचना पर भी चर्चा कर रहा था जो कि किसी भी तरह प्रासंगिक हो सकता है। सुनिश्चित करें, आपके उत्तर के लिए +1। चीयर्स! – arttronics