2009-11-12 11 views
10

मेरे पास एक ऐसा फॉर्म है जिसे उपयोगकर्ता को भरने की आवश्यकता है जहां स्थान की पहचान की जानी चाहिए। मेरे पास फॉर्म पर अक्षांश और देशांतर इनपुट फ़ील्ड हैं। मैं भी दशमलव अक्षांश और लंबे समय की तलाश में हूं। मुझे क्या लगता है वास्तव में सरल लगता है। मैं बस एक लिंक चाहता हूं कि उपयोगकर्ता उस पर क्लिक कर सकता है जो एक मानचित्र (google या yahoo) पॉपअप करेगा और वह स्थान ढूंढने के लिए मानचित्र का उपयोग कर सकता है और बस उस पर क्लिक कर सकता है और वह स्वचालित रूप से दो इनपुट फ़ील्ड को लैट के लिए पॉप्युलेट करेगा और मानचित्र से लंबा क्या किसी ने इसे पहले किया है?आप मानचित्र पर कैसे क्लिक करते हैं और अक्षांश और देशांतर फ़ील्ड को एक रूप में पॉप्युलेट करते हैं?

+0

मुझे सवाल समझ में नहीं आता है। क्या आप इसे फिर से लिख सकते हैं या इसे स्पष्ट कर सकते हैं? – Mark

+0

मुझे नहीं पता कि इसे किसी भी बेहतर तरीके से कैसे समझाया जाए। जब मैं मानचित्र पर क्लिक करता हूं तो मैं मूल्यों के साथ आबादी के लिए अक्षांश और देशांतर के लिए प्रत्येक फ़ील्ड चाहता हूं। मैं Google धरती का उपयोग कर जानता हूं, क्योंकि आप माउस पॉइंटर को मानचित्र पर रखते हैं, स्टेटस बार में आप दशमलव अक्षांश और लंबे मान देख सकते हैं। मैं नक्शे पर एक बिंदु पर क्लिक करके मानचित्र से उन दो मानों को मानचित्र फ़ील्ड में स्थानांतरित करने का एक तरीका चाहूंगा। मैं वास्तव में नहीं जानता कि इसे और कैसे समझाया जाए। – Joe

उत्तर

0

आपको नक्शा पर कम से कम दो बिंदुओं के अक्षांश/लंबे समय तक पता होना चाहिए, अधिमानतः एक साथ बहुत करीब नहीं है, और एक कोने के सापेक्ष अपने पिक्सेल निर्देशांक भी जानते हैं (यानी सबसे अच्छा दो बिंदु विपरीत कोने होंगे)। फिर यह क्लिक के पिक्सेल समन्वय को इंटरपोलेशन द्वारा लेट/लम्बाई में परिवर्तित करने के लिए सरल गणित है। हालांकि, ध्यान दें कि यह तब तक काम करता है जब तक नक्शा द्वारा कवर किया गया क्षेत्र पृथ्वी के वक्रता के सापेक्ष "फ्लैट" होता है। यदि नक्शा एक बड़े क्षेत्र को कवर करता है, तो 6000 मील चौड़ा कहें, महत्वपूर्ण विरूपण होगा। यदि आपको सटीक होने की आवश्यकता है तो आपको स्थिति की गणना करने के लिए कुछ नक्शा प्रक्षेपण करना होगा। बाहर गूगल मैप्स एपीआई के साथ-साथ इस लिंक

0

की जांच: http://www.gorissen.info/Pierre/maps/googleMapLocation.php

मुझे लगता है कि गूगल मैप्स एपीआई शायद आप जो खोज रहे हैं कर सकते हैं।

+0

http://code.google.com/apis/maps/documentation/reference.html – kmontgom

+0

पर Google मानचित्र एपीआई लिंक के लिए धन्यवाद, मैं इसे जांचने जा रहा हूं। – Joe

11

Google मानचित्र API का उपयोग करके, आप इसे आसानी से कर सकते हैं। बस अपने मानचित्र ऑब्जेक्ट पर एक क्लिक इवेंट हैंडलर जोड़ें, जो उपयोगकर्ता द्वारा क्लिक किए गए अक्षांश/देशांतर निर्देशांक में गुजरता है (click ईवेंट here पर विवरण देखें)।

function initMap() 
{ 
    // do map object creation and initialization here 
    // ... 

    // add a click event handler to the map object 
    GEvent.addListener(map, "click", function(overlay, latLng) 
    { 
     // display the lat/lng in your form's lat/lng fields 
     document.getElementById("latFld").value = latLng.lat(); 
     document.getElementById("lngFld").value = latLng.lng(); 
    }); 
} 
7

कोड Google मानचित्र एपीआई संस्करण 3 के लिए है। V2 को v3 के साथ चिपकने के लिए इतना बेहतर गिरा दिया गया है।

जिसमें नक्शा लोड

आईडी अक्षां और एलएनजी प्रदर्शित करने के लिए जब आप मानचित्र पर क्लिक करें latlng साथ एक इनपुट तत्वों का उपयोग आईडी mapdiv साथ एक div है। ताकि लोग उस मूल्य को किसी अन्य एप्लिकेशन में कॉपी कर सकें। आप अपनी जरूरत के हिसाब से opts चर को संशोधित कर सकते हैं।

कोड में क्लिक ईवेंट के लिए एक ईवेंट हैंडलर जोड़ें। ताकि जब आप मानचित्र पर क्लिक करते हैं तो इनपुट तत्व लैट और एलएनजी मानों के साथ पॉप्युलेट किया जाता है।

var map; 
function mapa() 
{ 
    var opts = {'center': new google.maps.LatLng(26.12295, -80.17122), 'zoom':11, 'mapTypeId': google.maps.MapTypeId.ROADMAP } 
    map = new google.maps.Map(document.getElementById('mapdiv'),opts); 

    google.maps.event.addListener(map,'click',function(event) { 
     document.getElementById('latlng').value = event.latLng.lat() + ', ' + event.latLng.lng() 
    })  
} 

उपरोक्त सभी की आवश्यकता है।


अगर आप अक्षांश और एलएनजी के मूल्यों को देखने के लिए जब आप नक्शे पर माउस ले जाते हैं उसके बाद निम्न कोड में की तरह एक माउस की घटना श्रोता जोड़ना चाहते हैं। आप मान देखने के लिए एक अवधि या यहां तक ​​कि एक इनपुट तत्व का उपयोग कर सकते हैं। मैंने अपने कोड में अवधि का इस्तेमाल किया था।

google.maps.event.addListener(map,'mousemove',function(event) { 
    document.getElementById('latspan').innerHTML = event.latLng.lat() 
    document.getElementById('lngspan').innerHTML = event.latLng.lng() 
}); 
संबंधित मुद्दे