我正在使用ORACLE APEX 4.2
,在我的应用程序中,我正在显示阿富汗地图(AnyChart)的省份,现在我想更改地图上的标签显示。
例如,地图显示Kabol
,我想用Kabul
替换它,所以Lowgar
也替换为Logar
等等......
这是可能需要更新的XML(Map XML)文件,我尝试查找但失败了。
<?xml version = "1.0" encoding="utf-8" standalone = "yes"?>
<anychart>
<settings>
<animation enabled="true"/>
<no_data show_waiting_animation="False">
<label>
<text>#NO_DATA_MESSAGE#</text>
<font family="Verdana" bold="yes" size="10"/>
</label>
</no_data>
</settings>
<margin left="0" top="0" right="0" bottom="0" />
<charts>
<chart plot_type="Map" name="chart_25753918635243424">
<chart_settings>
<title enabled="False" />
<data_plot_background>
<fill type="Solid" color="0xffffff" opacity="0" />
<border enabled="false"/>
<corners type="Square"/>
</data_plot_background>
<chart_animation type="ScaleXLeft" interpolation_type="Quadratic" show_mode="OneByOne"/>
<controls>
<navigation_panel enabled="True"/>
<zoom_panel enabled="True"/>
</controls>
</chart_settings>
<data_plot_settings enable_3d_mode="false">
<map_series source="asia/afghanistan.amap" id_column="REGION_NAME" labels_display_mode="Always">
<projection type="Mercator" />
<defined_map_region >
<tooltip_settings enabled="true">
<format><![CDATA[{%Name}{enabled:False} - {%value1}{numDecimals:0,decimalSeparator:.,thousandsSeparator:\,}]]></format>
<font family="Tahoma" size="10" color="0x000000" />
<position anchor="Float" valign="Top" padding="10" />
</tooltip_settings>
<label_settings enabled="true" mode="Outside" multi_line_align="Center">
<format><![CDATA[{%Name}{enabled:False} - {%value1}{numDecimals:0,decimalSeparator:.,thousandsSeparator:\,}]]></format>
<background enabled="false"/>
<font family="Arial" size="10" color="0x000000" />
</label_settings>
</defined_map_region>
<grid enabled="true">
<parallels enabled="true"/>
<meridians enabled="true"/>
<background>
<fill type="Solid" color="0xffffff" opacity="0" />
<border enabled="false"/>
<corners type="Square"/>
</background>
</grid>
</map_series>
</data_plot_settings>
#DATA#
</chart>
</charts>
</anychart>
如果我们可以有条件地更新或替换%Name的值,那么我所能达到的任何机会都可以得到我的解决方案。
如果有人有更好的解决方案或想法,请分享......
答案 0 :(得分:1)
您通常只需在MapRegions系列中指定要重命名的那些,将它们(按名称)链接到原始系列。例如......
<data>
<series type="MapRegions">
<point name="Kabol" y="0">
<attributes>
<attribute name="newname">Kabul</attribute>
</attributes>
</point>
</series>
</data>
但是,您的问题是PL / SQL中的#DATA#标签是动态生成数据标记的,您不能拥有多个数据标记。你需要:
选项1:如果这包含您正在绘制的一些自定义数据,则截取此内容并替换它。换句话说,不要使用#DATA#,而是使用一些PL / SQL函数调用来读取#DATA#并写下你替换的字符串。
选项2:生成如上所述的完整数据集,并在&#34; y&#34;中使用您的自定义数据。属性。 Full表示所有要点。文件中的所有区域名称都列在其网站上。这会容易得多。只需将上面的#DATA#替换为产生整个点集的函数。
选项3:您可以获取阿富汗的SHP文件,放入您的标签并使用他们的地图转换器与您的标签一起构建新的.AMAP。