hubertlo

Geocoding using SOAP API

Discussion created by hubertlo on Aug 23, 2012
Latest reply on Aug 24, 2012 by hubertlo
I have been using the TA_Streets_US_10 with REST API for geocoding for a while. However I have a need to call TA_Streets_US_10 using SOAP instead from some back end codes. The back end codes will work much better if the results are in XML. I have been testing the call using a free application called soapUI. I can get the geocode to work but I cannot get the results back in the Spatial Reference that I want. I want wkid 102100 web mercator for the coordinates.

My REST API call:
http://tasks.arcgisonline.com/ArcGIS/rest/services/Locators/TA_Streets_US_10/GeocodeServer/findAddressCandidates?Street=400+Market+Street&City=San+Francisco&State=CA&ZIP=94111&outSR={%22wkid%22%3A102100}&f=json

Using soapUI request generation, I was able to construct this XML request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.esri.com/schemas/ArcGIS/10.0">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:FindAddressCandidates>
         <Address>
            <PropertyArray>
               <!--Zero or more repetitions:-->
               <PropertySetProperty>
                  <Key>Street</Key>
                  <Value>400 Market Street</Value>
               </PropertySetProperty>
               <PropertySetProperty>
                  <Key>City</Key>
                  <Value>San Francisco</Value>
               </PropertySetProperty>
               <PropertySetProperty>
                  <Key>State</Key>
                  <Value>CA</Value>
               </PropertySetProperty>
               <PropertySetProperty>
                  <Key>ZIP</Key>
                  <Value>94111</Value>
               </PropertySetProperty>
               <PropertySetProperty>
                  <Key>outSR</Key>
                  <Value>{"wkid":102100}</Value>
               </PropertySetProperty>
            </PropertyArray>
         </Address>
         <PropMods>
            <PropertyArray>
               <PropertySetProperty>
                  <Key>outSR</Key>
                  <Value>{"wkid":102100}</Value>
               </PropertySetProperty>            
            </PropertyArray>
         </PropMods>
      </ns:FindAddressCandidates>
   </soapenv:Body>
</soapenv:Envelope>


This is part of what came back:
               <Record xsi:type="tns:Record">
                  <Values xsi:type="tns:ArrayOfValue">
                     <Value xsi:type="xsd:int">1</Value>
                     <Value xsi:type="tns:PointN">
                        <X>-122.3984001482126</X>
                        <Y>37.791717541197158</Y>
                     </Value>
                     <Value xsi:type="xsd:short">100</Value>
                     <Value xsi:type="xsd:string">L</Value>
                     <Value xsi:type="xsd:double">-122.39839924502249</Value>
                     <Value xsi:type="xsd:double">37.791719039988372</Value>
                     <Value xsi:type="xsd:string"/>
                     <Value xsi:type="xsd:string">450</Value>
                     <Value xsi:type="xsd:string">400</Value>
                     <Value xsi:type="xsd:string"/>
                     <Value xsi:type="xsd:string"/>
                     <Value xsi:type="xsd:string">451</Value>
                     <Value xsi:type="xsd:string">401</Value>
                     <Value xsi:type="xsd:string"/>
                     <Value xsi:type="xsd:string"/>
                     <Value xsi:type="xsd:string"/>
                     <Value xsi:type="xsd:string">Market</Value>
                     <Value xsi:type="xsd:string">St</Value>
                     <Value xsi:type="xsd:string"/>
                     <Value xsi:type="xsd:string">San Francisco</Value>
                     <Value xsi:type="xsd:string">San Francisco</Value>
                     <Value xsi:type="xsd:string">CA</Value>
                     <Value xsi:type="xsd:string">CA</Value>
                     <Value xsi:type="xsd:string">94111</Value>
                     <Value xsi:type="xsd:string">94105</Value>
                     <Value xsi:type="xsd:string">400 Market St, San Francisco, CA, 94111</Value>
                  </Values>
               </Record>


As you can see, setting the "outSR" as part of the Address or PropMods have no effect on the output coordinates. It is still in wkid 4326 (WGS84). What do I need to set to change the output coordinate system? Can someone show me the piece of XML I need or where I can see an example? If that can be done in the REST API, there must be a way to do it in SOAP.

Outcomes