如何刷新Google Maps Android API实用程序库中热图图层的点数?

如何刷新Google Maps Android API实用程序库中热图图层的点数?,第1张

概述我有这个代码但是当我尝试刷新热图点时,没有任何反应.我不知道我是否还需要别的东西,我看了一些例子,但在我的情况下它不起作用.我正在使用片段.有没有其他方法刷新热图图层而不重建地图对象?publicclasstab2extendsFragment{MapViewmapView;GoogleMapMygoogleMap;p

我有这个代码但是当我尝试刷新热图点时,没有任何反应.我不知道我是否还需要别的东西,我看了一些例子,但在我的情况下它不起作用.我正在使用片段.

有没有其他方法刷新热图图层而不重建地图对象?

public class tab2 extends Fragment{ MapVIEw mapVIEw; GoogleMap MyGoogleMap; public VIEw onCreateVIEw(LayoutInflater inflater, @Nullable VIEwGroup container, @Nullable Bundle savedInstanceState) {    VIEw vIEw =inflater.inflate(R.layout.tab2, container, false);mapVIEw = (MapVIEw) vIEw.findVIEwByID(R.ID.mi_mapa);mapVIEw.onCreate(savedInstanceState);    MyGoogleMap = mapVIEw.getMap();    MyGoogleMap.setMyLocationEnabled(true);    MapsInitializer.initialize(this.getActivity());    latitude = 18.916;     longitude = -99.236;MyGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude,            longitude), 3.5f));    return vIEw;}public voID setHotPoints(){    Handler_sqlite_mapa helper = new Handler_sqlite_mapa(this.miContexto);    helper.abrir(); //Abre la conexion a la BD    String resultado[][] = helper.gettop(99);    helper.cerrar();    int lecturasConfirmadas=0;    int columnas = (resultado.length);    int filas = (resultado[0].length);    Log.d("MiMapa:", "Columnas:" + columnas);    Log.d("MiMapa:", "Filas:" + filas);    if (mProvIDer == null) {        List<LatLng> List = new ArrayList<LatLng>();        String valores = "";        for(int i = 0; i < filas; i++) {                if(resultado[3][i]!=null){                    double la = Double.parseDouble(resultado[1][i]);                    double lo = Double.parseDouble(resultado[2][i]);                    List.add(new LatLng(la,lo));                    lecturasConfirmadas++;                }        }        if(lecturasConfirmadas>0){            MyGoogleMap.clear();            mProvIDer = new HeatmapTileProvIDer.Builder()                    .data(List)                    .build();            mOverlay = MyGoogleMap.addTileOverlay(new TileOverlayOptions().tileProvIDer(mProvIDer));            mOverlay.clearTileCache();        }    }}}

解决方法:

不确定是否有更好的方法,我使用删除并重新创建强制更新热图:

    private voID removeHeatMap() {        mOverlay.remove();    }    private voID addHeatMap() {        mProvIDer = new HeatmapTileProvIDer.Builder()                .weightedData(samples)                .build();        mOverlay = mMap.addTileOverlay(new TileOverlayOptions().tileProvIDer(mProvIDer));    }

我注意到的一件事是,如果我没有使用叠加层重新创建HeatmapTileProvIDer实例,则热图将无法正确更新.

总结

以上是内存溢出为你收集整理的如何刷新Google Maps Android API实用程序库中热图图层的点数?全部内容,希望文章能够帮你解决如何刷新Google Maps Android API实用程序库中热图图层的点数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1117156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存