2014-11-08 67 views
0

我想在诺基亚HERE地图中使用文字代替StandardMarker。在诺基亚使用文字而不是标记HERE地图

我试过使用TextMarker,但没有工作。可能是我用错了。你能告诉我如何做到这一点?

+0

您使用的是2.5.x还是3.0?我想2.5.x只是想确保... – echom 2014-11-08 17:54:28

+0

我使用2.5.X – SIGSTP 2014-11-08 18:09:07

回答

0

TextMarker不是API的内置类,而是API操作(http://developer.here.com/apiexplorer/examples/public/api-for-js/markers/extending-marker-to-text-marker.html)中的示例通过扩展Marker类来引入此类。看看API浏览器示例的源代码。

一般的想法是,您需要生成一个图形(或图形图像)供标记图标使用。有多种方法可以做到这一点,但创建一个带有文本的SVG标记字符串可能是最简单的方法(如示例代码所示)。

该示例中的代码是否需要一些变量,并用值替换部分SVG模板字符串。

var iconSVG = '<svg width="__WIDTH__" height="__HEIGHT__" xmlns="http://www.w3.org/2000/svg">' + 
 
    '<rect x="__X__" y="__Y__" rx="5" ry="5" width="__RECT_WIDTH__" height="__RECT_HEIGHT__" ' + 
 
    'style="fill:__BRUSH__;stroke:__STROKE__;stroke-width:__STROKEWIDTH__;"/>' + 
 
    '<text x="__OFFSETX__" y="__OFFSETY__" fill="__TEXT_PEN__" style="font-weight:normal; ' + 
 
    'font-family:__FONTFAMILY__; font-size:__FONTSIZE__;" textContent="__TEXT__">__TEXT__</text>' + 
 
    '</svg>',

从可以产生图形图像的SVG标记字符串:

icon = new nokia.maps.gfx.GraphicsImage(that.svgParser.parseSvg(iconSVG));

而这个图形图像可以被用作标记图标。

marker.set("icon", icon)

要注意的最重要的事情是,你需要弄清楚你的文字(宽度和高度)手动的大小。