buongiorno a tutti
è un mesetto che sto cercando di implementare google earth
in un mio progetto scritto in vb.net con visual studio team system 2008.

in pratica trattasi di una finestra webbrowser in un form di vb.net
nella quale visualizzo google earth e in cui posiziono alcuni markers
(cui do il nome dei paesi che rappresentano).

(Finora ne ho posizionati 2 in quanto mi serviva solo vedere che il programma
funzionasse.)

----scopo del programma-------
1) cliccare un marker
2) il marker cliccato da rosso (standard) diventa verde e contemporaneamente
viene inviato un segnale ad una textbox presente sul form (che mi tiene conto del n°
e di quali marker sono stati cliccati)
e fin qui sono riuscito con tanta fatica a farlo funzionare (ho cominciato a leggere qualche programma in javascript da non più di 20 giorni e veramente non ci capisco nulla!)

il passo successivo, per il quale mi servirebbe una dritta in quanto nn riesco a trovare nulla di chiaro sull'argomento è quello percui se:
3) clicco una seconda volta uno dei markers selezionati, questo dovrebbe ritornare rosso (standard) (e contemporaneamente riducendo il conto nell'elenco della textbox, ma questa parte in vb la so fare.)

qui il problema mi sorge perche devo introdurre l'operatore if nel senso che
quando clicco un marker se è rosso deve diventare verde e se è verde deve ritornare rosso (praticamente uno switch on/off). ciò comporta che devo riconoscere lo stato della immagine del marker che vado a cliccare.

per questo ho notato che in alcuni siti si dice di usare la riga seguente:

icontype = sanmartino.getAttribute("icontype")

dove icontype sarebbe la variabile che accoglie il tipo di immagine usato in questo caso
per il marker denominato sanmartino.

proprio qui credo che il programma si blocchi.

io daltronde nn so bene ne dove mettere il blocco if, ne dove posizionare
questa riga. ho veramente provato a rigirare il programma sottosopra ma senza risultato e credo proprio che manchi qualcosa di cui io per la non conoscenza del linguaggio usato non sono in grado di concepire.

per questo chiedo una dritta a tutti i ragazzi di buona volontà ringraziando in anticipo.

qui sotto allego il listato che funziona (clicco e il marker diventa verde)

e più in basso le modifiche che ho fatto per introdurre l'operatore if e per le quali il programma non funziona più.

--------------------------primo programma funzionante ------------------
codice cambiare colore al marker on click
__________________________________________________ ________________________________
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>

</title>

</head>
<script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAA4JS3BKauSs w-BpxaoUw1ZRR6hSApPylKVDOM5CF1wkoWMtWe-BQ34ZdFnAF6FSEHdFNZA-r6I6y_Rg" type="text/javascript"> </script>
<script type="text/javascript">

var map = null;
var geocoder = null;
var geoXml = new GGeoXml("http://maps.google.it/maps/ms?hl=it&ie=UTF8&vps=2&jsv=200b&msa=0&output=nl&ms id=109153459798107513080.00047bcbfde122f4a0e26");
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(44.82362390, 9.19301927089),14);
map.addOverlay(geoXml);
var location = new GLatLng(44.82190026883635, 9.204236268997192);
var varzi = new GMarker(location)
map.addOverlay(varzi);
var location = new GLatLng(44.80674681188072, 9.224953651428223);
var sanmartino = new GMarker(location)
map.addOverlay(sanmartino);
GEvent.addListener(sanmartino, 'click', function(){
showVbHelloWorld();
{sanmartino.setImage("file://localhost/C:/.../green.png");}
});
}
}
function showVbHelloWorld() {
window.external.showVbHelloWorld();//questa è la funzione che comunica l'evento alla textbox nel form di vb.net
}
<script>

<body onload="load()">
<div id="map" style="height: 800px; width: 1200px;">
</div>
<?xml version="1.0" encoding="UTF-8"?>
</body>
</html>
--------------------------------------------------------------------------------------
fine
-------------------------------------------------------------------------------------

------------- secondo listato non funzionante --------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>

</title>

</head>
<script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAA4JS3BKauSs w-BpxaoUw1ZRR6hSApPylKVDOM5CF1wkoWMtWe-BQ34ZdFnAF6FSEHdFNZA-r6I6y_Rg" type="text/javascript"> </script>
<script type="text/javascript">

var map = null;
var geocoder = null;
var geoXml = new GGeoXml("http://maps.google.it/maps/ms?hl=it&ie=UTF8&vps=2&jsv=200b&msa=0&output=nl&ms id=109153459798107513080.00047bcbfde122f4a0e26");

function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(44.82362390, 9.19301927089),14);
map.addOverlay(geoXml);
var location = new GLatLng(44.82190026883635, 9.204236268997192);
var varzi = new GMarker(location)
map.addOverlay(varzi);
var location = new GLatLng(44.80674681188072, 9.224953651428223);
sanmartino = new GMarker(location)
map.addOverlay(sanmartino);

GEvent.addListener(sanmartino, 'click', function(){
Msanmartino();//notare che ho solo cambiato nome alla funzione!
});
}
}
function Msanmartino() {
icontype = sanmartino.getAttribute("icontype")
if (icontype == "green.png")
{sanmartino.setImage("file://localhost/C:/.../red.png");}
else {sanmartino.setImage("file://localhost/C:/.../green.png");}
window.external.Msanmartino();
}


</script>

<body onload="load()">
<div id="map" style="height: 800px; width: 1200px;">
</div>
<?xml version="1.0" encoding="UTF-8"?>
</body>
</html>
--------------------------------------------------------------------------------
fine listato non funzionante
----------------------------------------------------------------------------------