2013-07-12 3 views
14

मुझे मानचित्र में एकाधिक मार्कर चुनने की आवश्यकता है। कुछ ऐसा: Box/Rectangle Draw Selection in Google Maps लेकिन पर्चे और ओएसएम के साथ।लिफाफे में एक बॉक्स के भीतर एकाधिक मार्कर चयन

मुझे लगता है कि जब आप क्लासिक को बदलते हैं और ओएसएम मानचित्र में खींचते हैं तो ज़ूम बॉक्स में यह आसान हो सकता है, लेकिन मुझे नहीं पता कि यह कैसे करना है।

संपादित करें: मैं इस तरह _onMouseUp समारोह को फिर से लिखने, @LSA टिप्पणी के रूप में और समाप्त हो गया कुछ में:

_onMouseUp: function (e) { 

    this._finish(); 

    var map = this._map, 
    layerPoint = map.mouseEventToLayerPoint(e); 

    if (this._startLayerPoint.equals(layerPoint)) { return; } 

    var bounds = new L.LatLngBounds(
    map.layerPointToLatLng(this._startLayerPoint), 
    map.layerPointToLatLng(layerPoint)); 

    var t=0; 
    var selected = new Array(); 

    for (var i = 0; i < addressPoints.length; i++) { 
     var a = addressPoints[i]; 
     pt = new L.LatLng(a[0], a[1]); 

     if (bounds.contains(pt) == true) { 
      selected[t] = a[2]; 
      t++; 
     } 
    } 

    alert(selected.join('\n')) 
}, 
+0

की एक सरणी है? क्या पत्रक संहिता के बिना कोई रास्ता है? इस समारोह को ओवरराइड करने की तरह? – mblaettermann

+1

@mblaettermann: मेरा उत्तर जांचें। – fuzz

उत्तर

3

मुझे लगता है कि यह ज़ूम बॉक्स प्रकट होता है कि जब आप CLIC बदलाव modificating आसान हो सकता है और एक ओएसएम मानचित्र में खींचें, लेकिन मुझे नहीं पता कि यह कैसे करें

अच्छा विचार। ज़ूम बॉक्स वास्तव में पुस्तिका की कार्यक्षमता है।

Here कोड है।

बस अपनी आवश्यकताओं के अनुरूप _onMouseUp फ़ंक्शन को फिर से लिखें।

+1

यही है, मैं उस समारोह को फिर से लिखता हूं और यह काम करता है। मैं कोड के साथ अपना प्रश्न अपडेट करूंगा। धन्यवाद – deckard

5

क्या आपने ऐसा कुछ करने की कोशिश की है?

markers आप इस वास्तव में क्या किया कैसे L.latLng() coordinates

map.on("boxzoomend", function(e) { 
    for (var i = 0; i < markers.length; i++) { 
    if (e.boxZoomBounds.contains(markers[i])) { 
     console.log(markers[i]); 
    } 
    } 
}); 
+0

क्या आप इसका उपयोग कैसे करें के बारे में अधिक जानकारी जोड़ सकते हैं? – Matt

+0

@ मैट: इसमें बहुत कुछ नहीं है। 'मार्कर 'केवल' एल। लिटलिंग() 'निर्देशांक का' ऐरे 'है, जब आप मानचित्र पर किसी क्षेत्र को खींचते हैं तो यह' बॉक्सज़ूमेंड 'विधि को कॉल करता है और आपके द्वारा चुने गए' मार्कर 'को दिखाता है, बशर्ते वे हैं सरणी यह सिर्फ यह देखने के लिए जांच कर रहा है कि चयनित सीमाओं के भीतर मार्कर मौजूद हैं या नहीं। – fuzz

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