Kod
//--------------------------------------------------------------------------------------------------------
//--- Google API Maps v2
//--------------------------------------------------------------------------------------------------------
//----------------------- po załadowaniu okna odpal funkcję pokaz_mape -----------------------------------
window.onload = pokaz_mape;
var api_maps;
var marker_default;
var punkt_x;
var punkt_y;
var zoom;
function pokaz_mape() {
//-------------------- sprawdzenie kompatybilności przeglądarki -------------------------------------------
if(GBrowserIsCompatible()) {
//------- zbudowanie kontrolek na mapie -------------------------------------------------------------------
api_maps = new GMap2(document.getElementById("mapform"));
api_maps.addControl(new GLargeMapControl());
api_maps.addControl(new GScaleControl());
//------- dodawnie alternatywnej ikony -------------------------------------------------------------------
var ikona = new GIcon();
ikona.image = "hospital.png";
ikona.iconAnchor = new GPoint(32, 32);
ikona.iconSize = new GSize(32,32);
//------- atrybuty punktów -------------------------------------------------------------------
var geo_x = parseFloat(53.14656827755494); geo_y = parseFloat(14.895411729812622);
var tytul = "Przykładowy znacznik";
marker_default = new GMarker(new GLatLng(geo_x,geo_y),{title:tytul, icon:ikona});
api_maps.addOverlay(marker_default);
//----- przesuwanie markeru po mapie -----------------------------------------------------------------
api_maps.setCenter(new GLatLng(geo_x, geo_y),15);
GEvent.addListener(api_maps,'click',function(marker_default,punkt) {
punkt_x = marker_default.getPoint().lng(); // te zmienne tj. punkt_x
punkt_y = marker_default.getPoint().lat(); // punkt_y
zoom = api_maps.getZoom(); // oraz zoom
if(marker_default) {
alert('g'); //działa, po kliknięciu pojawa się alert i współrzędne punktu
}
else if(punkt) {
alert('h'); // w tym warunku w ogóle nie działają (czemu? nie wiem)
api_maps.clearOverlays();
var marker_default = new GMarker(punkt,{title:tytul, icon:ikona});
api_maps.addOverlay(marker_default);
}
//------ napis z parametrami geograficznymi ----------------------------------------------------------
var napis = "Szerokosc : "+punkt_x+"<br/> Długosc: "+punkt_y+" <br/> Zoom: "+zoom;
var szer = punkt_x;
var dl = punkt_y;
var pokaz_wspolrzedne = document.getElementById('wspolrzedne');
pokaz_wspolrzedne.innerHTML = napis;
var szerokosc_geo = document.getElementById('szerokosc_geo');
szerokosc_geo.value = szer;
var dlugosc_geo = document.getElementById('dlugosc_geo');
dlugosc_geo.value = dl;
});
GEvent.trigger(marker_default,'click');
//---------------
};
}
//--- Google API Maps v2
//--------------------------------------------------------------------------------------------------------
//----------------------- po załadowaniu okna odpal funkcję pokaz_mape -----------------------------------
window.onload = pokaz_mape;
var api_maps;
var marker_default;
var punkt_x;
var punkt_y;
var zoom;
function pokaz_mape() {
//-------------------- sprawdzenie kompatybilności przeglądarki -------------------------------------------
if(GBrowserIsCompatible()) {
//------- zbudowanie kontrolek na mapie -------------------------------------------------------------------
api_maps = new GMap2(document.getElementById("mapform"));
api_maps.addControl(new GLargeMapControl());
api_maps.addControl(new GScaleControl());
//------- dodawnie alternatywnej ikony -------------------------------------------------------------------
var ikona = new GIcon();
ikona.image = "hospital.png";
ikona.iconAnchor = new GPoint(32, 32);
ikona.iconSize = new GSize(32,32);
//------- atrybuty punktów -------------------------------------------------------------------
var geo_x = parseFloat(53.14656827755494); geo_y = parseFloat(14.895411729812622);
var tytul = "Przykładowy znacznik";
marker_default = new GMarker(new GLatLng(geo_x,geo_y),{title:tytul, icon:ikona});
api_maps.addOverlay(marker_default);
//----- przesuwanie markeru po mapie -----------------------------------------------------------------
api_maps.setCenter(new GLatLng(geo_x, geo_y),15);
GEvent.addListener(api_maps,'click',function(marker_default,punkt) {
punkt_x = marker_default.getPoint().lng(); // te zmienne tj. punkt_x
punkt_y = marker_default.getPoint().lat(); // punkt_y
zoom = api_maps.getZoom(); // oraz zoom
if(marker_default) {
alert('g'); //działa, po kliknięciu pojawa się alert i współrzędne punktu
}
else if(punkt) {
alert('h'); // w tym warunku w ogóle nie działają (czemu? nie wiem)
api_maps.clearOverlays();
var marker_default = new GMarker(punkt,{title:tytul, icon:ikona});
api_maps.addOverlay(marker_default);
}
//------ napis z parametrami geograficznymi ----------------------------------------------------------
var napis = "Szerokosc : "+punkt_x+"<br/> Długosc: "+punkt_y+" <br/> Zoom: "+zoom;
var szer = punkt_x;
var dl = punkt_y;
var pokaz_wspolrzedne = document.getElementById('wspolrzedne');
pokaz_wspolrzedne.innerHTML = napis;
var szerokosc_geo = document.getElementById('szerokosc_geo');
szerokosc_geo.value = szer;
var dlugosc_geo = document.getElementById('dlugosc_geo');
dlugosc_geo.value = dl;
});
GEvent.trigger(marker_default,'click');
//---------------
};
}
Chcę aby warunek wywoujący się po kliknięciu dowolnego punktu na mapie był wykonywalny, zaznaczając, że przy kliknięciu na sam marker drugi określający warunek zostaje spełniony.
Mam nadzieję że w miarę jasno opisałem swój problem. Czekam na wasze sugestie.