示例#1
0
        private void RenderRouteSegmentInformation(LayerOverlay roadOverlay)
        {
            // Render Road information
            InMemoryFeatureLayer currentRoadLayer = (InMemoryFeatureLayer)roadOverlay.Layers["currentRoadLayer"];

            currentRoadLayer.InternalFeatures.Clear();
            currentRoadLayer.InternalFeatures.Add(editFeature.Id, editFeature);
            // render adjacent road
            InMemoryFeatureLayer adjacentRoadsLayer = roadOverlay.Layers["adjacentRoadsLayer"] as InMemoryFeatureLayer;
            // Get the feature id stored in FeatureSource
            Collection <string> adjacentIds = new Collection <string>();

            foreach (string id in editRouteSegment.StartPointAdjacentIds)
            {
                if (!adjacentIds.Contains(id))
                {
                    adjacentIds.Add(id);
                }
            }
            foreach (string id in editRouteSegment.EndPointAdjacentIds)
            {
                if (!adjacentIds.Contains(id))
                {
                    adjacentIds.Add(id);
                }
            }
            // Render features
            Collection <Feature> features = featureSource.GetFeaturesByIds(adjacentIds, ReturningColumnsType.AllColumns);

            adjacentRoadsLayer.InternalFeatures.Clear();
            foreach (Feature feature in features)
            {
                adjacentRoadsLayer.InternalFeatures.Add(feature.Id, feature);
            }

            winformsMap1.Refresh(roadOverlay);
        }