/// /// erstelle Verbindung zum OS Server /// private OSMWebService.OSMService GetOSMService() { OSMWebService.OSMService osmService = new OSMWebService.OSMService(); // "http://hostname:8580/OSMService"; osmService.Url = "http://" + OsmManager.WSHostname + ":" + OsmManager.WSPort.ToString() + "/OSMService"; // Anmeldung osmService.Credentials = new System.Net.NetworkCredential(OsmManager.Username, OsmManager.Password); return osmService; } /// /// sucht Elemente in einer Klasse /// /// /// Sucht in der Klasse "className" alle Elemente, deren Wert des Attributes "attributName" mit /// "value" übereinstimmen. /// /// Liste oder null private SearchResponse SearchItems(string className, string attributeName, string value) { OSMWebService.OSMService osmService = GetOSMService(); OSMWebService.SearchRequest searchRequest = new SearchRequest(); // welche Klassen abfragen string[] classNames = new string[1]; classNames[0] = className; searchRequest.classNames = classNames; searchRequest.showAllAttributes = true; // Suchkriterien (elid) SearchCriteria searchCriteria = new SearchCriteria(); searchCriteria.attributeName = attributeName; searchCriteria.sortOrder = OSMWebService.SortOrder.None; searchCriteria.value = value; searchCriteria.@operator = OSMWebService.SearchOperator.Equals; SearchCriteria[] searchCriteriaArray = new SearchCriteria[1]; searchCriteriaArray[0] = searchCriteria; searchRequest.criteria = searchCriteriaArray; // suchen ... SearchResponse searchResponse; searchResponse = osmService.itemSearch(searchRequest); return searchResponse; } /// /// liefert alle Elemente eine Klasse /// /// Implementiert IDBConnector:GetAllElementsOfClass() /// OSMElement Liste oder null public ArrayList GetAllElementsOfClass(string sClassname) { // suchen ... SearchResponse searchResponse = SearchItems(sClassname, "ELID", "*"); // Attribute dem Element zuweisen int nResponses = searchResponse.numberOfItems; if (nResponses == 0) return null; ArrayList aList = new ArrayList(); if (nResponses > 0) { foreach (OSMWebService.Item aItem in searchResponse.results) { OSMElement osmElement = new OSMElement(); osmElement.ELID = aItem.id; foreach (OSMWebService.Attribute aAttribute in aItem.attributes) { OSMAttribute osmAttribute = new OSMAttribute(aAttribute.name, aAttribute.value); osmElement.AddAttribute(osmAttribute); } aList.Add(osmElement); } } return aList; }