मैं Google मानचित्र पर काम कर रहा हूं और एक ऐसी सुविधा को कार्यान्वित करना चाहता हूं जहां उपयोगकर्ता मानचित्र पर किसी क्षेत्र का चयन करने के लिए अपने माउस का उपयोग करके बॉक्स/आयत खींच सकता है (जैसे विंडोज़ में एकाधिक फाइलों का चयन करना)। चयन पर, मैं इस क्षेत्र में आने वाले सभी मार्करों को प्राप्त करना चाहता हूं। मैं Google मानचित्र एपीआई और खोज दोनों के आसपास देख रहा हूं लेकिन मैं समाधान ढूंढने में असमर्थ हूं। मैंने चयन के लिए jQuery चयन योग्य का उपयोग करने की कोशिश की लेकिन यह सब लौटाता है जो divs का एक गुच्छा है जिससे मैं यह निर्धारित करने में असमर्थ हूं कि कोई मार्कर चुना गया है या नहीं।Google मानचित्र में बॉक्स/आयताकार ड्रा चयन
उत्तर
मुझे लाइब्रेरी कीडैगज़ूम (http://google-maps-utility-library-v3.googlecode.com/svn/tags/keydragzoom/1.0/docs/reference.html) मिली और पृष्ठ पर एक आयत खींचने के लिए इसका इस्तेमाल किया।
बाद में, मैंने लाइब्रेरी को संपादित किया और इसे चयनित क्षेत्र ज़ूम करने से रोक दिया और इसके बजाय इसे 'ड्रैगेंड' ईवेंट में सही समन्वय वापस कर दिया। फिर मैंने उस विशेष क्षेत्र के भीतर मौजूद मार्करों को खोजने के लिए मानचित्र पर सभी मार्कर मैन्युअल रूप से looped। पुस्तकालय मुझे निम्नलिखित परिवर्तन करने के लिए उचित समन्वय नहीं दे रहा था।
को
var prj = null;
function DragZoom(map, opt_zoomOpts) {
var ov = new google.maps.OverlayView();
var me = this;
ov.onAdd = function() {
me.init_(map, opt_zoomOpts);
};
ov.draw = function() {
};
ov.onRemove = function() {
};
ov.setMap(map);
this.prjov_ = ov;
google.maps.event.addListener(map, 'idle', function() {
prj = ov.getProjection();
});
}
और DragZoom.prototype.onMouseUp_ समारोह
DragZoom.prototype.onMouseUp_ = function (e) {
this.mouseDown_ = false;
if (this.dragging_) {
var left = Math.min(this.startPt_.x, this.endPt_.x);
var top = Math.min(this.startPt_.y, this.endPt_.y);
var width = Math.abs(this.startPt_.x - this.endPt_.x);
var height = Math.abs(this.startPt_.y - this.endPt_.y);
var points={
top: top,
left: left,
bottom: top + height,
right: left + width
};
var prj = this.prjov_.getProjection();
// 2009-05-29: since V3 does not have fromContainerPixel,
//needs find offset here
var containerPos = getElementPosition(this.map_.getDiv());
var mapPanePos = getElementPosition(this.prjov_.getPanes().mapPane);
left = left + (containerPos.left - mapPanePos.left);
top = top + (containerPos.top - mapPanePos.top);
var sw = prj.fromDivPixelToLatLng(new google.maps.Point(left, top + height));
var ne = prj.fromDivPixelToLatLng(new google.maps.Point(left + width, top));
var bnds = new google.maps.LatLngBounds(sw, ne);
//this.map_.fitBounds(bnds);
this.dragging_ = false;
this.boxDiv_.style.display = 'none';
/**
* This event is fired when the drag operation ends.
* Note that the event is not fired if the hot key is released before the drag operation ends.
* @name DragZoom#dragend
* @param {GLatLngBounds} newBounds
* @event
*/
google.maps.event.trigger(this, 'dragend', points);
}
};
यह 10k मार्करों के लिए कैसे करता है? –
मैं अपने कोड में 'अंक' को कैसे रोकूं? मैंने google.maps.event.addListener (मानचित्र, 'ड्रैगेंड', फ़ंक्शन() {...}) का उपयोग करने का प्रयास किया, लेकिन जब मैं बॉक्स को बनाने के लिए स्थानांतरित करने के बजाय मानचित्र को स्थानांतरित करने के लिए खींचता हूं तो यह हस्तक्षेप करता है। –
- 1. Google मानचित्र में एक बिंदु के चारों ओर त्रिज्या ड्रा
- 2. जावास्क्रिप्ट में Google मानचित्र एपीआई, एक सर्कल के त्रिज्या ड्रा?
- 3. Google मानचित्र पर टेक्स्ट ड्रा अब संभव नहीं है?
- 4. Google मानचित्र V3: जर्मन स्टेट पॉलीगॉन ड्रा करें?
- 5. Google मानचित्र मानचित्र
- 6. ड्रा लगातार मेरी एंड्रॉयड मानचित्र ओवरले
- 7. Google मानचित्र में मानचित्र नियंत्रण अक्षम करें
- 8. Google मानचित्र
- 9. Google मानचित्र
- 10. Google मानचित्र
- 11. Google मानचित्र
- 12. Google मानचित्र
- 13. Google मानचित्र
- 14. Google मानचित्र
- 15. Google मानचित्र
- 16. Google मानचित्र
- 17. Google मानचित्र
- 18. Google मानचित्र
- 19. Google मानचित्र
- 20. Google मानचित्र
- 21. Google मानचित्र: Google मानचित्र API v3 का उपयोग करके मानचित्र
- 22. Google मानचित्र
- 23. Google मानचित्र
- 24. Google मानचित्र
- 25. Google मानचित्र
- 26. Google मानचित्र
- 27. ड्रा
- 28. Google मानचित्र जीईओ परिणाम
- 29. Google मानचित्र में मार्कर दृश्यता
- 30. Google मानचित्र में ग्रे क्षेत्र
है कि कुछ उपकरण की आवश्यकता होगी गूगल के नक्शे के लिए विशेष रूप DragZoom समारोह बदल दिया ... मैं कुछ समय के लिए "गूगल के लिए खोज करने की कोशिश की मानचित्र आयत चयन "लेकिन सफलता के बिना। क्या आपको कुछ मिला है? – TMS
मुझे एक लाइब्रेरी मिली जो आपको आयत खींचने की अनुमति देती है (शिफ्ट कुंजी पकड़े हुए)। फिर यह उस क्षेत्र में ज़ूम करता है। मैंने इसे बदल दिया है ताकि यह ज़ूम इन न हो बल्कि चयनित क्षेत्र के भू-निर्देशांक लौटाए। मैं फिर मानचित्र पर सभी मार्करों के माध्यम से लूप करता हूं और उस क्षेत्र में मौजूद लोगों का चयन करता हूं। लाइब्रेरी का नाम "keydragzoom" –
है क्या यह एक है? http://google-maps-utility-library-v3.googlecode.com/svn/tags/keydragzoom/1.0/docs/reference.html – TMS