cierto! el nuevo contenido se perdería...
Bien, les cuento la idea original:
En realidad la "truculencia" que intento hacer es
1) mostrar un mapa de GoogleMaps, junto al editor WYSW...
2) El usuario ingresa la dirección o clica en el mapa
3) Las coordenadas se ingresan en un 'span' dentro del editor.
Luego cuando se vea la entrada hay otra función que lee las coordenadas y muestra el mapa si si, es un abuso a la maquina del cliente, pero sería divertido hacerlo.
Lo que preguntaba estaba enfocado en el punto 3, lo demás ya está resuelto.
Si desean pueden ver lo que llevo hasta ahora, pueden copiar y pegar esto en [URL="http://htmledit.squarefree.com/"]http://htmledit.squarefree.com/[/URL] para probarlo online:
Código HTML:
<form action="#" onsubmit="inputMarcador(this.address.value); return false">
<p>
<input type="text" size="20" name="address" value="Antofagasta, Chile" /><br />
<input type="submit" value="Buscar Dirección" />
</p>
<div id="map_canvas" style="width: 200px; height: 400px"></div>
</form>
<textarea cols="60" rows="30" name="edit[body]" id="input-body" class="content-blog rich-text-area "><p><img src="http://images03.olx.cl/ui/2/29/70/17452970_1.jpg?v=1261459779362" style="border: 0; margin: 4px;" /></p>
<p>Vendo celular, como nuevo</p></textarea>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA1XeAYyd-P_Ccn6bAluyCIRQtNytlzrglaCR_ewOv9N_7M7OiSxR0hxdBHBn1Kq_myCNrHTVe3TxJpQ"
type="text/javascript"></script>
<script type="text/javascript">
var map;
var geocoder;
var address;
initialize();
function initialize() {
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(-23.6456,-70.39821), 15);
map.setUIToDefault();
GEvent.addListener(map, "click", getAddress);
geocoder = new GClientGeocoder();
}
function getAddress(overlay, latlng) {
if (latlng != null) {
address = latlng;
geocoder.getLocations(latlng, showAddress);
}
}
function showAddress(response) {
map.clearOverlays();
if (!response || response.Status.code != 200) {
alert("Status Code:" + response.Status.code);
} else {
place = response.Placemark[0];
point = new GLatLng(place.Point.coordinates[1],
place.Point.coordinates[0]);
insertaCoordenadas(point);
marker = new GMarker(point);
map.addOverlay(marker);
}
}
function inputMarcador(address) {
map.clearOverlays();
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert("No encuentro a "+address+"!");
} else {
map.setCenter(point, 13);
var marker = new GMarker(point);
map.addOverlay(marker);
insertaCoordenadas(point);
}
}
);
}
}
function insertaCoordenadas(coord){
var contenido = document.getElementById("input-body").value;
var mapita = document.getElementById("spanMapa");
var direccion = "<span id='spanMapa' class='spanMapa'>Dirección: <span>"+coord+"</span></span>";
if(!mapita){
document.getElementById("input-body").value = contenido + direccion ;
}else{
mapita.parentNode.removeChild(mapita);
document.getElementById("input-body").value = contenido + direccion ;
}
}
</script>
El gran problema es que cuando el usuario ingresa otra dirección o clica el mapa más de una vez, se escribe nuevamente las coordenadas, cuando devieran borrarse las antiguas y reemplazarse por las nuevas...
Perdonen si le aburri, y gracias masterojitos, me pongo de ahora a experimentar con tu idea
Saludos
Nota: Se reciben sugerencias, regaños (el código está muy de novato
), etc.