/ / Wiele plików KML z wtyczką Google Earth / Ograniczenia API? - google-earth, google-earth-plugin

Wiele ograniczeń KML w / Google Plugin / API? - google-earth, google-earth-plugin

Buduję aplikację internetową przy użyciuWtyczka i interfejs Google Earth. Jednak mam problem z wyświetleniem więcej niż jednego pliku KML, ładuje się tylko ostatni podany plik. Korzystam z tego procesu KmlNetworkLink aby wyświetlić wszystko.

Aplikacja na komputer na to pozwala, więc nie jestem pewien, czy jest to ograniczenie interfejsu API, czy nie. Czy ktoś wie, czy to ograniczenie?

Z góry dziękuję.

Dokumentacja, na którą patrzę: https://developers.google.com/earth/documentation/kml

Odpowiedzi:

0 dla odpowiedzi № 1

EDYCJA: OP tutaj. Po kilku tygodniach pracy nad tym projektem nauczyłem się, jak poprawnie skonfigurować wiele ścieżek KML za pomocą wtyczki Google Earth. Zmodyfikowałem moją wcześniejszą odpowiedź (teraz pokazaną poniżej), aby uwzględnić znacznie czystszą i abstrakcyjną wersję kodu . Mam nadzieję, że to komuś pomoże. Również (nie wymienione tutaj), możliwe jest przechowywanie wszystkich twoich lokalizacji KML w jednym JSON i przechodzenie przez nie w pętli podczas wywoływania createView () w razie potrzeby.

<!DOCTYPE html>
<html>
<head>
<title>Google Earth API Display</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
body, html {
margin: 0;
padding: 0;
height: 100%;
width: 100%;
}
#earthDisplay {
height: 100%;
width: 100%;
}
</style>
</head>
<body>

<div id="earthDisplay"></div>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

/**
* ==================================================================
*  Global Variables and Statements
* ==================================================================
*/

var ge;
google.load("earth", "1", {"other_params": "false"});
google.setOnLoadCallback(init);

/**
* ==================================================================
*  Functions
* ==================================================================
*/

function init()
{
google.earth.createInstance("earthDisplay", initCB, failureCB);
}

function initCB(instance)
{
var kmlLocation = "insert/your/file/here.kml";

ge = instance;
ge.getWindow().setVisibility(true);

createView(kmlLocation);  // This function can be called multiple times to load different views.
}

function createView(kmlLocation)
{
var href = kmlLocation;
var link = ge.createLink("");
var networkLink = ge.createNetworkLink("");


link.setHref(href);


networkLink.set(link, true, true); // Sets the link, refreshVisibility, and flyToView


ge.getWindow().setVisibility(true);

ge.getFeatures().appendChild(networkLink);
}

function failureCB(errorCode)
{
alert("There has been an error with the Google Earth API. Please check your console.");
console.log("Error with Google Earth API: " + errorCode);
}

</script>
</body>
</html>