javascript - Google map Polygon gives uncaught typeerrors when calling containsLocation -


i include map functionality script line

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry,drawing&sensor=false"></script> 

the complete code this

var map, currentinfowindow, drawingmanager, selectedshape; var markers = []; var selectedmarkers = []; var shapes = [];  function initialize() { var mapoptions = {     center: new google.maps.latlng({0},{1}), // comes db     zoom: 8,     tilt: 30 };  var mapdiv = document.getelementbyid('mapdiv'); var height = math.max(0, document.documentelement.clientheight - 110).tostring(); mapdiv.setattribute('style','height: ' + height + 'px'); map = new google.maps.map(mapdiv, mapoptions);  // {2}  // here create markers db info, works fine // var marker{0} = new google.maps.marker({{ position: new google.maps.latlng({1},{2}), map: map, title: '{3}', icon: pinimage{0} }}); markers.push(marker{0});  drawingmanager = new google.maps.drawing.drawingmanager({     drawingcontrol: true,     drawingcontroloptions: {         position: google.maps.controlposition.top_center,         drawingmodes: [google.maps.drawing.overlaytype.polygon]     },     map: map });  google.maps.event.addlistener(drawingmanager, 'polygoncomplete', function(polygon) {     shapes.push(polygon);                 drawingmanager.setdrawingmode(null);       var newshape = polygon.overlay;                                       google.maps.event.addlistener(newshape, 'click', function() {         setselection(newshape);     });     setselection(newshape);                                         });  google.maps.event.addlistener(drawingmanager, 'drawingmode_changed', clearselection); google.maps.event.addlistener(map, 'click', clearselection); google.maps.event.adddomlistener(document.getelementbyid('btndeleteselectedshape'), 'click', deleteselectedshape); google.maps.event.adddomlistener(document.getelementbyid('btndeleteallshapes'), 'click', deleteallshapes); google.maps.event.adddomlistener(document.getelementbyid('btnselectmarkers'), 'click', setselectedmarkers); }  function addinfowindow(marker, content) { var infowindow = new google.maps.infowindow({     content: content });  google.maps.event.addlistener(marker, 'click', function () {     if (currentinfowindow != null) {         currentinfowindow.close();      }      infowindow.open(marker.get('map'), marker);     currentinfowindow = infowindow; }); }  function markerselection(spantitle, button) { var hidden = document.getelementbyid('hiddentitle'); hidden.value = spantitle.textcontent; button.disabled = true; __dopostback('',''); }  function clearselection() { if (selectedshape) {   selectedshape.seteditable(false);   selectedshape = null; } }  function setselection(shape) { clearselection(); selectedshape = shape; shape.seteditable(true);                                 }  function deleteselectedshape() { if (selectedshape) {   selectedshape.setmap(null); } }  function deleteallshapes() { (var = 0; < shapes.length; i++) {     shapes[i].overlay.setmap(null); } shapes = []; }  function setselectedmarkers() { var hidden = document.getelementbyid('hiddentitle'); (var = 0; < shapes.length; i++) {     (var k = 0; < markers.length; i++) {         var point = new google.maps.latlng(markers[k].getposition().lat(), markers[k].getposition().lng());         console.log(point);          if ($.inarray(markers[k], selectedmarkers) == -1              && google.maps.geometry.poly.containslocation(point, shapes[i]))          {             selectedmarkers.push(markers[k]);             alert(selectedmarkers.length);             hidden.value += markers[k].gettitle() + ',';             alert(hidden.value);         }     } } }  google.maps.event.adddomlistener(window, 'load', initialize); 

i suspect code 'polygoncomplete' may wrong have been getting javascript errors @ part too.

the error on line

google.maps.geometry.poly.containslocation(point, shapes[i])) 

it works fine when written this

google.maps.geometry.poly.containslocation(point, shapes[i].overlay)) 

@dr.molle thank spotting loop error


Comments