Ejemplo n.º 1
0
        public bool PartHitTest(Geometry.Extent2D extent)
        {
            bool flag = false;

            if (HitTestMultiResult.Count != 0)
            {
                HitTestMultiResult.Clear();
            }

            var layers = Enumerable.Reverse(Layers).ToList(); // test from top layers

            foreach (MapLayer layer in layers)
            {
                if (layer.Visibility == Visibility.Visible)
                {
                    Dictionary <Feature, VectorLayer> tempResult = layer.PartHitTest(extent);
                    if (tempResult.Count != 0)
                    {
                        flag = true;
                        foreach (var element in tempResult)
                        {
                            HitTestMultiResult.Add(element.Key, element.Value);
                        }
                    }
                }
            }

            return(flag);
        }
Ejemplo n.º 2
0
        public bool HitTest(Point canvasPos)
        {
            Geometry.Point2D worldPos = GetWorldCoord(canvasPos);
            var layers = Enumerable.Reverse(Layers).ToList(); // test from top layers

            foreach (MapLayer layer in layers)
            {
                if (layer.Visibility == Visibility.Visible)
                {
                    Feature f = layer.HitTest(worldPos);
                    if (f != null)
                    {
                        HitTestLayerResult   = layer.LayerData;
                        HitTestFeatureResult = f;

                        HitTestMultiResult.Clear();
                        HitTestMultiResult.Add(HitTestFeatureResult, HitTestLayerResult);
                        return(true);
                    }
                }
            }
            return(false);
        }