Я хотел бы показать несколько меток, анализируя файл kml.Пожалуйста, помогите, я застрял на долгие дни.
Как я вижу, клиент Google Earth для настольных компьютеров хорошо работает для следующего фрагмента кода kml
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
<name>Placemark2 from KML file</name>
<Point>
<coordinates>-122.448425,36.802907,0</coordinates>
</Point>
</Placemark>
<Placemark>
<name>Placemark2 from KML file</name>
<Point>
<coordinates>-122.448425,37.802907,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
На основе приведенного выше фрагмента кода, который я попытался выполнить, чтобы показатьнесколько меток на первый взгляд.Но НЕ УДАЧИ.Я предпочитаю анализировать строку kml вместо извлечения файла .kml, файл kml должен быть общедоступным и доступным для Google.Более того, анализируя строку kml, мы можем проверить ее с localhost.
<script src="//www.google.com/jsapi?key=ABQIAAAA5El50zA4PeDTEMlv-sXFfRSsTL4WIgxhMZ0ZK_kHjwHeQuOD4xTdBhxbkZWuzyYTVeclkwYHpb17ZQ"></script>
<script type="text/javascript">
var ge;
var placemark;
var object;
google.load("earth", "1");
function init() {
google.earth.createInstance('map3d', initCB, failureCB);
}
function initCB(instance) {
ge = instance;
ge.getWindow().setVisibility(true);
var kmlString = ''
+ '<?xml version="1.0" encoding="UTF-8"?>'
+ '<kml xmlns="http://www.opengis.net/kml/2.2">'
+ '<Document>'
+ '<Placemark>'
+ '<name>Placemark1</name>'
+ '<description>Some Descriptive text.</description>'
+ '<Point>'
+ '<coordinates>-122.448425,36.802907,0</coordinates>'
+ '</Point>'
+ '</Placemark>'
+ '<Placemark>'
+ '<name>Placemark2</name>'
+ '<Point>'
+ '<coordinates>-122.448425,37.802907,0</coordinates>'
+ '</Point>'
+ '</Placemark>'
+ '</Document>'
+ '</kml>';
var kmlObject = ge.parseKml(kmlString);
ge.getFeatures().appendChild(kmlObject);
ge.getView().setAbstractView(kmlObject.getAbstractView());
}
function failureCB(errorCode) {
}
google.setOnLoadCallback(init);
</script>
<div id="map3d" style="border: 1px solid silver; height: 400px; width: 600px;">
</div>
Если я добавлю следующий тег камеры в документ, появится одна метка.Все метки могут быть показаны при уменьшении.
+ '<Camera>'
+ '<longitude>-122.448425</longitude>'
+ '<latitude>36.802907</latitude>'
+ '<altitude>100</altitude >'
+ '<tilt>10</tilt>'
+ '<heading>2.7</heading>'
+ '</Camera>'
Есть идеи, как я могу показать несколько меток с первого взгляда?