【问题标题】:Google Maps Engine Layer refresh after insert插入后谷歌地图引擎层刷新
【发布时间】:2014-07-02 09:10:07
【问题描述】:

我有一个谷歌地图,我在其中添加了 MapsEngineLayer(我也尝试使用 DynamicMapsEngineLayer,您可以在此处查看两者的代码:https://developers.google.com/maps/documentation/javascript/mapsenginelayers)。在网站上 - HTML 和 Javascript - 我有一个编辑按钮,我通过 Google Maps Engine API 更改某些功能的某些属性或将新功能(几何)添加到该图层的数据源。这些插入是通过对 php 的 ajax 调用进行的(类似于 https://developers.google.com/maps-engine/documentation/feature-create)。

所有身份验证都是作为服务帐户进行的,因此层和 API 的令牌是 3600 秒。

插入/更新后,地图上什么也没有出现,但是,如果我打开一个新的私人窗口,所有的修改都在那里。

强制刷新 MapsEngineLayer 的最佳方法是完全还是仅强制刷新受该插入影响的图块?

我已经试过了,插入后:

mapsEngineLayer.unbindAll();
mapsEngineLayer.setMap(null);
mapsEngineLayer = null;

我可以使用 GeoJSON 重新读取所有功能,但数据源有很多功能。

【问题讨论】:

    标签: google-maps google-maps-engine


    【解决方案1】:

    试试这个来强制重新加载图层而不破坏整个地图:

    layer.setMap(null);
    delete layer;
    layer = new google.maps.visualization.MapsEngineLayer({ layerId: ... });
    layer.setMap(map);
    

    这也应该适用于 DynamicMapsEngineLayer。

    【讨论】:

    • 顺便说一句,delete layer; 语句没有做任何事情,因为它只适用于删除对象属性,而不是变量。
    猜你喜欢
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多