ArcGIS API for JavaScript-如何在地图边缘停止信息窗口裁剪?

ArcGIS API for JavaScript-如何在地图边缘停止信息窗口裁剪?,javascript,infowindow,esri,arcgis-js-api,Javascript,Infowindow,Esri,Arcgis Js Api,我正在使用esri的ArcGIS API for JavaScript 3.6版,并且有一个小地图(桌面上约400px的正方形),每当用户将鼠标移到某个功能上时,该地图就会显示一个信息窗口弹出窗口 如果信息窗口显示在地图边缘附近,则信息窗口将被裁剪以适合地图边界。我想让信息窗口内容溢出并完全可见,除了在ArcGIS框架外滚动我自己的弹出窗口外,还有什么方法可以做到这一点 以下是信息窗口被裁剪的图片(抱歉,我没有足够的代表发布图片): 编辑: 我尝试将infoWindow的domNode设置为:

我正在使用esri的ArcGIS API for JavaScript 3.6版,并且有一个小地图(桌面上约400px的正方形),每当用户将鼠标移到某个功能上时,该地图就会显示一个信息窗口弹出窗口

如果信息窗口显示在地图边缘附近,则信息窗口将被裁剪以适合地图边界。我想让信息窗口内容溢出并完全可见,除了在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
});

希望如果
一些遥远的
在map div之外,并且绝对定位它可以显示在地图上,而这只是使用
overflow:hidden
来包含弹出窗口。不过运气不好。

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


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

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

下面是示例代码:

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
        });
请随意回答您的问题


希望这能对您有所帮助:)

谢谢您的建议-我不希望只在外部div中显示信息窗口内容(占用不动产,这才是信息窗口的预期用途)。对我来说,重新将地图居中也不是一个选择(对范围变化进行昂贵的计算)。感觉必须有办法通过为infoWindow设置一个
domNode
来实现这一点,否则infoWindow功能对于较小的地图来说毫无用处。对于较小的地图,您的解决方案可能是在功能周围添加一个文本注释。但是,我仍然认为在地图之外显示信息更适合您的情况,因为您不会创建一个以地图为中心资源的web地图应用程序,如果您的地图较小,那么地图就是一点信息。我也有同样的情况,但只有当我尝试使用
map.infoWindow.resize(“500”、“200”)调整信息窗口大小时才会发生这种情况);。如果我让infoWindow保持原样,它将检测地图的边缘。