地图xtreme+java代码有关问题. 根据经纬度进行标注一个点
mapxtreme+java代码问题. 根据经纬度进行标注一个点?
以下为render.jsp内容. 我的目标是根据经纬度标注一个点? 如何做啊,我初学啊.
<%@ page import ="java.awt.Color" %>
<%@ page import ="com.mapinfo.mapj.*" %>
<%@ page import ="com.mapinfo.xmlprot.mxtj.*" %>
<%@ page import ="com.mapinfo.mapxtreme.client.*" %>
<%@ page import ="com.mapinfo.util.*" %>
<%@ page import ="com.mapinfo.theme.SelectionTheme" %>
<%@ page import ="java.util.Vector" %>
<%@ page import ="com.mapinfo.dp.FeatureSet" %>
<%@ page import ="com.mapinfo.graphics.*" %>
<%@ page import ="com.mapinfo.labeltheme.OverrideLabelTheme" %>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<% String pp="Hello Word";
String MapXtremeServletUrl="http://localhost:8080/mapxtreme482/mapxtreme";
MapJ MyMapJ=new MapJ();
MyMapJ.loadGeoset("C:\\dxh\\table\\dxh.gst","C:\\dxh\\table",null);
//MyMapJ.loadGeoset("C:\\dxh\\maps\\CHINA.GST","C:\\dxh\\maps",MapXtremeServletUrl);
MyMapJ.setDeviceBounds(new DoubleRect(0,0,800,600)); //
//out.println(MyMapJ.getCenter().x);
//out.println(MyMapJ.getDistanceUnits().getMetersPerUnit());
DoublePoint dp=new DoublePoint(101.1,38.5);
//MyMapJ.transformScreenToNumeric(dp);
MyMapJ.setZoom(MyMapJ.getZoom()/20);
MyMapJ.setCenter(dp);
*/
/*Layers layers = MyMapJ.getLayers();
Layer layer1;
String layerName;
for (int i=0; i < layers.size(); i++) {
layer1 = layers.elementAt(i);
layerName = layer1.getName();
out.println(layerName+"<br />");
}
*/
Layer thisLayer = MyMapJ.getLayers().getLayer("中国底图");
LabelProperties labelProps = new LabelProperties();
// Set the Label offset and alignments to their default positions.
labelProps.setOffset(LabelProperties.DEFAULT_OFFSET);
labelProps.setHorizontalAlignment(LabelProperties.HORIZ_ALIGN_DEFAULT);
labelProps.setVerticalAlignment(LabelProperties.VERT_ALIGN_DEFAULT);
// Turn the multiline option on and set the columns to be used for labeling.
labelProps.setMultiLineTextMode(LabelProperties.MULTILINE_TEXT_ON);
labelProps.setLabelExpression("\"NAME:[\"+面积+\"]\\nABBREV:[\"+名称+\"]\"");
// Set a Rendition for the Labels and create an
// OverrideLabelTheme in order to display the options // set.
Rendition rend = (Rendition) RenditionImpl.getDefaultRendition();
rend.setValue(Rendition.FONT_FAMILY, "Arial");
rend.setValue(Rendition.FONT_WEIGHT, 20);
rend.setValue(Rendition.FILL, Color.red);
labelProps.setRendition(rend);
OverrideLabelTheme orLabelTheme = new OverrideLabelTheme(labelProps, "Theme Name");
thisLayer.getLabelThemeList().add(orLabelTheme);
以下为render.jsp内容. 我的目标是根据经纬度标注一个点? 如何做啊,我初学啊.
<%@ page import ="java.awt.Color" %>
<%@ page import ="com.mapinfo.mapj.*" %>
<%@ page import ="com.mapinfo.xmlprot.mxtj.*" %>
<%@ page import ="com.mapinfo.mapxtreme.client.*" %>
<%@ page import ="com.mapinfo.util.*" %>
<%@ page import ="com.mapinfo.theme.SelectionTheme" %>
<%@ page import ="java.util.Vector" %>
<%@ page import ="com.mapinfo.dp.FeatureSet" %>
<%@ page import ="com.mapinfo.graphics.*" %>
<%@ page import ="com.mapinfo.labeltheme.OverrideLabelTheme" %>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<% String pp="Hello Word";
String MapXtremeServletUrl="http://localhost:8080/mapxtreme482/mapxtreme";
MapJ MyMapJ=new MapJ();
MyMapJ.loadGeoset("C:\\dxh\\table\\dxh.gst","C:\\dxh\\table",null);
//MyMapJ.loadGeoset("C:\\dxh\\maps\\CHINA.GST","C:\\dxh\\maps",MapXtremeServletUrl);
MyMapJ.setDeviceBounds(new DoubleRect(0,0,800,600)); //
//out.println(MyMapJ.getCenter().x);
//out.println(MyMapJ.getDistanceUnits().getMetersPerUnit());
DoublePoint dp=new DoublePoint(101.1,38.5);
//MyMapJ.transformScreenToNumeric(dp);
MyMapJ.setZoom(MyMapJ.getZoom()/20);
MyMapJ.setCenter(dp);
*/
/*Layers layers = MyMapJ.getLayers();
Layer layer1;
String layerName;
for (int i=0; i < layers.size(); i++) {
layer1 = layers.elementAt(i);
layerName = layer1.getName();
out.println(layerName+"<br />");
}
*/
Layer thisLayer = MyMapJ.getLayers().getLayer("中国底图");
LabelProperties labelProps = new LabelProperties();
// Set the Label offset and alignments to their default positions.
labelProps.setOffset(LabelProperties.DEFAULT_OFFSET);
labelProps.setHorizontalAlignment(LabelProperties.HORIZ_ALIGN_DEFAULT);
labelProps.setVerticalAlignment(LabelProperties.VERT_ALIGN_DEFAULT);
// Turn the multiline option on and set the columns to be used for labeling.
labelProps.setMultiLineTextMode(LabelProperties.MULTILINE_TEXT_ON);
labelProps.setLabelExpression("\"NAME:[\"+面积+\"]\\nABBREV:[\"+名称+\"]\"");
// Set a Rendition for the Labels and create an
// OverrideLabelTheme in order to display the options // set.
Rendition rend = (Rendition) RenditionImpl.getDefaultRendition();
rend.setValue(Rendition.FONT_FAMILY, "Arial");
rend.setValue(Rendition.FONT_WEIGHT, 20);
rend.setValue(Rendition.FILL, Color.red);
labelProps.setRendition(rend);
OverrideLabelTheme orLabelTheme = new OverrideLabelTheme(labelProps, "Theme Name");
thisLayer.getLabelThemeList().add(orLabelTheme);