Android谷歌地图实用程序-更新集群标记位置

Android谷歌地图实用程序-更新集群标记位置,android,google-maps,google-maps-api-3,Android,Google Maps,Google Maps Api 3,我想更新我的标记位置。目前,我正在删除一个项目,并立即将其添加回新位置,但我不确定这是正确的方法。我想做的是将此标记位置更新为一个新值,而不删除/重新添加它。可能吗 我尝试了以下方法: var cluster_item = iterator.next(); var marker = dis.cluster_renderer.getMarker(cluster_item); marker.setPosition(new dis.maps.model.LatLng( 0, 0 )); 。。但它就像

我想更新我的标记位置。目前,我正在删除一个项目,并立即将其添加回新位置,但我不确定这是正确的方法。我想做的是将此标记位置更新为一个新值,而不删除/重新添加它。可能吗

我尝试了以下方法:

var cluster_item = iterator.next();
var marker = dis.cluster_renderer.getMarker(cluster_item);
marker.setPosition(new dis.maps.model.LatLng( 0, 0 ));
。。但它就像一个临时集,一旦我缩小簇和其他标记重新渲染,位置就会恢复到原来的位置

当前代码:

// Updates all items
var items = dis.cluster_manager_algorithm.getItems();
var iterator = items.iterator();
//while ( iterator.hasNext() ) {
if ( iterator.hasNext() ) {
    var cluster_item = iterator.next();

    dis.cluster_manager.removeItem(cluster_item);

    var item = new dis.clustering.ClusterItem({
        //rotation: marker.rotation,
        getPosition: function () {
            return new dis.maps.model.LatLng(new_position.latitude, new_position.longitude);
        },
        userData: {imei: "some_imei"}
    });
    dis.cluster_manager.addItem(item);

    // update view
    dis.cluster_manager.cluster();
}

让我们举一个简单的例子,在我的位置上添加标记。每当我的位置改变时,标记将继续在那个位置上-

 @Override
        public void onLocationChanged(Location location) {
           marker.setPosition(new LatLng(location.getLatitude, location.getLongitude ));
        }
现在,无论您在哪里获得latlng,都可以使用
marker.setPosition(latlng)

编辑 用于批量标记。假设您的arraylist具有LatLng
locationList

@覆盖
已于4月1日公开作废(谷歌地图){

对于(int i=0;i让我们举一个简单的例子,在我的位置上添加标记。每当我的位置改变时,标记将继续在该位置上-

 @Override
        public void onLocationChanged(Location location) {
           marker.setPosition(new LatLng(location.getLatitude, location.getLongitude ));
        }
现在,无论您在哪里获得latlng,都可以使用
marker.setPosition(latlng)

编辑 用于批量标记。假设您的arraylist具有LatLng
locationList

@覆盖
已于4月1日公开作废(谷歌地图){

对于(int i=0;i您到底想做什么?您只想根据新的lat lng更改标记位置?是的,这就是我想要的您到底想做什么?您只想根据新的lat lng更改标记位置?是的,这就是我想在我的问题中已经说明的,我已经尝试了
marker.setPosition
。它工作了只是临时的,当地图被缩小并再次放大时,群集将使用其原始位置重新渲染这些项目。我必须更改此原始位置,而不是标记临时位置。这些项目存储在算法类()中,但我看不到直接更改项目位置的方法。老实说,我没有得到您想要说的内容。“当地图被缩小并再次放大时”.marker停留在哪个位置?.我最近在Uber之类的应用上工作过。我们正在使用
marker.setPosition
更新地图上的驾驶员位置,它看起来像地图上移动的汽车,无论用户放大还是缩小,marker停留在它应该承载您在普通标记或群集项目标记上移动的位置,这是两种不同的设置普通google maps标记位置没有问题。但是,google maps utils群集项目标记位置更新是另一回事。哦!我只是在说普通标记。对于批量标记…尝试使用此..markerOption=new MarkerOptions().snippet(“”).position((new LatLng()).icon());我在问题中已经说过,我已经尝试了
marker.setPosition
。它只起临时作用,当地图被缩小并再次放大时,集群会用它们的原始位置重新渲染这些项目。我必须更改此原始位置,而不是标记的临时位置。这些项目存储在算法类()中,但我看不到直接更改项目位置的方法。老实说,我没有得到您想要说的内容。“当地图被缩小并再次放大时”.marker停留在哪个位置?.我最近在Uber之类的应用上工作过。我们正在使用
marker.setPosition
更新地图上的驾驶员位置,它看起来像地图上移动的汽车,无论用户放大还是缩小,marker停留在它应该承载您在普通标记或群集项目标记上移动的位置,这是两种不同的设置普通google maps标记位置没有问题。但是,google maps utils群集项目标记位置更新是另一回事。哦!我只是在说普通标记。对于批量标记…尝试使用此..markerOption=new MarkerOptions().snippet(“”).position((new LatLng()).icon());