Source: BKGWebMap/Control/CopyCoordinates.js

/*
 * Copyright (c) 2013 Bundesamt für Kartographie und Geodäsie.
 * See license.txt in the BKG WebMap distribution or repository for the
 * full text of the license.
 *
 * Author: Dirk Thalheim
 */

/**
 * @requires OpenLayers/BaseTypes/Class.js
 * @requires OpenLayers/Control/Button.js
 * @requires BKGWebMap/Control.js
 */

/**
 * @classdesc Tool zum Kopieren der Koordinaten in die Zwischenablage
 *
 * @constructor BKGWebMap.Control.Link
 * @param {object} options - Optionen für das Controlelement
 */
BKGWebMap.Control.CopyCoordinates = OpenLayers.Class(OpenLayers.Control,
{
  title: "Koordinaten kopieren",

  initialize:function(options) {
    OpenLayers.Control.prototype.initialize.apply(this, [options]);
    this.handler = new OpenLayers.Handler.Click(this, {click: this.copy}, this.handlerOptions || {});
  },

  destroy:function() {
    OpenLayers.Control.prototype.destroy.apply(this, arguments);
  },

  copy:function(evt) {
    var lonlat = this.map.getLonLatFromPixel(evt.xy);
    window.prompt("Zum Kopieren der aktuellen Mauskoordinate Ctrl+C drücken", lonlat.lon + ' ' + lonlat.lat);
  },

  CLASS_NAME: "BKGWebMap.Control.CopyCoordinates"
});

/**
 * Fügt CopyCoordinates der Control-Liste hinzu.
 * @param {Array<OpenLayers.Control>} controls - Liste der Steuerelemente, in die die neue erzeugten Steuerelemente
 *                                               eingefügt werden sollen.
 * @param {object} config - Konfiguration für das CopyCoordinates-Steuerelement (s. Konstruktor BKGWebMap.Control.CopyCoordinates).
 */
BKGWebMap.Control.FACTORIES['copyCoordinates'] = function(controls, config) {
  if (!config) return;
  config = (typeof config === 'boolean') ? {} : config;
  controls.push(new BKGWebMap.Control.CopyCoordinates(config));
};