当前位置: 首页 > 知识库问答 >
问题:

如何避免地图展开中标记的标题重叠?

申屠无尘
2023-03-14

我使用展开图来创建标记。当用户悬停在标记上时,标题被显示出来。但是其他标记与标题重叠,所以它隐藏了标题中显示的信息。为了防止这种情况发生,我使用PGraphics将标题绘制为:

    public void showTitle(PGraphics pg, float x, float y)
{
    String name = getCity() + " " + getCountry() + " ";
    String pop = "Pop: " + getPopulation() + " Million";
    /
    /buffer is defined already.
    buffer.beginDraw();
    buffer.fill(255, 255, 255);
    buffer.textSize(12);
    buffer.rectMode(PConstants.CORNER);
    buffer.rect(x, y-TRI_SIZE-39, Math.max(pg.textWidth(name), pg.textWidth(pop)) + 6, 39);
    buffer.fill(0, 0, 0);
    buffer.textAlign(PConstants.LEFT, PConstants.TOP);
    buffer.text(name, x+3, y-TRI_SIZE-33);
    buffer.text(pop, x+3, y - TRI_SIZE -18);
    buffer.endDraw();


}

方法在屏幕上绘制缓冲区

public void draw() {
      map.draw();
      image(buffer, 0,0);
      }

共有1个答案

公孙联
2023-03-14

在绘制缓冲区之前,需要存储缓冲区的位置。基本上,您需要更改这一行:

image(buffer, 0,0);

像这样的事情:

image(buffer, bufferX, bufferY);

您必须计算bufferxbuffery,这取决于您希望缓冲区显示的位置。一个非常愚蠢的实现可能是这样的:

public void showTitle(PGraphics pg, float x, float y)
{
   bufferX = x;
   bufferY = y;
   //rest of your code
 类似资料:
  • 我的mapview(osmbonuspack)旋转到行走的方向。 我如何在地图上旋转标记的标题,使它们是水平的--即易于阅读?我看到标记本身不需要任何旋转,而地图是转动的。 可以肯定的是:这是关于文字,是在倒置的眼药水附近。这不是气泡中的信息。

  • 我想更改Google Maps上选定的标记图标,因此我有以下代码: 在这一行,我从下面得到错误: 例外情况如下:

  • 问题内容: 我通过以下方式向GoogleMap添加默认标记: 如何使标记始终显示标题和摘要而无需触摸?我也想禁用隐藏它们。 问题答案: 这很简单:

  • 问题内容: 如何避免使用!进行力解开的操作,因为使用此方法通常是错误的选择。 如下所示的代码中有什么更好的选择,使用它可以使代码看起来更简单,并且可以通过if检查变量!被调用永远不会为零,因此不会崩溃。 我的教练向我们介绍了bang(!)运算符,然后告诉我们不要再使用它了。告诉我们原因,如果可选为nil,它将使我们的应用程序崩溃。 但是,我发现自己处于类似bang运算符似乎是最简洁和最安全的选择的

  • 我在我的flutter应用程序中使用google_maps_flutter来使用谷歌地图我有自定义标记图标,我用BitmapDescriptor.from字节(mark erIcon)加载它,但我想用一些文本显示Url的图标。 这就是我们要达到的目的 是否可以通过flutter或任何可以动态创建图像的外部图像依赖来实现相同的效果。