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

时间:2016-04-16 17:18:02

标签: android marker here-api

我想制作在地图旋转时不移动的标记,就像折线一样。我的目标是为标记提供一个单一的方向,即使在出现数据时也不会改变。

我尝试过每种标记类型但我无法获得想要的效果。

任何形式的帮助都会受到赞赏,因为我被困在这里很长时间

2 个答案:

答案 0 :(得分:0)

您正在寻找MapMarker对象?它固定在您给出的位置,无论倾斜如何,它都将始终在屏幕2d空间中绘制,并旋转您应用于地图。

希望这有帮助。

答案 1 :(得分:0)

您可以绘制一个简单的矩形,正面和背面两侧都有纹理,如下所示:

    // 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()更改本地模型对象的俯仰和偏航以跟随相机。