public void AddIfMissing(RegexItem item) { if (_names.Add(item.DisplayText)) { Items.Add(item); } }
private void AppendSwitchCollection(StringWriter writer, string name, RegexItemCollection collection) { if (collection != null) { RegexItemEnumerator enumerator = collection.GetEnumerator(); while (enumerator.MoveNext()) { RegexItem item = enumerator.Current; AppendSwitchIfNotNull(writer, name, item.Value); } } }
private void Form_Load(object sender, EventArgs e) { // Set the map's unit of measurement to meters(Spherical Mercator) mapView.MapUnit = GeographyUnit.Meter; // Add Cloud Maps as a background overlay var thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay("itZGOI8oafZwmtxP-XGiMvfWJPPc-dX35DmESmLlQIU~", "bcaCzPpmOG6le2pUz5EAaEKYI-KSMny_WxEAe7gMNQgGeN9sqL12OA~~", ThinkGeoCloudVectorMapsMapType.Light); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); ShapeFileFeatureLayer coyoteSightings = new ShapeFileFeatureLayer(@"../../../Data/Shapefile/Frisco_Coyote_Sightings.shp"); // Project the layer's data to match the projection of the map coyoteSightings.FeatureSource.ProjectionConverter = new ProjectionConverter(2276, 3857); // Add the layer to a layer overlay var layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add("coyoteSightings", coyoteSightings); // Add the overlay to the map mapView.Overlays.Add(layerOverlay); // Create a regex style and item that looks for big / large / huge based on the comments // from users and draws them differently RegexStyle regexStyle = new RegexStyle(); regexStyle.ColumnName = "Comments"; RegexItem largeItem = new RegexItem("big|large|huge", new PointStyle(PointSymbolType.Circle, 12, GeoBrushes.Red)); regexStyle.RegexItems.Add(largeItem); // We have a default drawing style for every sighting PointStyle allSightingsStyle = new PointStyle(PointSymbolType.Circle, 5, GeoBrushes.Green); // Add the point style to the collection of custom styles for ZoomLevel 1. coyoteSightings.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(allSightingsStyle); coyoteSightings.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(regexStyle); // Apply the styles for ZoomLevel 1 down to ZoomLevel 20. This effectively applies the point style on every zoom level on the map. coyoteSightings.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Set the map extent mapView.CurrentExtent = new RectangleShape(-10781794.4716492, 3917077.66579861, -10775416.8466492, 3913528.63559028); }
/// <summary> /// Setup the map with the ThinkGeo Cloud Maps overlay. /// </summary> protected override void OnAppearing() { base.OnAppearing(); // Set the map's unit of measurement to meters(Spherical Mercator) mapView.MapUnit = GeographyUnit.Meter; // Add Cloud Maps as a background overlay var thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay("itZGOI8oafZwmtxP-XGiMvfWJPPc-dX35DmESmLlQIU~", "bcaCzPpmOG6le2pUz5EAaEKYI-KSMny_WxEAe7gMNQgGeN9sqL12OA~~", ThinkGeoCloudVectorMapsMapType.Light); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); ShapeFileFeatureLayer coyoteSightings = new ShapeFileFeatureLayer(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Data/Shapefile/Frisco_Coyote_Sightings.shp")); // Project the layer's data to match the projection of the map coyoteSightings.FeatureSource.ProjectionConverter = new ProjectionConverter(2276, 3857); // Add the layer to a layer overlay var layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add("coyoteSightings", coyoteSightings); // Add the overlay to the map mapView.Overlays.Add(layerOverlay); RegexStyle regexStyle = new RegexStyle(); regexStyle.ColumnName = "Comments"; RegexItem largeItem = new RegexItem("big|large|huge", new PointStyle(PointSymbolType.Circle, 12, GeoBrushes.Red)); regexStyle.RegexItems.Add(largeItem); PointStyle allSightingsStyle = new PointStyle(PointSymbolType.Circle, 5, GeoBrushes.Green); // Add the point style to the collection of custom styles for ZoomLevel 1. coyoteSightings.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(allSightingsStyle); coyoteSightings.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(regexStyle); // Apply the styles for ZoomLevel 1 down to ZoomLevel 20. This effectively applies the point style on every zoom level on the map. coyoteSightings.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Set the map extent mapView.CurrentExtent = new RectangleShape(-10781794.4716492, 3917077.66579861, -10775416.8466492, 3913528.63559028); }
/// <summary> /// 文本框验证事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void InputBox_Validating(object sender, CancelEventArgs e) { if (Required) { if (string.IsNullOrEmpty(this.Text.Trim())) { txtErrorProvider.SetError(this, RequiredMessage); IsValid = false; return; } } if (RegexType != WSH.Common.RegexType.None) { RegexItem item = RegexHelper.GetRegexItem(RegexType); if (!RegexHelper.Test(this.Text, item.RegexString)) { txtErrorProvider.SetError(this, string.IsNullOrEmpty(this.RegexMessage) ? item.RegexMessage : RegexMessage); IsValid = false; return; } } IsValid = true; txtErrorProvider.Clear(); }