[mapserver-users] ArcIMS Gateway

Paul Ramsey pramsey at refractions.net
Mon Oct 1 19:08:35 EDT 2001


Attached is some call-and-response data from an actual simple
conversation between Arc8 and an IMS server (query server for services,
query server for service info, query server for image). Arc8 is
extremely sensitive to the form of the returned XML -- get it wrong and
it goes kablooie. The ArcXML guide is actually online (!!) at the ESRI
site.

http://arconline.esri.com/arconline/documentation/ims_/WebHelp/ArcXMLGuide.htm

imap at chesapeake.net wrote:
> 
> Bruno/list,
> 
> Somewhere on the ArcIMS machine, there exists an
> ArcXML DTD or schema which can be comformed to by
> writing some mapscript with XML::Writer.   I am
> working on a similar project, but is a mapscript
> query engine interface with OpenGIS GML
> (anyone else using XML with the GML DTD)
> I'd be glad to share notes, if you are doing
> working along these lines.
> 
> The standardization of geospatial data transfer
> is a goal we should all be working towards.
> 
> If anyone has the ArcXML DTD, please post.
> 
> Thanks,
> 
> Chris Stuber (mapsurfer)
> Silicon Mapping Solutions, Inc.
> (410)257-3187
> 
> Bruno Gendron wrote:
> >
> > Hi to everyone,
> >
> > I have been working a lot lately in creating a
> > PHP-Mapscript-based ArcXML-parser for Mapserver, which
> > handles basically 2/3 of the ArcXML 1.1 <REQUEST> spec
> > and returns an ArcXML <RESPONSE> to any ArcXML-enabled
> > client. Actually, the parser talks directly to
> > Mapserver, but it could be modified to forward its
> > request an WMS format to any WMS-compliant server and
> > back.
> >
> > However, my work is part of a larger project, which
> > include a Flash-DHTML Mapserver client, and I don't
> > know at this point in time if this ArcXML-parser will
> > be in the public domain (a public demo will go on-line
> > soon, so stay tuned).
> >
> > So, basically, yes, something closely related has been
> > done, and, no, I haven't seen any pitfall in doing
> > this. In respect to Mapserver, the mapfile structure
> > can easily (hum!) related to ArcXML tags. The nice
> > thing with ArcXML is that it could be easily extended
> > to include special geo-processing tags (I am in the
> > process of creating such tags to handle complex
> > queries).
> >
> > Bruno Gendron
> > GIS consultant
> > Lachine, Canada
> >
> > --- Paul Ramsey <pramsey at refractions.net> a écrit : >
> > Mapserverers,
> > >
> > >   We have started playing with ArcGIS 8.1 and were
> > > pleased and
> > > interested to note that it supports adding an
> > > "Internet Server" as a
> > > data layer. ESRI is certainly picking up the
> > > "distributed GIS" ball.
> > > There is, of course, one small catch: when ESRI says
> > > "internet server"
> > > they mean "ArcIMS server". :)
> > >
> > >   ESRI actually packages a little module with ArcIMS
> > > which sits in front
> > > of IMS and turns OGC Web Map Server requests into
> > > IMS-style requests.
> > > Basically a WMS emulator. I was thinking that it
> > > would be useful to have
> > > an emulator which does the reverse: sits in front of
> > > a WMS server and
> > > turns IMS-style requests into WMS requests -- an IMS
> > > emulator. That way
> > > people could use WMS servers for external data
> > > serving and still be able
> > > to add those WMS layers to ArcGIS projects.
> > >
> > >   So (1) has anyone already done this? and (2) does
> > > anyone see any
> > > notable pitfalls in doing so?
> > >
> > > Paul
> >
> > ___________________________________________________________
> > Do You Yahoo!? -- Un e-mail gratuit @yahoo.fr !
> > Yahoo! Courrier : http://fr.mail.yahoo.com
-------------- next part --------------
-----
#####
T 192.168.50.12:1520 -> 199.171.142.206:80 [AP]
POST /servlet/com.esri.esrimap.Esrimap?ServiceName=catalog 
HTTP/1.1
Content-Length: 58
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)
Host: 199.171.142.206
Connection: Keep-Alive
Cache-Control : no-cache

<?xml version="1.0" encoding="UTF-8"?><GETCLIENTSERVICES />                                                                    


#####
T 199.171.142.206:80 -> 192.168.50.12:1520 [AP]
HTTP/1.1 200 OK
Date: Mon, 01 Oct 2001 22:26:12 GMT
Server: Apache/1.3.9 (Win32) ApacheJServ/1.0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/plain

