在诺基亚HERE地图中使用文本而不是标记

时间:2014-11-08 11:48:18

标签: here-api

我想在诺基亚HERE地图中使用text而不是StandardMarker。

我尝试使用TextMarker但没有用。可能是我使用不当。你能告诉我怎么做吗?

1 个答案:

答案 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)

最重要的是要手动确定文本的大小(宽度和高度)。