有没有办法在Here Maps标记中添加方位/标题视觉?

时间:2014-09-21 04:52:36

标签: here-api

我在Here Maps以及一些示例Here Javascript API ExplorerHere Maps on GitHub上摆弄了一些。

我试图看看除了经度和纬度之外是否还有一种方法可以添加视觉方位属性,并且标记上会出现类似小尖端的东西。这感觉就像许多人想要的东西一样,所以只是为了检查我没有错过任何明显的东西......

  • 有没有办法为标记添加视觉方位信息?
    • 如果没有,是否有人知道是否有使用自定义标记的示例来实现这一点我无法定位?

1 个答案:

答案 0 :(得分:1)

API中没有可用的方位/标题控制 - 您必须创建自己的自定义map component。通常的做法是在地图控件中注入一些HTML作为新的DOM元素。

首先定义您的自定义HtmlControl,如下所示:

function extend(B, A) {
    function I() {}
    I.prototype = A.prototype;
    B.prototype = new I();
    B.prototype.constructor = B;
}

function HtmlControl (html, id) {
    nokia.maps.map.component.Component.call(this);
    this.init(html, id);
}

extend(HtmlControl,
        nokia.maps.map.component.Component);


HtmlControl.prototype.init = function (html, id) {
    that = this;
    that.id = id
    that.set("node",  document.createElement("div"));   
    that.node.innerHTML = html;
};

HtmlControl.prototype.getId = function() { 
    return "HtmlControl." + this.id;
};

HtmlControl.prototype.attach = function(map) {
    map.getUIContainer().appendChild(this.node);
};

HtmlControl.prototype.detach = function(display) {
    map.getUIContainer().removeChild(this.node);
};

然后设置map并添加自定义组件,如下所示:

 htmlControl = new HtmlControl(
   "<img id='compass' style='left:4em;top:1em;width:100px;height:100px' src='...'/>", "Compass");
map.components.add(htmlControl);

<img>元素的源文件需要保存指南针图像。由于地图控件基于Normalized Mercator projection

,因此最有可能是朝北向上的图像

或者查看使用Map Image API并调查ra参数以旋转地图。