Modeling Our World

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

地图Services已发布,本例程主要演示如何从地图Services中获取所需的地图,并返回生成图片结果的路径,便于其它用途利用(如网页嵌套等):

package com.esri.webadf.sample;

import com.esri.adf.web.ags.util.AGSUtil;
import com.esri.arcgisws.EnvelopeN;
import com.esri.arcgisws.EsriImageFormat;
import com.esri.arcgisws.EsriImageReturnType;
import com.esri.arcgisws.ImageDescription;
import com.esri.arcgisws.ImageDisplay;
import com.esri.arcgisws.ImageType;
import com.esri.arcgisws.LayerDescription;
import com.esri.arcgisws.MapDescription;
import com.esri.arcgisws.MapImage;
import com.esri.arcgisws.MapLayerInfo;
import com.esri.arcgisws.MapServerBindingStub;
import com.esri.arcgisws.MapServerInfo;

public class test {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String endpoint = "http://localhost/arcgis/services/bmy/MapServer";
       
        MapServerBindingStub mapserver;
        try {
           mapserver= new MapServerBindingStub(new java.net.URL(endpoint), null);
          
           MapServerInfo mapinfo = mapserver.getServerInfo(mapserver.getDefaultMapName());
           MapDescription mapdesc = mapinfo.getDefaultMapDescription();
        

           //设置地图显示范围
           com.esri.arcgisws.MapArea ma=mapdesc.getMapArea();
           EnvelopeN envelopeN=(EnvelopeN) ma.getExtent();
           envelopeN.setXMin(800000.0);
           envelopeN.setXMax(1000000.0);
           envelopeN.setYMin(4000000.0);
           envelopeN.setYMax(4400000.0);
           ma.setExtent(envelopeN);
                         
           MapLayerInfo[]layerInfos=mapinfo.getMapLayerInfos();
           MapLayerInfo[] newLayerInfos=new MapLayerInfo[layerInfos.length];
           for(int ii=0;ii<layerInfos.length;ii++){
                  newLayerInfos[ii]=layerInfos[ii];
           }

           LayerDescription[] newLayerDescriptions = new LayerDescription[newLayerInfos.length];
           LayerDescription[] layerDescriptions=mapinfo.getDefaultMapDescription().getLayerDescriptions();
        
           for(int i=0;i<newLayerInfos.length;i++){
              newLayerDescriptions[i]=AGSUtil.getLayerDescription(newLayerInfos[i].getLayerID(),layerDescriptions);
              //    if(newLayerInfos[i].getName().equalsIgnoreCase("country")){
              //     newLayerDescriptions.setDefinitionExpression(sqlStr);
              //    }
          }
          mapinfo.getDefaultMapDescription().setLayerDescriptions(newLayerDescriptions);
      
          ImageType imgtype = new ImageType();
          imgtype.setImageFormat(EsriImageFormat.esriImageGIF);
          imgtype.setImageReturnType(EsriImageReturnType.esriImageReturnURL);
 
          ImageDisplay imgdisp = new ImageDisplay();
          imgdisp.setImageHeight(600);
          imgdisp.setImageWidth(800);
          imgdisp.setImageDPI(96);
 
          ImageDescription imgdesc = new ImageDescription();
          imgdesc.setImageDisplay(imgdisp);
          imgdesc.setImageType(imgtype);
 
          System.out.println("imgdesc.getImageType(): "+imgdesc.getImageType().getImageFormat().getValue());
          System.out.println("mapdesc.getName: "+mapdesc.getName());
          System.out.println("mapserverName: "+mapserver.getDefaultMapName());
          MapImage mapimg = mapserver.exportMapImage(mapdesc, imgdesc);
          System.out.println("mapimg.getMapScale(): "+mapimg.getMapScale());
          System.out.println("mapimg.getImageURL(): "+mapimg.getImageURL());
   
          //   System.out.println(((EnvelopeN)mapinfo.getExtent()).getXMax());
          //   System.out.println(((EnvelopeN)mapinfo.getExtent()).getXMin());
          //   System.out.println(((EnvelopeN)mapinfo.getExtent()).getYMax());
          //   System.out.println(((EnvelopeN)mapinfo.getExtent()).getYMin());
        }catch (Exception e) {
           e.printStackTrace();
           System.out.println("FFFFF");
        }
   }
}

posted on 2008-11-14 18:31  egisxp  阅读(733)  评论(0编辑  收藏  举报