这个是显示地图的JPanel,通过BrTabbed执行jsp显示,就像浏览器一样
package com.etsolar.monitor.client.mainpanel.gispanel;
import java.awt.BorderLayout;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
//Java网页浏览器
import org.jdic.web.BrTabbed;
public class GISPanel extends JPanel {
private static final long serialVersionUID = 1L;
private BrTabbed browser = new BrTabbed();
public GISPanel(){
try {
this.setBorder(BorderFactory.createTitledBorder("GIS Panel"));
String fileDir = "C:" + System.getProperty("file.separator")+ "etsolar";
String fileName = fileDir + System.getProperty("file.separator") + "GIS.jsp";
browser.setURL(fileName);
this.setLayout(new BorderLayout());
this.add(new JScrollPane(browser), BorderLayout.CENTER);
org.jdic.web.BrComponent.DESIGN_MODE = false;
} catch (Exception e) {
e.printStackTrace();
}
}
public boolean executeJavaScript(String javaScript)
{
boolean result = true;
return result;
}
public void refresh()
{
browser.refresh();
}
}
执行的程序,使用XML来保存需要显示的地点的信息(精度和纬度)
import java.awt.BorderLayout;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.jdic.web.BrTabbed;
public class GISTest extends JPanel{
private BrTabbed browser = new BrTabbed();
public GISTest(){
this.setBorder(BorderFactory.createTitledBorder("GIS Panel"));
// String fileDir = "C:" + System.getProperty("file.separator")+ "etsolar";
String fileDir = "c://etsolar";
String fileName = fileDir + System.getProperty("file.separator") + "GIS.jsp";
browser.setURL(fileName);
this.setLayout(new BorderLayout());
this.add(new JScrollPane(browser), BorderLayout.CENTER);
org.jdic.web.BrComponent.DESIGN_MODE = false;
}
public void show(){
String num1Str = "30.657";
String num2Str = "104.08";
Document document = DocumentHelper.createDocument();
Element catalogElement = document.addElement("description");
catalogElement.addComment("An XML description of a machine");
catalogElement.addProcessingInstruction("target", "text");
Element detailElement = catalogElement.addElement("detail");
detailElement.addAttribute("publisher", "NJUST");
Element LongitudeElement = detailElement.addElement("Longitude");
LongitudeElement.setText(num1Str);
Element LatitudeElement = detailElement.addElement("Latitude");
LatitudeElement.setText(num2Str);
String fileDir = "C:" + System.getProperty("file.separator")
+ "etsolar";
String fileName = fileDir + System.getProperty("file.separator")
+ "MAP.xml";
XMLWriter output;
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
try {
output = new XMLWriter(new FileWriter(fileName), format);
output.write(document);
output.close();
} catch (IOException e) {
e.printStackTrace();
}
//System.out.println("经纬度信息已经写入XML文件" + "经度: [" + num1Str + "]," + "纬度: [" + num2Str + "]");
this.refresh();
}
public boolean executeJavaScript(String javaScript)
{
boolean result = true;
return result;
}
public void refresh()
{
browser.refresh();
}
public static void main(String[] args){
JFrame frame = new JFrame("GISTest");
GISPanel gisPanel = new GISPanel();
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
new JPanel(), gisPanel);
frame.add(splitPane);
splitPane.updateUI();
frame.setVisible(true);
frame.setSize(400, 500);
}
}
这个只最重要的jsp文件啦
GIS.jsp
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<title>Etsolar Google Maps </title>
<script src="http://ditu.google.com/maps?file=api&v=2"
type="text/javascript"></script>
<script type="text/javascript">
var Url="C:\\etsolar\\MAP.xml";
var x;var y;
var cdsales=new ActiveXObject("Microsoft.XMLDOM");
cdsales.async=true;
cdsales.load(Url);
function initialize()
{
if(cdsales.readyState==4)
{
if(cdsales.parseError.errorCode != 0)
{
document.write(cdsales.parseError.line);
document.write(cdsales.parseError.reason);
document.write(cdsales.parseError.srcText);
}
else
{
var bi=cdsales.documentElement.selectNodes("//detail");
if(bi!=null)
{
x=bi[0].childNodes[0].text;
y=bi[0].childNodes[1].text;
}
}
}
else
{
document.write("XML文档未分析完");
}
if(GBrowserIsCompatible())
{
var map = new GMap2(document.getElementById("maps"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
var blueIcon = new GIcon(G_DEFAULT_ICON);
blueIcon.image = "computer20.gif";
markerOptions = { icon:blueIcon };
var point = new GLatLng(x,y);
var marker = new GMarker(point,markerOptions);
map.setCenter(point,19);
map.addOverlay(marker);
GEvent.addListener(map,"click", function(overlay,point) {
if(point)
{
document.getElementById("show_x").value = point.x;
document.getElementById("show_y").value = point.y;
}
});
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
}
}
</script>
</head>
<body onLoad="initialize()" onUnload="GUnload()">
<b><font color="#FF0000">经度:</font></b><input id="show_x" value="0"> <b><font color="#FF0000">纬度:</font></b><input id="show_y" value="0">
<div id="maps" style="width:1000px;height:700px"></div>
</body>
</html>
分享到:
相关推荐
在Android开发中,有时我们需要在地图视图(Google Map View)上添加一层透明面板,以实现某些交互功能或视觉效果。这个"android transparent panel on google mapview"的示例代码正是针对这一需求的实践。透明面板...
SharpMap支持多种地理空间数据格式,包括Shapefile,可以通过投影变换将地图坐标转换为屏幕坐标,以便在Winform应用中显示。GMap.NET则集成了Google Maps、Bing Maps等在线地图服务,提供了丰富的地图瓦片显示和定位...
对于开发者来说,想要在自定义地图中实现类似功能,需要利用 Google Maps API 中的 `GDirections` 类。通过 `loadFromWaypoints()` 方法,可以加载包含多个途经点的路线,这些点可以是地址或坐标。例如: ```...
6. **地图API**:为了显示航行路线,可能使用了Google Maps API或其他地图服务。 7. **数据分析**:收集的数据可能需要进行分析,例如通过统计和可视化来帮助用户理解他们的表现或环境条件。 由于没有更多的信息,...
在IT行业中,ExtJS是一个非常流行的JavaScript框架,用于构建富客户端Web应用程序。它提供了一整套组件和工具,...通过深入学习和实践,你可以掌握如何在ExtJS中灵活调用Google Maps API,实现各种定制化的地图功能。
GEE 提供了一个综合性的 Web 应用程序界面(API),该界面包含四个主要面板:Mapping Panel(地图面板)、Reporting Panel(报告面板)、Reference Panel(参考面板)和 Scripting Panel(脚本面板)。这些面板共同...
这个项目可能包含了一个自定义的控件,如VirtualizingTilePanel,它继承自WPF(Windows Presentation Foundation)中的Panel类,用以优化超大图像的显示。 VirtualizingTilePanel的工作原理是将超大图像分割成多个...
Google Maps API V3 是 Google 提供的一个强大工具,允许开发者在自己的网页中嵌入交互式的地图功能。这些示例旨在帮助开发者更好地理解和应用这个API,从而创建出丰富多样的地图应用程序。 1. **default.css** 这...
在Google Earth Engine中,地图(Map)是一种特殊的Widget对象,用于表示EE网页中的映射面板(Map Panel),在这个面板上,地理空间数据以地图的形式展示出来。通过地图Widget,用户可以执行多种操作,如设置中心点、...
本文将详细介绍如何在OpenLayers中实现这一功能,特别是在Google地图下进行投影变换的处理。 首先,我们需要创建一个Vector图层来存储用户绘制的几何对象,例如路径和多边形。以下代码展示了如何创建这个图层并将其...
柯比风格的Google地图 Kirby CMS标记和页面方法可打印常规或样式化的Google Map。 注意:这不是一个免费的插件。 为了在生产服务器上使用它,您需要购买许可证。 有关Kirby Styledmap许可模型的详细信息,请向下...
2. **使用地图**:集成地图服务,如Google Maps API或ArcGIS Server API,用于显示地图数据。 3. **地图使用范围设置**:限制地图的显示范围,如设定特定的经纬度坐标范围。 4. **添加工具栏**:为地图添加工具栏,...
前言 ... Bottom Sheet中的内容默认是隐藏起来的,只显示很小一部分,可以通过在代码中设置其状态或者手势操作将其完全展开,或者完全隐藏,或者部分隐藏。对于Bottom Sheet的描述可以在官网查询:
- Flex支持集成地图服务,如Google Maps API,可以在应用中显示地图并进行交互。 #### 3. **地图使用范围设置** - 可以通过API设置地图的显示范围、缩放级别等参数,以便更好地适应具体的应用场景。 #### 4. **...
3. **侧滑面板(Swipeable Panel)**:侧滑面板通常用于实现类似抽屉式的效果,比如谷歌地图中的侧滑导航栏。可以使用CoordinatorLayout结合Behavior来实现,也可以使用DrawerLayout。主要关注滑动手势的识别和面板...
- **使用地图**: 集成第三方地图服务,如Google Maps API等。 - **地图使用范围设置**: 定义地图的初始位置、缩放级别等。 - **添加工具栏**: 创建自定义工具栏,包含常用的地图操作按钮。 - **绘制工具**: 提供绘图...
- 可以通过API设置地图的显示范围和缩放级别。 **4. 添加工具栏** - 通过自定义工具栏来增加地图的操作功能。 **5. 绘制工具** - Flex提供绘图工具,如绘制多边形、圆形等。 **6. 地图图层介绍** - 地图通常...
Panel里包含2个组件,在2个组件间传递参数显示数据。 三、开发工具和采用技术 1、开发工具:Eclipse、MyEclipse和其他IDE。 2、采用Spring 3中最新最稳定的Spring MVC 3.2.8版本。 3、采用Hibernate 4.1.7。Spring...