0

我正在使用OpenLayers 2中的比例尺插件,它没有测地线选项。

我知道比例线有一个测地线选项,但考虑到比例尺有更多种类的选项,在这个选项中引入测地线选项会很好。

谁能帮我解决这个问题?如何在比例尺插件中引入测地线选项?

谢谢

4

1 回答 1

1

我想我解决了。

首先,我添加了测地线选项,因此用户可以选择是否需要测地线措施。

其次,我创建了这个函数(基于 ScaleLine):

getGeodesicRatio: function() {
    var res = this.map.getResolution();
    if (!res) {
        return;
    }

    var curMapUnits = this.map.getUnits();
    var inches = OpenLayers.INCHES_PER_UNIT;

    // convert maxWidth to map units
    var maxSizeData = this.maxWidth * res * inches[curMapUnits];
    var geodesicRatio = 1;
    if(this.geodesic) {
        var maxSizeGeodesic = (this.map.getGeodesicPixelSize().w ||
            0.000001) * this.maxWidth;
        var maxSizeKilometers = maxSizeData / inches["km"];
        geodesicRatio = maxSizeGeodesic / maxSizeKilometers;
    }
    return geodesicRatio;
},

第三,我在其他函数中插入了测地线比率:

"getComp"
var ppdu = OpenLayers.DOTS_PER_INCH * system.inches[unitIndex]
    / this.getGeodesicRatio() / this.scale;

"setSubPros"
var ppdu = OpenLayers.DOTS_PER_INCH * system.inches[unitIndex]
    / this.getGeodesicRatio() / this.scale;

我希望这很有用。

于 2014-09-05T00:54:00.263 回答