标签: openlayers

屏幕坐标到纬度和经度

在开放图层库中,下面是用于将屏幕坐标转换为经纬度的方法。我无法弄清楚此方法封装的逻辑?

getLatLonFromPoint: function (point) {
    var center = this.getCenter();
    //map center lat/lon
    var res  = this.getResolution(); 
    //pre defined by the user. Represents the change in lat long per screen unit at the given zoom level
    var size = this.getSize(); 
    //this is the width and height of the div in which the map has to be displayed
    var delta_x = point.x - (size.w / 2);
    var delta_y = point.y - (size.h / 2);
    return new OpenLayers.LatLon(
        center.lat - delta_y * res, …

gis latitude-longitude openlayers

1
推荐指数
1
解决办法
5263
查看次数

使用openlayers,我如何确保显示所有点列表?

我有一个OpenLayers地图对象,我已经将标记添加到图层,并将其添加到地图中.

但是如何确保所有标记都在显示区域?

谢谢,

吉尔

javascript mapping openlayers

1
推荐指数
1
解决办法
2067
查看次数

使用OpenLayers.Feature.Vector在openlayer地图中添加标记?

我可以使用在开放层地图上添加标记Openlayers.Layer.markers.但我不能用这个 OpenLayers.Feature.Vector吗?.任何人都可以帮助我..请...提前谢谢

此致,Boomiraj.P

javascript openlayers

1
推荐指数
1
解决办法
9995
查看次数

更新OpenLayers弹出窗口

我想在我的地图中更新一些弹出窗口,但我无法做到这一点.

首先,我创建了一些标记,然后使用下一个代码创建一个与它们关联的弹出窗口.每个标记一个弹出窗口:

 popFeature = new OpenLayers.Feature(markers, location); 
                         popFeature.closeBox = true;
                         popFeature.popupClass =     OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
                                 'autoSize': true
                         });
                         popFeature.data.popupContentHTML = "hello";                         
popFeature.data.overflow = (false) ? "auto" : "hidden";     
                         var markerClick = function (evt) {
                                if (this.popup == null) {
                                    this.popup = this.createPopup(this.closeBox);
                                    map.addPopup(this.popup);
                                    this.popup.show();
                                } else {
                                    this.popup.toggle();
                                }
                                currentPopup = this.popup;
                                OpenLayers.Event.stop(evt);
                         };
                         mark.events.register("mousedown",     popFeature, markerClick);
Run Code Online (Sandbox Code Playgroud)

之后,我将新标记添加到我的标记图层.

一切都很好,直到这里,但是,我想稍后更新popupcontentHTML,我不知道如何访问该值.

我读了OL API,但我不明白如何得到它.我迷失了功能,事件,扩展......

我想知道我是否可以访问该属性并写下其他单词.

popup openlayers marker

1
推荐指数
1
解决办法
1564
查看次数

如何在openlayers中保存要素图层

我已经构建了一个 OpenLayers 地图,它从目录(存储在 z\x\y 结构中,例如 1/1/0.png 中)读取图块数据并将其呈现在地图图层上。然后我创建一个矢量图层并为用户提供工具,以便在地图上绘制各种类型的形状(点、路径、多边形等)。下面是代码:

function initialiseMap() {
  var options = {
    controls: [],
    maxExtent: new OpenLayers.Bounds(0.0, -72448.0, 142848.0, 0.0),
    maxResolution: 1024.000000,
    numZoomLevels: 10
  };
  map = new OpenLayers.Map(imageEditorID, options);

  imageLayer = new OpenLayers.Layer.TMS(imgURL, "", {
    url: '',
    serviceVersion: '.',
    layername: '.',
    alpha: true,
    type: 'png',
    getURL: overlay_getTileURL,
    transitionEffect: 'resize'
  });
  map.addLayer(imageLayer);

  var vlayer = new OpenLayers.Layer.Vector("Editable");
  map.addLayer(vlayer);

  var overview = new OpenLayers.Control.OverviewMap({
    maximized: true,
    maximizeTitle: 'Show the overview map',
    minimizeTitle: 'Hide the overview map'
  });

  var zoomToDrawControl …
Run Code Online (Sandbox Code Playgroud)

openlayers

1
推荐指数
1
解决办法
3813
查看次数

OpenLayers为getView()。fit()设置动画

我一直在研究openlayers的动画功能,并且可以看到使用以下命令缩放到给定的点和分辨率有多么简单

view.animate({
    center: position,
    zoom: 11
});
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何制作动画

map.getView().fit(extent, map.getSize());
Run Code Online (Sandbox Code Playgroud)

有人可以给我一些指示吗?

提前致谢

javascript openlayers openlayers-3

1
推荐指数
1
解决办法
2903
查看次数

使用Openlayers叠加多边形时显示多个弹出窗口

我有一个多边形矢量对象的地图.

多边形之间可以存在叠加.也就是说,更大的多边形有时完全高于较小的多边形.
使用Openlayers,是否可以显示两个弹出窗口而不是一个弹出窗口(第一个弹出窗口与上面的多边形相关,第二个弹出窗口与底部的多边形相关)?或者一个包含两个多边形属性的弹出窗口?

我寻找信息,但没有发现很多东西.有主题(用弹出窗口显示多个WFS图层)但没有答案.

非常感谢您的帮助 !

openlayers openlayers-3

1
推荐指数
1
解决办法
179
查看次数

如何使用OpenLayers 4.6.4向OSM Map添加图标/标记

我想知道是否有人可以指出我正确的方向.我正在尝试使用OpenLayers 4.6.4向OSM地图添加多个标记/图标.

以下代码呈现地图没有任何问题:

    <script src="https://openlayers.org/en/v4.6.4/build/ol.js"></script>
    <script type='text/javascript'>
        var map = new ol.Map({
            target: 'mapdiv',
            layers: [
                new ol.layer.Tile({
                    source: new ol.source.OSM()
                })
            ],
            view: new ol.View({
                center: ol.proj.fromLonLat([-0.1526069, 51.4790309]),
                zoom: 14
            })
        });
    </script>
Run Code Online (Sandbox Code Playgroud)

我已经尝试在OpenLayers网站上搜索有关如何添加标记的信息,但它表明标记已被弃用!我想要做的就是在地图上添加一些图钉/标记来显示网站位置.

我也尝试过其他版本的OpenLayers 2.13.1,2.14和3.0但没有任何成功.

任何帮助将不胜感激.

markers openlayers openstreetmap

1
推荐指数
1
解决办法
6431
查看次数

清洁污染的帆布

是否可以清理受污染的帆布​​?

我有一个Openlayers地图,用户可以在其中添加具有CORS限制的图层.我不能通过我的代理配置绕过cors并且crossOrigin ='anonymus'不是一个选项.

我需要的是能够移除" "图层并让用户生成地图图像.

所以我试着:

  • 删除无法打印的图层
  • 尝试同步地图
  • 尝试打印

但我总是得到cors错误.如何在不刷新浏览器的情况下再次使我的地图变得更好?

javascript openlayers html5-canvas html2canvas

1
推荐指数
1
解决办法
212
查看次数

OpenLayers 3 - 仅为特定的bbox提供OSM底图图块

我想创建一个基于OSM底图的网络地图,但我只需要我需要分析的特定国家/地区的图块.这样做的原因是我想避免在用户拖动地图时加载更多的图块,从而增加下载的数据和加载时间.

我不是在本地寻找tile开发,而是在设置OpenLayers 3参数来限制OSM baselayer渲染.

有办法吗?

openlayers openstreetmap openlayers-3

1
推荐指数
1
解决办法
100
查看次数