ThinkGeo.com    |     Documentation    |     Premium Support

Spatial query with Custom overlays

I have a Google base map with a Marker layer in customs overlays.


I want to combine two of your samples TrackShapeFinishedEvent and SpatialQueryAFeatureLayrer to let user draw a shape and query for all markers contained within that shape.


Can this be done with custom overlays? How? You sample only shows how to do it with static layers.


Thanks


Jakub


 



Jakub, 
  
 Could you provide us what’s the version of web edition you are using? Because since 3.1.299, all the web samples you mentioned are changed to use CustomOverlays already. On the other hand, which Marker layer you are using? InMemoryMarkerOverlay, SimpleMarkerOverlay or normal layer? You requirement is supported in overlay level or layer level; as CustomOverlay is just a collection, it cannot prevent you from archiving your target. So please provide us more information so that we can give you a better solution. 
  
 Thanks, 
 Howard

Hi Howard, 
 sorry for delayed response. I got sidetracked by another project. Back to this one. 
 I am using InMemoryMarkerOverlay for markers.  
 So is it possible to let user draw a shape and query for all markers contained within that shape in this scenario? 
 A piece of sample code would be really helpful. 
 Thanks 
 jakub 


Jakub,



Yes, your requirement is supported. The attachement is the code for you.


Thanks,


Khalil



 



1781-TrackShapeFinishedEvent.txt (6.17 KB)

Khalil, 

Thanks foe the code. Got it working but not sure what is is supposed to be doing? I can see that the returnMarkers collection lists all the markers in the selected shape (which is what I was after). But is there supposed to be some visual activity in your example? 

Also, what is the buttonEditShape_Click event for? 

First, it errors out because the shapeLayer is not in dictionary. 

Secondly, I am not sure what it should do. 



Lastly i am getting a message that shapeLayer.InternalFeatures is obsolete. Something about "bypassing the automatic spatial indexing" and needing to call BuildIndex method later. What is that all about? and what do I do about it? 



thanks for your help. 

 



Jakub,



The code posted in the last reply is the code behind for TrackShapeFinishedEvent sample of our installed sample which you could find its source code at "Samples\MapShapes\TrackShapeFinishedEvent.aspx".

And buttonEditShape_Click event handler is used for add features that user has drawed on the map to EditOverlay of map control.

You could continue to use shapeLayer.InternalFeatures or another method, likes the code below:


                shapeLayer.FeatureSource.BeginTransaction();
                shapeLayer.FeatureSource.AddFeature(feature);
                shapeLayer.FeatureSource.CommitTransaction();


Thanks,


Khalil