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.
-
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>
-
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>
-
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>