如何在HERE maps Android sdk中添加静态地图标记?

如何在HERE maps Android sdk中添加静态地图标记?,android,marker,here-api,Android,Marker,Here Api,我想做一个在地图旋转时不会移动的标记,就像多段线一样。我的目标是给标记一个单一的方向,即使发生了保证也不会改变 我试过每种类型的记号笔,但都没有达到想要的效果 我被困在这里很长时间了,希望您能给予我任何帮助。您要的就是这个东西吗?它被锚定到您指定的位置,并且无论应用于地图的倾斜和旋转如何,它都将始终在屏幕2d空间中绘制 希望这有帮助。您可以绘制一个简单的矩形,其正面和背面的纹理如下: // Two triangles FloatBuffer buff = FloatBuffer.

我想做一个在地图旋转时不会移动的标记,就像多段线一样。我的目标是给标记一个单一的方向,即使发生了保证也不会改变

我试过每种类型的记号笔,但都没有达到想要的效果

我被困在这里很长时间了,希望您能给予我任何帮助。

您要的就是这个东西吗?它被锚定到您指定的位置,并且无论应用于地图的倾斜和旋转如何,它都将始终在屏幕2d空间中绘制


希望这有帮助。

您可以绘制一个简单的矩形,其正面和背面的纹理如下:

    // Two triangles
    FloatBuffer buff = FloatBuffer.allocate(12);
    buff.put(0- delta);
    buff.put(0- delta);
    buff.put(1.f);

    buff.put(0 + delta);
    buff.put(0 - delta);
    buff.put(1.f);

    buff.put(0 - delta);
    buff.put(0 + delta);
    buff.put(1.f);

    buff.put(0 + delta);
    buff.put(0 + delta);
    buff.put(1.f);

    // Two triangles to generate the rectangle. Both front and back face
    IntBuffer vertIndicieBuffer = IntBuffer.allocate(12);
    vertIndicieBuffer.put(0);
    vertIndicieBuffer.put(2);
    vertIndicieBuffer.put(1);
    vertIndicieBuffer.put(2);
    vertIndicieBuffer.put(3);
    vertIndicieBuffer.put(1);
    vertIndicieBuffer.put(0);
    vertIndicieBuffer.put(1);
    vertIndicieBuffer.put(2);
    vertIndicieBuffer.put(1);
    vertIndicieBuffer.put(3);
    vertIndicieBuffer.put(2);

    // Texture coordinates
    FloatBuffer textCoordBuffer = FloatBuffer.allocate(8);
    textCoordBuffer.put(0.f);
    textCoordBuffer.put(0.f);
    textCoordBuffer.put(1.f);
    textCoordBuffer.put(0.f);
    textCoordBuffer.put(0.f);
    textCoordBuffer.put(1.f);
    textCoordBuffer.put(1.f);
    textCoordBuffer.put(1.f);

    // The LocalMesh itself.
    LocalMesh mesh = new LocalMesh();
    mesh.setVertices(buff);
    mesh.setVertexIndices(vertIndicieBuffer);
    mesh.setTextureCoordinates(textCoordBuffer);

    MapLocalModel model = new MapLocalModel();
    model.setMesh(mesh);
    model.setDynamicScalingEnabled(true);
    model.setAnchor(new GeoCoordinate(LATITUDE, LONGITUDE, 0.0));

将图像附加到其上以获得纹理,并使用MapRenderLisener#onPredraw()更改局部模型对象的俯仰和偏航以跟随摄影机。

如果我做对了,您希望避免标记一直朝着您旋转,对吗?我不确定你能不能用马克笔。我现在唯一能想到的就是使用。但是你必须自己提供模型和纹理谢谢!我看了你的建议,看起来这是完成我想做的事情的唯一途径。然而,我发现对于这么简单的事情来说,这真的很复杂。。。这里真的应该让这更简单,就像在谷歌地图。现在我必须了解模型和纹理是如何工作的。。无论如何,MapLocalModel主要用于绘制复杂的纹理或着色对象。我们用它在地图上添加有趣的东西,比如汽车和3d物体。请按照我在回答中的建议使用MapMarker类。好吧,根据你刚才给我的链接,它是相反的:“地图处理屏幕上图标的正确放置以及平移和旋转。”如果地图旋转,MapMarker将旋转,我看不到任何方法禁用它……MapMarker不旋转,它是在平面2d屏幕空间中绘制的。我认为我们的文档在这个意义上有点混乱。它应该说明它是“锚定”到地理坐标的,无论地图的倾斜或方向如何,它总是朝前的。是的,它总是朝前的,我想要一个不会这样做的标记,因为我试图添加一个特定角度的特定图像(可能我也不清楚)。如果没有MapLocalModel,有办法做到这一点,请告诉我怎么做,我将非常感激。感谢在这种情况下,MapLocalModel是您最好的选择。我将发布一段代码来帮助您。上面这段代码的增量值是多少?谢谢,这正是我所需要的!如何在android中获得局部网格导入?当地图处于导航状态时,如何在MapLocalModel中获得设置偏航的精确方向值?