Sí, es posible.
Aunque es totalmente factible con solo javascript, usaría algún tipo de biblioteca como JQuery.
El enfoque sería tener un img-elemento con su marcador, y luego agregar un identificador click a la imagen que desea utilizar como su "mapa", que moves marca el lugar donde se hizo clic.
Aquí es un ejemplo no probado:
<img src="marker.png" id="marker" style="display: none; position: absolute;" />
<img src="map.png" id="map" />
<script type="text/javascript">
$('#map').click(function(e)
{
$('#marker').css('left', e.pageX).css('top', e.pageY).show();
// Position of the marker is now e.pageX, e.pageY
// ... which corresponds to where the click was.
});
</script>
Editar: Y esto es totalmente posible sin jQuery también, por supuesto. A continuación se muestra un ejemplo de código de eso.
<img src="marker.png" id="marker" style="display: none; position: absolute;" />
<img src="map.png" id="map" />
<script type="text/javascript">
document.getElementById('map').onclick = function(e)
{
with(document.getElementById('marker'))
{
style.left = e.pageX;
style.top = e.pageY;
style.display = 'block';
}
// Here you forward the coordinates e.pageX, e.pageY
// ... to whatever function that needs it
};
</script>
Genius. Funciona perfectamente, gracias! – Richard
No tan rápido ... pageX y pageY me dan la posición de píxel relativa a la esquina superior izquierda de la página. ¿Hay alguna forma de obtener la posición de píxel dentro de la imagen? Si no, entonces supongo que puedo averiguar la posición de píxeles de la esquina de la imagen y restar, pero parece un poco desordenado. Gracias. – Richard
Hay muchos atributos diferentes no estandarizados que especifican las coordenadas, pero parecen ser muy específicas del navegador. Para evitar eso, restaría la posición de la imagen como dijiste. –