यहां JSFiddle Demo है। Google मानचित्र API V3 में ड्रैगगेबल मार्कर के lat और lng को ट्रैक करना बहुत आसान है। चलिए निम्नलिखित एचटीएमएल और सीएसएस के साथ हमारे आधार के रूप में शुरू करते हैं।
<div id='map_canvas'></div>
<div id="current">Nothing yet...</div>
#map_canvas{
width: 400px;
height: 300px;
}
#current{
padding-top: 25px;
}
यहां हमारे प्रारंभिक जावास्क्रिप्ट को Google मानचित्र आरंभ करना है। हम एक मार्कर बनाते हैं जिसे हम खींचना चाहते हैं और इसे ड्रैग करने योग्य संपत्ति को सत्य पर सेट करना चाहते हैं। बेशक यह ध्यान रखें कि यह आपके विंडो के एक ऑनलोड घटना से जुड़ी किया जाना चाहिए यह लोड करने के लिए के लिए, लेकिन मैं कोड के लिए छोड़ देंगे:
var map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 1,
center: new google.maps.LatLng(35.137879, -82.836914),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var myMarker = new google.maps.Marker({
position: new google.maps.LatLng(47.651968, 9.478485),
draggable: true
});
यहाँ हम खींच के शुरू होने से ट्रैक करने के लिए दो घटनाओं dragstart
देते हैं और मार्कर बंद होने पर dragend
ड्रेक करने के लिए, और जिस तरह से हम इसे संलग्न करते हैं, वह google.maps.event.addListener
का उपयोग करना है। हम यहां क्या कर रहे हैं div current
की सामग्री को सेट करते समय मार्कर ड्रैग हो रहा है और फिर ड्रैग स्टॉप होने पर मार्कर के लैट और एलएनजी सेट करें। Google माउस ईवेंट में एक संपत्ति नाम 'latlng' होता है जो ईवेंट ट्रिगर होने पर 'google.maps.LatLng' ऑब्जेक्ट देता है। तो, हम यहां क्या कर रहे हैं मूल रूप से इस श्रोता के लिए पहचानकर्ता का उपयोग कर रहा है जो google.maps.event.addListener
द्वारा वापस लौटाया जाता है और ड्रैगेंड की वर्तमान स्थिति निकालने के लिए संपत्ति latLng
प्राप्त करता है। एक बार जब हम कि अक्षांश Lng मिल खींचें बंद हो जाता है जब हम अपने current
div के भीतर प्रदर्शित करेंगे:
google.maps.event.addListener(myMarker, 'dragend', function(evt){
document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>';
});
google.maps.event.addListener(myMarker, 'dragstart', function(evt){
document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>';
});
अन्त में, हम अपने चिह्नक और इसे नक्शे पर प्रदर्शित करेंगे:
map.setCenter(myMarker.position);
myMarker.setMap(map);
मुझे चलो पता है कि मेरे जवाब के बारे में आपके कोई प्रश्न हैं या नहीं।
यह उत्कृष्ट है! मेरे पास एक ऑटो-पूर्ण पता इनपुट फ़ील्ड के साथ-साथ ड्रैगगेबल मार्कर वाला नक्शा है। यदि कोई इनपुट फ़ील्ड का उपयोग करता है तो मुझे लैट लंबे निर्देशांक भी प्रदर्शित करने की आवश्यकता है। क्या इसका कोई आसान समाधान है? –
बहुत बढ़िया ......... –