<?xml version="1.0"?>
<ARCXML version="1.0.1">
  <RESPONSE>
    <SERVICES>
      <SERVICE NAME="sstates_extract" SERVICEGROUP="ExtractServer1" ACCESS="PRIVATE" TYPE="ExtractServer" DESC=""  GROUP="*" STATUS="ENABLED" >
        <XAP NAME="C:\ArcIMS\AXL\sstates3.axl" /><IMAGE URL="http://geocover.earthsat.com/output" PATH="C:/ArcIMS/output" TYPE="JPG" />
      </SERVICE>
      <SERVICE NAME="all_all" SERVICEGROUP="ImageServer1" ACCESS="PUBLIC" TYPE="ImageServer" DESC="" GROUP="*" STATUS="ENABLED" >
        <XAP NAME="C:\ArcIMS\AXL\all\all.axl" />
        <IMAGE URL="http://geocover.earthsat.com/output" PATH="C:/ArcIMS/output" TYPE="JPG" />
      </SERVICE>
      <SERVICE NAME="ethiopia_refugee" SERVICEGROUP="ImageServer1" ACCESS="PUBLIC" TYPE="ImageServer" DESC=""  GROUP="*" STATUS="ENABLED" >
        <XAP NAME="C:\ArcIMS\AXL\ethiopia\refugee.axl" />
        <IMAGE URL="http://geocover.earthsat.com/output" PATH="C:/ArcIMS/output" TYPE="JPG" />
      </SERVICE>
      <SERVICE NAME="pyramids_onebox" SERVICEGROUP="ImageServer1" ACCESS="PUBLIC" TYPE="ImageServer" DESC=""  GROUP="*" STATUS="ENABLED" >
        <XAP NAME="C:\ArcIMS\AXL\pyramids_onebox.axl" />
        <IMAGE URL="http://geocover.earthsat.com/output" PATH="C:/ArcIMS/output" TYPE="JPG" />
      </SERVICE>
    </SERVICES>
  </RESPONSE>
</ARCXML>

------
######
T 192.168.50.12:1522 -> 199.171.142.206:80 [AP]
POST /servlet/com.esri.esrimap.Esrimap?ServiceName=us_mosaic&CustomStream=False 
HTTP/1.1
Content-Length: 120
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)
Host: 199.171.142.206
Connection: Keep-Alive
Cache-Control: no-cache

<?xml version="1.0" encoding="UTF-8"?>
<ARCXML version="1.0.1">
  <REQUEST dpi="96">
    <GET_SERVICE_INFO/>
  </REQUEST>
</ARCXML>
     
                                                 
#####
T 199.171.142.206:80 -> 192.168.50.12:1522 [AP]
HTTP/1.1 200 OK
Date: Mon, 01 Oct 2001 22:26:39 GMT
Server: Apache/1.3.9 (Win32) ApacheJServ/1.0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/plain

<?xml version="1.0"?>
<ARCXML version="1.0">
  <RESPONSE>
    <SERVICEINFO>
      <PROPERTIES>
        <ENVELOPE minx="7621954.5" miny="10621371.617647" maxx="12392940.0" maxy="14039955.0" name="Initial_Extent" />
        <FEATURECOORDSYS string="PROJCS['Custom',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137,298.257223563]],PRIMEM['Greenwich',0],UNIT['Degree',0.0174532925199433]],PROJECTION['Albers'],PARAMETER['False_Easting',10000000],PARAMETER['False_Northing',10000000],PARAMETER['Central_Meridian',-95.5],PARAMETER['Standard_Parallel_1',29.5],PARAMETER['Standard_Parallel_2',45.5],PARAMETER['Central_Parallel',15],UNIT['Meter',1]]" >
        <FILTERCOORDSYS string="PROJCS['Custom',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137,298.257223563]],PRIMEM['Greenwich',0],UNIT['Degree',0.0174532925199433]],PROJECTION['Albers'],PARAMETER['False_Easting',10000000],PARAMETER['False_Northing',10000000],PARAMETER['Central_Meridian',-95.5],PARAMETER['Standard_Parallel_1',29.5],PARAMETER['Standard_Parallel_2',45.5],PARAMETER['Central_Parallel',15],UNIT['Meter',1]]" />
        <BACKGROUND color="0,0,0" />
        <MAPUNITS units="METERS" />
      </PROPERTIES>
      <LAYERINFO type="image" name="america_flc.sid" visible="true" id="0" minscale="130" maxscale="795.976">
        <ENVELOPE minx="7738320.000000000000000" miny="11104598.000000000000000" maxx="12391942.000000000000000" maxy="14039955.000000000000000" />
      </LAYERINFO>
      <LAYERINFO type="image" name="america_8x.tif" visible="true" id="1" minscale="795.976">
        <ENVELOPE minx="7738320.000000000000000" miny="11104455.000000000000000" maxx="12392940.000000000000000" maxy="14039955.000000000000000" />
      </LAYERINFO>
      <LAYERINFO type="featureclass" visible="true" name="states_polys_albers" id="2">
        <FCLASS type="polygon">
          <ENVELOPE minx="7766255.3376098294000000000000000" miny="11165695.8702749050000000000000000" maxx="12368966.9593109260000000000000000" maxy="13990461.3168781210000000000000000" />
          <FIELD name="AREA" type="8" size="12" precision="3" />
          <FIELD name="STATE_NAME" type="12" size="25" precision="0" />
          <FIELD name="STATE_FIPS" type="12" size="2" precision="0" />
          <FIELD name="SUB_REGION" type="12" size="7" precision="0" />
          <FIELD name="STATE_ABBR" type="12" size="2" precision="0" /> 
          <FIELD name="POP1990" type="4" size="10" precision="0" />
          <FIELD name="POP1999" type="4" size="10" precision="0" />
        </FCLASS>
        <SIMPLERENDERER>
          <SIMPLEPOLYGONSYMBOL fillcolor="0,200,0" filltransparency="0.0" filltype="solid" fillinterval="6" boundarycolor="255,255,255" boundarytransparency="1.0" boundarywidth="1" boundarytype="solid" boundarycaptype="round" boundaryjointype="round" />
        </SIMPLERENDERER>
      </LAYERINFO>
    </SERVICEINFO>
  </RESPONSE>
