ThinkGeo.com    |     Documentation    |     Premium Support

Refresh Custom Overlays using Javascript

I am adding a bunch of points to a custom overlay dynamically using ClientScript.GetCallbackEventReference.



MultipointShape pointContainerShape = new MultipointShape();
pointContainerShape.Points.Add(new PointShape(-94.48242, 38.75977));

InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay();
markerOverlay.Features.Add(new Feature(eachPointContainerShape));
Map1.CustomOverlays.Add(markerOverlay);

Next I try to refresh map on the client side



var layerList = myMap.layers;
for (var layerCounter = 0; layerCounter < layerList.length; layerCounter++) {
        var eachLayer = layerList[layerCounter];
        if (eachLayer != undefined && eachLayer.name != 'StaticOverlay' && eachLayer.name != 'DynamicOverlay')
            eachLayer.redraw(true);
    }

The javascript code gets called and has no errors, yet the points dont show up on the map?

Thanks



Just checking in to see if anybody had any ideas?

^^

Hello Amod, 
  
 Sorry for delay, and sorry to say, it can’t just refresh the MarkerOverlay in Client side to show the point. Here is the reason. 
  
 InMemoryMarkerOverlay manages features on the server side; users use it for adding batch of markers. Actually, user doesn’t know markers in this way; they only know setting styles and maintain features. In this way, users may add too many markers on the client side even if they are not in the extent which may cause memory issue on the client side. To fix this issue, we designed to add markers only in the current extent; we’ll refresh markers asynchronizely whenever current extent changed.  
  
 So we only refresh the markers which are maintained on the server side.  
  
 Regards, 
  
 Gary