我正试图打开一个未显示的地球点的气球。官方api文档称
如果显示该点,则打开它或它是簇气球
但是如果没有显示,我该如何打开它?我试图将地图滚动到它的位置,然后打开它,但打开气球时仍然收到错误TypeError: this._Hh.getMap(...) is null
。
function bymShowPoint(pId)
{
var point = bymGetPoint(pId);
var pState = bymClusterer.getObjectState(point);
if (!pState.isShown)
{
bymScrollToPoint(pId);
}
if (pState.isClustered)
{
pState.cluster.state.set('activeObject',point);
pState.cluster.balloon.open();
}
else
{
point.balloon.open();
}
}
如果一个不可见点位于集群中,API不允许打开该点的气球。我解决这个问题的方法(在yandex社区的帮助下)是:
- 使用点的数据在点的位置打开地图的气球
- 从clusterer中删除点(以隐藏图标)
- 在映射的事件
balloonclose
上,将删除的点添加到clusterer