长度单位转像素

mac2025-01-26  51

工作中遇到了这样一个情况,需要把平面坐标点画到屏幕上,本来是需要通过gis模块来实现的,但是由于涉及到地图模板的更改,比较麻烦,所以调整为直接在画布(Graphics)上落点。这个过程的关键为实际点转屏幕点,也就是长度单位转为图像分辨率(像素)

依据 (1)DPI(每英寸多像素点数) (2)一英寸等于25.4mm (3)象素数 / DPI = 英寸数 (4)英寸数 * 25.4 = 毫米数 像素换算为毫米 w = x * 25.4 / dpix 毫米换算成dpi dpix = x * 25.4 / w 毫米换算成像素 x = w * dpix /25.4 实现 public double length2ScreenPx(double length_m) { return m2px(length_m) * getMapScale(); } //将米转px double xdpi = 72; public double m2px(double length) { return length * 1000 * xdpi * (1.0f / 25.4f); } //设置显示比例,目的是为了留白 public double getMapScale() { return (picHeight / m2px(plotWidth)) * 0.75;//(图片长度/转为像素后的实际长度)*显示的百分比 }

 

最新回复(0)