首页 / OpenLayers / 使用示例
把要素固定在指定像素位置
把中心点计算转换为「要素坐标 + 像素偏移 × 分辨率」,选中的城市会被钉在十字圈所在的像素上。
源码与运行效果
说明
视图中心始终落在地图正中的像素。要让某个坐标出现在 (140, 110) 这个像素上,
就是把中心反向偏移:center = coord − (pixel − 地图尺寸 / 2) × 分辨率,
其中 y 轴在屏幕坐标里向下为正,所以纵坐标用加号。
map.getPixelFromCoordinate() 与 map.getCoordinateFromPixel()
是一对互逆函数,前者用来做反差校验、判断要素有没有偏离目标像素,后者用于把指针位置
换算成地图坐标。
| 操作 | 结果 |
|---|---|
| 切换下拉框 | 对应城市移动到十字圈内 |
| 拖拽地图 | 十字圈位置不动,状态栏显示目标当前像素 |
| 点击「对准」 | 重新按公式计算视图中心 |
窗口尺寸变化会改变地图中点,resize 之后需要重新调用一次 align()。