MicroStrategy ONE
場所の名前の相違の解決
地図ビジュアリゼーションを使用して MicroStrategy データを表示するには、ESRI で使用される場所の名前が、MicroStrategy で使用される場所の名前 (地理アトリビュート) と一意に一致する必要があります。ただし、地理的場所に使用される名前は、常に一意であるとも、ESRI が使用する名前と同じであるとも限りません。
-
複数の異なる場所の第一の場所名が同じで、それらを一意にするために第二の場所の名前が必要な場合があります。たとえば、米国では多くの郡が「Washington」 (ワシントン郡) という名前です。同じ第一の場所名が複数の州に存在するので、この郡の名前は 1 つの州内では一意ですが、国内では一意ではありません。このような郡を一意に識別するには、郡を州の名前で修飾する必要があります。こうすると、Washington AL (アラバマ州ワシントン郡) は Washington GA (ジョージア州ワシントン郡) や Washington PA (ペンシルベニア州ワシントン郡) とは特異的に異なるようになります。
-
ESRI は、MicroStrategy で使用される名前とは異なる場所の名前を使用する場合があります。たとえば、ESRI ではロシア国は "Russian Federation" (ロシア連邦) と呼ばれますが、MicroStrategy では "Russia" (ロシア) と呼ばれます。
場所名の違いを解決するために、MicroStrategyは、mapNameConversions.xml
。この構成ファイルに、不一致が生じた場合に、MicroStrategy の場所の名前を地図ベンダーによって使用される場所の名前にマップして、一致したものに対して必要に応じて第二の場所の名前を追加できるようなルールを定義することができます。特定の地図ベンダー (地図シェイプ サーバー)、特定の種類の境界を含む地図、およびマッピングに特殊な地理アトリビュートを使用する地図に対して、このルールの適用を制限することができます。
すぐに使えるmapNameConversions.xml
ファイルは以下のとおりです。それは、<elem>
ノード。
<?xml version="1.0" encoding="UTF-8"?>
<nameConversions>
<!--
Scope for ESRI - 1
Scope for MSTR - 2
Scope for Mapbox - 4
-->
<elem id="1" n="Russia" scope="1">Russian Federation</elem>
</nameConversions>
標準の名前変換設定ファイルで設定されたルールを上書きして新しいルールを追加するには、カスタムmapNameConversions.xml
以下の説明に従って、ファイルを作成してプラグインに追加します。
-
作成する
mapNameConversions.xml
下記の内容のファイルをコピーして貼り付けてくださいWEB-INF/xml/config
プラグインフォルダ内。コピー<?xml version="1.0" encoding="UTF-8"?>
<nameConversions>
<!--
Scope for ESRI - 1
Scope for MSTR - 2
Scope for Mapbox - 4
-->
<!--
... add <elem> nodes to define new rules or override existing rules ...
-->
</nameConversions>
-
このファイルに独自のルールを追加します。各ルールは別々になります
<elem>
ルールを定義する属性を含む要素。作成のお手伝いについては<elem>
要素については、ルールの定義そしてルール解決。「ルールの定義」では、ルールを定義するために使用できるアトリビュートについて説明し、「ルールの解決」では、ルールがどのように適用されるかを説明します。 -
変更を保存します。
ルールの定義
各ルールは<elem>
要素には、次の表に示すように、ルールを定義する属性が含まれています。
親エレメント
|
ノード数 | 説明 |
---|---|---|
|
1 |
<nameConversions> エレメントは地図の名前変換構成ファイルのルート ノードです。これは、名前変換規則を定義する <elem> ノードの親ノードです。 |
1 以上 |
<elem> エレメントは、1 つの名前変換規則を定義します。このエレメントの値は、地図シェイプ サーバーが使用する場所の名前です。この値が、MicroStrategy の場所の名前 (このエレメントの n アトリビュートによって指定される) にマップされます。以下のアトリビュートを使用して、名前変換規則を定義することができます。
1 = ESRI がシェイプを提供します (シェイプは ESRI サーバーに保存されます)
|
ルールの解決
ESRI マップ ビジュアリゼーションが実行される前に、プラグイン内のルールは、事前設定された構成ファイル内のルールと結合されます。両方の場所に同じルールが存在する場合は、プラグイン内のルールが、事前設定された構成ファイル内のルールを上書きします。
sfv アトリビュートと ShapeId アトリビュートは、DHTML ではなく Flash 地図でサポートされます。
-
ルールが結合された後、ビジュアリゼーションは、最初、すべてのルール内で scope アトリビュートを探します。scope アトリビュートがルール内で見つかった場合は、ビジュアリゼーションは scope の一致の有無をチェックします。たとえば、scope = 1 で、ESRI マップ ビジュアリゼーションが MicroStrategy Desktop または MicroStrategy Web で ESRI を地図シェイプ サーバーとして使用して表示されている場合は、一致が存在します。また、scope = 2 で、ESRI マップ ビジュアリゼーションがモバイル デバイスで表示されている場合も、一致が存在します。ルールに scope アトリビュートがない場合は、そのルールはすべての地図シェイプ サーバーに適用されます。scope と、ビジュアリゼーションが表示されている環境とが一致しない場合、ルールは無視されます。ビジュアリゼーションは、scope が一致するものと scope アトリビュートを持たないものだけを含むように、ルールをフィルターします。
-
その後ビジュアリゼーションはデータの各行を調べて、すべてのルール (<elem> ノード) 内に MicroStrategy データ内の第一の場所名 (n アトリビュートの値) が一致するものがあるかどうかを確認します。一致するものがない場合は、次のデータ行に移動して、第一の場所名が一致するルールを探します。一致するものがあった場合は、現在のデータ行で、第一の場所名が一致するもののみを含むように、ルールをフィルターします。
-
一致する名前変換規則が 1 つだけある場合は、ビジュアリゼーションはそれを適用します。MicroStrategy データ内の第一の場所名 (n アトリビュートの値) の代わりに、<elem> ノードの値として提供される場所の名前が使用されます。複数のルールがある場合は、地図ビジュアリゼーションは、最初に最も制限の厳しいルールを適用しようとします。次のリストに、規則の適用を制限するために使用されるアトリビュートを、制限が厳しい順に示します。
- shapeID
- role
- sfv
shapeID アトリビュートが一致するルールが見つかった場合は、ビジュアリゼーションはすぐにそれを適用します。見つからなかった場合は、role アトリビュートを持つルールを探します。一致するものが見つかるまで、アトリビュートのリストを下へ向かって探し続けます。ルールを適用して、次のデータ行に移動します。
サンプルのルール
以下は、サンプルのルールです。
<elem id="1" n="Russia">Democratic Russia</elem>
<elem id="2" n="Russia" scope="1">Russian Federation</elem>
<elem id="3" n="Russia" scope="1" shapeId="400">Democratic Russia</elem>
<elem id="4" n="Russia" scope="1" shapeId="400" role="3">Russian Federation</elem>
<elem id="5" n="Fairfax" sfv="Virginia" role="9">Fairfax County</elem>
<elem id="6" n="Fairfax" sfv="Virginia" shapeId="600">Fairfax County</elem>
<elem id="7" n="Fairfax" sfv="VA" shapeId="600">Fairfax County</elem>
<elem id="8" n="St. Thomas" sfv="USA" role="3">St. Thomas, Virgin Island</elem>
<elem id="9" n="Saint Thomas" sfv="USA" role="3">St. Thomas, Virgin Island</elem>
<elem id="10" n="Delhi" sfv="India">New Delhi</elem>
各サンプルのルールについての説明は、下記に示します。
ルール1 : <elem id="1" n="Russia">Democratic Russia</elem>
意味: マップ ビジュアライゼーションで「ロシア」(MicroStrategy データ内) という名前が見つかるたびに、シェイプ サーバーからデータを取得するために「民主ロシア」という名前を使用する必要があります。
これは、シェイプ サーバーに関係なく、すべての地図ビジュアリゼーションに適用されるので、普遍的ルールと呼ばれます。scope アトリビュートはありません。
ルール2:<elem id="2" n="Russia" scope="1">Russian Federation</elem>
意味: ESRI マップ ビジュアライゼーションで「ロシア」という名前 (MicroStrategy データ内) が検出されるたびに、ESRI シェイプ サーバーからデータを取得するために「ロシア連邦」という名前を使用する必要があります。
このルールには、ESRI をシェイプ サーバーとして使用する地図ビジュアリゼーションへのルールの適用を制限する scope アトリビュートがあります。
ルール3 : <elem id="3" n="Russia" scope="1" shapeId="400">Democratic Russia</elem>
意味: 世界の国々の境界線を示す ESRI マップ ビジュアライゼーションで「ロシア」という名前 (MicroStrategy データ内) が見つかるたびに、ESRI シェイプ サーバーからデータを取得するために「民主ロシア」という名前を使用する必要があります。
このルールには、ルールの適用を制限する、scope と shapeId という 2 つのアトリビュートがあります。scope アトリビュートは、シェイプ サーバーとして ESRI を使用する地図ビジュアリゼーションに対するルールを制限し、shapeId アトリビュートは世界の国々の境界を含む地図に対するルールを制限します。
ルール4 : <elem id="4" n="Russia" scope="1" shapeId="400" role="3">Russian Federation</elem>
意味: 世界の国々の境界と主要な地理属性としての国を含む ESRI マップ ビジュアライゼーションで「ロシア」という名前 (MicroStrategy データ内) が見られる場合、ESRI シェイプ サーバーからデータを取得するには「ロシア連邦」という名前を使用する必要があります。
このルールには、ルールの適用を制限する、scope、shapeId、および role という 3 つのアトリビュートがあります。scope アトリビュートは、シェイプ サーバー として ESRI を使用する地図ビジュアリゼーションに対するルールを制限し、shapeId アトリビュートは、世界の国々の境界を含む地図に対するルールを制限し、role アトリビュートは、"Country" を第一地理アトリビュートとする地図に対するルールを制限します。
ルール5 : <elem id="4" n="Fairfax" sfv="Virginia" role="9">Fairfax County</elem>
意味: 郡を主要な地理属性とするマップ ビジュアライゼーションで、郡の値として「Fairfax」という名前、州の値として「Virginia」という名前 (MicroStrategy データ内) が認識される場合は、シェイプ サーバーからデータを取得するために、「Fairfax」ではなく「Fairfax County」という名前を使用する必要があります。
このルールには、ルールの適用を制限する、sfv と role という 2 つのアトリビュートがあります。sfv アトリビュートは Virginia 州のデータに対するルールを制限し、role アトリビュートは "County" を第一地理アトリビュートとする地図に対するルールを制限します。scope アトリビュートがないので、どのシェイプ サーバーからでもデータを取得できます。
ルール6 : <elem id="5" n="Fairfax" sfv="Virginia" shapeId="600">Fairfax County</elem>
意味: 米国の郵便番号を境界とするマップ ビジュアライゼーションで、郡として「Fairfax」、州として「Virginia」という名前が認識される場合 (MicroStrategy データ内)、シェイプ サーバーからデータを取得するには、「Fairfax」ではなく「Fairfax County」という名前を使用する必要があります。
このルールには、ルールの適用を制限する、sfv と role という 2 つのアトリビュートがあります。sfv アトリビュートは Virginia 州のデータに対するルールを制限し、shapeId アトリビュートは米国の county の境界を持つ地図に対するルールを制限します。
ルール7 : <elem id="6" n="Fairfax" sfv="VA" shapeId="600">Fairfax County</elem>
意味: 米国の郡を境界とするマップ ビジュアライゼーションで、郡として「Fairfax」という名前、州として「VA」という名前 (MicroStrategy データ内) が認識される場合は、シェイプ サーバーからデータを取得するために、「Fairfax」ではなく「Fairfax County」という名前を使用する必要があります。
このルールには、ルールの適用を制限する、sfv と role という 2 つのアトリビュートがあります。sfv アトリビュートは省略形 "VA" (Virginia) という州のデータに対するルールを制限し、shapeId アトリビュートは米国の county の境界を含む地図に対するルールを制限します。
ルール8 : <elem id="7" n="St. Thomas" sfv="USA" role="3">St. Thomas, Virgin Island</elem>
意味: 国を主要な地理属性とするマップ ビジュアライゼーションで、都市名として「St. Thomas」、国名として「USA」が認識される場合 (MicroStrategy データ内)、シェイプ サーバーからデータを取得するには、St. Thomas ではなく「St. Thomas, Virgin Islands」という名前を使用する必要があります。
このルールには、ルールの適用を制限する、sfv と role という 2 つのアトリビュートがあります。sfv アトリビュートは USA という国に対するルールを制限し、role アトリビュートは "Country" を第一地理アトリビュートとする地図に対するルールを制限します。
ルール9 : <elem id="8" n="Saint Thomas" sfv="USA" role="3">St. Thomas, Virgin Island</elem>
意味: 国を主要な地理属性とするマップ ビジュアライゼーションで、都市名として「Saint Thomas」、国名として「USA」が認識される場合 (MicroStrategy データ内)、シェイプ サーバーからデータを取得するには、St. Thomas ではなく「St. Thomas, Virgin Islands」という名前を使用する必要があります。
このルールには、ルールの適用を制限する、sfv と role という 2 つのアトリビュートがあります。sfv アトリビュートは USA という国に対するルールを制限し、role アトリビュートは "Country" を第一地理アトリビュートとする地図に対するルールを制限します。
ルール10 : <elem id="9" n="Delhi" sfv="India">New Delhi</elem>
意味: マップ ビジュアライゼーションで、文字列「Delhi」が都市として、「India」が国として認識される場合 (MicroStrategy データ内)、シェイプ サーバーからデータを取得するには、文字列「Delhi」ではなく「New Delhi」を使用する必要があります。
このルールには、"India" という国に対するルールの適用を制限する sfv アトリビュートがあります。
ルール解決の例
場所名「ロシア」には、ルール 1、2、3、4 という複数のルールがあります。
-
ルール 1 は "Russia" という第一の場所名に適用される普遍的ルールで、他の制限はありません。
-
ルール 2 は "Russia" という場所の名前に適用されますが、ESRI を地図シェイプ サーバーとする (scope = "1") ビジュアリゼーションに対するルールの適用を制限します。
-
ルール 3 は、"Russia" という場所の名前に適用されますが、さらに限定的です。このルールは、ESRI を地図シェイプ サーバーとする (scope = "1") ビジュアリゼーションに対するルールの適用を制限しますが、米国の州名による境界を使用して表示される (shapeId = "400") データに対する適用も制限します。
-
ルール 4 は、"Russia" という場所の名前に適用されますが、最も限定的です。このルールは、ESRI を地図シェイプ サーバーとする (scope = "1") ビジュアリゼーション、および米国の州名による境界を使用して表示される (shapeId = "400") データに対する適用を制限しますが、"Country" を第一地理アトリビュートとする (role = "3") ビジュアリゼーションに対する適用も制限します。
以下は、上記のサンプル ルールを使用した、"Russia" という名前のルール解決の例です。
-
プラグインにルール 1 のみが含まれている場合は、それを使用して、事前設定された名前変換構成ファイル内のルール 1 を上書きします。プラグインのルール 1 は。すべての地図ビジュアリゼーションに適用される普遍的ルールであるため、"Russia" という場所の名前を含むすべてのデータ行に適用されます。
-
プラグインにルール 1 とルール 2 の両方が含まれる場合は、ルール 2 がルール 1 より限定的なので、ビジュアリゼーションは最初にルール 2 を適用しようとします。ルール 2 には scope アトリビュートがあり、scope を含むルールは常に普遍的ルールより優先します。ESRI が地図ビジュアリゼーションのためのシェイプ サーバーである (scope が一致する) 場合、ルール 2 が "Russia" という場所の名前を持つすべてのデータ行に適用されます。そうでない場合は、プラグインのルール 1 が適用されます。
-
プラグインにルール 1、ルール 2、およびルール 3 が含まれる場合は、ルール 3 がルール 2 より限定的なので、ビジュアリゼーションは最初にルール 3 を適用しようとします。ルール 3 には、シンプルな scope 制限より限定的な shape アトリビュートがあるためです。ESRI が地図ビジュアリゼーションのためのシェイプ サーバーであり (scope が一致する)、現在のシェイプ ファイルが "世界の国々" である (shapeId="400") 場合、ルール 3 が "Russia" という場所の名前を持つすべてのデータ行に適用されます。そうでない場合は、ルール 2 を適用しようとします。ルール 2 が失敗すると、プラグインからルール 1 が適用されます。
-
プラグインにルール 3 が含まれている場合は、ルール 3 は名前変換構成ファイル内のルール 1 より限定的なので、ビジュアリゼーションは最初にルール 3 を適用しようとします。ルール 3 には、シンプルな scope 制限より限定的な shapeId アトリビュートがあるためです。ESRI が地図ビジュアリゼーションのためのシェイプ サーバーであり (scope が一致する)、現在のシェイプ ファイルが "世界の国々" である (shapeId="400") 場合、ルール 3 が "Russia" という場所の名前を持つすべてのデータ行に適用されます。そうでない場合は、事前設定された名前変換構成ファイルからルール 1 が適用されます。
-
プラグインにルール 1、ルール 2、ルール 3、およびルール 4 が含まれる場合は、ルール 4 が最も限定的なので、ビジュアリゼーションは最初にルール 4 を適用しようとします。ルール 4 には、シェイプ アトリビュートより限定的な role アトリビュートがあるためです。ESRI が地図ビジュアリゼーションのためのシェイプ サーバーであり (scope が一致する)、地理アトリビュートが "County" (role="3") である場合、ルール 4 が "Russia" という場所の名前 (第一地理アトリビュートの値) を持つすべてのデータ行に適用されます。そうでない場合は、ルール 3 を適用しようとします。ルール 3 が失敗すると、ルール 2 を適用しようとします。ルール 2 が失敗すると、プラグインからルール 1 が適用されます。