Skip to content

Commit 2462b72

Browse files
authored
Some updates (#2182)
* some updates * fix spec
1 parent e54e0be commit 2462b72

File tree

7 files changed

+36
-25
lines changed

7 files changed

+36
-25
lines changed

src/core/util/dom.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -526,14 +526,14 @@ export function isMoveEvent(type) {
526526
return type && (type === 'mousemove' || type === 'touchmove');
527527
}
528528

529-
export const MOUSEMOVE_EVENT_TIMETHRESHOLD = 48;
529+
export const MOUSEMOVE_THROTTLE_TIME = 48;
530530

531-
export function mousemoveEventTimeThresholdJudge(target, mousemoveTimeThreshold) {
531+
export function isMousemoveEventBlocked(target, mousemoveThrottleTime) {
532532
const currentTime = now();
533-
const TIME = mousemoveTimeThreshold || MOUSEMOVE_EVENT_TIMETHRESHOLD;
533+
const TIME = mousemoveThrottleTime || MOUSEMOVE_THROTTLE_TIME;
534534
if (target._mousemoveTime && currentTime - target._mousemoveTime < TIME) {
535-
return false;
535+
return true;
536536
}
537537
target._mousemoveTime = currentTime;
538-
return true;
538+
return false;
539539
}

src/layer/OverlayLayer.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,7 @@ class OverlayLayer extends Layer {
248248
for (let i = 0, l = geometries.length; i < l; i++) {
249249
let geo = geometries[i];
250250
if (!(geo && (GeoJSON._isGeoJSON(geo) || isGeometry(geo)))) {
251-
console.error(geo, 'is not Invalid geometry to add to layer(' + this.getId() + ') at index:' + i);
252-
continue;
251+
throw new Error('Invalid geometry to add to layer(' + this.getId() + ') at index:' + i);
253252
}
254253
if (geo.getLayer && geo.getLayer() === this) {
255254
continue;
@@ -265,8 +264,7 @@ class OverlayLayer extends Layer {
265264
}
266265
// geojson to Geometry may be null
267266
if (!geo) {
268-
console.error(geo, 'is not Invalid geometry to add to layer(' + this.getId() + ') at index:' + i);
269-
continue;
267+
throw new Error('Invalid geometry to add to layer(' + this.getId() + ') at index:' + i);
270268
}
271269
if (!Array.isArray(geo)) {
272270
this._add(geo, extent, i);

src/map/Map.DomEvents.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
preventDefault,
77
getEventContainerPoint,
88
isMoveEvent,
9-
mousemoveEventTimeThresholdJudge
9+
isMousemoveEventBlocked
1010
} from '../core/util/dom';
1111
import Map from './Map';
1212

@@ -223,7 +223,7 @@ Map.include(/** @lends Map.prototype */ {
223223
}
224224
const clickTimeThreshold = this.options['clickTimeThreshold'];
225225
const type = e.type;
226-
if (isMoveEvent(type) && !Browser.isTest && !mousemoveEventTimeThresholdJudge(this, this.options['mousemoveTimeThreshold'])) {
226+
if (isMoveEvent(type) && !Browser.isTest && isMousemoveEventBlocked(this, this.options['mousemoveThrottleTime'])) {
227227
return;
228228
}
229229
const isMouseDown = type === 'mousedown' || (type === 'touchstart' && (!e.touches || e.touches.length === 1));

src/map/Map.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import Coordinate from '../geo/Coordinate';
2323
import Layer from '../layer/Layer';
2424
import Renderable from '../renderer/Renderable';
2525
import SpatialReference from './spatial-reference/SpatialReference';
26-
import { computeDomPosition, MOUSEMOVE_EVENT_TIMETHRESHOLD } from '../core/util/dom';
26+
import { computeDomPosition, MOUSEMOVE_THROTTLE_TIME } from '../core/util/dom';
2727
import EPSG9807 from '../geo/projection/Projection.EPSG9807.js';
2828

2929
const TEMP_COORD = new Coordinate(0, 0);
@@ -89,7 +89,7 @@ const REDRAW_OPTIONS_PROPERTIES = ['centerCross', 'fog', 'fogColor', 'debugSky']
8989
* @property {Boolean} [options.cameraInfiniteFar=false] - Increase camera far plane to infinite. Enable this option may reduce map's performance.
9090
* @property {Boolean} [options.stopRenderOnOffscreen=true] - whether to stop map rendering when container is offscreen
9191
* @property {Boolean} [options.originLatitudeForAltitude=40] - default latitude for map.altitudeToPoint method
92-
* @property {Number} [options.mousemoveTimeThreshold=48] - mousemove event interval time(ms)
92+
* @property {Number} [options.mousemoveThrottleTime=48] - mousemove event interval time(ms)
9393
* @memberOf Map
9494
* @instance
9595
*/
@@ -151,7 +151,7 @@ const options = {
151151
'supportPluginEvent': true,
152152

153153
'switchDragButton': false,
154-
'mousemoveTimeThreshold': MOUSEMOVE_EVENT_TIMETHRESHOLD
154+
'mousemoveThrottleTime': MOUSEMOVE_THROTTLE_TIME
155155
};
156156

157157
/**

src/map/handler/Map.GeometryEvents.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { now } from '../../core/util';
2-
import { on, off, getEventContainerPoint, preventDefault, stopPropagation, isMoveEvent, mousemoveEventTimeThresholdJudge } from '../../core/util/dom';
2+
import { on, off, getEventContainerPoint, preventDefault, stopPropagation, isMoveEvent, isMousemoveEventBlocked } from '../../core/util/dom';
33
import Handler from '../../handler/Handler';
44
import Geometry from '../../geometry/Geometry';
55
import Map from '../Map';
@@ -205,7 +205,7 @@ class MapGeometryEventsHandler extends Handler {
205205
}
206206
let oneMoreEvent = null;
207207
const eventType = type || domEvent.type;
208-
if (isMoveEvent(eventType) && !Browser.isTest && !mousemoveEventTimeThresholdJudge(this, map.options['mousemoveTimeThreshold'])) {
208+
if (isMoveEvent(eventType) && !Browser.isTest && isMousemoveEventBlocked(this, map.options['mousemoveThrottleTime'])) {
209209
stopPropagation(domEvent);
210210
return;
211211
}

src/ui/UIMarker.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,9 +326,7 @@ class UIMarker extends Handlerable(UIComponent) {
326326

327327
onAdd() {
328328
if (this._owner && !this._owner.isMap) {
329-
console.error('UIMarker Can only be added to the map,but owner is:', this._owner);
330-
delete this._owner;
331-
return this;
329+
throw new Error('UIMarker Can only be added to the map, but owner is:', this._owner.getJSONType());
332330
}
333331
this.show();
334332
return this;

test/ui/UIMarkerSpec.js

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -237,18 +237,33 @@ describe('UI.UIMarker', function () {
237237
dy: -5
238238
});
239239
//layer add uimarker
240-
layer.addGeometry(marker);
240+
try {
241+
layer.addGeometry(marker);
242+
} catch (err) {
243+
expect(!!err).to.be.ok();
244+
}
241245
expect(layer.getGeometries().length).to.be.equal(0);
242246
//add Invalid geometry
243-
layer.addGeometry({ type: 'hello' });
247+
try {
248+
layer.addGeometry({ type: 'hello' });
249+
} catch (err) {
250+
expect(!!err).to.be.ok();
251+
}
252+
244253
expect(layer.getGeometries().length).to.be.equal(0);
245254
//uimarker add to layer
246-
marker.addTo(layer);
247-
expect(marker.getOwner()).to.be.equal(undefined);
255+
try {
256+
marker.addTo(layer);
257+
} catch (err) {
258+
expect(!!err).to.be.ok();
259+
}
248260
//uimarker add Geometry
249261
const point = new maptalks.Marker(map.getCenter());
250-
marker.addTo(point);
251-
expect(marker.getOwner()).to.be.equal(undefined);
262+
try {
263+
marker.addTo(point);
264+
} catch (err) {
265+
expect(!!err).to.be.ok();
266+
}
252267
done();
253268
});
254269
});

0 commit comments

Comments
 (0)