如何在JasperReport地图上显示标签和自定义图标?

时间:2014-05-22 09:21:08

标签: google-maps jasper-reports

我已阅读JasperReports - Map Component Sample并尝试使用以下代码:

....
<componentElement>
    <reportElement uuid="d16ce41f-66bd-4fdb-9d6c-31e661b0f16f" key="" positionType="Float" 
      stretchType="RelativeToTallestObject" x="32" y="0" width="480" height="311"/>

    <mp:map xmlns:mp="http://jasperreports.sourceforge.net/jasperreports/components"
      xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components
       http://jasperreports.sourceforge.net/xsd/components.xsd">

        <mp:latitudeExpression><![CDATA[1.311378f]]></mp:latitudeExpression>
        <mp:longitudeExpression><![CDATA[103.826637f]]></mp:longitudeExpression>
        <mp:zoomExpression><![CDATA[12]]></mp:zoomExpression>
        <mp:markerData>
            <mp:item>
                <mp:itemProperty name="latitude">
                    <valueExpression><![CDATA[1.285979f]]></valueExpression>
                </mp:itemProperty>
                <mp:itemProperty name="longitude">
                    <valueExpression><![CDATA[103.838997f]]></valueExpression>
                </mp:itemProperty>
                <mp:itemProperty name="title">
                    <valueExpression><![CDATA["asdasd"]]></valueExpression>
                </mp:itemProperty>
                <mp:itemProperty name="icon.url">
                    <valueExpression><![CDATA["C:\\Users\\Desktop\\img.ico"]]></valueExpression>
                </mp:itemProperty>
                <mp:itemProperty name="icon.height">
                    <valueExpression><![CDATA[100]]></valueExpression>
                </mp:itemProperty>
                <mp:itemProperty name="icon.width">
                    <valueExpression><![CDATA[100]]></valueExpression>
                </mp:itemProperty>
            </mp:item>
        </mp:markerData>
    </mp:map>
</componentElement>
....

地图出现在预览中,但标签/标题未显示,图标似乎未从默认值更改。

如何显示标签和自定义图标?

1 个答案:

答案 0 :(得分:2)

在jasper报告中使用地图组件,您正在使用

Google static maps >> MarkerOptions

<强> icon.url

对于<mp:itemProperty name="icon.url">,您需要提供互联网上可用的图片网址(该地图由Google生成)。 Google无法访问您的本地图片C:\\Users\\Desktop\\img.ico,即使您对其进行网址编码file:/C:/User/Desktop/img.ico也不需要"http://www.jdd.it/favicon.ico"。尝试删除您的互联网连接,您将看到不再生成地图。

<强>标题

  

输入:string   滚动文字。仅适用于点几何。

所以title这不是标签,而是滚动文字

我想问题还在继续,如何在google静态地图中添加我的标记上方的文字?

我会说你不能!但这总是危险的......,如果你找到方法,请告诉我。关于SO有一个问题,但我们没有一个有效的答案。

Static Google Map: Is it possible to add Text to the Marker

wordpress用户也有同样的问题。

show-title-on-static-maps

我知道添加一些文本(大写1个字母)的唯一方法是label属性(注意:您需要删除所有图标属性)

<mp:itemProperty name="label">
  <valueExpression><![CDATA["P"]]></valueExpression>
</mp:itemProperty>

P Marker

  

P = Petter

我猜因为您使用的是jasper报告,所以您的解决方案会在地图下添加标签说明,就像我在这篇文章中所做的那样。

或者使用自定义图像并在地图下面添加一些标签说明。

或者,如果地图的位置是静态的(没有动态数据源),请在其上面拖动一些<textField>;)