Created
January 21, 2016 23:21
-
-
Save kflaw/3499c2a1b77ac75185c6 to your computer and use it in GitHub Desktop.
webservice_proxyAPP1.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- | |
var WS_PROTO = location.protocol; | |
var WS_HOST = location.hostname; | |
var WS_PORT = location.port; | |
var WS_URI = '/postmilewebservice/services/GISWebServiceSoapImpl'; | |
//var WS_URL = "http://svhqgisapp1.dot.ca.gov/postmilewebservice/services/GISWebServiceSoapImpl"; | |
//var WS_URL = "http://svgcgoo5.dot.ca.gov:8080/postmilewebservice-2009-01/services/PostmileWebService"; | |
//var WS_URL = "http://svhqgisapp2.dot.ca.gov/postmilewebservice-2009-01/services/PostmileWebService"; | |
var WS_URL = "http://svhqgisapp1.dot.ca.gov/proxy.php"; | |
var WS_NS = "http://postmile.dot.ca.gov"; | |
//SOAP ACTIONS: | |
//WS_NM + "/" + "GetPostmileForPoint" | |
//WS_NM + "/" + "ValidatePostmile" | |
//WS_NM + "/" + "ValidatePostmilePair" | |
//WS_NM + "/" + "GetCoordinatesForPostmile" | |
//WS_NM + "/" + "GetCoordinatesForPostmilePair" | |
//WS_NM + "/" + "GetOdometerForPostmile" | |
// COMMON LRS OBJECTS | |
function postmile() { | |
this.routeNumber=0; | |
this.routeSuffixCode=null; | |
this.countyCode=null; | |
this.postmilePrefixCode=null; | |
this.postmileValue=-1.0; | |
this.alignmentCode=null; | |
} | |
//XML Serialization methods | |
postmile.prototype.toXML = function() {} | |
postmile.prototype.loadFromXML = function(node) { | |
if (node != null) { | |
this.routeNumber = getObj(node, "routeNumber"); | |
if(node.getElementsByTagName("routeSuffixCode")[0].firstChild != null) | |
this.routeSuffixCode = node.getElementsByTagName("routeSuffixCode")[0].firstChild.data; | |
else | |
this.routeSuffixCode = null; | |
this.countyCode = getObj(node, "countyCode"); | |
if (node.getElementsByTagName("postmilePrefixCode")[0].firstChild != null) | |
this.postmilePrefixCode = node.getElementsByTagName("postmilePrefixCode")[0].firstChild.data; | |
else | |
this.postmilePrefixCode = null; | |
this.postmileValue = node.getElementsByTagName("postmileValue")[0].firstChild.data; | |
if(node.getElementsByTagName("alignmentCode")[0].firstChild == null) | |
this.alignmentCode= null; | |
else | |
this.alignmentCode = node.getElementsByTagName("alignmentCode")[0].firstChild.data; | |
} | |
} | |
function postmilePair() { | |
this.routeNumber=0; | |
this.routeSuffixCode=null; | |
this.fromPostmile=null; //postmile | |
this.toPostmile=null; //postmile | |
} | |
postmilePair.prototype.toXML = function(){} | |
postmilePair.prototype.loadFromXML = function(node){} | |
function lrspoint() { | |
this.x=0.0; | |
this.y=0.0; | |
this.z=0.0; | |
this.m=0.0; | |
this.spatialReferenceID=0; | |
} | |
lrspoint.prototype.toXML = function(){} | |
lrspoint.prototype.loadFromXML = function(node){} | |
function pointCollection() { | |
this.points=null; | |
} | |
pointCollection.prototype.toXML = function(){} | |
pointCollection.prototype.loadFromXML = function(node){} | |
function lineCollection() { | |
this.pointCollections=null; | |
this.spatialReferenceID=0; | |
} | |
lineCollection.prototype.toXML = function(){} | |
lineCollection.prototype.loadFromXML = function(node){} | |
function validatorCandidate() { | |
this.score=-1.0; | |
this.postmile=null; | |
} | |
validatorCandidate.prototype.toXML = function(){} | |
validatorCandidate.prototype.loadFromXML = function(node){} | |
function validatorError() { | |
this.errorCode=0; | |
this.errorMsg=null; | |
} | |
validatorError.prototype.toXML = function(){} | |
validatorError.prototype.loadFromXML = function(node){} | |
function validatorWarning() { | |
this.warningCode=0; | |
this.warningMsg=null; | |
} | |
validatorWarning.prototype.toXML = function(){} | |
validatorWarning.prototype.loadFromXML = function(node){} | |
// WEB SERVICE REQUEST/RESPONSE OBJECTS | |
function pmRequest() { | |
this.options=null; | |
this.postmile=null; | |
this.postmilePair=null; | |
} | |
pmRequest.prototype.toXML = function(){} | |
pmRequest.prototype.loadFromXML = function(node){} | |
function pmOptions() { | |
this.alignmentType=-1; | |
this.effectiveDate=null; | |
this.offsetDistance=0.0; | |
} | |
pmOptions.prototype.toXML = function(){} | |
pmOptions.prototype.loadFromXML = function(node){} | |
function pmResponse() { | |
this.multiPointGeometry=null; | |
this.pointGeometry=null; | |
this.polylineGeometry=null; | |
} | |
pmResponse.prototype.toXML = function(){} | |
pmResponse.prototype.loadFromXML = function(node){} | |
function revPMRequest() { | |
this.inputPoint=null; //point | |
this.options=null; //revPMOptions | |
this.routeNumber=0; //short | |
this.routeSuffixCode=null; //string | |
this.alignment=null; //string | |
} | |
revPMRequest.prototype.toXML = function(){} | |
revPMRequest.prototype.loadFromXML = function(node){} | |
function revPMOptions() { | |
this.toleranceDegrees=0.0; //double | |
} | |
revPMOptions.prototype.toXML = function(){} | |
revPMOptions.prototype.loadFromXML = function(node){} | |
function revPMResponse() { | |
this.outputPostmile=null; //postmile | |
this.distanceFromRoute=-1.0; //double | |
this.nearestRoutePoint=null; //point | |
} | |
revPMResponse.prototype.toXML = function(){} | |
revPMResponse.prototype.loadFromXML = function(node){} | |
function validatorRequest() { | |
this.options=null; | |
this.postmile=null; | |
this.postmilePair=null; | |
} | |
validatorRequest.prototype.toXML = function(){} | |
validatorRequest.prototype.loadFromXML = function(node){} | |
function validatorOptions() { | |
this.effectiveDate=null; | |
this.tolerance=0.01; | |
} | |
validatorOptions.prototype.toXML = function(){} | |
validatorOptions.prototype.loadFromXML = function(node){} | |
function validatorResult() { | |
this.isValid=false; | |
this.candidates=null; | |
this.errors=null; | |
this.warnings=null; | |
} | |
validatorResult.prototype.toXML = function(){} | |
validatorResult.prototype.loadFromXML = function(node){} | |
function pmToOdometerRequest() { | |
this.postmile=null; | |
this.alignmentCode=null; //string | |
} | |
pmToOdometerRequest.prototype.toXML = function(){} | |
pmToOdometerRequest.prototype.loadFromXML = function(node){} | |
function pmToOdometerResponse() { | |
this.odometer=-1.0; | |
} | |
pmToOdometerResponse.prototype.toXML = function(){} | |
pmToOdometerResponse.prototype.loadFromXML = function(node){} | |
function pointToOdometerRequest() { | |
} | |
pointToOdometerRequest.prototype.toXML = function(){} | |
pointToOdometerRequest.prototype.loadFromXML = function(node){} | |
function pointToOdometerResponse() { | |
} | |
pointToOdometerResponse.prototype.toXML = function(){} | |
pointToOdometerResponse.prototype.loadFromXML = function(node){} | |
function odometerToPMRequest() { | |
} | |
odometerToPMRequest.prototype.toXML = function(){} | |
odometerToPMRequest.prototype.loadFromXML = function(node){} | |
function odometerToPMResponse() { | |
} | |
odometerToPMResponse.prototype.toXML = function(){} | |
odometerToPMResponse.prototype.loadFromXML = function(node){} | |
function odometerToPointRequest() { | |
} | |
odometerToPointRequest.prototype.toXML = function(){} | |
odometerToPointRequest.prototype.loadFromXML = function(node){} | |
function odometerToPointResponse() { | |
} | |
odometerToPointResponse.prototype.toXML = function(){} | |
odometerToPointResponse.prototype.loadFromXML = function(node){} | |
function odometerPairToLineCollectionRequest() { | |
} | |
odometerPairToLineCollectionRequest.prototype.toXML = function(){} | |
odometerPairToLineCollectionRequest.prototype.loadFromXML = function(node){} | |
function odometerPairToLineCollectionResponse() { | |
} | |
odometerPairToLineCollectionResponse.prototype.toXML = function(){} | |
odometerPairToLineCollectionResponse.prototype.loadFromXML = function(node){} | |
///WEB SERVICE METHODS ///// | |
function GISWebServiceSoapImp() { | |
} | |
GISWebServiceSoapImp.prototype.getPostmileForPoint = function(pmrequest) { | |
var xmlObj = null; | |
var xmlResponse = null; | |
var pmresponse = null; | |
var inputPoint = pmrequest.inputPoint; | |
if(window.XMLHttpRequest) | |
{ | |
xmlObj = new XMLHttpRequest(); | |
} | |
else if(window.ActiveXObject) | |
{ | |
xmlObj = new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
else | |
{ | |
return; | |
} | |
// var requestXML = " \ | |
//<soap:Envelope \ | |
// xmlns:q0=\"http://postmile.dot.ca.gov\" \ | |
// xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" \ | |
// xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \ | |
// xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \ | |
// >"; | |
var requestXML = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"> "; | |
requestXML += "<soap:Body><getPostmileForPointParameters xmlns=\"urn:webservice.postmile.lrs.gis.dot.ca.gov\"><inputPoint><m>0</m><spatialReferenceID>4269</spatialReferenceID><x>" + inputPoint.x + "</x><y>" + inputPoint.y + "</y><z>0</z></inputPoint><options><toleranceDegrees>" + .25 + "</toleranceDegrees></options><routeAlignment xsi:nil=\"true\" /><routeNumber>0</routeNumber><routeSuffixCode xsi:nil=\"true\" /></getPostmileForPointParameters></soap:Body></soap:Envelope>"; | |
// requestXML += " \ | |
//<soap:Body> \ | |
// <q0:getPostmileForPointParameters> \ | |
// <q0:inputPoint> \ | |
// <q0:m>0</q0:m> \ | |
// <q0:spatialReferenceID>" + inputPoint.spatialReferenceID + "</q0:spatialReferenceID> \ | |
// <q0:x>" + inputPoint.x + "</q0:x> \ | |
// <q0:y>" + inputPoint.y + "</q0:y> \ | |
// <q0:z>0</q0:z> \ | |
// </q0:inputPoint> \ | |
// <q0:options> \ | |
// <q0:toleranceDegrees>" + pmrequest.options.toleranceDegrees + "</q0:toleranceDegrees> \ | |
// </q0:options> \ | |
// <q0:routeAlignment /> \ | |
// <q0:routeNumber>0</q0:routeNumber> \ | |
// <q0:routeSuffixCode /> \ | |
// </q0:getPostmileForPointParameters> \ | |
// </soap:Body> \ | |
// </soap:Envelope> \ | |
// "; | |
xmlObj.open('POST', | |
WS_URL, | |
false); | |
xmlObj.setRequestHeader("Content-Type", "text/xml"); | |
xmlObj.setRequestHeader("SOAPAction", WS_NS + "/" + "GetPostmileForPoint"); | |
xmlObj.send(requestXML); | |
if (xmlObj.status == 200) | |
{ | |
pmresponse = new pmResponse(); | |
xmlResponse = xmlObj.responseXML; | |
outputPMNode = xmlResponse.getElementsByTagName("outputPostmile")[0]; | |
var outputPostmile = new postmile(); | |
outputPostmile.loadFromXML(outputPMNode); | |
pmresponse.outputPostmile = outputPostmile; | |
} | |
else | |
{ | |
var errXML = xmlObj.responseXML.getElementsByTagName("faultstring")[0]; | |
if (errXML != null) | |
{ | |
var errStr = errXML.firstChild.data; | |
//clear error | |
errStr = errStr.replace(/java.rmi.RemoteException\:/, ""); | |
alert(errStr); | |
} | |
else | |
{ | |
if(window.ActiveXObject) | |
{ | |
errXML = xmlObj.responseXML.xml; | |
} | |
else | |
{ | |
errXML = new XMLSerializer().serializeToString(xmlObj.responseXML); | |
} | |
alert(errXML); | |
} | |
} | |
return pmresponse; | |
} | |
//req = pm2OdometerRequest | |
GISWebServiceSoapImp.prototype.getOdometerForPostmile = function (req) | |
{ | |
var xmlObj = null; | |
var xmlResponse = null; | |
var odometer = -1; | |
if(window.XMLHttpRequest) | |
{ | |
xmlObj = new XMLHttpRequest(); | |
} | |
else if(window.ActiveXObject) | |
{ | |
xmlObj = new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
else | |
{ | |
return; | |
} | |
//var requestXML = " \ | |
//<soap:Envelope \ | |
// xmlns:q0=\"http://postmile.dot.ca.gov\" \ | |
// xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" \ | |
// xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \ | |
// xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> \ | |
//<soap:Body> \ | |
//<q0:getOdometerForPostmileParameters> \ | |
//<q0:alignment>" + req.alignmentCode + "</q0:alignment> \ | |
//<q0:postmile> \ | |
//<q0:countyCode>" + req.postmile.countyCode + "</q0:countyCode>"; | |
var requestXML = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:q0=\"urn:webservice.postmile.lrs.gis.dot.ca.gov\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"; | |
requestXML += "<soapenv:Body><q0:getOdometerForPostmileParameters><q0:alignment>" + req.alignmentCode + "</q0:alignment><q0:postmile>"; | |
if(req.postmile.alignmentCode != null) | |
requestXML += "<q0:alignmentCode>" + req.postmile.alignmentCode + "</q0:alignmentCode>"; | |
// else requestXML += "<q0:alignmentCode/>"; | |
requestXML += "<q0:countyCode>" + req.postmile.countyCode + "</q0:countyCode>"; | |
if(req.postmile.postmilePrefixCode != null) | |
requestXML += "<q0:postmilePrefixCode>" + req.postmile.postmilePrefixCode + "</q0:postmilePrefixCode>"; | |
// else requestXML += "<q0:postmilePrefixCode/>"; | |
requestXML += "<q0:postmileValue>" + req.postmile.postmileValue + "</q0:postmileValue>"; | |
requestXML += "<q0:routeNumber>" + req.postmile.routeNumber + "</q0:routeNumber>"; | |
if(req.postmile.routeSuffixCode != null) | |
requestXML += "<q0:routeSuffixCode>" + req.postmile.routeSuffixCode + "</q0:routeSuffixCode>"; | |
// else requestXML += "<q0:routeSuffixCode/>"; | |
requestXML += "</q0:postmile></q0:getOdometerForPostmileParameters></soapenv:Body></soapenv:Envelope>"; | |
xmlObj.open ('POST', | |
WS_URL, | |
false); | |
xmlObj.setRequestHeader("Content-Type", "text/xml"); | |
xmlObj.setRequestHeader("SOAPAction", WS_NS + "/" + "GetOdometerForPostmile"); | |
xmlObj.send(requestXML); | |
var res = null; | |
if (xmlObj.status == 200) { | |
xmlResponse = xmlObj.responseXML; | |
var respNode = xmlResponse.getElementsByTagName("getOdometerForPostmileReturn")[0]; | |
res = new pmToOdometerResponse(); | |
var odometerNode = respNode.firstChild; | |
odometer = odometerNode.firstChild.data; | |
res.odometer = odometer; | |
} | |
else | |
{ | |
var errXML = xmlObj.responseXML.getElementsByTagName("faultstring")[0]; | |
if (errXML != null) | |
{ | |
var errStr = errXML.firstChild.data; | |
//clear error | |
errStr = errStr.replace(/java.rmi.RemoteException\:/, ""); | |
alert(errStr); | |
} | |
else | |
{ | |
if(window.ActiveXObject) | |
{ | |
errXML = xmlObj.responseXML.xml; | |
} | |
else | |
{ | |
errXML = new XMLSerializer().serializeToString(xmlObj.responseXML); | |
} | |
alert(errXML); | |
} | |
} | |
return res; | |
} | |
GISWebServiceSoapImp.prototype.validatePostmile = function(req) { | |
var xmlObj = null; | |
var xmlResponse = null; | |
var pm = req.postmile; | |
var options = req.options; | |
var res = null; | |
if(window.XMLHttpRequest) | |
{ | |
xmlObj = new XMLHttpRequest(); | |
} | |
else if(window.ActiveXObject) | |
{ | |
xmlObj = new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
else | |
{ | |
return; | |
} | |
// var requestXML = " \ | |
//<soap:Envelope \ | |
// xmlns:q0=\"http://postmile.dot.ca.gov\" \ | |
// xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" \ | |
// xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \ | |
// xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> \ | |
//<soap:Body> \ | |
//<q0:validatePostmileParameters xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> \ | |
//<q0:options> \ | |
// <q0:tolerance>" + options.tolerance + "</q0:tolerance> \ | |
//</q0:options> \ | |
//<q0:postmileEvent> \ | |
//<q0:countyCode>" + pm.countyCode + "</q0:countyCode> \ | |
//<q0:postmileValue>" + pm.postmileValue + "</q0:postmileValue> \ | |
//<q0:routeNumber>" + pm.routeNumber + "</q0:routeNumber>"; | |
//if(pm.routeSuffixCode != "") | |
// requestXML += "<q0:routeSuffixCode>" + pm.routeSuffixCode + "</q0:routeSuffixCode>"; | |
//if(pm.alignmentCode != "") | |
// requestXML += "<q0:alignmentCode>" + pm.alignmentCode + "</q0:alignmentCode>"; | |
//if(pm.postmilePrefixCode != "") | |
// requestXML += "<q0:postmilePrefixCode>" + pm.postmilePrefixCode + "</q0:postmilePrefixCode>"; | |
//requestXML += " \ | |
//</q0:postmileEvent>"; | |
//<q0:postmileSegmentEvent xsi:nil=\"true\"/> \ | |
//requestXML += " \ | |
//</q0:validatePostmileParameters> \ | |
//</soap:Body> \ | |
//</soap:Envelope> \ | |
//"; | |
var requestXML = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"; | |
//requestXML += "<soap:Body><validatePostmileParameters xmlns=\"urn:webservice.postmile.lrs.gis.dot.ca.gov\"><options><effectiveDate xsi:nil=\"true\"/><tolerance>" + options.tolerance + "</tolerance></options><postmileEvent><alignmentCode xsi:nil=\"true\"/><countyCode>" + pm.countyCode + "</countyCode>"; | |
requestXML += "<soap:Body><validatePostmileParameters xmlns=\"urn:webservice.postmile.lrs.gis.dot.ca.gov\"><options><effectiveDate xsi:nil=\"true\"/><tolerance>" + options.tolerance + "</tolerance></options><postmileEvent>"; | |
if(pm.alignmentCode != "") | |
requestXML += "<alignmentCode>" + pm.alignmentCode + "</alignmentCode>"; | |
else requestXML += "<alignmentCode xsi:nil=\"true\"/>"; | |
requestXML += "<countyCode>" + pm.countyCode + "</countyCode>"; | |
if(req.postmile.postmilePrefixCode != "") | |
requestXML += "<postmilePrefixCode>" + pm.postmilePrefixCode + "</postmilePrefixCode>"; | |
// else requestXML += "<postmilePrefixCode xsi:nil=\"true\"/>"; | |
requestXML += "<postmileValue>" + pm.postmileValue + "</postmileValue><routeNumber>" + pm.routeNumber + "</routeNumber>"; | |
if(pm.routeSuffixCode != "") | |
requestXML += "<routeSuffixCode>" + pm.routeSuffixCode + "</routeSuffixCode>"; | |
else requestXML += "<routeSuffixCode xsi:nil=\"true\"/>"; | |
requestXML += "</postmileEvent><postmileSegmentEvent xsi:nil=\"true\"/></validatePostmileParameters></soap:Body></soap:Envelope>"; | |
xmlObj.open ('POST', | |
WS_URL, | |
false); | |
xmlObj.setRequestHeader("Content-Type", "text/xml"); | |
xmlObj.setRequestHeader("SOAPAction", WS_NS + "/" + "ValidatePostmile"); | |
xmlObj.send(requestXML); | |
if (xmlObj.status == 200) | |
{ | |
xmlResponse = xmlObj.responseXML; | |
retNode = xmlResponse.getElementsByTagName("validatePostmileReturn")[0]; | |
if (retNode != null) | |
{ | |
res = new validatorResult(); | |
var isValid = null; | |
var warnings= null; | |
var errors = null; | |
var candidates = null; | |
var child = null; | |
for(n=0;n<retNode.childNodes.length;n++) | |
{ | |
child = retNode.childNodes[n]; | |
if(child.nodeName.indexOf("isValid")>=0){ | |
isValid = child.firstChild.data; | |
} | |
if(child.nodeName.indexOf("warnings")>=0){ | |
warnings = child.childNodes; | |
} | |
if(child.nodeName.indexOf("errors")>=0){ | |
errors = child.childNodes; | |
} | |
if(child.nodeName.indexOf("candidates")>=0){ | |
candidateNodes = child.childNodes; | |
} | |
} | |
res.isValid = (isValid == "true"); | |
if(warnings != null) | |
var numWarnings = warnings.length; | |
if(errors != null) | |
var numErrors = errors.length; | |
if(candidateNodes != null) | |
{ | |
var numCandidates = candidateNodes.length; | |
res.candidates = new Array(); | |
for (var i=0; i<candidateNodes.length; i++) | |
{ | |
var candidateNode = candidateNodes[i]; | |
var pmNode = candidateNode.getElementsByTagName("candidatePostmile")[0]; | |
score = getObj(candidateNode, "score"); | |
var candidate = new validatorCandidate(); | |
pm = new postmile(); | |
pm.loadFromXML(pmNode); | |
candidate.score = score; | |
candidate.postmile=pm; | |
res.candidates[i] = candidate; | |
} | |
} | |
} | |
else | |
{ | |
alert("No validation result returned for Postmile"); | |
} | |
} | |
else | |
{ | |
var errXML = xmlObj.responseXML.getElementsByTagName("faultstring")[0]; | |
if (errXML != null) | |
{ | |
var errStr = errXML.firstChild.data; | |
//clear error | |
errStr = errStr.replace(/java.rmi.RemoteException\:/, ""); | |
alert(errStr); | |
} | |
else | |
{ | |
if(window.ActiveXObject) | |
{ | |
errXML = xmlObj.responseXML.xml; | |
} | |
else | |
{ | |
errXML = new XMLSerializer().serializeToString(xmlObj.responseXML); | |
} | |
alert(errXML); | |
} | |
} | |
return res; | |
} | |
GISWebServiceSoapImp.prototype.validatePostmilePair = function(req) { | |
var xmlObj = null; | |
var xmlResponse = null; | |
var resNode = null; | |
var pp = req.postmilePair; | |
var pmFrom = pp.fromPostmile; | |
var pmTo = pp.toPostmile; | |
var options = req.options; | |
var res = null; | |
if(window.XMLHttpRequest) | |
{ | |
xmlObj = new XMLHttpRequest(); | |
} | |
else if(window.ActiveXObject) | |
{ | |
xmlObj = new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
else | |
{ | |
return; | |
} | |
var requestXML = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body>"; | |
requestXML += "<validatePostmilePairParameters xmlns=\"urn:webservice.postmile.lrs.gis.dot.ca.gov\"><options><effectiveDate xsi:nil=\"true\" /><tolerance>" + options.tolerance + "</tolerance></options><postmileEvent xsi:nil=\"true\" />"; | |
requestXML += "<postmileSegmentEvent><fromPostmile>"; | |
if(pmFrom.alignmentCode != "") | |
requestXML += "<alignmentCode>" + pmFrom.alignmentCode + "</alignmentCode>"; | |
else requestXML += "<alignmentCode xsi:nil=\"true\" />"; | |
requestXML += "<countyCode>"+ pmFrom.countyCode +"</countyCode>"; | |
if(pmFrom.postmilePrefixCode != "") | |
requestXML += "<postmilePrefixCode>" + pmFrom.postmilePrefixCode + "</postmilePrefixCode>"; | |
else requestXML += "<postmilePrefixCode xsi:nil=\"true\" />"; | |
requestXML += "<postmileValue>" + pmFrom.postmileValue +"</postmileValue><routeNumber>" + pp.routeNumber + "</routeNumber>"; | |
if(pp.routeSuffixCode != "") | |
requestXML += "<routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode></fromPostmile>"; | |
else requestXML += "<routeSuffixCode xsi:nil=\"true\" /></fromPostmile>"; | |
requestXML += "<routeNumber>" + pp.routeNumber + "</routeNumber>"; | |
if(pp.routeSuffixCode != "") | |
requestXML += "<routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode>"; | |
else requestXML += "<routeSuffixCode xsi:nil=\"true\" />" | |
requestXML += "<toPostmile>"; | |
if(pmTo.alignmentCode != "") | |
requestXML += "<alignmentCode>" + pmTo.alignmentCode + "</alignmentCode>"; | |
else requestXML += "<alignmentCode xsi:nil=\"true\" />"; | |
requestXML += "<countyCode>" + pmTo.countyCode + "</countyCode>"; | |
if(pmTo.postmilePrefixCode != "") | |
requestXML += "<postmilePrefixCode>" + pmTo.postmilePrefixCode + "</postmilePrefixCode>"; | |
else requestXML += "<postmilePrefixCode xsi:nil=\"true\" />"; | |
requestXML += "<postmileValue>" + pmTo.postmileValue + "</postmileValue><routeNumber>" + pp.routeNumber + "</routeNumber>"; | |
if(pp.routeSuffixCode != "") | |
requestXML += "<routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode></toPostmile>"; | |
else requestXML += "<routeSuffixCode xsi:nil=\"true\" /></toPostmile>"; | |
requestXML += "</postmileSegmentEvent></validatePostmilePairParameters></soap:Body></soap:Envelope>"; | |
// var requestXML = " \ | |
//<soap:Envelope \ | |
// xmlns:q0=\"http://postmile.dot.ca.gov\" \ | |
// xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" \ | |
// xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \ | |
// xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> \ | |
//<soap:Body> \ | |
// <q0:validatePostmilePairParameters xmlns=\"" + WS_NS + "\"> \ | |
// <q0:postmileSegmentEvent> \ | |
// <q0:routeNumber>" + pp.routeNumber + "</q0:routeNumber>"; | |
// if(pp.routeSuffixCode != "") | |
// requestXML += "<q0:routeSuffixCode>" + pp.routeSuffixCode + "</q0:routeSuffixCode>"; | |
// requestXML += "<q0:fromPostmile> \ | |
// <q0:routeNumber>" + pp.routeNumber + "</q0:routeNumber>"; | |
// if(pp.routeSuffixCode != "") | |
// requestXML += "<q0:routeSuffixCode>" + pp.routeSuffixCode + "</q0:routeSuffixCode>"; | |
// if(pmFrom.alignmentCode != "") | |
// requestXML += "<q0:alignmentCode>" + pmFrom.alignmentCode + "</q0:alignmentCode>"; | |
// requestXML += "<q0:postmileValue>" + pmFrom.postmileValue + "</q0:postmileValue>"; | |
// if(pmFrom.postmilePrefixCode != "") | |
// requestXML += "<q0:postmilePrefixCode>" + pmFrom.postmilePrefixCode + "</q0:postmilePrefixCode>"; | |
// requestXML += "<q0:countyCode>" + pmFrom.countyCode + "</q0:countyCode> \ | |
// </q0:fromPostmile>"; | |
// requestXML += "<q0:toPostmile> \ | |
// <q0:routeNumber>" + pp.routeNumber + "</q0:routeNumber>"; | |
// if(pp.routeSuffixCode != "") | |
// requestXML += "<q0:routeSuffixCode>" + pp.routeSuffixCode + "</q0:routeSuffixCode>"; | |
// if(pmTo.alignmentCode != "") | |
// requestXML += "<q0:alignmentCode>" + pmTo.alignmentCode + "</q0:alignmentCode>"; | |
// requestXML += "<q0:postmileValue>" + pmTo.postmileValue + "</q0:postmileValue>"; | |
// if(pmTo.postmilePrefixCode != "") | |
// requestXML += "<q0:postmilePrefixCode>" + pmTo.postmilePrefixCode + "</q0:postmilePrefixCode>"; | |
// requestXML += "<q0:countyCode>" + pmTo.countyCode + "</q0:countyCode> \ | |
// </q0:toPostmile> \ | |
// </q0:postmileSegmentEvent> \ | |
// <q0:options> \ | |
// <q0:tolerance>" + options.tolerance + "</q0:tolerance> \ | |
// </q0:options> \ | |
// </q0:validatePostmilePairParameters> \ | |
//</soap:Body> \ | |
//</soap:Envelope> \ | |
// "; | |
xmlObj.open ('POST', | |
WS_URL, | |
false); | |
xmlObj.setRequestHeader("Content-Type", "text/xml"); | |
xmlObj.setRequestHeader("SOAPAction", WS_NS + "/" + "ValidatePostmilePair"); | |
xmlObj.send(requestXML); | |
if (xmlObj.status == 200) | |
{ | |
xmlResponse = xmlObj.responseXML; | |
resNode = xmlResponse.getElementsByTagName("validatePostmilePairReturn")[0]; | |
if (resNode != null) | |
{ | |
res = new validatorResult(); | |
var isValid = getObj(resNode, "isValid"); | |
res.isValid = (isValid == "true"); | |
//If valid, display on the map | |
if(res.isValid) | |
{ | |
getLinearEvent(); | |
synchronizePoint2Line(); | |
} | |
else | |
{ | |
var candidateNodes = resNode.getElementsByTagName("candidates")[0].childNodes; | |
var numCandidates = candidateNodes.length; | |
//display list of candidates | |
if (numCandidates > 0) | |
{ | |
var candidateNode = null; | |
var ppNode = null; | |
var pmNode = null; | |
var score = null; | |
var candidate = null; | |
res.candidates = new Array(); | |
for (var i=0; i<candidateNodes.length; i++) | |
{ | |
candidateNode = candidateNodes[i]; | |
score = getObj(candidateNode, "score"); | |
ppNode = candidateNode.getElementsByTagName("candidatePostmileSegment")[0]; | |
pmNode = ppNode.getElementsByTagName("fromPostmile")[0]; | |
pmFrom = new postmile(); | |
pmFrom.loadFromXML(pmNode); | |
pmNode = ppNode.getElementsByTagName("toPostmile")[0]; | |
pmTo = new postmile(); | |
pmTo.loadFromXML(pmNode); | |
pp = new postmilePair(); | |
pp.routeNumber = pmFrom.routeNumber; | |
pp.routeSuffixCode = pmFrom.routeSuffixCode; | |
pp.fromPostmile=pmFrom; | |
pp.toPostmile=pmTo; | |
candidate = new validatorCandidate(); | |
candidate.score = score; | |
candidate.postmilePair = pp; | |
res.candidates[i] = candidate; | |
} | |
} | |
} | |
} | |
else | |
{ | |
alert("No validation result returned for Postmile"); | |
} | |
} | |
else | |
{ | |
var errXML = xmlObj.responseXML.getElementsByTagName("faultstring")[0]; | |
if (errXML != null) | |
{ | |
var errStr = errXML.firstChild.data; | |
//clear error | |
errStr = errStr.replace(/java.rmi.RemoteException\:/, ""); | |
alert(errStr); | |
} | |
else | |
{ | |
if(window.ActiveXObject) | |
{ | |
errXML = xmlObj.responseXML.xml; | |
} | |
else | |
{ | |
errXML = new XMLSerializer().serializeToString(xmlObj.responseXML); | |
} | |
alert(errXML); | |
} | |
} | |
return res; | |
} | |
GISWebServiceSoapImp.prototype.getCoordinatesForPostmile = function(req) { | |
var pm = req.postmile; | |
var options = req.options; | |
var xmlObj = null; | |
var xmlResponse = null; | |
var outputCoordNode = null; | |
var outputDiv = document.getElementById('latLongResult'); | |
if(window.XMLHttpRequest) | |
{ | |
xmlObj = new XMLHttpRequest(); | |
} | |
else if(window.ActiveXObject) | |
{ | |
xmlObj = new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
else | |
{ | |
return; | |
} | |
var requestXML = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:q0=\"urn:webservice.postmile.lrs.gis.dot.ca.gov\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"; | |
requestXML += "<soapenv:Body><q0:getCoordinatesForPostmileParameters><q0:options><q0:alignmentType>" + options.alignmentType + "</q0:alignmentType><q0:offsetDistance>" + options.offsetDistance + "</q0:offsetDistance></q0:options><q0:postmileEvent>"; | |
if(pm.alignmentCode != "") | |
requestXML += "<q0:alignmentCode>" + pm.alignmentCode + "</q0:alignmentCode>"; | |
else requestXML += "<q0:alignmentCode xsi:nil=\"true\"/>"; | |
requestXML += "<q0:countyCode>" + pm.countyCode + "</q0:countyCode>"; | |
if(pm.postmilePrefixCode != "") | |
requestXML += "<q0:postmilePrefixCode>" + pm.postmilePrefixCode + "</q0:postmilePrefixCode>"; | |
else requestXML += "<q0:postmilePrefixCode xsi:nil=\"true\"/>"; | |
requestXML += "<q0:postmileValue>" + pm.postmileValue + "</q0:postmileValue><q0:routeNumber>" + pm.routeNumber + "</q0:routeNumber>"; | |
if(pm.routeSuffixCode != "") | |
requestXML += "<q0:routeSuffixCode>" + pm.routeSuffixCode + "</q0:routeSuffixCode>"; | |
else "<q0:routeSuffixCode xsi:nil=\"true\"/>"; | |
requestXML += "</q0:postmileEvent><q0:postmileSegmentEvent xsi:nil=\"true\"/></q0:getCoordinatesForPostmileParameters></soapenv:Body></soapenv:Envelope>"; | |
//var requestXML = " \ | |
//<soap:Envelope \ | |
// xmlns:q0=\"http://postmile.dot.ca.gov\" \ | |
// xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" \ | |
// xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \ | |
// xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> \ | |
//<soap:Body> \ | |
//<q0:getCoordinatesForPostmileParameters xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"> \ | |
//<q0:options> \ | |
//<q0:alignmentType>" + options.alignmentType + "</q0:alignmentType> \ | |
//<q0:effectiveDate xsi:nil=\"true\"/> \ | |
//<q0:offsetDistance>" + options.offsetDistance + "</q0:offsetDistance> \ | |
//</q0:options> \ | |
//<q0:postmileEvent> \ | |
//<q0:countyCode>" + pm.countyCode + "</q0:countyCode> \ | |
//<q0:postmileValue>" + pm.postmileValue + "</q0:postmileValue> \ | |
//<q0:routeNumber>" + pm.routeNumber + "</q0:routeNumber>"; | |
//if(pm.routeSuffixCode != "") | |
// requestXML += "<q0:routeSuffixCode>" + pm.routeSuffixCode + "</q0:routeSuffixCode>"; | |
//if(pm.postmilePrefixCode != "") | |
// requestXML += "<q0:postmilePrefixCode>" + pm.postmilePrefixCode + "</q0:postmilePrefixCode>"; | |
//if(pm.alignmentCode != "") | |
// requestXML += "<q0:alignmentCode>" + pm.alignmentCode + "</q0:alignmentCode>"; | |
//requestXML += " \ | |
//</q0:postmileEvent> \ | |
//<q0:postmileSegmentEvent xsi:nil=\"true\"/> \ | |
//</q0:getCoordinatesForPostmileParameters> \ | |
//</soap:Body> \ | |
//</soap:Envelope> \ | |
//"; | |
xmlObj.open ('POST', | |
WS_URL, | |
false); | |
xmlObj.setRequestHeader("Content-Type", "text/xml"); | |
xmlObj.setRequestHeader("SOAPAction", WS_NS + "/" + "GetCoordinatesForPostmile"); | |
xmlObj.send(requestXML); | |
var resp = null; | |
if (xmlObj.status == 200) | |
{ | |
xmlResponse = xmlObj.responseXML; | |
resp = new pmResponse(); | |
outputCoordNode = xmlResponse.getElementsByTagName("pointGeometry")[0]; | |
if (outputCoordNode != null) | |
{ | |
var pt = new lrspoint(); | |
pt.x = getObj(outputCoordNode, "x"); | |
pt.y = getObj(outputCoordNode, "y"); | |
resp.pointGeometry = pt; | |
} | |
else | |
{ | |
//return null geometry | |
resp.pointGeometry=null; | |
} | |
} | |
else | |
{ | |
var errXML = xmlObj.responseXML.getElementsByTagName("faultstring")[0]; | |
if (errXML != null) | |
{ | |
var errStr = errXML.firstChild.data; | |
//clear error | |
errStr = errStr.replace(/java.rmi.RemoteException\:/, ""); | |
alert(errStr); | |
} | |
else | |
{ | |
if(window.ActiveXObject) | |
{ | |
errXML = xmlObj.responseXML.xml; | |
} | |
else | |
{ | |
errXML = new XMLSerializer().serializeToString(xmlObj.responseXML); | |
} | |
alert(errXML); | |
} | |
} | |
return(resp); | |
} | |
GISWebServiceSoapImp.prototype.getCoordinatesForPostmilePair = function(req) { | |
var xmlObj = null; | |
var xmlResponse = null; | |
var outputCoordNode = null; | |
var pp=req.postmilePair; | |
var pmFrom=pp.fromPostmile; | |
var pmTo=pp.toPostmile; | |
var options=req.options; | |
var res=null; | |
if(window.XMLHttpRequest) | |
{ | |
xmlObj = new XMLHttpRequest(); | |
} | |
else if(window.ActiveXObject) | |
{ | |
xmlObj = new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
else | |
{ | |
return; | |
} | |
// </getCoordinatesForPostmilePairParameters></soap:Body></soap:Envelope>POST /ModifiedTiger2009/services/PostmileWebService HTTP/1.1 | |
//User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) | |
//Content-Type: text/xml; charset=utf-8 | |
var requestXML = "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body>"; | |
requestXML += "<getCoordinatesForPostmilePairParameters xmlns=\"urn:webservice.postmile.lrs.gis.dot.ca.gov\">"; | |
requestXML += "<options><alignmentType>" + options.alignmentType + "</alignmentType><effectiveDate xsi:nil=\"true\" /><offsetDistance>" + options.offsetDistance + "</offsetDistance></options>"; | |
requestXML += "<postmileEvent xsi:nil=\"true\" />"; | |
requestXML += "<postmileSegmentEvent>"; | |
requestXML += "<fromPostmile><alignmentCode>" + pmFrom.alignmentCode + "</alignmentCode><countyCode>" + pmFrom.countyCode + "</countyCode><postmilePrefixCode>" + pmFrom.postmilePrefixCode + "</postmilePrefixCode><postmileValue>" + pmFrom.postmileValue + "</postmileValue><routeNumber>" + pp.routeNumber + "</routeNumber><routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode></fromPostmile>"; | |
requestXML += "<routeNumber>" + pp.routeNumber + "</routeNumber><routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode>"; | |
requestXML += "<toPostmile><alignmentCode>" + pmTo.alignmentCode + "</alignmentCode><countyCode>" + pmTo.countyCode + "</countyCode><postmilePrefixCode>" + pmTo.postmilePrefixCode + "</postmilePrefixCode><postmileValue>" + pmTo.postmileValue + "</postmileValue><routeNumber>" + pp.routeNumber + "</routeNumber><routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode></toPostmile>"; | |
requestXML += "</postmileSegmentEvent>" | |
requestXML += "</getCoordinatesForPostmilePairParameters></soap:Body></soap:Envelope>"; | |
// <routeNumber>" + pp.routeNumber + "</routeNumber> \ | |
// <routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode> \ | |
// <alignmentCode>" + pmFrom.alignmentCode + "</alignmentCode> \ | |
// <postmileValue>" + pmFrom.postmileValue + "</postmileValue> \ | |
// <postmilePrefixCode>" + pmFrom.postmilePrefixCode + "</postmilePrefixCode> \ | |
// <countyCode>" + pmFrom.countyCode + "</countyCode> \ | |
// </fromPostmile> \ | |
// <soap:Body><getCoordinatesForPostmilePairParameters xmlns="urn:webservice.postmile.lrs.gis.dot.ca.gov"><options><alignmentType>1</alignmentType><effectiveDate xsi:nil="true" /><offsetDistance>0</offsetDistance></options><postmileEvent xsi:nil="true" /><postmileSegmentEvent><fromPostmile><alignmentCode xsi:nil="true" /><countyCode>LA</countyCode><postmilePrefixCode xsi:nil="true" /><postmileValue>0.092</postmileValue><routeNumber>405</routeNumber><routeSuffixCode xsi:nil="true" /></fromPostmile><routeNumber>405</routeNumber><routeSuffixCode xsi:nil="true" /><toPostmile><alignmentCode xsi:nil="true" /><countyCode>LA</countyCode><postmilePrefixCode xsi:nil="true" /><postmileValue>0.183</postmileValue><routeNumber>405</routeNumber><routeSuffixCode xsi:nil="true" /></toPostmile></postmileSegmentEvent></getCoordinatesForPostmilePairParameters></soap:Body></soap:Envelope>POST /ModifiedTiger2009/services/PostmileWebService HTTP/1.1 | |
//User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 2.0.50727.3615) | |
//Content-Type: text/xml; charset=utf-8 | |
// requestXML += <routeNumber>" + pp.routeNumber + "</routeNumber> | |
// <routeNumber>" + pp.routeNumber + "</routeNumber> \ | |
// <routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode> \ | |
// <toPostmile> \ | |
// <routeNumber>" + pp.routeNumber + "</routeNumber> \ | |
// <routeSuffixCode>" + pp.routeSuffixCode + "</routeSuffixCode> \ | |
// <alignmentCode>" + pmTo.alignmentCode + "</alignmentCode> \ | |
// <postmileValue>" + pmTo.postmileValue + "</postmileValue> \ | |
// <postmilePrefixCode>" + pmTo.postmilePrefixCode + "</postmilePrefixCode> \ | |
// <countyCode>" + pmTo.countyCode + "</countyCode> \ | |
// </toPostmile> \ | |
// </postmileSegmentEvent> \ | |
// <options><effectiveDate xsi:nil=\"true\" /><offsetDistance>" + options.offsetDistance + "</offsetDistance><alignmentType>" + options.alignmentType + "</alignmentType></options> | |
// </getCoordinatesForPostmilePairParameters> \ | |
// </soap:Body> \ | |
// </soap:Envelope> \ | |
// "; | |
xmlObj.open ("POST", | |
WS_URL, | |
false); | |
xmlObj.setRequestHeader("Content-Type", "text/xml"); | |
xmlObj.setRequestHeader("SOAPAction", WS_NS + "/" + "GetCoordinatesForPostmilePair"); | |
xmlObj.send(requestXML); | |
if (xmlObj.status == 200) | |
{ | |
res = new pmResponse(); | |
xmlResponse = xmlObj.responseXML; | |
outputGeom = xmlResponse.getElementsByTagName("polylineGeometry")[0]; | |
if (outputGeom != null) | |
{ | |
polyline = new lineCollection(); | |
polyline.pointCollections = new Array(); | |
var pointColls = outputGeom.getElementsByTagName("pointCollections")[0].childNodes; | |
for (var i=0; i<pointColls.length; i++) | |
{ | |
var pointColl = pointColls[i]; | |
var pointList = pointColl.getElementsByTagName("points")[0].childNodes; | |
segment = new pointCollection(); | |
segment.points = new Array(); | |
for(var j=0; j<pointList.length; j++) | |
{ | |
var pointNode = pointList[j]; | |
var pt = new lrspoint(); | |
pt.x = parseFloat(getObj(pointNode, "x")); | |
pt.y = parseFloat(getObj(pointNode, "y")); | |
segment.points[j]=pt; | |
} | |
polyline.pointCollections[i]=segment; | |
} | |
res.polylineGeometry = polyline; | |
} | |
else | |
{ | |
//return empty geometry | |
res.polylineGeometry=null; | |
} | |
} | |
else | |
{ | |
var errXML = xmlObj.responseXML.getElementsByTagName("faultstring")[0]; | |
if (errXML != null) | |
{ | |
var errStr = errXML.firstChild.data; | |
//clear error | |
errStr = errStr.replace(/java.rmi.RemoteException\:/, ""); | |
alert(errStr); | |
} | |
else | |
{ | |
if(window.ActiveXObject) | |
{ | |
errXML = xmlObj.responseXML.xml; | |
} | |
else | |
{ | |
errXML = new XMLSerializer().serializeToString(xmlObj.responseXML); | |
} | |
alert(errXML); | |
} | |
} | |
return(res); | |
} | |
--> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment