3

私はJavaを使用したKMLの作成を含むプロジェクトに取り組んでいます。現在、 Micromata LabsJAKExampleのKMLサンプルのサンプルJavaコードをだましています。複数の座標を追加して2つのマーカーを取得することでコードを「拡張」しようとしましたが、機能させることができませんでした。複数の座標を追加してマーカーを配置する方法と、マーカーの間に線を引く方法を教えてください。ご協力ありがとうございました!

PS:私はプログラムを介してこれを行う必要があります。DOMとXMLを使用したサンプルコードを見ましたが、純粋なJava/JAK自体は見ていません。案内してください。

私はこれまで(更新)を取得しました:

kml.createAndSetDocument().withName("MyMarkers")
.createAndAddPlacemark().withName("London, UK").withOpen(Boolean.TRUE)  
.createAndSetPoint().addToCoordinates(-0.126236, 51.500152);    

kml.createAndSetDocument().withName("MyMarkers")  
.createAndAddPlacemark().withName("Somewhere near London,UK").withOpen(Boolean.TRUE)
.createAndSetPoint().addToCoordinates(-0.129800,52.70‌​0152);

しかし、私はどこかで間違っていることを知っています。私を正しい方向に向けてください。

結果のKML出力は次のとおりです。

<?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>

目印を追加するためにドキュメントに再度アクセスできないようです。どうすればいいのですか?

4

3 に答える 3

6

基本的に、次のことを行う必要があります。

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.70‌​0152);

以前は、新しいドキュメントを作成し、それをkmlオブジェクトに(唯一のドキュメントとして!)設定していました。したがって、最後のエントリのみが表示されました。

于 2013-03-13T16:59:22.353 に答える
3

KMLファイルに複数の目印を入れるには、フォルダまたはドキュメントが必要です

基本<kml>要素には0または1つの機能が含まれます

フィーチャーは、目印になることができる抽象的な要素です。

コンテナは機能を拡張し、ドキュメントまたはフォルダにすることができます

長い話を短くするために、複数の目印が必要な場合は、それらをドキュメントまたはフォルダに含める必要があります

<kml>
  <Document>
    <Placemark>
    </Placemark>
    ...
    <Placemark>
    </Placemark>
  </Document>
</kml>
于 2012-10-03T03:36:14.227 に答える
0

ドキュメントは非常に悪いです。

        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"));
于 2015-04-14T13:10:27.147 に答える