В своем приложении для рендеринга карты я использую SharpMap, в качестве провайдера данных использую postgis/postgresql. Для выбора полигонов я использую следующий код в обработчике события клика по контролу:
Код: Выделить всё
        private void renderGisControl_MouseClick(object sender, MouseEventArgs m)
        {
            SharpMap.Geometries.Point p = renderGisControl.Map.ImageToWorld(m.Location);
            FeatureDataSet selectedBuild = new FeatureDataSet();
            SharpMap.Layers.VectorLayer buildingsLayer = cityMap.FindLayer("polygons").FirstOrDefault() as
                SharpMap.Layers.VectorLayer;
            if (!buildingsLayer.DataSource.IsOpen)
                buildingsLayer.DataSource.Open();
            buildingsLayer.DataSource.ExecuteIntersectionQuery(p.GetBoundingBox(), selectedBuild);
            buildingsLayer.DataSource.Close();
            foreach (SharpMap.Data.FeatureDataRow current in selectedBuild.Tables[0].Rows)
                if (!selectedBuildings.Contains(current.Geometry))
                    selectedBuildings.Add(current.Geometry);
                else
                    selectedBuildings.Remove(current.Geometry);
            renderGisControl.Refresh();
        }
Не могли бы подсказать, в чем я заблуждаюсь? Как организовать выбор "линий"? Заранее спасибо за любую помощь, и извините, если что-то не так сформулировал, так как я еще новичок в этой области.

 !!!
 !!!