Bom Dia Pessoal.
Não sabia exatamente onde postar, então vai aqui. Pra começo de conversar é meu primeiro contato a fundo com JavaScript então desculpem a ignorância. Começei a utilizar a API do Google Maps de Javascript ontem, já li muito e já consegui fazer 30% do que eu quero, to até empolgado em bolar um tutorial ensinando a fazer o que eu fiz terminando a faculdade este semestre.
Bom vou explicar o meu problema. Estou utilizando a API do Google Maps no projeto da empresa que é com JSF + Richfaces (antes que falem, o rich:gmap, nao faz o que eu quero, pelo menos foi o que obtive como resposta).
Bom o código abaixo cria um Gmap na tela, e cria marcados quando eu clico no mapa e somem quando eu clico neles. Eu gostaria de saber se tem como eu recuperar os objetos GMarker que eu adicionei no método addOverlay, eu vi que o map tem um método getContainer que retonar um DOM, não consegui varrer esse DOM (acredito que ali conseguiria pegar meus objetos).
Preciso dos valores de ponto dos marcadores, pra gerar um poligono, mas no construtor do poligono tenho que passar todos os pontos, se o usuário não deletasse o marcador depois que colocou no mapa não teria problemas, mas como isso vai acabar acontecendo este é o meu problema. Então eu teria um botão chamado Gerar Poligono, onde eu gostaria de obter os valores desses GMarker pra gerar o Poligono sacam?
a variavel que recebe o Gmap2, tem os métodos addOverlay, removeOverlay, cleanOverlay e getContainer (acredito que a solução do meu problema está ai.)
Isto é o que a documentação diz: getContainer() Node Returns the DOM object that contains the map. Used by GControl.initialize().
VALEU
<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Mapas</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=AQUI VAI A SUA KEY QUE O GOOGLE GERA PRA VOCE" type="text/javascript"></script>
</head>
<body onunload="GUnload()">
<div id="map_canvas" style="width: 500px; height: 300px"></div>
<div>Lattitude: <span id="latspan"></span></div>
<div>Longitude: <span id="lngspan"></span></div>
<div>Lat Lng: <span id="latlong"></span></div>
<div>Lat Lng on click:
<input type="text" id="latlongclicked" style="width:300px; border:1px inset gray;"/>
</div>
<input type="button" onclick="gerarPoligono();" value="Gerar Poligono" />
<textarea id="texto" rows="10" cols="10"></textarea>
</body>
<script type="text/javascript">
var map;
if (GBrowserIsCompatible())
{
map = new GMap2(document.getElementById("map_canvas"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl(3));
map.setCenter( new GLatLng(26.12295, -80.17122), 11,0);
GEvent.addListener(map,'mousemove',function(point)
{
document.getElementById('latspan').innerHTML = point.lat()
document.getElementById('lngspan').innerHTML = point.lng()
document.getElementById('latlong').innerHTML = point.lat() + ', ' + point.lng()
});
GEvent.addListener(map, "click", function(marker, point, polygon) {
if (marker) {
map.removeOverlay(marker);
map.removeOverlay(polygon); ISSO A PRINCÍPIO NÃO FUNCIONA
} else {
map.addOverlay(new GMarker(point));
map.addOverlay(new GPolygon(point)); ISSO A PRINCÍPIO NÃO FUNCIONA
}
});
}
function gerarPoligono(polygon) {
polygon.show();
}
</script>
</html>