⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapservice.java

📁 mapxtreme java实现的瘦客户端webgis
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        return mymap;
    }

    private MapJ initboundmap(HttpServletRequest request)
    {
        MapJ boundmap = null;
        boundmap = (MapJ)request.getSession().getAttribute("boundmap");
        if(boundmap == null)
            try
            {
                boundmap = initMapJ();
                AnnotationTableDescHelper antable = new AnnotationTableDescHelper("anlayer");
                AnnotationDataProviderHelper andata = new AnnotationDataProviderHelper();
                LocalDataProviderRef andataref = new LocalDataProviderRef(andata);
                boundmap.getLayers().insertLayer(andataref, antable, 0, "anlayer");
                request.getSession().setAttribute("boundmap", boundmap);
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        return boundmap;
    }

    private void chgmapview(MapJ mymap, HttpServletRequest request)
    {
        try
        {
            double oldzoom = mymap.getZoom();
            Double newzoomopr = new Double(request.getParameter("newzoom"));
            double newzoom = oldzoom * newzoomopr.doubleValue();
            Double centerx = new Double(request.getParameter("centerx"));
            Double centery = new Double(request.getParameter("centery"));
            DoublePoint screenpoint = new DoublePoint(centerx.doubleValue(), centery.doubleValue());
            DoublePoint mappoint = mymap.transformScreenToNumeric(screenpoint);
            mymap.setCenter(mappoint);
            mymap.setZoom(newzoom);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    private void panmap(MapJ mymap, HttpServletRequest request)
    {
        try
        {
            Double centerx = new Double(request.getParameter("centerx"));
            Double centery = new Double(request.getParameter("centery"));
            DoublePoint screenpoint = new DoublePoint(centerx.doubleValue(), centery.doubleValue());
            DoublePoint mappoint = mymap.transformScreenToNumeric(screenpoint);
            mymap.setCenter(mappoint);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    private void resetmap(MapJ mymap, HttpServletRequest request)
    {
        try
        {
            mymap.setZoom(resetzoom);
            mymap.setCenter(resetpoint);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    private void responseimg(MapJ mymap, HttpServletResponse response)
    {
        ServletOutputStream sout = null;
        mymap.setDeviceBounds(new DoubleRect(0.0D, 0.0D, imgsizex, imgsizey));
        response.setContentType("image/jpeg");
        try
        {
            sout = response.getOutputStream();
            ImageRequestComposer irc = ImageRequestComposer.create(mymap, 65535, Color.white, "image/jpeg");
            MapXtremeImageRenderer renderer = new MapXtremeImageRenderer(mapxtremeurl);
            renderer.render(irc);
            renderer.toStream(sout);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        try
        {
            if(sout != null)
                sout.close();
        }
        catch(Exception exception) { }
    }

    private void responsetext(MapJ mymap, HttpServletResponse response, String flag)
    {
        try
        {
            PrintWriter out = response.getWriter();
            response.setContentType("text/html; charset=GBK");
            if(flag.equals("centerpoint"))
            {
                DoublePoint centerpoint = mymap.getCenter();
                out.print(String.valueOf(String.valueOf((new StringBuffer("<body onload=\"setxy()\"><input name=centerx type=hidden value=")).append(centerpoint.x).append(">").append("<input name=centery type=hidden value=").append(centerpoint.y).append(">").append("</body>").append("<script language=\"JavaScript\">").append("function setxy(){").append("parent.document.all.oldx.value=document.all.centerx.value;").append("parent.document.all.oldy.value=document.all.centery.value").append("}").append("</script>"))));
            } else
            {
                out.print(String.valueOf(String.valueOf((new StringBuffer("<body onload=\"setzoom()\"><input name=zoom type=hidden value=")).append(mymap.getZoom()).append(">").append("</body>").append("<script language=\"JavaScript\">").append("function setzoom(){").append("parent.document.all.oldzoom.value=document.all.zoom.value;").append("}").append("</script>"))));
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    private void responsebound(MapJ mymap, MapJ boundmap, HttpServletResponse response)
    {
        ServletOutputStream sout = null;
        try
        {
            Layer anlayer = boundmap.getLayers().elementAt(0);
            FeatureFactory ff = boundmap.getFeatureFactory();
            PrimaryKey pk = new PrimaryKey(new Attribute(101));
            Rendition rend = RenditionImpl.getDefaultRendition();
            rend.setValue(Rendition.STROKE, Color.red);
            rend.setValue(Rendition.STROKE_WIDTH, 2);
            rend.setValue(Rendition.FILL_OPACITY, new Float(0.0D));
            DoublePoint p1 = new DoublePoint(0.0D, 0.0D);
            DoublePoint p2 = new DoublePoint(imgsizex, 0.0D);
            DoublePoint p3 = new DoublePoint(imgsizex, imgsizey);
            DoublePoint p4 = new DoublePoint(0.0D, imgsizey);
            DoublePoint mp1 = mymap.transformScreenToNumeric(p1);
            DoublePoint mp2 = mymap.transformScreenToNumeric(p2);
            DoublePoint mp3 = mymap.transformScreenToNumeric(p3);
            DoublePoint mp4 = mymap.transformScreenToNumeric(p4);
            double p[] = new double[10];
            p[0] = mp1.x;
            p[1] = mp1.y;
            p[2] = mp2.x;
            p[3] = mp2.y;
            p[4] = mp3.x;
            p[5] = mp3.y;
            p[6] = mp4.x;
            p[7] = mp4.y;
            p[8] = mp1.x;
            p[9] = mp1.y;
            Feature ft = ff.createRegion(p, rend, null, null, pk);
            PrimaryKey spk[] = {
                new PrimaryKey(new Attribute(101))
            };
            Vector col = new Vector();
            FeatureSet ftset = anlayer.searchByPrimaryKey(col, spk, null);
            PrimaryKey primarykey;
            if(ftset == null)
                primarykey = anlayer.addFeature(ft);
            else
                anlayer.replaceFeature(pk, ft);
            boundmap.setDeviceBounds(new DoubleRect(0.0D, 0.0D, smallimgsizex, smallimgsizey));
            boundmap.setDistanceUnits(mymap.getDistanceUnits());
            if(mymap.getZoom() / boundmap.getZoom() >= 0.80000000000000004D)
            {
                boundmap.setZoom(mymap.getZoom() * 1.25D);
                boundmap.setCenter(mymap.getCenter());
            } else
            {
                boundmap.setZoom(resetzoom);
                boundmap.setCenter(resetpoint);
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        response.setContentType("image/jpeg");
        try
        {
            sout = response.getOutputStream();
            ImageRequestComposer irc = ImageRequestComposer.create(boundmap, 65535, Color.white, "image/jpeg");
            MapXtremeImageRenderer renderer = new MapXtremeImageRenderer(mapxtremeurl);
            renderer.render(irc);
            renderer.toStream(sout);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        try
        {
            if(sout != null)
                sout.close();
        }
        catch(Exception exception) { }
    }

    private void resetbybound(MapJ mymap, MapJ boundmap, HttpServletRequest request)
    {
        try
        {
            Double centerx = new Double(request.getParameter("centerx"));
            Double centery = new Double(request.getParameter("centery"));
            DoublePoint screenpoint = new DoublePoint(centerx.doubleValue(), centery.doubleValue());
            DoublePoint mappoint = boundmap.transformScreenToNumeric(screenpoint);
            mymap.setCenter(mappoint);
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }

    public void destroy()
    {
    }

    public MapJ initMapJ()
        throws Exception
    {
        MapJ myMap = new MapJ();
        if(datasource.equals("oracle"))
        {
            OraSoMapDefContainer mdc = new OraSoMapDefContainer("oracle.jdbc.driver.OracleDriver", "jdbc:oracle:thin:@".concat(String.valueOf(String.valueOf(database))), dbusername, dbpassword, dbtable, dbnamecol, dbmapdefcol);
            myMap.loadMapDefinition(mdc, mapdef);
        } else
        if(datasource.equals("file"))
            if(filetype.equals("mdf"))
            {
                FileMapDefContainer mdfmdc = new FileMapDefContainer(mdfpath);
                myMap.loadMapDefinition(mdfmdc, mapdef);
            } else
            {
                myMap.loadGeoset(String.valueOf(String.valueOf(gstpath)) + String.valueOf(String.valueOf(mapdef)), gstpath, mapxtremeurl);
            }
        return myMap;
    }

    private void errset(String msg)
    {
        errflag = true;
        errmessage = msg;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -