【问题标题】:Android maps overlayAndroid 地图叠加层
【发布时间】:2026-01-09 09:15:02
【问题描述】:

如何在不同的缩放级别添加不同的叠加层?例如,我在地图上添加了一个节日区域的叠加图像,这很棒。但是当用户缩小时,我想更改用户看到的图像。有人知道该怎么做吗?

【问题讨论】:

    标签: android google-maps


    【解决方案1】:

    我唯一能想到的就是在地图中发生变化时将缩放级别传递给叠加层,然后决定在叠加层中绘制什么。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但你可以做的是根据两个地理点的差异来定义位图的大小,例如

      GeoPoint PointC = new GeoPoint((int)(35.496392 * 1E6), (int)(-97.5375950 * 1E6));
      GeoPoint PointR = new GeoPoint((int)(35.496392 * 1E6), (int)(-97.5362690 * 1E6));
      GeoPoint PointH = new GeoPoint((int)(35.696392 * 1E6), (int)(-97.5362690 * 1E6));
          Point poC = new Point();
          Point poR = new Point();
          Point poH = new Point();
      
          projection.toPixels(ovalR, poR);
          projection.toPixels(ovalC, poC);
          projection.toPixels(ovalH, poH);
      
          cWidth = Math.abs(poC.x-poR.x);
          cHieght = Math.abs(poC.y-poH.y);
      
      Bitmap bitmap= Bitmap.createScaledBitmap(mBitmap, cWidth, cHeight, true);  
      

      【讨论】:

        【解决方案3】:

        如果您控制缩放按钮(通过拥有自己的按钮),您可以通过修改数组 mapView.getOverlays() 来更改显示的叠加层,然后调用 mapView.invalidate( ).

        我没有尝试如此频繁地更改它,但它应该可以工作。

        【讨论】:

        • 嗯,我不太清楚你的意思是什么?