Sensible defaults

This commit is contained in:
Andreas Hocevar
2021-02-06 12:04:31 +01:00
parent bf90ce2789
commit d31abd2f77
3 changed files with 10 additions and 8 deletions

View File

@@ -4,7 +4,7 @@ title: Icon modification
shortdesc: Example using a Modify interaction to edit an icon. shortdesc: Example using a Modify interaction to edit an icon.
docs: > docs: >
The icon on this map can be dragged to modify its location. The icon on this map can be dragged to modify its location.
<p>The Modify interaction can be configured with a `layer` option. With this option, hit detection will be used to determine the modification candidate.</p> <p>The Modify interaction can be configured with a `hitDetection` option. With this option, the modification candidate will not be determined by the `pixelTolerance`, but match the visual appearance of the geometry.</p>
tags: "vector, modify, icon, marker" tags: "vector, modify, icon, marker"
--- ---
<div id="map" class="map"></div> <div id="map" class="map"></div>

View File

@@ -128,9 +128,8 @@ const ModifyEventType = {
* provided, a vector source must be provided with the `source` option. * provided, a vector source must be provided with the `source` option.
* @property {boolean} [wrapX=false] Wrap the world horizontally on the sketch * @property {boolean} [wrapX=false] Wrap the world horizontally on the sketch
* overlay. * overlay.
* @property {boolean} [snapToPointer=false] The vertex, point or segment being modified snaps to the * @property {boolean} [snapToPointer=!hitDetection] The vertex, point or segment being modified snaps to the
* pointer coordinate when clicked within the `pixelTolerance`. Setting this to `true` is recommended * pointer coordinate when clicked within the `pixelTolerance`.
* when the `Snap` interaction is used and the source geometry is not a snap target.
*/ */
/** /**
@@ -393,7 +392,10 @@ class Modify extends PointerInteraction {
/** /**
* @private * @private
*/ */
this.snapToPointer_ = options.snapToPointer || false; this.snapToPointer_ =
options.snapToPointer === undefined
? !this.hitDetection_
: options.snapToPointer;
} }
/** /**

View File

@@ -1045,9 +1045,8 @@ describe('ol.interaction.Modify', function () {
); );
}); });
it('snaps to pointer when snapToPointer is true', function () { it('snaps to pointer by default', function () {
const modify = new Modify({ const modify = new Modify({
snapToPointer: true,
source: source, source: source,
}); });
map.addInteraction(modify); map.addInteraction(modify);
@@ -1061,9 +1060,10 @@ describe('ol.interaction.Modify', function () {
expect(pointFeature.getGeometry().getCoordinates()).to.eql([2, -2]); expect(pointFeature.getGeometry().getCoordinates()).to.eql([2, -2]);
}); });
it('does not snap to pointer by default', function () { it('does not snap to pointer when snapToPointer is false', function () {
const modify = new Modify({ const modify = new Modify({
source: source, source: source,
snapToPointer: false,
}); });
map.addInteraction(modify); map.addInteraction(modify);
source.clear(); source.clear();