ThinkGeo.com    |     Documentation    |     Premium Support

Check to see features are present on viewing area of Map

Hello


sample scenario is, i have one map and buttton. Now on click on button, i draw two Markers (features) on the Map one is on 100,100 and other is on 105,105 (longitude/latitude)


Now if user has changed the map viewing area and the above two location is not visible to him. Now when he press the button how can i know that Marker location are not present on the viewing area of the map? And how can transfer the user's view to include both the location so he can see the Markers.


 


Thanks,



 


Badal,
To know whether the markers are inside of viewing area, two steps can be followed:

1. Get the location of the Marker you want to check.
2.  Check if the marker position is inside of the viewing area, code like below
Marker marker = GetMarker();
      RectangleShape viewAreaExtent = Map1.CurrentExtent;
      bool isContained = viewAreaExtent.Contains(marker.Position);
      if (isContained)
      { 
            // The marker is in viewing area of the map
      }
I’m not sure the meaning of the word “ And how can transfer the user's view to include both the location so he can see the Markers.”. Do you mean how to zoom to a proper extent to make sure the display view contains the markers and users can see the markers? I think you can use the ZoomTo method of map or resetting the currentExtent of the map to markers’ boundingbox.
Thanks,
Johnny

Hi Johnny,


You have interpreted correctlty, the display view contains all the markers and users can see that all the markers. But I could not find how can I reset currentExtent of map to markers' bounding box. If possible, can you provide sample code, that will be very helpful to me.


Thanks,


Badal Patel



Badal, 
  
 To zoom to certain extent, you can use the code as following: 
  
                 RectangleShape extent = new RectangleShape(-131.22, 55.05, -54.03, 16.91); 
                 Map1.ZoomTo(extent.GetCenterPoint(), Map1.CurrentScale); 
  
 Or you can use Map1.ZoomToMarkers method to zoom to a extent that includs all the markers. 
  
 Thanks, 
  
 Johnny