import nl.idgis.giclient.io.XMLResponseListener; import nl.idgis.giclient.io.XMLResponse; import nl.idgis.giclient.GIClientConfig; import nl.idgis.giclient.GIClient; import nl.idgis.giclient.io.XMLServer; import nl.idgis.giclient.util.URLTools; import nl.idgis.giclient.util.XMLTools; class nl.idgis.giclient.util.SRSInfo implements XMLResponseListener{ private var srsTitles:Object; private var srsProjections:Object; private var giClient:GIClient; private var hasInfo:Boolean; public function SRSInfo(giClient:GIClient, giClientConfig:GIClientConfig) { this.giClient = giClient; srsTitles = new Object(); srsProjections = new Object(); var url:String = giClientConfig.getSRSURL(); if(url != null && url.length != 0) { var server:XMLServer; if(url.indexOf(":", 0) != -1) server = new XMLServer(url); else server = new XMLServer(URLTools.getGIClientPath() + "/" + url); hasInfo = true; server.load(this, "", null); } else { hasInfo = false; giClient.onLoadSRSInfo(); } } function onLoadXMLResponse(xmlResponse : XMLResponse) : Void { var srs:Array = XMLTools.getChildNodes("SRS", XMLTools.getChild("SRSInfo", xmlResponse)); for(var i:Number = 0; i < srs.length; i++) { var name:String = XMLTools.getStringValue("Name", srs[i]); var title:String = XMLTools.getStringValue("Title", srs[i]); var projection:Boolean = XMLTools.getBooleanValue("Projection", srs[i]); //trace(name + " " + title + " " + projection); srsTitles[name] = title; srsProjections[name] = projection; } giClient.onLoadSRSInfo(); } function getTitle(srsName:String):String { return hasInfo ? srsTitles[srsName] : srsName; } function isProjection(srsName:String):Boolean { return hasInfo ? srsProjections[srsName] : true; } }