c# - Add loading indicator to google maps infoWindow -


currently, when user clicks on location marker on our map screen, page method called retrieve additional information server. when page method successful, results used define contents of infowindow displayed on map. in situations page method slow, infowindow displayed immediately, loading indicator. after page method successful, content of infowwindow updated.

so far, naive approach has been create infowindow loading indicator , display initial infowindow call open(map), , update contents of infowindow after page method successful. approach, however, not work, since map canvas not updated until after page method has completed (the initial version of infowindow therefore never displayed).

----- page code -----

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?v=3.8&client=my_client&sensor=false"></script>  <script type="text/javascript">     function initialize_map() {       map = new google.maps.map(...);       // set remaining map properties...    }     window.onload = function () {       initialize_map();    }     function drawpoint(loc) {       var marker = getpointmarker(loc);       // set remaining point marker properties...       marker.setmap(map);        var showpointinfo = function (evt) {          var infowindow = infowindowlist[loc];          if (infowindow == undefined)          {             getpointinfostart(loc);             getpointinfo(loc);          }       };        google.maps.event.addlistener(marker, 'click', showpointinfo);       }     function getpointinfostart(loc)    {       var infowindow = new google.maps.infowindow();       var content = // initial content loading indicator       infowindow.setcontent(content);       // set remaining infowindow properties...       infowindow.open(map);    }     function getpointinfo(loc)    {       // call page method retrieve data infowindow       pagemethods.getmappointinfo(..., ongetpointinfosuccess, onfailure);    }     function ongetpointinfosuccess(result) {       eval(result);       var infowindow = infowindowlist[loc];       var content = // final content retrieved data       infowindow.setcontent(content);    }  </script> 

----- code behind -----

protected override void oninit(eventargs e) {    scriptmanager.getcurrent(this).enablepagemethods = true;    ...    base.oninit(e); }  [webmethod] public static string getmappointinfo(...) {    // retrieve point information server...    return jsonstring; } 

i found bug in how initial content being defined. content being defined correctly, approach (as above) working.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -