首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在OpenLayers 2中实现标度栏外接程序的测地线选项?

如何在OpenLayers 2中实现标度栏外接程序的测地线选项?
EN

Stack Overflow用户
提问于 2014-09-04 02:07:55
回答 1查看 398关注 0票数 0

我使用的是来自标尺加件 2的OpenLayers,它没有测地选项。

我知道标度线有一个测地线选项,但是考虑到标度栏有更多的选项,在这个选项中引入测地线选项是很好的。

有人能帮我吗?如何在标度栏中引入测地线选项?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-05 00:54:00

我想我解决了。

首先,我添加了一个测地线选项,这样用户就可以选择是否需要测地测量。

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

代码语言:javascript
运行
复制
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;
},

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

代码语言:javascript
运行
复制
"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;

我希望这是有用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25656288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档