我想在诺基亚HERE地图中使用text而不是StandardMarker。
我尝试使用TextMarker但没有用。可能是我使用不当。你能告诉我怎么做吗?
答案 0 :(得分:0)
TextMarker不是API的内置类,而是API playground(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)
最重要的是要手动确定文本的大小(宽度和高度)。