internal static void AddLayerDetails(GISLayerInfo info, JSONObject obj) { for (int idx = 0; idx < obj.Count; idx++) { switch (obj[idx]) { case "id": break; case "name": break; case "type": info._type = obj.getString("type"); break; case "geometryType": break; case "copyrightText": case "parentLayer": //{"id" : <parentLayerId>, "name" : "<parentLayerName>"} break; case "subLayers": //[ {"id" : <subLayerId1>, "name" : "<subLayerName1>"}, {"id" : <subLayerId2>, "name" : "<subLayerName2>"}], case "minScale": break; case "maxScale": break; case "extent": info._baseExtent = EsriEnvelope.Create(obj.getJSONObject("extent")); break; case "displayField": break; case "fields": EsriField.ProcessFields(info._Fields, obj.getJSONArray("fields")); info.IsQueryable = true; break; } } }
internal static GISFeature Create(JSONObject obj, GISLayerInfo layer, bool hasFields) { string layerid = layer._id; GISFeature feature = new GISFeature(); //{"layerId":1,"layerName":"Block Groups","value":"310899741.002","displayFieldName":"NAME","attributes":{"Shape":"Polygon","ID":"310899741002","State Abbreviation":"NE","2010 Total Population":"776","1990-2000 Population Change":"-0.5","2000-2010 Population: Annual Growth Rate":"-1.25","2010-2015 Population: Annual Growth Rate":"-1.19","Land Area in Square Miles":"811.3085"}} for (int i = 0; i < obj.Count; i++) { try { switch (obj[i]) { case "layerId": layerid = obj[obj[i]].ToString(); break; case "attributes": if (string.Compare(layerid, layer._id) == 0) { AddAttributeValues((JSONObject)obj[obj[i]], feature, layer.Fields, hasFields); } else { AddAttributeValues((JSONObject)obj[obj[i]], feature); } break; //case "bbox": // feature.Envelope = BingEnvelope.Parse((JSONArray)obj[obj[i]]); // break; default: feature.Fields.Add(new GISField(obj[i], obj[obj[i]].ToString())); break; } } catch { } } return feature; }
public static void GetRequestXml(GISLayerInfo info, XmlWriter xtw) { xtw.WriteStartElement("LAYERDEF"); xtw.WriteAttributeString("", "name", "", info.Name); xtw.WriteAttributeString("", "id", "", info.Id); xtw.WriteAttributeString("", "visible", "", info.IsVisible.ToString()); xtw.WriteEndElement(); // LAYER }
public virtual IGISLegend GetLegend(GISLayerInfo selectedLayer) { return new GISLegend() { }; }
public virtual bool Identify(int xpoint, int ypoint, double latitude, double longitude, GISEnvelope envelope, GISLayerInfo featureLayer) { throw new NotImplementedException("base class"); }
public virtual void ExecuteSearch(string searchTerm, SEARCH_TYPE searchType, GISEnvelope searchArea, GISLayerInfo featureLayer) { throw new NotSupportedException(string.Format("Server type {0} does not expose a search interface.", this._Server.Type)); }
public void ExecuteSearch(string searchTerm, SEARCH_TYPE searchType, GISEnvelope searchArea) { if (Controller.RequestProcessing) return; else Controller.RequestProcessing = true; if (FeatureLayer == null) { List<GISLayerInfo> layers = GetQueryLayers(); if (layers.Count() > 0) { _featureLayer = layers.First(); } } Controller.ExecuteSearch(searchTerm, searchType, searchArea, FeatureLayer); }
public bool Identify(int xpoint, int ypoint, double latitude, double longitude, GISEnvelope envelope, GISLayerInfo featureLayer) { if (Controller.RequestProcessing) return false; else Controller.RequestProcessing = true; if (featureLayer == null) { if (FeatureLayer == null) { List<GISLayerInfo> layers = GetQueryLayers(); if (layers.Count() > 0) { featureLayer = layers.First(); } } else featureLayer = FeatureLayer; } return Controller.Identify(xpoint, ypoint, latitude, longitude, envelope, featureLayer); }
public IGISLegend GetLegend(GISLayerInfo selectedLayer) { if (selectedLayer == null) { return ActiveService.ActiveLayers.Any() ? Controller.GetLegend(this.ActiveService.ActiveLayers.First()) : Controller.GetLegend(ActiveService.BaseLayers.First()); } else return Controller.GetLegend(selectedLayer); }
//internal static Dictionary<string, GISService> GetServices(AtlasOf.Configuration.SERVERSERVERServices sERVERSERVERServices) //{ // Dictionary<string, GISService> services = new Dictionary<string, GISService>(); // foreach (AtlasOf.Configuration.SERVERSERVERServicesSERVICE service in sERVERSERVERServices.SERVICE) // { // if (!services.ContainsKey(service.NAME)) // { // services.Add(service.NAME, GISService.Create(service)); // } // } // return services; //} //private static GISService Create(AtlasOf.Configuration.SERVERSERVERServicesSERVICE service) //{ // GISService newService = new GISService(service.NAME); // newService._type = (ServiceType)System.Enum.Parse(typeof(ServiceType), service.TYPE, true); // newService._isPublic = service.ACCESS == "PUBLIC"; // newService._description = service.DESC; // return newService; //} //public static AtlasOf.Configuration.SERVERSERVERServicesSERVICE Persist(GISService service) //{ // AtlasOf.Configuration.SERVERSERVERServicesSERVICE newService = new AtlasOf.Configuration.SERVERSERVERServicesSERVICE(); // newService.NAME = service.Name; // newService.TYPE = service.ServiceType.ToString(); // newService.ACCESS = service._isPublic ? "PUBLIC" : "HIDDEN"; // newService.DESC = service.Description; // return newService; //} internal bool FindLayer(string layer, out GISLayerInfo returnLayer) { var lyr = from x in _baseLayers where string.Compare(x._name, layer, StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(x._id, layer, StringComparison.CurrentCultureIgnoreCase) == 0 select x; if (lyr.Count() > 0) { returnLayer = lyr.FirstOrDefault(); return true; } else { var lyr2 = from x in _activeLayers where string.Compare(x._name, layer, StringComparison.CurrentCultureIgnoreCase) == 0 || string.Compare(x._id, layer, StringComparison.CurrentCultureIgnoreCase) == 0 select x; if (lyr2.Count() > 0) { returnLayer = lyr2.First(); return true; } else { returnLayer = null; return false; } } }