存储和删除地标

时间:2014-04-26 09:49:20

标签: google-apps google-earth google-earth-plugin

我正在尝试将地标存储在全局数组中,但不确定我实际上要存储的是什么。我希望以后能够删除地标。我只需要存储lat和lng,还是需要在数组中存储某种地标obj。我试着看看谷歌文档,但我认为它们是用希腊语写的。有人能指出我正确的方向吗?

在全局数组PASSENGERS的for循环中,我们有以下代码:

// prepare placemark
var placemark = earth.createPlacemark("");
placemark.setName(PASSENGERS[i].name + " to " + PASSENGERS[i].house);

// prepare icon
var icon = earth.createIcon("");
icon.setHref(url + "/img/" + PASSENGERS[i].username + ".jpg");

// prepare style
var style = earth.createStyle("");
style.getIconStyle().setIcon(icon);
style.getIconStyle().setScale(4.0);

// prepare stylemap
var styleMap = earth.createStyleMap("");
styleMap.setNormalStyle(style);
styleMap.setHighlightStyle(style);

// associate stylemap with placemark
placemark.setStyleSelector(styleMap);

// prepare point
var point = earth.createPoint("");
point.setAltitudeMode(earth.ALTITUDE_RELATIVE_TO_GROUND);
point.setLatitude(building.lat);
point.setLongitude(building.lng);
point.setAltitude(0.0);


// associate placemark with point
placemark.setGeometry(point);

我以为我可以打印出地标:

for (var prop in placemark) 
{
  console.log(prop + " = " + placemark[prop]);
}

但这似乎不起作用。

1 个答案:

答案 0 :(得分:0)

我认为您需要花一些时间来尝试理解文档。

请参阅https://developers.google.com/earth/documentation/placemarks?csw=1

一旦你将插件添加到插件中,它们就会在插件内存中,而不需要将它们存储在另一个数组中。

您可以为地标指定一个ID。

// to add
var placemark= ge.createPlacemark('your_id_here');
ge.getFeatures().appendChild(placemark);

// to remove
var myPlacemark= ge.getElementById('your_id_here');
ge.getFeatures().removeChild(myPlacemark);