Ich versuche doppelten Mausklick Ereignis auf OpenStreetMap zu handhaben, mit dem folgenden Code:Ionic: Maus-Ereignis in Openlayers nicht behandelt wurde
var map = new OpenLayers.Map("basicMap");
var mapnik = new OpenLayers.Layer.OSM();
var fromProjection = new OpenLayers.Projection("EPSG:4326");
// Transform from WGS 1984
var toProjection = new OpenLayers.Projection("EPSG:900913");
// to Spherical Mercator Projection
var position = new OpenLayers.LonLat(13.41,52.52).transform(fromProjection, toProjection);
var zoom = 15;
map.addLayer(mapnik);
map.setCenter(position, zoom);
var markers = new OpenLayers.Layer.Markers("Markers");
map.addLayer(markers);
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control,
{
defaultHandlerOptions:
{
'single': true,
'double': true,
'pixelTolerance': 0,
'stopSingle': false,
'stopDouble': false
},
initialize: function(options)
{
this.handlerOptions = OpenLayers.Util.extend({},this.defaultHandlerOptions);
OpenLayers.Control.prototype.initialize.apply(this, arguments);
this.handler = new OpenLayers.Handler.Click(this, {'click': this.trigger}, this.handlerOptions);
},
trigger: function(e)
{
var lonlat = map.getLonLatFromViewPortPx(e.xy);
alert("clicked");
alert("Lat, Lon : " + lonlat.lat + ", " + lonlat.lng);
markers.addMarker(new OpenLayers.Marker(lonlat));
},
touchstart: function(e)
{
console.log();
},
touchend: function(e)
{
console.log();
},
handleSingle: function(e)
{
console.log();
}
});
var control = new OpenLayers.Control.Click();
map.addControl(control);
control.activate();
Doch nach ein paar Tests zu tun. Die Nachricht "geklickt" wurde nie angezeigt, obwohl ich keinen Fehler auf der Konsole gefunden habe, während die Karte korrekt angezeigt wurde.
Also ist irgendetwas falsch in dem oben genannten Code? Wie ist es möglich, dieses Problem zu beheben?
Hinweis: Ich verwende Ionic Framework.
Jede Hilfe wird sehr geschätzt.
Vielen Dank.
Vielen Dank für Ihre Hilfe. Ich habe den Code ausprobiert, den Sie vorgeschlagen haben, aber ich habe immer noch das gleiche Problem. Bitte sehen Sie sich meinen aktualisierten Code in der obigen Frage an. – Kais
Hier ist eine Geige mit Ihrem Code https://jsfiddle.net/fradal/0bfwvcyz/. Es scheint zu funktionieren wie erwartet ... – fradal83
Ja, das funktioniert. Aber es funktioniert nicht mit meiner Ionic/Cordova App. Das ist seltsam. – Kais