</ARCXML>


-----                           
#####
T 192.168.50.12:1522 -> 199.171.142.206:80 [AP]
POST /servlet/com.esri.esrimap.Esrimap?ServiceName=us_mosaic&CustomStream=False 
HTTP/1.1
Content-Length: 888
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)
Host: 199.171.142.206
Connection: Keep-Alive
Cache-Control: no-cache

<?xml version="1.0" encoding="UTF-8"?>
<ARCXML version="1.0">
  <REQUEST>
    <GET_IMAGE autoresize="true">
      <PROPERTIES>
        <IMAGESIZE dpi="96" scalesymbols="true" height="574" width="736"/>
        <ENVELOPE minx="-130.948125809025" miny="16.5749356457419" maxx="-59.865326134031" maxy="53.3926737842562"/>
        <BACKGROUND color="0,0,0"/>
        <LAYERLIST order="true">
          <LAYERDEF id="0" name="america_flc.sid" visible="true"/>
          <LAYERDEF id="1" name="america_8x.tif" visible="true"/>
          <LAYERDEF id="2" name="states_polys_albers" visible="true" type="polygon">
            <SIMPLERENDERER>
              <SIMPLEPOLYGONSYMBOL fillcolor="0,200,0" filltransparency="0.0" filltype="solid" fillinterval="6" boundarycolor="255,255,255" boundarytransparency="1.0" boundarywidth="1" boundarytype="solid" boundarycaptype="round" boundaryjointype="round"/>
            </SIMPLERENDERER>
          </LAYERDEF>
        </LAYERLIST>
      </PROPERTIES>
    </GET_IMAGE>
  </REQUEST>
</ARCXML>
  
                                                                    
#####
T 199.171.142.206:80 -> 192.168.50.12:1522 [AP]
HTTP/1.1 200 OK
Date: Mon, 01 Oct 2001 22:26:41 GMT
Server: Apache/1.3.9 (Win32) ApacheJServ/1.0
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/plain

<?xml version="1.0"?>
<ARCXML version="1.0">
  <RESPONSE>
    <IMAGE>
      <ENVELOPE minx="-130.948125809024990" miny="7.265376037385909" maxx="-59.865326134030994" maxy="62.702233392612200" />
      <OUTPUT file="C:\ArcIMS\output\us_mosaic_ESAT-206263272811.jpg" url="http://geocover.earthsat.com/output/us_mosaic_ESAT-206263272811.jpg" />
    </IMAGE>
  </RESPONSE>
</ARCXML>


-----
#####
T 192.168.50.12:1523 -> 199.171.142.206:80 [AP]
GET /output/us_mosaic_ESAT-206263272811.jpg HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)
Host: geocover.earthsat.com
Connection: Keep-Alive

                                                                
#####
T 199.171.142.206:80 -> 192.168.50.12:1523 [AP]
HTTP/1.1 200 OK
Date: Mon, 01 Oct 2001 22:26:42 GMT
Server: Apache/1.3.9 (Win32) ApacheJServ/1.0
Last-Modified: Mon, 01 Oct 2001 22:26:42 GMT
ETag: W/"0-1c53-3bb8eda4"
Accept-Ranges: bytes
Content-Length: 7251
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: image/jpeg

[JPEG Binary Data]                                                


More information about the mapserver-users mailing list