Update Code to SOAP API

Update the solution code to use the SOAP/WSDL Spectrum Spatial API for the FeatureService, MappingService and GeocodingService requests instead of the Envinsa .NET API.

  1. Replace the Envinsa .NET API Directory Service WithinBoundary request with the Spectrum Spatial SOAP/WSDL API FeatureService SearchBySQL request.
    <SearchBySQLRequest:>
        <SQL>select Quality from "/CovLoc/3GIX" where MI_Point(-73.12345, 42.98765, 'epsg:4326') within obj</SQL>
  2. Replace the Envinsa .NET API Presentation Service PortrayMapRequest using LayerExtension property to exclude all other coverage layers from map except the selected one. Replace with the Spectrum Spatial SOAP/WSDL API MappingService DescribeNamedMap and RenderMap requests to get a list of layers in the named map to reconstruct it excluding all other coverage layers from map except the selected one.

    Example from Mapping Service SOAP Demo page: Render Map with FeatureLayer CustomRangeTheme:

    <S:Body>  
    		<v1:RenderMapRequest imageMimeType="image/png"  
    			returnImage="false">  
    			<v1:MapView xsi:type="v1:ZoomAndCenterMapView">  
    				<v1:Width>800.0</v1:Width>  
    				<v1:Height>600.0</v1:Height>  
    				<v1:ZoomLevel uom="Mile">3000.0</v1:ZoomLevel>  
    				<v1:MapCenter srsName="epsg:4269">  
    					<ns3:Pos>  
    						<ns3:X>-101</ns3:X>  
    						<ns3:Y>42</ns3:Y>  
    					</ns3:Pos>  
    				</v1:MapCenter>  
    			</v1:MapView>  
    			<v1:Map>  
    				<v1:Layer xsi:type="v1:FeatureLayer">  
    					<ns2:Table xsi:type="ns2:NamedTable" name="/Samples/NamedTables/USA" />  
    					<v1:ThemeList>  
    						<ns5:Theme xsi:type="ns5:CustomRangeTheme" expression="Pop_2000">  
    							<ns5:RangeBinList>  
    								<ns5:RangeBin>  
    									<ns5:UpperBound xsi:type="ns7:DoubleValue">  
    										<ns7:Value>20000000</ns7:Value>  
    									</ns5:UpperBound>  
    									<ns5:LowerBound xsi:type="ns7:DoubleValue">  
    										<ns7:Value>0</ns7:Value>  
    									</ns5:LowerBound>  
    									<ns6:Style xsi:type="ns6:NamedStyle" name="/Samples/NamedStyles/AreaStyleGreen" />  
    								</ns5:RangeBin>  
    								<ns5:RangeBin>  
    									<ns5:UpperBound xsi:type="ns7:DoubleValue">  
    										<ns7:Value>40000000</ns7:Value>  
    									</ns5:UpperBound>  
    									<ns5:LowerBound xsi:type="ns7:DoubleValue">  
    										<ns7:Value>0</ns7:Value>  
    									</ns5:LowerBound>  
    									<ns6:Style xsi:type="ns6:NamedStyle" name="/Samples/NamedStyles/AreaStyleRed" />  
    								</ns5:RangeBin>  
    							</ns5:RangeBinList>  
    							<ns5:AllOthers xsi:type="ns6:NamedStyle" name="/Samples/NamedStyles/AreaStyleBlue" />  
    						</ns5:Theme>  
    					</v1:ThemeList>  
    				</v1:Layer>  
    			</v1:Map>  
    		</v1:RenderMapRequest>  
    	</S:Body>  
  3. Replace the Envinsa .NET API LocationUtility Service GeocodeRequest with the Spectrum SOAP/WSDL API GeocodeUSAddress service request.
    <GeocodeUSAddressRequest xmlns="http;//<server>:<port>/services/GeocodeUSAddress">
    <context>
    	<account.id>admin</account.id>
    	<account.password>admin</account.password>
    </context>
    <optional/>
    <rows>
    	<row>
    		<AddressLine>400 Main St</AddressLine>
    		<City>Hamilton</City>
    		<StateProvince>KS</StateProvince>
    		<PostalCode>56789</PostalCode>
    	</row>
    </rows>
    </GeocodeUSAddressRequest>