<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0

    基于Mapserver的WebGIS下Java環境配置與JSP例子
    ????????
    ?????? mapserver通過Mapscript支持各種解釋型語言,像C#,java、TCL、 PHP,完成這項工作是通過
    swig這個開源工具進行的,swig可以對c/c++代碼打包成各種腳本語言可以的代碼庫。swig這個偉大
    的工具對mapserver的c代碼進行了打包。俺太喜歡這個swig了,網上這么的c/c++開源庫,要是咱們
    用到某方面的功能,下一個,然后用swig打包,這樣我們就看在java或者c#里用了,節約好多勞力哦。
    用c/c++寫底層的核心功能了,即有利于提高運行速度又能保護好源碼又能利用開源的c/c++類庫,再用
    swig為各種語言打包,可以直接享受到C#、java、TCL之類的解釋型強大功能,哈哈……

    ?? 我們可以下載現成的mapscript.jar包,其實下載的ms4w_1.5.3.zip已經包含這個東西啦。有了這個jar
    包我們就可以在java里頭調用mapserver咯。
    ?? 步驟是這樣的:
    1、設置環境變量PATH,以便JVM定位到mapscript.dll或mapscript.so,下面以windows為例
    ?? set PATH=D:\ms4w\Apache\cgi-bin;%PATH% #這個是定位dll的,
    ?? set PROJ_LIB=D:\ms4w\proj\nad? #這個是為方便投影
    ?? set CLASSPATH=D:\ms4w\Apache\cgi-bin\mapscript\java\mapscript.jar;%CLASSPATH% #java的,不多說了

    ?? 最好是把這幾個環境變量設置為system環境變量,不能是user環境變量(切記哦,否則定位不到dll)。
    2、在tomcat中如果,先前沒有設置PATH,也可這么搞。由于tomcat是運行在JVM上的,在tomcat的起來腳本增加
    ?? 選項-Djava.library.path=D:\ms4w\Apache\cgi-bin 也可以!

    ?? 經過上面兩步咱們已經配置好java環境了,接下來我們看個小例子。
    ?? 這是一個可以運行的JSP代碼。主要實現了這幾個功能
    ? 1、地圖放縮
    ? 2、鷹眼圖
    ? 3、圖例
    ? 4、比例尺
    ? 由于代碼非常簡單,棒棒唐就不多說了,自己看吧!當然Mapserver的功能比這強大得多,俺越來越喜歡mapserver了。
    在mapserver的mailllist中說到了Mapserver與ArcIMS的比較,其中有幾點值得關注。Mapsever速度比ArcIMS快,并發量
    比ArcIMS強,支持的webgis協議比ArcIMS多,二者的GIS功能也差不多。一個是商用的一個是開源的。對于俺們這些窮人來說
    玩玩Mapserver也不錯。想自己創業的朋友可以從Mapserver起步哦。
    ? 以后咱們用Servlet+Ajax來做Mapserver的webgis開發哈!切看下回分解。

    結果圖如下:

    <%@page contentType="text/html; charset=GB2312" language="java" %>
    <%@page import="edu.umn.gis.mapscript.*" %>
    <%@page import="java.util.Iterator, java.util.ArrayList"%>
    <%@page import="java.util.Date"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> my first mapserver-webgis Good-luck </TITLE>
    </HEAD>
    <BODY>
    <FORM METHOD=POST ACTION="index.jsp">

    <%!
    ?static int i=0;
    %>

    <%

    ?mapObj map;
    ?String vMapFile="";
    ?String vScaleBarFile="";
    ?String vLengdBarFile="";
    ?String vReferenceFile="";
    ?double rodio=1;
    ?map = new mapObj ("D:/SuperMap/SuperMapISJava/thirdparty/tomcat/webapps/mapserver/tutorial.map");
    ?if(map==null)
    ?{
    ? System.out.println("!ok");
    ?
    ?}
    ?else
    ?{??
    ?if(request.getParameter("rodio")!=null)
    ?{
    ??if(request.getParameter("rodio")!="")
    ??{
    ???rodio=Double.parseDouble(request.getParameter("rodio"));
    ??}
    ?}
    ?rectObj ro=map.getExtent();
    ?double xw=ro.getMaxx()-ro.getMinx();
    ?double yw=ro.getMaxy()-ro.getMiny();
    ?double cx=(ro.getMaxx()+ro.getMinx())/2;
    ?double cy=(ro.getMaxy()+ro.getMiny())/2;
    ?double newxw=xw*rodio;
    ?double newyw=yw*rodio;
    ?double maxx=cx+newxw/2;
    ?double minx=cx-newxw/2;
    ?double maxy=cy+newyw/2;
    ?double miny=cy-newyw/2;
    ?map.setExtent( minx,? miny,? maxx,? maxy);
    ?System.out.println("minx:"+minx);
    ?System.out.println("miny:"+miny);
    ?System.out.println("maxx:"+maxx);
    ?System.out.println("maxy:"+maxy);
    ?? map.setImagecolor(new colorObj(10,128,98,13));
    ?? imageObj imagen=map.draw();
    ?? //imagen.setImageDir("/tmp");
    ?? Date dt=new Date();
    ?? vMapFile="output/tangnf"+(dt.getTime())+".png";
    ? // map.embedScalebar(imagen);
    ?? imagen.save(vMapFile,map);
    ??
    ?? scalebarObj? scalebar=map.getScalebar();
    ?? scalebar.setHeight(10);
    ?? scalebar.setWidth(200);
    ?? scalebar.setBackgroundcolor(new colorObj(0,255,0,13));
    ?? scalebar.setColor(new colorObj(230,0,0,13));
    ?? scalebar.setImagecolor(new colorObj(255,255,255,13));
    ?? scalebar.setOutlinecolor(new colorObj(0,230,255,13));
    ?? //scalebar.setStyle(3);
    ?? scalebar.setUnits(3);
    ?? scalebar.setIntervals(3);
    ?? //scalebar.setLabel(new labelObj
    ????? imageObj Scalebarimage=map.drawScalebar();
    ?? vScaleBarFile="output/scalebar"+(dt.getTime())+".jpg";
    ?? Scalebarimage.save(vScaleBarFile,map);
    ?
    ??? legendObj legend=map.getLegend();
    ??? legend.setHeight(200);
    ??? legend.setWidth(100);
    ??? System.out.println(legend.getLabel().getEncoding());
    ?? imageObj Legendimage=map.drawLegend();
    ?? vLengdBarFile="output/Legend"+(dt.getTime())+".png";
    ?? Legendimage.save(vLengdBarFile,map);
    ?? int layerCount=map.getNumlayers();
    ?? for(int i=0;i<layerCount;i++)
    ??{
    ??? layerObj layer=map.getLayer(i);
    ??? System.out.println("layer"+(i)+":"+layer.getName());
    ??}
    ?????? System.out.println("layerCount:"+layerCount);
    ?
    ????? referenceMapObj referenceMap=map.getReference();
    ?? referenceMap.setHeight(200);
    ?? referenceMap.setWidth(200);

    ?? imageObj ReferenceImg=map.drawReferenceMap();
    ?? vReferenceFile="output/Reference"+(dt.getTime())+".png";
    ?? ReferenceImg.save(vReferenceFile,map);
    ? System.out.println("我成功啦");
    ?}

    %>
    <table border=1>
    <tr><td>
    放縮因子:&nbsp;&nbsp;
    <INPUT TYPE="text" NAME="rodio" value="<%=rodio%>" id="rodio" >
    </td>
    <td>
    <INPUT TYPE="submit" value="提交">
    </td>
    <tr><td width=80 >
    比例尺:&nbsp;&nbsp;
    <INPUT NAME="ScaleBar" TYPE="image" SRC="<%=vScaleBarFile%>"? border=1>
    <!--? <img SRC="<%=vScaleBarFile%>"? border=0 width=100 height=17></img> -->
    ?</td>
    ?</tr>
    ?<tr><td>
    ?<INPUT NAME="imgMap" TYPE="image" SRC="<%=vMapFile%>"? width=600 height=400 border=0>
    ?</td>
    ?</tr>
    ?<tr><td>
    ?圖例:&nbsp;&nbsp;
    ?<INPUT NAME="imgLengd" TYPE="image" SRC="<%=vLengdBarFile%>"?? border=0>
    ?</td>
    ?<td>
    ?鷹眼:&nbsp;&nbsp;
    ?<INPUT NAME="vReferenceF" TYPE="image" SRC="<%=vReferenceFile%>"?? border=0>
    ?</td>
    ?</tr>
    ?</table>
    </FORM>
    </BODY>
    </HTML>



    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://m.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2006-07-03 16:18 zhyiwww 閱讀(2310) 評論(1)  編輯  收藏 所屬分類: gis

    FeedBack:
    # re: 基于Mapserver的WebGIS下Java環境配置與JSP例子(轉載)
    2007-08-24 22:13 | giggs
    請問樓主在做MapServer的開發馬,我有些問題想請教,不知道怎么才能和你聯系?  回復  更多評論
      
    主站蜘蛛池模板: 亚洲精品无码乱码成人 | 亚洲欧美日韩自偷自拍| 日韩在线永久免费播放| 亚洲国产精品va在线播放| 日韩免费高清大片在线| 久久久久亚洲AV无码专区首| 久久永久免费人妻精品| 亚洲综合在线观看视频| 在线视频精品免费| 亚洲熟妇无码一区二区三区导航| 最近最新中文字幕完整版免费高清| 一本色道久久88—综合亚洲精品 | 九九视频高清视频免费观看| 亚洲AV无码成人精品区大在线| 激情小说亚洲图片| 久久影院亚洲一区| 久9久9精品免费观看| 亚洲国产成人精品久久| 在线免费观看a级片| 无套内谢孕妇毛片免费看看| 国内精品久久久久久久亚洲| 久久久久成人片免费观看蜜芽| 亚洲天堂中文字幕在线观看| 夜夜嘿视频免费看| EEUSS影院WWW在线观看免费| 亚洲成人激情在线| 免费鲁丝片一级观看| jizz免费观看视频| 亚洲国产精品成人精品小说| 国产大片51精品免费观看| 久久久久久久久久久免费精品| 亚洲成无码人在线观看| 四虎永久免费网站免费观看| 亚洲免费人成在线视频观看| 亚洲AV日韩综合一区尤物| 亚洲一区日韩高清中文字幕亚洲| 伊人免费在线观看高清版| 亚洲熟妇无码AV不卡在线播放| 日韩精品亚洲aⅴ在线影院| 亚洲三级高清免费| 久久久久久噜噜精品免费直播|