尝试在Java上运行来自R的readOGR

时间:2015-08-04 06:10:06

标签: java r gis rjava rgdal

我在Windows机器Seven上的JVM Oracle版本7.x下运行Java。我可以通过eclipse或命令行运行Java调用R.但我陷入了一个与GIS相关的功能,名为readOGR,在R控制台下运行良好,但我无法弄清楚Java环境发生了什么。我正在寻找从前面提到的“Census2011_NUTS3_generalised20m”到readOGR函数获取数据内容,但经过大量研究后,我决定向社区寻求帮助。甚至其他人也可能有类似的问题。 我知道,可能我忘记了一些事情,但所有的建议和想法,甚至是这种方法的不同之处都是非常受欢迎的。 下面附上显示我期望的代码(在R控制台上的顶部代码),在底部,代码尝试执行类似的代码。

以下代码在R控制台上运行良好:

install.packages('rgdal')
install.packages('ggplot2')
install.packages('util')

library(rgdal)
library(ggplot2)
library(utils)
irelandCensusFile_ <- readOGR("C:/Users/solver/Desktop/geographical_distribution/shinyWebApp/Census2011_NUTS3_generalised20m", layer = "Census2011_NUTS3_generalised20m")
View(irelandCensusFile_ )

以下代码在JAVA上效果不佳:

Rengine re = new Rengine(null, false, null);
REXP x = null;

re.eval("install.packages('utils')");
re.eval("install.packages('rgdal')");
re.eval("install.packages('ggplot2')");
re.eval("library(rgdal)");
re.eval("library(ggplot2)");
re.eval("library(utils)");
re.eval("ogrDrivers()");
String path = "C:\\Users\\solver\\Desktop\\geographical_distribution\\shinyWebApp\\Census2011_NUTS3_generalised20m\\";
String name = "Census2011_NUTS3_generalised20m";
System.out.println(x);
//x=re.eval("readOGR(\""+path+"\", layer = \""+name+"\")");
re.assign("x"," a <- readOGR(\""+path+"\", layer = \""+name+"\")");
System.out.println(re.eval("x"));

PS:我对rJava集成没有任何问题,只需使用此功能。

0 个答案:

没有答案