2014-09-05 8 views
5

संपादन से लॉक (निश्चित) ऊंचाई को कैसे लॉन्च करें मेरे पास एक Google मानचित्र है, इसमें एक आयत है जो संपादन योग्य, गतिशील और आकार बदलने योग्य आदि है जो मैं ढूंढ रहा हूं वह दी गई ऊंचाई को लॉक करने का एक तरीका है आयताकार, इसलिए केवल चौड़ाई बदल दी जा सकती है।Google मानचित्र आयत संपादन योग्य:

उत्तर

3

आप आयत को जावास्क्रिप्ट में bounds_changed ईवेंट के साथ ऊंचाई का आकार बदलने से रोक सकते हैं।

यहाँ एक काम jsfiddle है: http://jsfiddle.net/h7ee4368/

आयत API संदर्भ: https://developers.google.com/maps/documentation/javascript/reference?hl=de#Rectangle

जावास्क्रिप्ट src:

var rectangle; 
var originalBounds; 
var map; 

function initialize() { 
    var mapOptions = { 
     center: new google.maps.LatLng(44.5452, -78.5389), 
     zoom: 9 
    }; 
    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 

    var bounds = new google.maps.LatLngBounds(
     new google.maps.LatLng(44.490, -78.649), 
     new google.maps.LatLng(44.599, -78.443) 
    ); 

    originalBounds = bounds; 

    // Define the rectangle and set its editable property to true. 
    rectangle = new google.maps.Rectangle({ 
     bounds: bounds, 
     editable: true, 
     draggable: true 
    }); 

    rectangle.setMap(map); 

    // Add an event listener on the rectangle. 
    google.maps.event.addListener(rectangle, 'bounds_changed', boundsChangedCb); 
} 

var skipBoundsChangedCb = false; 
function boundsChangedCb(event) { 
    if(skipBoundsChangedCb) return; 

    var ne = rectangle.getBounds().getNorthEast(); 
    var sw = rectangle.getBounds().getSouthWest(); 

    var origNe = originalBounds.getNorthEast(); 
    var origSw = originalBounds.getSouthWest(); 

    //avoid recursion 
    skipBoundsChangedCb = true; 

    rectangle.setBounds(new google.maps.LatLngBounds(
     new google.maps.LatLng(ne.lat() - origNe.lat() + origSw.lat(), sw.lng()), 
     ne   
    )); 

    skipBoundsChangedCb = false; 

    origNe = ne; 
    origSw = sw; 
} 

google.maps.event.addDomListener(window, 'load', initialize); 
+0

@Gustav अगर यह आपके प्रश्न का उत्तर को हल किया है की जांच पर क्लिक करके इसे स्वीकार करने पर विचार कृपया -निशान। – PSanetra

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