Skip to content

Commit e67f37a

Browse files
committed
Add lat/lng info to touch events (closes #50)
Supported by Miizee.com
1 parent 2c37adb commit e67f37a

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

src/app.js

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -477,18 +477,33 @@ weapi.App.prototype.on = function(type, listener) {
477477
e['latitude'] = null;
478478
e['longitude'] = null;
479479

480-
var cartesian = app.camera.camera.
481-
pickEllipsoid(new Cesium.Cartesian2(e.offsetX, e.offsetY));
482-
if (goog.isDefAndNotNull(cartesian)) {
483-
var carto = Cesium.Ellipsoid.WGS84.cartesianToCartographic(cartesian);
484-
485-
var lat = goog.math.toDegrees(carto.latitude),
486-
lng = goog.math.toDegrees(carto.longitude);
487-
e['latlng'] = {'lat': lat, 'lng': lng};
488-
e['latitude'] = lat;
489-
e['longitude'] = lng;
490-
e['altitude'] = carto.height;
491-
e['originalEvent'] = e.getBrowserEvent();
480+
var offsetX = e.offsetX, offsetY = e.offsetY;
481+
if (!goog.isDefAndNotNull(offsetX) || !goog.isDefAndNotNull(offsetY)) {
482+
var origE = e.getBrowserEvent();
483+
var pageX = origE.pageX, pageY = origE.pageY,
484+
touches = origE['touches'];
485+
if (touches && touches[0] && (!pageX || !pageY)) {
486+
pageX = touches[0].pageX;
487+
pageY = touches[0].pageY;
488+
}
489+
var canvasOffset = goog.style.getPageOffset(app.canvas);
490+
offsetX = pageX - canvasOffset.x;
491+
offsetY = pageY - canvasOffset.y;
492+
}
493+
if (goog.isDefAndNotNull(offsetX) && goog.isDefAndNotNull(offsetY)) {
494+
var cartesian = app.camera.camera.
495+
pickEllipsoid(new Cesium.Cartesian2(offsetX, offsetY));
496+
if (goog.isDefAndNotNull(cartesian)) {
497+
var carto = Cesium.Ellipsoid.WGS84.cartesianToCartographic(cartesian);
498+
499+
var lat = goog.math.toDegrees(carto.latitude),
500+
lng = goog.math.toDegrees(carto.longitude);
501+
e['latlng'] = {'lat': lat, 'lng': lng};
502+
e['latitude'] = lat;
503+
e['longitude'] = lng;
504+
e['altitude'] = carto.height;
505+
e['originalEvent'] = e.getBrowserEvent();
506+
}
492507
}
493508

494509
listener(e);

0 commit comments

Comments
 (0)