Seperate internal and API methods for the map
This commit is contained in:
@@ -114,8 +114,8 @@ class DragPan extends PointerInteraction {
|
||||
const distance = this.kinetic_.getDistance();
|
||||
const angle = this.kinetic_.getAngle();
|
||||
const center = view.getCenterInternal();
|
||||
const centerpx = map.getPixelFromCoordinate(center);
|
||||
const dest = map.getCoordinateFromPixel([
|
||||
const centerpx = map.getPixelFromCoordinateInternal(center);
|
||||
const dest = map.getCoordinateFromPixelInternal([
|
||||
centerpx[0] - distance * Math.cos(angle),
|
||||
centerpx[1] - distance * Math.sin(angle)
|
||||
]);
|
||||
|
||||
@@ -75,8 +75,8 @@ function onBoxEnd() {
|
||||
if (this.out_) {
|
||||
const mapExtent = view.calculateExtentInternal(size);
|
||||
const boxPixelExtent = createOrUpdateFromCoordinates([
|
||||
map.getPixelFromCoordinate(getBottomLeft(extent)),
|
||||
map.getPixelFromCoordinate(getTopRight(extent))]);
|
||||
map.getPixelFromCoordinateInternal(getBottomLeft(extent)),
|
||||
map.getPixelFromCoordinateInternal(getTopRight(extent))]);
|
||||
const factor = view.getResolutionForExtentInternal(boxPixelExtent, size);
|
||||
|
||||
scaleFromCenter(mapExtent, 1 / factor);
|
||||
|
||||
@@ -639,7 +639,7 @@ class Draw extends PointerInteraction {
|
||||
const map = event.map;
|
||||
for (let i = 0, ii = potentiallyFinishCoordinates.length; i < ii; i++) {
|
||||
const finishCoordinate = potentiallyFinishCoordinates[i];
|
||||
const finishPixel = map.getPixelFromCoordinate(finishCoordinate);
|
||||
const finishPixel = map.getPixelFromCoordinateInternal(finishCoordinate);
|
||||
const pixel = event.pixel;
|
||||
const dx = pixel[0] - finishPixel[0];
|
||||
const dy = pixel[1] - finishPixel[1];
|
||||
|
||||
@@ -13,6 +13,7 @@ import PointerInteraction from './Pointer.js';
|
||||
import VectorLayer from '../layer/Vector.js';
|
||||
import VectorSource from '../source/Vector.js';
|
||||
import {createEditingStyle} from '../style/Style.js';
|
||||
import { toUserExtent } from '../proj.js';
|
||||
|
||||
|
||||
/**
|
||||
@@ -177,12 +178,12 @@ class Extent extends PointerInteraction {
|
||||
* @private
|
||||
*/
|
||||
snapToVertex_(pixel, map) {
|
||||
const pixelCoordinate = map.getCoordinateFromPixel(pixel);
|
||||
const pixelCoordinate = map.getCoordinateFromPixelInternal(pixel);
|
||||
const sortByDistance = function(a, b) {
|
||||
return squaredDistanceToSegment(pixelCoordinate, a) -
|
||||
squaredDistanceToSegment(pixelCoordinate, b);
|
||||
};
|
||||
const extent = this.getExtent();
|
||||
const extent = this.getExtentInternal();
|
||||
if (extent) {
|
||||
//convert extents to line segments and find the segment closest to pixelCoordinate
|
||||
const segments = getSegments(extent);
|
||||
@@ -191,13 +192,13 @@ class Extent extends PointerInteraction {
|
||||
|
||||
let vertex = (closestOnSegment(pixelCoordinate,
|
||||
closestSegment));
|
||||
const vertexPixel = map.getPixelFromCoordinate(vertex);
|
||||
const vertexPixel = map.getPixelFromCoordinateInternal(vertex);
|
||||
|
||||
//if the distance is within tolerance, snap to the segment
|
||||
if (coordinateDistance(pixel, vertexPixel) <= this.pixelTolerance_) {
|
||||
//test if we should further snap to a vertex
|
||||
const pixel1 = map.getPixelFromCoordinate(closestSegment[0]);
|
||||
const pixel2 = map.getPixelFromCoordinate(closestSegment[1]);
|
||||
const pixel1 = map.getPixelFromCoordinateInternal(closestSegment[0]);
|
||||
const pixel2 = map.getPixelFromCoordinateInternal(closestSegment[1]);
|
||||
const squaredDist1 = squaredCoordinateDistance(vertexPixel, pixel1);
|
||||
const squaredDist2 = squaredCoordinateDistance(vertexPixel, pixel2);
|
||||
const dist = Math.sqrt(Math.min(squaredDist1, squaredDist2));
|
||||
@@ -222,7 +223,7 @@ class Extent extends PointerInteraction {
|
||||
|
||||
let vertex = this.snapToVertex_(pixel, map);
|
||||
if (!vertex) {
|
||||
vertex = map.getCoordinateFromPixel(pixel);
|
||||
vertex = map.getCoordinateFromPixelInternal(pixel);
|
||||
}
|
||||
this.createOrUpdatePointerFeature_(vertex);
|
||||
}
|
||||
@@ -295,7 +296,7 @@ class Extent extends PointerInteraction {
|
||||
const pixel = mapBrowserEvent.pixel;
|
||||
const map = mapBrowserEvent.map;
|
||||
|
||||
const extent = this.getExtent();
|
||||
const extent = this.getExtentInternal();
|
||||
let vertex = this.snapToVertex_(pixel, map);
|
||||
|
||||
//find the extent corner opposite the passed corner
|
||||
@@ -338,7 +339,7 @@ class Extent extends PointerInteraction {
|
||||
}
|
||||
//no snap - new bbox
|
||||
} else {
|
||||
vertex = map.getCoordinateFromPixel(pixel);
|
||||
vertex = map.getCoordinateFromPixelInternal(pixel);
|
||||
this.setExtent([vertex[0], vertex[1], vertex[0], vertex[1]]);
|
||||
this.pointerHandler_ = getPointHandler(vertex);
|
||||
}
|
||||
@@ -363,7 +364,7 @@ class Extent extends PointerInteraction {
|
||||
handleUpEvent(mapBrowserEvent) {
|
||||
this.pointerHandler_ = null;
|
||||
//If bbox is zero area, set to null;
|
||||
const extent = this.getExtent();
|
||||
const extent = this.getExtentInternal();
|
||||
if (!extent || getArea(extent) === 0) {
|
||||
this.setExtent(null);
|
||||
}
|
||||
@@ -379,13 +380,23 @@ class Extent extends PointerInteraction {
|
||||
super.setMap(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current drawn extent in the view projection (or user projection if set)
|
||||
*
|
||||
* @return {import("../extent.js").Extent} Drawn extent in the view projection.
|
||||
* @api
|
||||
*/
|
||||
getExtentExternal() {
|
||||
return toUserExtent(this.getExtentInternal(), this.getMap().getView().getProjection());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current drawn extent in the view projection
|
||||
*
|
||||
* @return {import("../extent.js").Extent} Drawn extent in the view projection.
|
||||
* @api
|
||||
*/
|
||||
getExtent() {
|
||||
getExtentInternal() {
|
||||
return this.extent_;
|
||||
}
|
||||
|
||||
|
||||
@@ -775,7 +775,7 @@ class Modify extends PointerInteraction {
|
||||
return false;
|
||||
}
|
||||
this.handlePointerAtPixel_(evt.pixel, evt.map);
|
||||
const pixelCoordinate = evt.map.getCoordinateFromPixel(evt.pixel);
|
||||
const pixelCoordinate = evt.map.getCoordinateFromPixelInternal(evt.pixel);
|
||||
this.dragSegments_.length = 0;
|
||||
this.modified_ = false;
|
||||
const vertexFeature = this.vertexFeature_;
|
||||
@@ -883,7 +883,7 @@ class Modify extends PointerInteraction {
|
||||
* @private
|
||||
*/
|
||||
handlePointerAtPixel_(pixel, map) {
|
||||
const pixelCoordinate = map.getCoordinateFromPixel(pixel);
|
||||
const pixelCoordinate = map.getCoordinateFromPixelInternal(pixel);
|
||||
const sortByDistance = function(a, b) {
|
||||
return pointDistanceToSegmentDataSquared(pixelCoordinate, a) -
|
||||
pointDistanceToSegmentDataSquared(pixelCoordinate, b);
|
||||
@@ -899,7 +899,7 @@ class Modify extends PointerInteraction {
|
||||
const node = nodes[0];
|
||||
const closestSegment = node.segment;
|
||||
let vertex = closestOnSegmentData(pixelCoordinate, node);
|
||||
const vertexPixel = map.getPixelFromCoordinate(vertex);
|
||||
const vertexPixel = map.getPixelFromCoordinateInternal(vertex);
|
||||
let dist = coordinateDistance(pixel, vertexPixel);
|
||||
if (dist <= this.pixelTolerance_) {
|
||||
/** @type {Object<string, boolean>} */
|
||||
@@ -911,8 +911,8 @@ class Modify extends PointerInteraction {
|
||||
this.snappedToVertex_ = true;
|
||||
this.createOrUpdateVertexFeature_(vertex);
|
||||
} else {
|
||||
const pixel1 = map.getPixelFromCoordinate(closestSegment[0]);
|
||||
const pixel2 = map.getPixelFromCoordinate(closestSegment[1]);
|
||||
const pixel1 = map.getPixelFromCoordinateInternal(closestSegment[0]);
|
||||
const pixel2 = map.getPixelFromCoordinateInternal(closestSegment[1]);
|
||||
const squaredDist1 = squaredCoordinateDistance(vertexPixel, pixel1);
|
||||
const squaredDist2 = squaredCoordinateDistance(vertexPixel, pixel2);
|
||||
dist = Math.sqrt(Math.min(squaredDist1, squaredDist2));
|
||||
|
||||
@@ -112,7 +112,7 @@ class PinchRotate extends PointerInteraction {
|
||||
const centroid = centroidFromPointers(this.targetPointers);
|
||||
centroid[0] -= viewportPosition.left;
|
||||
centroid[1] -= viewportPosition.top;
|
||||
this.anchor_ = map.getCoordinateFromPixel(centroid);
|
||||
this.anchor_ = map.getCoordinateFromPixelInternal(centroid);
|
||||
|
||||
// rotate
|
||||
if (this.rotating_) {
|
||||
|
||||
@@ -91,7 +91,7 @@ class PinchZoom extends PointerInteraction {
|
||||
const centroid = centroidFromPointers(this.targetPointers);
|
||||
centroid[0] -= viewportPosition.left;
|
||||
centroid[1] -= viewportPosition.top;
|
||||
this.anchor_ = map.getCoordinateFromPixel(centroid);
|
||||
this.anchor_ = map.getCoordinateFromPixelInternal(centroid);
|
||||
|
||||
// scale, bypass the resolution constraint
|
||||
map.render();
|
||||
|
||||
@@ -384,9 +384,9 @@ class Snap extends PointerInteraction {
|
||||
*/
|
||||
snapTo(pixel, pixelCoordinate, map) {
|
||||
|
||||
const lowerLeft = map.getCoordinateFromPixel(
|
||||
const lowerLeft = map.getCoordinateFromPixelInternal(
|
||||
[pixel[0] - this.pixelTolerance_, pixel[1] + this.pixelTolerance_]);
|
||||
const upperRight = map.getCoordinateFromPixel(
|
||||
const upperRight = map.getCoordinateFromPixelInternal(
|
||||
[pixel[0] + this.pixelTolerance_, pixel[1] - this.pixelTolerance_]);
|
||||
const box = boundingExtent([lowerLeft, upperRight]);
|
||||
|
||||
@@ -412,8 +412,8 @@ class Snap extends PointerInteraction {
|
||||
const isCircle = segments[0].feature.getGeometry().getType() ===
|
||||
GeometryType.CIRCLE;
|
||||
if (this.vertex_ && !this.edge_) {
|
||||
pixel1 = map.getPixelFromCoordinate(closestSegment[0]);
|
||||
pixel2 = map.getPixelFromCoordinate(closestSegment[1]);
|
||||
pixel1 = map.getPixelFromCoordinateInternal(closestSegment[0]);
|
||||
pixel2 = map.getPixelFromCoordinateInternal(closestSegment[1]);
|
||||
squaredDist1 = squaredCoordinateDistance(pixel, pixel1);
|
||||
squaredDist2 = squaredCoordinateDistance(pixel, pixel2);
|
||||
dist = Math.sqrt(Math.min(squaredDist1, squaredDist2));
|
||||
@@ -421,7 +421,7 @@ class Snap extends PointerInteraction {
|
||||
if (snappedToVertex) {
|
||||
snapped = true;
|
||||
vertex = squaredDist1 > squaredDist2 ? closestSegment[1] : closestSegment[0];
|
||||
vertexPixel = map.getPixelFromCoordinate(vertex);
|
||||
vertexPixel = map.getPixelFromCoordinateInternal(vertex);
|
||||
}
|
||||
} else if (this.edge_) {
|
||||
if (isCircle) {
|
||||
@@ -430,19 +430,19 @@ class Snap extends PointerInteraction {
|
||||
} else {
|
||||
vertex = closestOnSegment(pixelCoordinate, closestSegment);
|
||||
}
|
||||
vertexPixel = map.getPixelFromCoordinate(vertex);
|
||||
vertexPixel = map.getPixelFromCoordinateInternal(vertex);
|
||||
if (coordinateDistance(pixel, vertexPixel) <= this.pixelTolerance_) {
|
||||
snapped = true;
|
||||
if (this.vertex_ && !isCircle) {
|
||||
pixel1 = map.getPixelFromCoordinate(closestSegment[0]);
|
||||
pixel2 = map.getPixelFromCoordinate(closestSegment[1]);
|
||||
pixel1 = map.getPixelFromCoordinateInternal(closestSegment[0]);
|
||||
pixel2 = map.getPixelFromCoordinateInternal(closestSegment[1]);
|
||||
squaredDist1 = squaredCoordinateDistance(vertexPixel, pixel1);
|
||||
squaredDist2 = squaredCoordinateDistance(vertexPixel, pixel2);
|
||||
dist = Math.sqrt(Math.min(squaredDist1, squaredDist2));
|
||||
snappedToVertex = dist <= this.pixelTolerance_;
|
||||
if (snappedToVertex) {
|
||||
vertex = squaredDist1 > squaredDist2 ? closestSegment[1] : closestSegment[0];
|
||||
vertexPixel = map.getPixelFromCoordinate(vertex);
|
||||
vertexPixel = map.getPixelFromCoordinateInternal(vertex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user