3

我正在使用 esri 的 ArcGIS API for JavaScript 3.6 版并有一个小地图(桌面上约 400 像素的正方形),每当用户将鼠标悬停在某个要素上时,它就会显示一个信息窗口弹出窗口。

如果信息窗口显示在地图边缘附近,则信息窗口将被裁剪以适应地图边界。我想让信息窗口内容溢出并完全可见,有没有办法在 ArcGIS 框架之外滚动我自己的弹出窗口?

这是信息窗口被裁剪的图片(抱歉,我没有足够的代表来发布图片):

信息窗口被堵住

编辑:

我试图像这样设置 infoWindow 的 domNode:

var myDiv = some_div_far_awary;

var infoWindow = new esri.dijit.InfoWindow({}, myDiv);
infoWindow.startup();

var map = new esri.Map("my-map-div", {
  // Other configs...
  infoWindow: infoWindow
});

希望如果some_div_far_away在地图 div 之外并且绝对位置它可以显示在仅overflow:hidden用于包含弹出窗口的地图上。虽然没有运气。

4

2 回答 2

1

好吧,我不确定为什么我们需要添加带有一些预定义样式的信息窗口容器。正如您在评论“范围更改的昂贵计算”中提到的,所以我不建议您更改地图范围,我认为您可以根据您的窗口大小设置信息窗口(重新调整信息窗口的最大合适大小)。

下面是示例代码:

var infoWindow = new esri.dijit.InfoWindow({}, dojo.create("div"));
    infoWindow.startup();    

var map = new esri.Map("map", {
          // Other configs... 
          infoWindow: infoWindow
       });

要重新调整信息窗口,您可以使用:

 map.infoWindow.resize(100,100); // resize(width,height)

我想在这里建议的另一种方法,如果你认为这是一个正确显示信息窗口的小地方,你为什么不使用移动弹出窗口......它们真的很酷。

下面是代码:

 var popup = new esri.dijit.PopupMobile(null, dojo.create("div"));

 var map = new Map("map", {
          basemap: "gray",
          center: [-98.57, 39.82],
          zoom: 4,
          infoWindow: popup
        });

随意拍摄您的查询..

希望对你有帮助:)

于 2013-10-04T16:50:25.693 回答
0

因此,信息模板无意避免这种情况,因为相对于坐标的浮动面板会导致错误,因为您无法确定哪些点引用了浮动面板。

您可以在地图左侧的另一个 div 中显示要素的字段,或者您可以使用map.centerAt(mappoint),否则map.centerAndZoom(mappoint,level)您的信息模板将不会被裁剪,因为您将集中您的信息窗口。

于 2013-10-04T01:16:48.873 回答