UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

36 lines (35 loc) 1.2 kB
function getCenterCoord(view, point) { return view.pointToProjected ? view.pointToProjected(point) : view.pointToData(point); } function updateCenterAndZoom(view, payload, zoomLimit, api) { var previousZoom = view.getZoom(); var center = view.getCenter(); var zoom = payload.zoom; var point = view.projectedToPoint ? view.projectedToPoint(center) : view.dataToPoint(center); if (payload.dx != null && payload.dy != null) { point[0] -= payload.dx; point[1] -= payload.dy; view.setCenter(getCenterCoord(view, point), api); } if (zoom != null) { if (zoomLimit) { var zoomMin = zoomLimit.min || 0; var zoomMax = zoomLimit.max || Infinity; zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom; } view.scaleX *= zoom; view.scaleY *= zoom; var fixX = (payload.originX - view.x) * (zoom - 1); var fixY = (payload.originY - view.y) * (zoom - 1); view.x -= fixX; view.y -= fixY; view.updateTransform(); view.setCenter(getCenterCoord(view, point), api); view.setZoom(zoom * previousZoom); } return { center: view.getCenter(), zoom: view.getZoom() }; } export { updateCenterAndZoom };