如何使用Java在KML中标记多个坐标?
我正在从事一个项目,该项目涉及使用Java创建KML。目前,我正在愚弄位于的KML示例中的示例Java代码。我试图通过添加多个坐标和两个标记来“扩展”代码,但无法使其工作。您能告诉我如何添加多个坐标并在其上放置标记,以及在标记之间画一条线吗。谢谢你的帮助 PS:我需要通过程序来完成这项工作。我看到了使用DOM和XML的示例代码,但不是纯Java/JAK。请引导我 我得到了(最新的): 但我知道我在哪里出了问题。请给我指一下正确的方向 以下是生成的KML输出:如何使用Java在KML中标记多个坐标?,java,kml,google-earth,jak,Java,Kml,Google Earth,Jak,我正在从事一个项目,该项目涉及使用Java创建KML。目前,我正在愚弄位于的KML示例中的示例Java代码。我试图通过添加多个坐标和两个标记来“扩展”代码,但无法使其工作。您能告诉我如何添加多个坐标并在其上放置标记,以及在标记之间画一条线吗。谢谢你的帮助 PS:我需要通过程序来完成这项工作。我看到了使用DOM和XML的示例代码,但不是纯Java/JAK。请引导我 我得到了(最新的): 但我知道我在哪里出了问题。请给我指一下正确的方向 以下是生成的KML输出: <?xml version="
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
<Document>
<name>MyMarkers</name>
<Placemark>
<name>Somewhere near London, UK</name>
<open>1</open>
<Point>
<coordinates>-0.1298,52.700152</coordinates>
</Point>
</Placemark>
</Document>
</kml>
我的标记
英国伦敦附近的某个地方
1.
-0.1298,52.700152
我似乎无法再次访问文档以添加更多位置标记。如何操作?要在KML文件中放置多个Placemark,您需要一个文件夹或文档 是一个抽象元素,可以是 扩展功能和 可以是a或a 长话短说,如果需要多个位置标记,则需要将它们包含在文档或文件夹中
<kml>
<Document>
<Placemark>
</Placemark>
...
<Placemark>
</Placemark>
</Document>
</kml>
...
基本上,您需要执行以下操作:
Document document = kml.createAndSetDocument().withName("MyMarkers");
document.createAndAddPlacemark().withName("London, UK").withOpen(Boolean.TRUE)
.createAndSetPoint().addToCoordinates(-0.126236, 51.500152);
document.createAndAddPlacemark().withName("Somewhere near London,UK").withOpen(Boolean.TRUE)
.createAndSetPoint().addToCoordinates(-0.129800,52.700152);
以前,您创建了一个新文档,并在kml对象中将其设置为(唯一的文档!)。因此,只显示了最后一个条目。文档非常糟糕
final Kml kml = new Kml();
Document document = kml.createAndSetDocument();
listForms = formDAO.getAll();
for (Form list : listForms){
document.createAndAddPlacemark()
.withName(String.valueOf(list.getId()))
.withDescription(list.toStringKML())
.createAndSetPoint().addToCoordinates(-20.3978398, -43.5146653);
}
kml.setFeature(document);
kml.marshal(new File("test.kml"));
对,但那是纯粹的KML。我想用Java创建KML的结构。正如你所看到的,我试过这么做。我添加了一个新文档,并创建了一个Placemark。如何在代码中添加第二个?您需要将第二个placemark添加到document元素,因此生成的kml具有上面指定的结构,目前您正在将其添加到kml元素,而不是document元素。我明白了。我会试试看,如果我出了问题,会告诉你的。。谢谢!:)请用您的最新版本更新您的问题,阅读评论中的代码非常困难。在我看来,您现在似乎正在创建两个名为“MyMarkers”的文档。发布生成的kml也会有所帮助。
final Kml kml = new Kml();
Document document = kml.createAndSetDocument();
listForms = formDAO.getAll();
for (Form list : listForms){
document.createAndAddPlacemark()
.withName(String.valueOf(list.getId()))
.withDescription(list.toStringKML())
.createAndSetPoint().addToCoordinates(-20.3978398, -43.5146653);
}
kml.setFeature(document);
kml.marshal(new File("test.kml"));