caching - Issue with Cache, Maps and MarkerClusterer -


i have website built google maps , using markerclusterer. site works fine of time, there times when multiple users online , filtered marker sets request returned incorrectly.

example: filter set of markers based on set of filter parameters. processing else filters different set of markers , markers returned me instead of request.

i can see issue occur if sit on page , hit refresh. have tested in our test environment 2 users. having 1 user filter set of markers , when second user refreshes browser window see same set of filtered markers. markers of first user.

i have seen example fixes discussed use cachebuster adding date url, in using markercluserer code not see add option. has been asked not this.

data coming server in array object. markerclusterer.js located locally in visual studio project. here script on page generates map:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.11&sensor=false"></script> <script type="text/javascript" src="/scripts/markerclusterer.js"></script>  <script type="text/javascript"> var infowindow; var map; var markerdatalength; //en - 5-8-2013 var prev;  $(document).ready(function () {     settimeout("gmarkers()", 500); });  function gmarkers() {      markerdatalength = 0;      $("#map_canvas").fadeto(500, 0.3);     $("#pwait").show();      $.ajax({         type: "post",         url: "mapsearch.aspx/getmarkers",         data: "{}",         contenttype: "application/json; charset=utf-8",         datatype: "json",         success: function (msg) {              $("#map_canvas").fadeto(0, 0.3);             $("#pwait").show();              var markerdata;             markerdata = msg.d;             msg = null;             var latlng = new google.maps.latlng(52.50, -98.35);             var myoptions = {                 zoom: 3,                 center: latlng,                 //maptypeid: google.maps.maptypeid.hybrid,                 maptypeid: google.maps.maptypeid.terrain,                 maptypecontrol: true,                 maptypecontroloptions: {                     position: google.maps.controlposition.top_right                 },                 pancontrol: true,                 pancontroloptions: {                     position: google.maps.controlposition.top_left                 },                 zoomcontrol: true,                 zoomcontroloptions: {                     position: google.maps.controlposition.top_left                 },                 scalecontrol: true,                 scalecontroloptions: {                     position: google.maps.controlposition.bottom_center                 },                 streetviewcontrol: true,                 streetviewcontroloptions: {                     position: google.maps.controlposition.top_left                 }             };              //initialize info window (balloon popup)             infowindow = new google.maps.infowindow();              //draw map above settings             map = new google.maps.map(document.getelementbyid("map_canvas"), myoptions);               /***************************marker clusterer **********************************************/             var imageurl = 'http://chart.apis.google.com/chart?cht=mm&chs=24x24&chco=' +             'ffffff,008cff,000000&ext=.png';  //blue               var markers = [];              if (markerdata != "undefined" & markerdata.length > 0) {  //run code if data not null.  data markers in json format                  markerdatalength = markerdata.length; //en - 5-8-2013                  var = 0;                 var ro = new repeatingoperation(function () {                     var datawell = markerdata[i];                     var mlatlng = new google.maps.latlng(datawell.la, datawell.lo);                     var marker = new google.maps.marker({                         id: datawell.id,                         position: mlatlng,                         title: datawell.t,                         icon: imageurl  //iconstring                     });                     //set marker click code show info window                     var fn = markerclick(datawell.id);                     google.maps.event.addlistener(marker, 'click', fn);                     google.maps.event.addlistener(marker, 'clusteringend', clusteringdone()); //en - 5-8-2013                     markers.push(marker);                      if (++i < markerdata.length) { ro.step(); }                     else {                          var mcoptions = {                             gridsize: 90,   //default grid size 60 using 35.  higher #'s draw faster.                             maxzoom: 20,     //defines how close u before no more clusters drawn                             minimumclustersize: 15                         };                          var mc = new markerclusterer(map, markers, mcoptions);                     }                  }, 100);                 ro.step();              }              else {                 alert("no wells found.");                 $("#map_canvas").fadeto(300, 1);                 $("#pwait").hide();             }         }     }); } 


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -