ThinkGeo.com    |     Documentation    |     Premium Support

"The shape you provided does not pass our simple validation.There are no points in the shape"

 


Recently, we upgraded our version to 4.5, but when we click on the panZoomBar, middle, (on the circle) we get a run time error -
"The shape you provided does not pass our simple validation.There are no points in the shape."
Here is our source:

 private void WpfMap_Loaded(object sender, RoutedEventArgs e)


        {
            wpfMap1.MapUnit = GeographyUnit.DecimalDegree;
            wpfMap1.CurrentExtent = new RectangleShape(-133.2515625, 89.2484375, 126.9046875, -88.290625);
 
            WorldMapKitWmsWpfOverlay worldMapKitOverlay = new WorldMapKitWmsWpfOverlay();
            wpfMap1.Overlays.Add(worldMapKitOverlay);
 
            PopupOverlay popupOverlay = new PopupOverlay();
            wpfMap1.Overlays.Add("PopupOverlay", popupOverlay);
 
            wpfMap1.Refresh();
        }
 

Please, what did we do something wrong?

 



 I tested your code and I also get that error when I click on the middle circle of the PanZoomBar. I think that you need to have at least one Popup in the PopupOverlay and you will not have that problem. See the code below that works. I am not sure if this is a bug if that error occurs if there is no item in the PopupOverlay so I relayed this post to the Wpf team so that they can give you a more detailed answer. In the meantime, please, add at least one item to your PopupOverlay. Thank you.


 



   wpfMap1.MapUnit = GeographyUnit.DecimalDegree;
    wpfMap1.CurrentExtent = new RectangleShape(-133.2515625, 89.2484375, 126.9046875, -88.290625);

    WorldMapKitWmsWpfOverlay worldMapKitOverlay = new WorldMapKitWmsWpfOverlay();
    wpfMap1.Overlays.Add(worldMapKitOverlay);

    PopupOverlay popupOverlay = new PopupOverlay();
    Popup popup = new Popup(-98,38);
    popupOverlay.Popups.Add(popup);
    wpfMap1.Overlays.Add("PopupOverlay", popupOverlay);

    wpfMap1.Refresh();


 Since I see in your code that you are doing things with PopupOverlay of the Wpf edition, I let you that we have a Code Community sample, PopupOverlay that shows the flexibility of Popup in the Wpf. You might be interested in checking that out: wiki.thinkgeo.com/wiki/Map_Suite_Wp...es_Samples



Hi Naomi, 



I checked your code and found it's a bug in our WpfDesktopEdition. To fix this issue, you can get the latest version tomorrow. Or you can create a new PopupOverlay as the following code and use it instead of the old one.

public class CustomPopupOverlay : PopupOverlay
{
    protected override RectangleShape GetBoundingBoxCore()
    {
        if (Popups.Count > 0) { return base.GetBoundingBoxCore(); }
        else { return null; }
    }
}



Thanks for reporting and feel free to let us know if you have more queries.



Thanks,

Howard



Thank you very much for the quick and correct answer. 
 Btw, now I was left with the unsolved mystery, how doesn’t the error occur in your samples application?

Hi Naomi, 
  
 This issue is caused by the PopupOverlay.GetBoundingBox(); if there is no Popup on the overlay, the bounding box cannot be created. That’s why this issue occurs. We also has this issue in our samples. 
  
 Please let me know if I misunderstand your issue. 
  
 Thanks, 
 Howard