作成中のアプリケーション用に Google Earth プラグイン API を試しています。地図から目印を削除できるようにしたい。これを行う最も簡単な方法は、「削除」リンクを含むバルーン ポップアップを作成することですが、削除の方法がわかりません。
balloon.setContentString(
'Location: ' + event.getLatitude().toString() + ", " +
event.getLongitude().toString() + '<br /> <br />' +
'<a href="#" onclick="ge.getFeatures().removeChild(event.getCurrentTarget())">Delete</a><br /><a href="#" onclick="prompt(\'Enter new name\', \'blah\'\)">Rename</a>');
これにより、次の結果が得られます。
Uncaught TypeError: Object #<MouseEvent> has no method 'getCurrentTarget' earth2.html:1 onclick
(ご覧のとおり、名前を変更できるようにしたいのですが、削除することを理解したときに、おそらくそれを理解するのはそれほど難しくありませんか?)
コード全体は次の場所にあります。
http://chrishowells.co.uk:81/earth2.html
ブロック全体:
google.earth.addEventListener(ge.getWindow(), 'mousedown', function(event) {
if (event.getTarget().getType() == 'KmlPlacemark' &&
event.getTarget().getGeometry().getType() == 'KmlPoint') {
// don't show the default popup
//http://code.google.com/apis/ajax/playground/?exp=earth#javascript_in_balloons
event.preventDefault();
var balloon = ge.createHtmlStringBalloon('');
balloon.setFeature(event.getTarget());
//balloon.setMaxWidth(300);
balloon.setContentString(
'Location: ' + event.getLatitude().toString() + ", " +
event.getLongitude().toString() + '<br /> <br />' +
'<a href="#" onclick="ge.getFeatures().removeChild(event.getCurrentTarget())">Delete</a><br /><a href="#" onclick="prompt(\'Enter new name\', \'blah\'\)">Rename</a>');
ge.setBalloon(balloon);
var placemark = event.getTarget();
dragInfo = {
placemark: event.getTarget(),
dragged: false
};
}
});