我也是1.7.10,今天正好在研究这个问题,然后正好解决了,查了半天官方的js源代码搞了个半懂,原来地图里有个_showGridList存放子对象,每次重绘的时候会把_showGridList覆盖_childs,所以还要在_showGridList里添加,原来的mapLayer.addChild倒不是必须了,具体代码如下
mapLayer._showGridList.push(sp);
如果你用的ts的话还会报错说_showGridList不存在,需要在libs/LayaAir.d.ts里,找到class MapLayer extends Sprite这一行,在下面加上一行代码:
class MapLayer extends Sprite {
_mapData: Array<any>;
/**
* @private
*/
_gridSpriteArray: Array<any>;
_showGridList: Array<any>; //这行是我新加的
......
}