2011-08-24 12 views
6

समस्या:निर्माण चौराहा

मैं geocode उल्टा करने के लिए कोशिश कर रहा हूँ एक अक्षांश/देशांतर एक करीबी चौराहा गूगल मैप्स एपीआई V3 का उपयोग करते हुए। इसके अलावा, अभी के लिए, यह सुपर सटीक नहीं होना चाहिए - क्योंकि मैं निर्देश प्रदान करने के विरोध में एक पते को अनामित करने की कोशिश कर रहा हूं।

मैंने देखा है कि जियोकोडिंग परिणाम डेटा में "छेड़छाड़" का Address Component Type है, लेकिन यह रिटर्न परिणामों में बिल्कुल समान नहीं लगता है - और अक्सर यह खाली नहीं होता है।

मैंने कुछ भी इसे Google से सीधे प्राप्त करने के लिए इसे बनाने के सर्वोत्तम तरीके के लिए एसओ को देखा है, और मैंने जो सबसे नज़दीकी देखा है वह है: How can I find the nearest intersection via the Google Maps API?, जो वास्तव में मेरी समस्या का समाधान नहीं करता है। इसके प्रकाश में मैं अपने स्वयं के समाधान के साथ आया हूं, और कुछ राय, अनुकूलन, रचनात्मक आलोचना, या अन्य विकल्पों को पूरी तरह से पसंद करूंगा।

मेरे अंतरिम समाधान:

    :

    एपीआई के साथ चारों ओर खेलने के बाद, मैं निम्नलिखित कलन विधि एक शॉट (सिर्फ संदर्भ के लिए, यह एक सांत्वना अनुप्रयोग के भीतर सी # में लिखा है) देने का फैसला किया

  • मैं एक पता लेता हूं और इसे एक लेट/लम्बाई में हल करता हूं।

  • मैं तो जोड़ सकते हैं या की एक निश्चित राशि घटाना अक्षां या लंबी शहर के एक खंड (एक दूरी है जो आपके अक्षांश दिया निकाला जाता है) के आदेश पर coordinate-- से और अंक के बीच चलने की दिशाएं प्राप्त। मैं यह सब चार दिशाओं के लिए करता हूं - इसलिए पहला संशोधन अक्षांश को समान रखना होगा लेकिन कुछ देशांतर घटाएं। फिर अगली संशोधन अक्षांश रखने के लिए हो सकता है और कुछ देशांतर जोड़ने, आदि

  • दिशा-निर्देश प्राप्त करने के बाद, मैं परिणाम को पार्स और शुरू और अंत पते की जाँच करें। यदि वे अलग हैं, तो मैं सड़क नाम निकालता हूं और उन्हें "चौराहे" के रूप में व्यवहार करता हूं (भले ही कभी-कभी समानांतर सड़कों में परिणाम - फिर बस एक बॉलपार्क प्राप्त करने का प्रयास करें)।

  • यदि मुझे दो अलग-अलग सड़कों नहीं मिलती हैं, तो मैं अंतिम गंतव्य की दूरी को बढ़ाता हूं और प्रक्रिया को दोहराता हूं।

अब तक यह काफी अच्छा काम कर रहा है, लेकिन स्पष्ट रूप से यह समय के संदर्भ में और मेरी आवंटित क्वेरी सीमा का उपयोग करने में एक महंगी प्रक्रिया है। साथ ही, मैंने एपीआई सेवा की शर्तों की जांच की, और जब तक मैं उनके अस्वीकरण को शामिल करता हूं और परिणाम Google मानचित्र पर प्रदर्शित करता हूं, मुझे लगता है कि मैं ठीक हूं।

समुदाय के लिए मेरे सवाल कर रहे हैं:

  • मैं एल्गोरिथम की प्रभाविता को कैसे बेहतर कर सकते हैं? विशेष रूप से, में समय की संख्या मैं फोन एपीआई

  • (कार्यान्वयन कोड एक समस्या नहीं है) वहाँ एक और तरीका पूरी तरह से गूगल मैप्स एपीआई का उपयोग कर यह करने के लिए है? SO प्रश्न referred to above में, समाधान संख्या संख्याओं पर लूप था। मुझे यकीन नहीं है कि इसका क्या अर्थ है - इसलिए स्पष्टीकरण बहुत अच्छा होगा।

  • जैसा ऊपर बताया गया है, मुझे विश्वास नहीं है कि यह सेवा की शर्तों को तोड़ रहा है - लेकिन क्या मुझे गलती है?

  • क्या कोई और वेब-आधारित एपीआई उपयोग करने के लिए है जो मेरी आवश्यकताओं को बेहतर ढंग से पूरा कर सकती है? शायद बिंग, या कुछ अन्य प्रदाता?

किसी भी मदद के लिए बहुत बहुत धन्यवाद।

अद्यतन: मैं दिन के लिए मेरी क्वेरी सीमा तक पहुंच जाते हैं, इसलिए मैं आज गूगल के खिलाफ किसी भी सुझाव का परीक्षण करने में सक्षम नहीं होगा, लेकिन मैं यह भी अभी भी एक अलग एपीआई का उपयोग करने के लिए खुला रहा हूँ। धन्यवाद।

उत्तर

1

पुराना सवाल है, लेकिन जब से मूल पोस्टर में कहा गया है कि वे गूगल के अलावा अन्य समाधान के लिए खुले थे, Geonames एक वेब देखें अमेरिका के लिए इस बात के लिए एपीआई है GeoNames WebServices overview और http://www.geonames.org/maps/us-reverse-geocoder.html#findNearestIntersection

संबंधित मुद्दे