我一直在尝试使用这个伟大的example来读取XML文件,将它们转换为GeoJson并最终将它们导入MongoDB。
我的示例XML文件如下所示:
<AName att1="sequence" att2="xx" att3="xxx">
<Loc1>0</Loc1>
<Loc2>0</Loc2>
</AName>
<AName att1="sequence" att2="xx" att3="xxx">
<Loc1>3</Loc1>
<Loc2>6</Loc2>
</AName>
...
我的GEOJson结构应该看起来像这样(典型的Polygon with a Single Ring):
{
type: "Polygon",
name: "sequence",
coordinates: [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]
}
我已经开始使用Groovy(之前我从未使用过),但我不确定实际的GeoJson创建是否与我的要求相似(我实际上并不认为它有效)。
//Here I am using the XmlSlurper() to parse the xml file
def file= new XmlSlurper().parse(new File('MyFile.xml'));
def a = file.AName[0].@att1;
println("AName " + a);
def loc1= file.depthFirst().find() {it.name() == 'Loc1'};
def loc2= file.depthFirst().find() {it.name() == 'Loc2'};
//Here I am converting the Java representation of my XML file to a GeoJson format
file.node.each {child ->
Map myMap= [type: 'Polygon',
name : a,
loc: [coordinates:
[Double.valueOf(loc1), Double.valueOf(loc2)],
]]
//Finally I am inserting the BasicDBObject and creating the 2dsphere index
collection.insert(new BasicDBObject(myMap));
collection.createIndex(new BasicDBObject('loc', '2dsphere'));
创建索引时,我的集合中没有记录。我的代码中有明显的错误吗?映射是否以递归方式在我的Polygon中添加坐标数组?有没有办法更好地解决它正在发生的事情? (我目前正在使用mongo-java-driver-3.2.1)
非常感谢你的帮助!
答案 0 :(得分:1)
所以,想出了这个:
$('#contact').slidetoggle(500);
做你想要的(我认为)