📄 mapservice.java
字号:
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 + -