javascript - Google Maps Why does the entire page get redrawn when adding new markers -


i have map application , have markers loaded when document.ready() , have others loaded when click button when click button markers added @ document. ready() gets lost.

when button clicked entire page gets submitted , redrawn. causing map move slow on zooming , scrolling. can assist. under code. page running faster , don't want have redrawn on every ajax request.

code

  <script type="text/javascript">         function initialize() {         var mapoptions = {           center: new google.maps.latlng(10.670044,-61.515305),           zoom: 16,           maptypeid: google.maps.maptypeid.roadmap         };         var map = new google.maps.map(document.getelementbyid("map_canvas"),mapoptions);           var criminal = new google.maps.markerimage('resources/icons/police_new.ico',                 new google.maps.size(100,106),                 new google.maps.point(0,0),                 new google.maps.point(50,50)             );          var companypos = new google.maps.latlng(10.670044,-61.515305);         var companymarker = new google.maps.marker({             position: companypos,             map: map,             icon: criminal,             title:"first criminal"         });           $.ajax({             type:'get',             async:false,             global:'false',             url:'getlistofcrimehotspot.htm',             headers : {accept: 'application/json'},             datatype: 'json'                     }).done(function(hotspot){              $.each(hotspot, function(i,h){                 var icon = 'resources/icons/information.ico';                  new google.maps.marker({                     position:new google.maps.latlng(h.lat,h.lng),                     map:map,                     icon: new google.maps.markerimage(icon, new google.maps.size(100, 106), new google.maps.point(0, 0), new google.maps.point(50, 50)),                     title: 'crime rating : ' + h.crimelevel+' @ ' +h.crimelevelcount+' / ' + h.totalnumberofcrimes                 });             });         });           return map;          }//end initialize    var global_citizens;        $(document).ready(function(){     map = initialize();            $('#starttracking').on('click',function(){              $.each(global_citizens, function(i, c) {                  console.log(c.name );               });          });        $('#getcitizens').on('click', function() {         /*var mapoptions = {             center: new google.maps.latlng(10.670044, -61.515305),             zoom: 16,             maptypeid: google.maps.maptypeid.roadmap         };*/          //map =  new google.maps.map(document.getelementbyid("map_canvas"), mapoptions);            $.ajax({             type: 'get',             async : false,             global: 'false',             url: 'getlistofmarkers.htm',             headers : {accept: 'application/json'},             datatype: 'json'         }).done(function(citizens) {             global_citizens = citizens;              var markersource = [                 null,                 null,                 'resources/icons/criminal_new.ico',                 'resources/icons/victim_new.ico',                 'resources/icons/suspect_new.ico'             ];             $.each(citizens, function(i, c) {                 //console.log(c.name + ' | ' + c.socialsecuritynumber + ' | ' + c.lat+ ' | ' +c.lng);                 var icon = markersource[c.citizentype];                 if(markersource) {                     new google.maps.marker({                         position: new google.maps.latlng(c.lat, c.lng),                         map: map,                         icon: new google.maps.markerimage( icon, new google.maps.size(100, 106), new google.maps.point(0, 0), new google.maps.point(50, 50) ),                         title: c.name +'-' +c.socialsecuritynumber                   });                 }             });         });     });  }); </script> 

html

<body onload="initialize()">   <div id="map_canvas" style="width:100%; height:90%">     <!-- map goes in here -->    </div>    <div id="toolbar">     <button class="btn" id="getcitizens" onclick="" type="button">get citizens</button>     <button class="btn" id="starttracking" onclick="" type="button">start tracking</button>   </div> </body> 

the following line causing problem (inside function: $('#getcitizens').on('click', function() {).

var map = new google.maps.map(document.getelementbyid("map_canvas"), mapoptions);  

you creating new map every time #getcitizens being clicked. use instantiated map instead (the 1 returned initialize function). wont have reload map in way.


Comments