modelsbyref =“true”时更新地图

时间:2017-02-06 10:11:24

标签: angularjs google-maps-api-3 google-maps-markers angular-google-maps

我在地图上遇到了许多标记的性能问题[500+,已群集,但仍有问题]

经过一些研究后,我意识到我的应用/消除周期需要太长时间[镀铬约5秒]而且我唯一的深度监视在angular-ui-google-maps中被烘焙。将我的标记切换为modelsbyref="true"可以减少一半。

来自他们的文档:

  

默认深度监视,因为modelsbyref未定义。如果设置为true,则为“true”,“T”等等,然后打开浅层监视。

所以无论如何,这给了我一个很好的性能提升[yay]。但是现在我的标记没有使用[boo]。我认为用副本替换一个项目会起作用,但也许我错过了一些东西。

我的HTML [我删除了typeEvent属性之类的内容以保持小型化]

<ui-gmap-markers models="vm.vehicles"
                 idkey="'Id'"
                 coords="'Plot.coords'"
                 options="'Plot.options'"
                 modelsbyref="true">
</ui-gmap-markers>

更新我的标记的代码

for (let v = 0; v < vehicles.length; v++) {
    const vehicle = vehicles[v];

    // Find the right plot, and update it
    // Note for brevity I've left out the "find new plot" code
    vehicle.Plot = newPlot;

    // Now copy the vehicle to create a new reference - I thought this would update the map
    // It doesnt though ;/
    vehicles[v] = angular.copy(vehicle);
}

0 个答案:

没有答案