RCP 嵌入Google map(rcp执行JavaScrit方法,解决打包后路径问题)

本文介绍了一种在Swing或SWT应用中创建地图显示组件的方法。通过使用Mozilla的Browser控件,开发者可以轻松地将本地HTML文件加载为地图界面,并通过执行JavaScript来在地图上标记公司地址等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


@Override
protected void createViewPartControl(final Composite parent) {
MozillaHelper.definedContributedXulRunner(null);
browser = new Browser(parent, SWT.NONE | SWT.MOZILLA);
String locFile = writeMapFile();
if (locFile == null) return;
url = locFile.replaceAll("/", "\\\\");
browser.addProgressListener(new ProgressListener(){
@Override
public void changed(ProgressEvent event) {

}

@Override
public void completed(ProgressEvent event) {

if(getCompanyAddress() != null || !"".equals(getCompanyAddress())){
String address = formatAddress(getCompanyAddress());
boolean result = browser.execute("createAddressMarker('" + address + "')");

if (!result) {
//Script may fail or may not be supported on certain platforms.
System.out.println("Script was not executed.");
}
}
}
});
browser.setUrl(url);
}

private String writeMapFile() {
try {
Properties props = System.getProperties();
String tmpPath = props.getProperty(TMP_FILE);
File tempFile = new File(tmpPath + "/map.html");
String tempFilePath = tempFile.getAbsolutePath();
if (! tempFile.exists()) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(Activator.getURL(MAP_FILE).openStream()));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFilePath));
String data = null;
while((data = reader.readLine())!=null)
{
writer.write(data);
writer.write("\n");
}
reader.close();
writer.close();
}
return tempFilePath;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值