MicroStrategy ONE
使用 KML 格式的自定义形状
下载为您提供的 ESRI 地图可视化插件并按照以下步骤操作。
-
您可以使用已有的 KML 文件,也可以创建一个新文件。KML 是一种用于在二维地图和三维地球浏览器中显示地理数据的文件格式。示例 KML 文件的代码片段如下所示:
复制<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
<name>attribute value</name>
<ExtendedData>
<Data name="attribute key">
<DisplayName>attribute display value</DisplayName>
<Value>attribute value</Value>
</Data>
</ExtendedData>
...
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>set of custom shape coordinates</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
...
</Document>
</kml>每个
<Placemark>
元素包含自定义形状之一的形状定义数据。它还包含将每个形状与其相应的数据进行匹配所需的信息。-
默认情况下,
<name>
元素用于将数据与形状匹配它的值必须对应于 MicroStrategy 地图使用的属性元素数据。例如,如果您的自定义形状是状态,则<name>
元素可能是“马里兰州”或“加利福尼亚州”。 -
可以通过添加 < 来覆盖默认匹配行为
ExtendedData>
元素作为子元素<Placemark>
。这允许您将自定义形状与以多种方式识别的数据相匹配,从而提供了灵活性。例如,如果您想要将 KML 文件中的形状与除州名称外还由州名称或对象 ID 缩写标识的州数据进行匹配,则可以执行此操作。 -
这
<coordinates>
元素(的子元素<Polygon><outerBoundaryIs><LinearRing>
)包含每个自定义形状的定义。该定义是由经度、纬度和可选海拔高度描述的一组点,这些点确定形状的轮廓。
执行以下操作:
-
-
修改地理形状配置文件,以便 ESRI 地图可视化可以使用您的自定义形状
导航
mstrGeoShapesConfig.xml
,位于xml/config
放在插件文件夹中,然后在文本编辑器中打开它。该文件应包含如下所示示例的代码。复制<layers>
<layer id="900" title="Custom County Map Layer" ml="CustomCountyShapesFile.kml">
<shapeKeys>
<shapeKey key="name" path="/ExtendedData/Data[@name='name']/value"/>
<shapeKey key="abbr" path="/ExtendedData/Data[@name='abbreviatedName']/value"/>
<shapeKey key="id" path="/ExtendedData/Data[@name='object_id']/value"/>
</shapeKeys>
</layer>
</layers>
<shapes>
<shape id="901"
custom="true"
plugin="ConnectorForMap"
desc="Custom Counties by Name"
descWeb="mstrweb.7777n"
descFlash="mstr.6666n"
descDesktop="5555n"
roleId="9"
type="Polygon"
default="false"
shapeCat="1004"
shapeKey="name"
layerId="900"
sf="name"
sfr="2"
/>
<shape id="902"
custom="true"
plugin="ConnectorForMap"
desc="Custom Counties by Abbreviation"
descWeb="mstrweb.7777a"
descFlash="mstr.6666a"
descDesktop="5555a"
roleId="9"
type="Polygon"
default="false"
shapeCat="1004"
shapeKey="abbr"
layerId="900"
sf="name"
sfr="2"
/>
<shape id="903"
custom="true"
plugin="ConnectorForMap"
desc="Custom Counties by ID"
descWeb="mstrweb.7777i"
descFlash="mstr.6666i"
descDesktop="5555i"
roleId="9"
type="Polygon"
default="false"
shapeCat="1004"
shapeKey="id"
layerId="900"
sf="name"
sfr="2"
/>
</shapes>进行以下更改以自定义适合您的环境的地理形状配置文件。
- 为了孩子
<layer>
父元素下的元素<layers>
元素,执行以下操作:
-
为了
id
属性,将“900”替换为唯一的值(未被使用过的值) MicroStrategy 对于地图层)。该值唯一标识使用您的自定义形状的地图图层。它被引用于layerID
属性中的<shape>
元素。多种的
<shape>
元素可以使用相同的地图图层(即相同的 KML 文件),但使用不同的键来匹配形状和数据,例如名称、缩写或 ID。用于匹配的密钥由shapeKey
不同的属性<shape>
元素。每个自定义形状的匹配如下: -
每一个的价值
shapeKey
属性用于查找与中的关键属性的匹配项<shapeKey>
元素。 -
配套的
<shapeKey>
元素包含一个path
属性,它指向一个特定的<Data>
KML 文件中的元素(由name
属性中的<Data>
元素)。 -
配套的
<Data>
元素有一个子元素<Value>
元素,其值用于获取 MicroStrategy 与此自定义形状关联的数据。 -
为了
title
属性,将“自定义县地图图层”替换为描述此使用自定义形状的地图图层的值。 -
为了
ml
属性,替换“CustomCountyShapesFile.kml
" 替换为插件文件夹内 KML 文件的名称,包括相对路径。例如,使用ml="CustomCountyShapesFile.kml"
对于直接保存在插件文件夹下的文件,或使用ml="kml/CustomCountyShapesFile.kml"
对于保存在插件文件夹下名为 kml 的文件夹中的文件。
- 为了孩子
<shapeKey>
父元素下的元素<shapeKeys>
元素,执行以下操作:
-
删除任何子项
<shapeKey>
您的环境不需要的元素。在为您提供的插件中,包含其中三个元素。一个通过名称来标识形状,另一个通过缩写来标识形状,第三个通过 ID 来标识形状。 -
如果您不想使用其中一个或多个元素,请删除相应的元素。
-
如果您确实想使用其中一个或多个元素,请保留适当的元素。
-
如果您想通过不同的值来标识形状,请更改
key
属性之一<shapeKey>
元素。例如,如果您想使用名为 SMSA 的值来标识您的形状,您的代码可能如下所示:<shapeKey key="SMSA" path="/ExtendedData/Data[@name='SMSA']/value"/>
-
对于每个孩子
<shapeKey>
您的环境所需的元素:-
设置
key
属性值将用于标识<shape>
与自定义形状文件关联的元素。该值与shapeKey
对应的属性<shape>
元素。 -
如果您希望用于将数据与形状匹配的数据字段与形状的值不同<name>每个元素
<Placemark>
在 KML 文件中,设置path
属性到您要使用的数据字段的位置,使用格式/ExtendedData/Data[@name='>MyCustomShapes']/value
。例如,假设您想要使用州缩写来将自定义形状与数据相匹配,并且 KML 文件中的代码如下所示:
复制<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<Placemark>
<name>custom shape name</name>
<ExtendedData>
<Data name="abbreviatedName">
<DisplayName>Pennsylvania</DisplayName>
<Value>PA</Value>
</Data>
</ExtendedData>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<coordinates>set of custom shape coordinates</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
</Placemark>
...
</Document>
</kml>你的代码中的
mstrGeoShapesConfig.xml
文件看起来像这样:复制<layers>
<layer id="900" title="My Custom Map Layer" ml="MyCustomShapesFile.kml">
<shapeKeys>
<shapeKey key="abbr" path="/ExtendedData/Data[@name='abbreviatedName']/value"/>
</shapeKeys>
</layer>
</layers>
-
-
为了孩子<shape>父元素下的元素
<shapes>
元素,执行以下操作:-
删除任何子项
<shape>
您的环境不需要的元素。在为您提供的插件中,包含其中三个元素。一个通过名称来标识形状,另一个通过缩写来标识形状,第三个通过 ID 来标识形状。这些值由shapeKey
属性。 -
如果您不想使用其中的一个或多个,请删除相应的元素。
-
如果您确实想使用其中的一个或多个,请保留适当的元素。
-
如果您想通过不同的值来标识形状,请更改
shapeKey
属性之一<shape>
元素。例如,如果您想使用名为 SMSA 的值来标识您的形状,您的代码可能如下所示:复制<shape
...
shapeKey="SMSA"
...
/> -
对于每个孩子
<shape>
您的环境所需的元素:-
为了
id
属性,将当前值替换为唯一的值(不是已被使用的值) MicroStrategy 对于形状)。该值唯一标识此自定义形状定义。 -
为了
custom
属性,保留当前值“true”。 -
为了
plugin
属性,如果您使用的是为您提供的默认插件,请保留当前值ConnectorForMap
,或者如果您使用其他名称创建了插件,则将其设置为不同的名称。 -
为了
desc
属性,将当前值更改为有意义的描述。当您选择显示包含区域的地图时,这是在 ESRI 地图可视化属性面板的边界下拉列表中显示的值。例如,如果这些是 SMSA 标识的区域,则该值可能是desc="Regions by SMSA"
。或者,如果这些是由州缩写标识的州,则该值可能是desc="Custom States by Abbr"
。如果要本地化描述,则需要添加以下附加属性的值:-
descWeb
-
descFlash
-
descDesktop
-
-
为了
roleId
属性,使用以下值之一将当前值更改为自定义形状的地理角色:角色ID 描述 1
城市 2
状态 3
国家/地区 4
位置 5
纬度 6
经度 7
其他 8
邮政编码 9
县 -
为了
type
属性,保留“Polygon”的当前值。 -
为了
default
属性,如果您不希望这是默认形状文件,请保留当前值“false”;否则,将其设置为“true”。 -
使用
shapeCat
如果您需要更精细地识别形状,请使用属性。形状类别是一个整数,例如国家/地区为 1002,美国各州为 1003,美国县为 1004。例如,假设您选择“7”(其他)作为 roleId 属性的值,并且您希望使用 SMSA 来定义您的形状。您可以将 shapeCat 属性设置为一个不被使用的值 MicroStrategy。 -
为了
shapeKey
属性,将其设置为将用于将形状与数据进行匹配的值。例如,在上面的代码中,值是 name、id 和 desc。这就是key
对应的属性<shapeKey>
中的元素<layers>
等级制度。 -
为了
layerid
属性,将其设置为id
您用于的属性<layer>
中的元素<layers>
引用与此地图图层关联的 KML 文件的层次结构。例如,layerid="900"
。
-
-
-
- 保存更改。
- 为了孩子
-
-
重新开始 MicroStrategy Web。
-
在 VI 中使用 ESRI 地图可视化 dossier 并选择区域地图作为
Map Type
在属性面板上。 -
展开 ESRI 属性面板中的边界下拉列表。确保它包含自定义形状的描述作为选项。
-
选择适合您的自定义形状的选项。地图可视化读取在ml属性中指定的KML文件
<layer>
节点在mstrGeoShapesConfig.xml
并渲染适当的自定义形状。 -
如果您遇到问题,请查看以下故障排除提示:
-
确保您要应用可视化的报表网格具有与
<name>
元素为<Placemark>
KML 文件中的元素。 -
确保 KML 中使用的值和
mstrGeoShapesConfig.xml
插件中的文件是正确的情况。所有这些值都区分大小写。 -
确保每个元素都有结束标记。
-
默认情况下, MicroStrategy Cloud 客户无法使用基于云的自定义 ESRI 地图;他们使用 ESRI 公共服务器。如果他们想使用 ESRI 公共服务器,则必须 启用客户端身份验证。
-
-