Compare commits
11 Commits
0.0.3
...
8da46c0511
Author | SHA1 | Date | |
---|---|---|---|
8da46c0511 | |||
75b5d7708c | |||
5b2177a795 | |||
8cb33dca5f | |||
ae2e0af18a | |||
2ac5a3d4f0 | |||
5f78a1afde | |||
ef5cf78a03 | |||
b60e62af70 | |||
3e59fe1462 | |||
4b4bf5ed65 |
@@ -1,3 +1,3 @@
|
||||
using System.Reflection;
|
||||
|
||||
[assembly: AssemblyVersion("0.0.3")]
|
||||
[assembly: AssemblyVersion("0.0.5")]
|
||||
|
@@ -13,6 +13,8 @@ namespace Cryville.EEW.Unity {
|
||||
bool DoDisplayTimeZone,
|
||||
bool DoSwitchBackToHistory,
|
||||
|
||||
string OverrideDisplayCulture,
|
||||
|
||||
IReadOnlyCollection<EventSourceConfig> EventSources
|
||||
) {
|
||||
public static Config Default => new(
|
||||
@@ -25,6 +27,8 @@ namespace Cryville.EEW.Unity {
|
||||
true,
|
||||
true,
|
||||
|
||||
"",
|
||||
|
||||
new List<EventSourceConfig> {
|
||||
new JMAAtomEventSourceConfig(Array.Empty<string>()),
|
||||
new UpdateCheckerEventSourceConfig(),
|
||||
@@ -54,7 +58,7 @@ namespace Cryville.EEW.Unity {
|
||||
record NOAAEventSourceConfig([property: JsonRequired] string Subtype) : EventSourceConfig;
|
||||
record UpdateCheckerEventSourceConfig : EventSourceConfig;
|
||||
record USGSQuakeMLEventSourceConfig([property: JsonRequired] string Subtype) : EventSourceConfig;
|
||||
record WolfxEventSourceConfig(IReadOnlyCollection<string> Filter = null, bool IsFilterWhitelist = false) : EventSourceConfig;
|
||||
record WolfxEventSourceConfig(IReadOnlyCollection<string> Filter = null, bool IsFilterWhitelist = false, bool UseRawCENCLocationName = false) : EventSourceConfig;
|
||||
|
||||
[JsonSerializable(typeof(Config))]
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
|
@@ -17,19 +17,24 @@ namespace Cryville.EEW.Unity.Map {
|
||||
GameObject m_prefabTile;
|
||||
[SerializeField]
|
||||
GameObject m_prefabBitmapHolder;
|
||||
[SerializeField]
|
||||
int m_maxMapTileZoom = 10;
|
||||
[SerializeField]
|
||||
bool m_isEditor;
|
||||
|
||||
readonly MapTileCacheManager _tiles = new();
|
||||
MapTileCacheManager _tiles;
|
||||
float _elementLayerZ;
|
||||
|
||||
void Start() {
|
||||
_camera = GetComponent<Camera>();
|
||||
_tiles = m_isEditor ? new EditorMapTileCacheManager() : new MapTileCacheManager();
|
||||
_tiles.ExtraCachedZoomLevel = 20;
|
||||
_tiles.Parent = m_layerTile;
|
||||
_tiles.PrefabTile = m_prefabTile;
|
||||
_tiles.PrefabBitmapHolder = m_prefabBitmapHolder;
|
||||
_tiles.CacheDir = Application.temporaryCachePath;
|
||||
_camera.orthographicSize = 0.5f / MathF.Max(1, (float)_camera.pixelWidth / _camera.pixelHeight);
|
||||
_elementLayerZ = m_layerElement.transform.position.z;
|
||||
if (m_layerElement != null) _elementLayerZ = m_layerElement.transform.position.z;
|
||||
_mapElementUpdated = true;
|
||||
}
|
||||
void OnDestroy() {
|
||||
@@ -74,7 +79,7 @@ namespace Cryville.EEW.Unity.Map {
|
||||
}
|
||||
}
|
||||
void ZoomToMapElement() {
|
||||
var aabb = m_layerElement.AABB;
|
||||
var aabb = m_layerElement != null ? m_layerElement.AABB : null;
|
||||
if (aabb is not RectangleF b) return;
|
||||
if (b.Width * _camera.pixelHeight < _camera.pixelWidth * b.Height)
|
||||
Scale = b.Height;
|
||||
@@ -97,26 +102,30 @@ namespace Cryville.EEW.Unity.Map {
|
||||
transform.localPosition = new(nx, Math.Clamp(transform.position.y, h / 2 - 1, -h / 2), -20);
|
||||
|
||||
var bounds = new Bounds((Vector2)transform.position, new Vector2(w, h));
|
||||
int zoom = Math.Clamp((int)Math.Log(vz / 256, 2) + 1, 0, 10);
|
||||
int zoom = Math.Clamp((int)Math.Log(vz / 256, 2) + 1, 0, m_maxMapTileZoom);
|
||||
int zoomScale = 1 << zoom;
|
||||
_tiles.MoveTo(
|
||||
new(Mathf.FloorToInt(bounds.min.x * zoomScale), Mathf.FloorToInt(-bounds.max.y * zoomScale), zoom),
|
||||
new(Mathf.CeilToInt(bounds.max.x * zoomScale), Mathf.CeilToInt(-bounds.min.y * zoomScale), zoom)
|
||||
);
|
||||
|
||||
m_layerElement.Scale = h;
|
||||
m_layerElementSub.Scale = h;
|
||||
if (m_layerElement != null) {
|
||||
m_layerElement.Scale = h;
|
||||
}
|
||||
if (m_layerElementSub != null) {
|
||||
m_layerElementSub.Scale = h;
|
||||
|
||||
if (nx - w / 2 < 0) {
|
||||
m_layerElementSub.gameObject.SetActive(true);
|
||||
m_layerElementSub.transform.localPosition = new(-1, 0, _elementLayerZ);
|
||||
}
|
||||
else if (nx + w / 2 > 1) {
|
||||
m_layerElementSub.gameObject.SetActive(true);
|
||||
m_layerElementSub.transform.localPosition = new(1, 0, _elementLayerZ);
|
||||
}
|
||||
else {
|
||||
m_layerElementSub.gameObject.SetActive(false);
|
||||
if (nx - w / 2 < 0) {
|
||||
m_layerElementSub.gameObject.SetActive(true);
|
||||
m_layerElementSub.transform.localPosition = new(-1, 0, _elementLayerZ);
|
||||
}
|
||||
else if (nx + w / 2 > 1) {
|
||||
m_layerElementSub.gameObject.SetActive(true);
|
||||
m_layerElementSub.transform.localPosition = new(1, 0, _elementLayerZ);
|
||||
}
|
||||
else {
|
||||
m_layerElementSub.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
15
Assets/Cryville.EEW.Unity/Map/EditorMapTileCacheManager.cs
Normal file
15
Assets/Cryville.EEW.Unity/Map/EditorMapTileCacheManager.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using Cryville.EEW.Core.Map;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cryville.EEW.Unity.Map {
|
||||
sealed class EditorMapTileCacheManager : MapTileCacheManager {
|
||||
protected override MapTileBitmapHolder CreateBitmapHolder(MapTileIndex index) => new(
|
||||
index,
|
||||
GameObject.Instantiate(PrefabBitmapHolder, Parent, false),
|
||||
new($"https://tile.openstreetmap.org/{index.Z}/{index.NX}/{index.NY}.png")
|
||||
);
|
||||
|
||||
protected override string GetCacheFilePath(MapTileIndex index) => Path.Combine(CacheDir, $"map_editor/{index.Z}/{index.NX}/{index.NY}");
|
||||
}
|
||||
}
|
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 478198b8ecc0082449fa3f68795174a9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@@ -7,10 +7,12 @@ using UnityEngine;
|
||||
|
||||
namespace Cryville.EEW.Unity.Map {
|
||||
sealed class MapTileBitmapHolder : Core.Map.MapTileBitmapHolder {
|
||||
MapTileBitmapHolderBehaviour _behaviour;
|
||||
readonly MapTileBitmapHolderBehaviour _behaviour;
|
||||
readonly Uri _uri;
|
||||
|
||||
public MapTileBitmapHolder(MapTileIndex index, GameObject gameObject) : base(index) {
|
||||
public MapTileBitmapHolder(MapTileIndex index, GameObject gameObject, Uri uri) : base(index) {
|
||||
_behaviour = gameObject.GetComponent<MapTileBitmapHolderBehaviour>();
|
||||
_uri = uri;
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing) {
|
||||
@@ -20,8 +22,7 @@ namespace Cryville.EEW.Unity.Map {
|
||||
}
|
||||
}
|
||||
|
||||
protected override Uri GetUri() =>
|
||||
new($"https://server.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapServer/tile/{Index.Z}/{Index.NY}/{Index.NX}");
|
||||
protected override Uri GetUri() => _uri;
|
||||
|
||||
protected override Task LoadBitmap(FileInfo file, CancellationToken cancellationToken) {
|
||||
_behaviour.Load(file);
|
||||
|
@@ -45,13 +45,13 @@ namespace Cryville.EEW.Unity.Map {
|
||||
_isReady = false;
|
||||
}
|
||||
if (_req == null || !_req.isDone) return;
|
||||
if (_texHandler.isDone) {
|
||||
if (_texHandler.isDone && _texHandler.texture != null) {
|
||||
_tex = _texHandler.texture;
|
||||
_tex.wrapMode = TextureWrapMode.Clamp;
|
||||
_sprite = Sprite.Create(_tex, new Rect(0, 0, _tex.width, _tex.height), Vector2.zero, _tex.height, 0, SpriteMeshType.FullRect, Vector4.zero, false);
|
||||
}
|
||||
else {
|
||||
Debug.LogError(_req.error);
|
||||
Debug.LogError(_texHandler.error);
|
||||
_localFile.Delete();
|
||||
}
|
||||
_req.Dispose();
|
||||
|
@@ -4,7 +4,7 @@ using System.IO;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cryville.EEW.Unity.Map {
|
||||
sealed class MapTileCacheManager : MapTileCacheManager<MapTileBitmapHolder> {
|
||||
class MapTileCacheManager : MapTileCacheManager<MapTileBitmapHolder> {
|
||||
public GameObject PrefabTile { get; set; }
|
||||
public GameObject PrefabBitmapHolder { get; set; }
|
||||
|
||||
@@ -12,7 +12,11 @@ namespace Cryville.EEW.Unity.Map {
|
||||
|
||||
public string CacheDir { get; set; }
|
||||
|
||||
protected override MapTileBitmapHolder CreateBitmapHolder(MapTileIndex index) => new(index, GameObject.Instantiate(PrefabBitmapHolder, Parent, false));
|
||||
protected override MapTileBitmapHolder CreateBitmapHolder(MapTileIndex index) => new(
|
||||
index,
|
||||
GameObject.Instantiate(PrefabBitmapHolder, Parent, false),
|
||||
new($"https://server.arcgisonline.com/ArcGIS/rest/services/Ocean/World_Ocean_Base/MapServer/tile/{index.Z}/{index.NY}/{index.NX}")
|
||||
);
|
||||
|
||||
protected override string GetCacheFilePath(MapTileIndex index) => Path.Combine(CacheDir, $"map/{index.Z}/{index.NX}/{index.NY}");
|
||||
|
||||
|
219
Assets/Cryville.EEW.Unity/Map/RegionEditor.cs
Normal file
219
Assets/Cryville.EEW.Unity/Map/RegionEditor.cs
Normal file
@@ -0,0 +1,219 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cryville.EEW.Unity.Map {
|
||||
sealed class RegionEditor : MonoBehaviour {
|
||||
QuadTreeNode _root;
|
||||
|
||||
[SerializeField] CameraController m_cameraController;
|
||||
[SerializeField] GameObject m_regionViewPrefab;
|
||||
|
||||
[SerializeField] TMP_Text m_textSelectedInfo;
|
||||
[SerializeField] TMP_Text m_textHoveredInfo;
|
||||
[SerializeField] TMP_InputField m_inputId;
|
||||
|
||||
readonly Dictionary<QuadTreeNode, RegionView> _map = new();
|
||||
|
||||
void Start() {
|
||||
var file = new FileInfo(Path.Combine(Application.persistentDataPath, "regions.json"));
|
||||
if (file.Exists) {
|
||||
using var stream = file.OpenRead();
|
||||
_root = JsonSerializer.Deserialize<QuadTreeNode>(stream);
|
||||
}
|
||||
else {
|
||||
_root = NewNode();
|
||||
}
|
||||
BuildView(_root);
|
||||
}
|
||||
|
||||
public void Save() {
|
||||
var file = new FileInfo(Path.Combine(Application.persistentDataPath, "regions.json"));
|
||||
using var stream = file.Open(FileMode.Create);
|
||||
JsonSerializer.Serialize(stream, _root);
|
||||
}
|
||||
|
||||
void BuildView(QuadTreeNode node) {
|
||||
var view = Instantiate(m_regionViewPrefab, transform, false).GetComponent<RegionView>();
|
||||
view.Init(node.X, node.Y, node.Z);
|
||||
view.Id = node.Data.Id;
|
||||
view.IsLeaf = node.Children == null;
|
||||
_map.Add(node, view);
|
||||
BuildChildViews(node);
|
||||
}
|
||||
|
||||
void BuildChildViews(QuadTreeNode node) {
|
||||
if (node.Children == null) return;
|
||||
foreach (var child in node.Children) {
|
||||
BuildView(child);
|
||||
}
|
||||
}
|
||||
|
||||
void DestroyChildViews(QuadTreeNode node) {
|
||||
if (node.Children == null) return;
|
||||
foreach (var child in node.Children) {
|
||||
Destroy(_map[child].gameObject);
|
||||
_map.Remove(child);
|
||||
}
|
||||
}
|
||||
|
||||
QuadTreeNode _hoveredNode;
|
||||
QuadTreeNode _selectedNode;
|
||||
Vector3? _ppos;
|
||||
void Update() {
|
||||
var pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
|
||||
pos.y += 1;
|
||||
var hoveredNode = _root.Get(pos);
|
||||
if (hoveredNode != _hoveredNode) {
|
||||
HoverNode(hoveredNode);
|
||||
}
|
||||
if (Input.GetMouseButtonDown(0)) {
|
||||
_ppos = Input.mousePosition;
|
||||
}
|
||||
if (Input.GetMouseButton(0) && _ppos is Vector3 pos0) {
|
||||
if (Input.mousePosition != pos0) {
|
||||
_ppos = null;
|
||||
}
|
||||
}
|
||||
if (hoveredNode == null) return;
|
||||
if (Input.GetMouseButtonUp(0) && _ppos != null) {
|
||||
SelectNode(hoveredNode);
|
||||
_ppos = null;
|
||||
}
|
||||
if (m_inputId.isFocused)
|
||||
return;
|
||||
if (Input.GetKeyUp(KeyCode.A)) {
|
||||
MergeNode(hoveredNode);
|
||||
}
|
||||
if (Input.GetKeyUp(KeyCode.S)) {
|
||||
SplitNode(hoveredNode);
|
||||
}
|
||||
if (Input.GetKeyUp(KeyCode.C)) {
|
||||
m_inputId.text = hoveredNode.Data.Id;
|
||||
}
|
||||
if (Input.GetKeyUp(KeyCode.V)) {
|
||||
hoveredNode.Data.Id = m_inputId.text;
|
||||
_map[hoveredNode].Id = hoveredNode.Data.Id;
|
||||
}
|
||||
}
|
||||
void HoverNode(QuadTreeNode node) {
|
||||
if (_hoveredNode != null) {
|
||||
_map[_hoveredNode].IsHovered = false;
|
||||
}
|
||||
_hoveredNode = node;
|
||||
if (_hoveredNode != null) {
|
||||
_map[_hoveredNode].IsHovered = true;
|
||||
m_textHoveredInfo.text = string.Format(CultureInfo.InvariantCulture, "<Hovered>\nZ: {2}, XY: ({0}, {1})\nD: {3}", node.X, node.Y, node.Z, node.Data.Id);
|
||||
}
|
||||
else {
|
||||
m_textHoveredInfo.text = "";
|
||||
}
|
||||
}
|
||||
void SelectNode(QuadTreeNode node) {
|
||||
if (_selectedNode != null) {
|
||||
_map[_selectedNode].IsSelected = false;
|
||||
}
|
||||
_selectedNode = node;
|
||||
if (_selectedNode != null) {
|
||||
_map[_selectedNode].IsSelected = true;
|
||||
m_textSelectedInfo.text = string.Format(CultureInfo.InvariantCulture, "<Selected>\nZ: {2}, XY: ({0}, {1})\nD: {3}", node.X, node.Y, node.Z, node.Data.Id);
|
||||
}
|
||||
else {
|
||||
m_textSelectedInfo.text = "";
|
||||
}
|
||||
}
|
||||
void MergeNode(QuadTreeNode node) {
|
||||
var parent = node.Parent;
|
||||
if (parent == null)
|
||||
return;
|
||||
DestroyChildViews(parent);
|
||||
_map[parent].IsLeaf = true;
|
||||
parent.Merge();
|
||||
_hoveredNode = null;
|
||||
if (_selectedNode != null && !_map.ContainsKey(_selectedNode)) {
|
||||
_selectedNode = null;
|
||||
}
|
||||
}
|
||||
void SplitNode(QuadTreeNode node) {
|
||||
node.Split();
|
||||
_map[node].IsLeaf = false;
|
||||
BuildChildViews(node);
|
||||
}
|
||||
|
||||
static QuadTreeNode NewNode() => new() { Data = new("") };
|
||||
|
||||
sealed class QuadTreeNode {
|
||||
QuadTreeNode[] m_children;
|
||||
public QuadTreeNode[] Children {
|
||||
get => m_children;
|
||||
set {
|
||||
if (m_children != null) {
|
||||
foreach (var child in m_children) {
|
||||
child.DetachFromParent();
|
||||
}
|
||||
}
|
||||
m_children = value;
|
||||
UpdateChildren();
|
||||
}
|
||||
}
|
||||
QuadTreeNode m_parent;
|
||||
[JsonIgnore] public QuadTreeNode Parent => m_parent;
|
||||
void AttachToParent(QuadTreeNode parent, int index) {
|
||||
if (m_parent != null && m_parent != parent)
|
||||
throw new InvalidOperationException("Node already in a tree.");
|
||||
m_parent = parent;
|
||||
X = (parent.X << 1) | (index is 0 or 3 ? 1 : 0);
|
||||
Y = (parent.Y << 1) | (index is 0 or 1 ? 1 : 0);
|
||||
Z = parent.Z + 1;
|
||||
UpdateChildren();
|
||||
}
|
||||
void DetachFromParent() => m_parent = null;
|
||||
void UpdateChildren() {
|
||||
if (m_children != null) {
|
||||
for (int i = 0; i < m_children.Length; i++) {
|
||||
m_children[i].AttachToParent(this, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
[JsonIgnore] public int X { get; private set; }
|
||||
[JsonIgnore] public int Y { get; private set; }
|
||||
[JsonIgnore] public int Z { get; private set; }
|
||||
public RegionData Data { get; set; }
|
||||
|
||||
public QuadTreeNode Get(Vector2 pos) {
|
||||
if ((pos.x is < 0 or >= 1) || (pos.y is < 0 or >= 1))
|
||||
return null;
|
||||
if (m_children == null)
|
||||
return this;
|
||||
Vector2 subPos = pos * 2;
|
||||
subPos.x %= 1;
|
||||
subPos.y %= 1;
|
||||
return pos.x >= 0.5f
|
||||
? (pos.y >= 0.5f ? m_children[0] : m_children[3]).Get(subPos)
|
||||
: (pos.y >= 0.5f ? m_children[1] : m_children[2]).Get(subPos);
|
||||
}
|
||||
|
||||
public void Merge() {
|
||||
Children = null;
|
||||
}
|
||||
|
||||
public void Split() {
|
||||
Children = new QuadTreeNode[] {
|
||||
new() { Data = Data.Copy() },
|
||||
new() { Data = Data.Copy() },
|
||||
new() { Data = Data.Copy() },
|
||||
new() { Data = Data.Copy() },
|
||||
};
|
||||
}
|
||||
}
|
||||
sealed record RegionData(string Id) {
|
||||
public string Id { get; set; } = Id;
|
||||
public RegionData Copy() => (RegionData)MemberwiseClone();
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Cryville.EEW.Unity/Map/RegionEditor.cs.meta
Normal file
11
Assets/Cryville.EEW.Unity/Map/RegionEditor.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fd7b70d11ebfe324e830806e394cc334
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
68
Assets/Cryville.EEW.Unity/Map/RegionView.cs
Normal file
68
Assets/Cryville.EEW.Unity/Map/RegionView.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cryville.EEW.Unity.Map {
|
||||
sealed class RegionView : MonoBehaviour {
|
||||
[SerializeField]
|
||||
SpriteRenderer m_spriteRenderer;
|
||||
|
||||
Color _color;
|
||||
|
||||
bool m_isHovered;
|
||||
public bool IsHovered {
|
||||
get => m_isHovered;
|
||||
set {
|
||||
m_isHovered = value;
|
||||
UpdateColor();
|
||||
}
|
||||
}
|
||||
|
||||
bool m_isSelected;
|
||||
public bool IsSelected {
|
||||
get => m_isSelected;
|
||||
set {
|
||||
m_isSelected = value;
|
||||
UpdateColor();
|
||||
}
|
||||
}
|
||||
|
||||
bool m_isLeaf = true;
|
||||
public bool IsLeaf {
|
||||
get => m_isLeaf;
|
||||
set {
|
||||
m_isLeaf = value;
|
||||
UpdateColor();
|
||||
}
|
||||
}
|
||||
|
||||
string m_id;
|
||||
public string Id {
|
||||
get => m_id;
|
||||
set {
|
||||
m_id = value;
|
||||
unchecked {
|
||||
uint hash = (uint)value.GetHashCode();
|
||||
_color = Color.HSVToRGB(((hash >> 24) ^ ((hash >> 16) & 0xff) ^ ((hash >> 8) & 0xff) ^ (hash & 0xff)) / (float)0xff, 1, 1);
|
||||
}
|
||||
UpdateColor();
|
||||
}
|
||||
}
|
||||
|
||||
public void Init(int x, int y, int z) {
|
||||
float scale = 1f / (1 << z);
|
||||
transform.localScale = new Vector3(scale, scale, 1);
|
||||
transform.localPosition = new Vector3(x * scale, y * scale - 1, -1 - z / 100f);
|
||||
}
|
||||
|
||||
void UpdateColor() {
|
||||
if (!m_isLeaf)
|
||||
_color.a = 0.0f;
|
||||
else if (m_isSelected)
|
||||
_color.a = 0.6f;
|
||||
else if (m_isHovered)
|
||||
_color.a = 0.4f;
|
||||
else
|
||||
_color.a = 0.2f;
|
||||
m_spriteRenderer.color = _color;
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Cryville.EEW.Unity/Map/RegionView.cs.meta
Normal file
11
Assets/Cryville.EEW.Unity/Map/RegionView.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c57a0e86eb63b6048ba265e9d98e84f6
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@@ -1,4 +1,5 @@
|
||||
using Cryville.EEW.Colors;
|
||||
using Cryville.EEW.Core;
|
||||
using Cryville.EEW.Core.Colors;
|
||||
using Cryville.EEW.FERegion;
|
||||
using Cryville.EEW.Map;
|
||||
@@ -25,9 +26,21 @@ namespace Cryville.EEW.Unity {
|
||||
public IColorScheme ColorScheme { get; private set; } = new SeverityBasedColorScheme(DefaultSeverityScheme.Instance, DefaultSeverityColorMapping.Instance);
|
||||
public ISubColorScheme BorderColorScheme { get; private set; } = new WrappedColorScheme(new SeverityBasedColorScheme(DefaultSeverityScheme.Instance, DefaultSeverityColorMapping.SecondaryInstance));
|
||||
public ISubColorScheme TextColorScheme { get; private set; } = new DefaultTextColorScheme(Color.White, Color.Black);
|
||||
public ILocationConverter LocationConverter => new FERegionLongConverter(); // TODO TTS
|
||||
public TimeSpan NowcastWarningDelayTolerance => TimeSpan.FromMinutes(60); // TODO TTS
|
||||
|
||||
public CultureInfo RVMCulture { get; private set; } = SharedCultures.CurrentUICulture;
|
||||
readonly int _infoLocationSpecificity = 3;
|
||||
readonly int _ttsLocationSpecificity = 3;
|
||||
readonly LocationNamer _locationNamer = new() { Namer = new FERegionLongNamer() }; // TODO TTS
|
||||
public bool NameLocation(double lat, double lon, CultureInfo localCulture, ref CultureInfo targetCulture, out string name, out int specificity) {
|
||||
specificity = _ttsLocationSpecificity;
|
||||
return _locationNamer.Name(lat, lon, localCulture, ref targetCulture, out name, ref specificity);
|
||||
}
|
||||
public bool NameLocation(double lat, double lon, CultureInfo localCulture, ref CultureInfo targetCulture, out string name) {
|
||||
int specificity = _infoLocationSpecificity;
|
||||
return _locationNamer.Name(lat, lon, localCulture, ref targetCulture, out name, ref specificity);
|
||||
}
|
||||
|
||||
public TimeZoneInfo OverrideTimeZone { get; private set; }
|
||||
public bool DoDisplayTimeZone { get; private set; } = true;
|
||||
public bool DoSwitchBackToHistory { get; private set; } = true;
|
||||
@@ -104,6 +117,9 @@ namespace Cryville.EEW.Unity {
|
||||
OverrideTimeZone = ParseTimeZone(config.OverrideTimeZone);
|
||||
DoDisplayTimeZone = config.DoDisplayTimeZone;
|
||||
DoSwitchBackToHistory = config.DoSwitchBackToHistory;
|
||||
RVMCulture = config.OverrideDisplayCulture is string rvmCulture
|
||||
? (string.IsNullOrEmpty(rvmCulture) ? SharedCultures.CurrentUICulture : SharedCultures.Get(rvmCulture))
|
||||
: CultureInfo.InvariantCulture;
|
||||
EventSources = config.EventSources;
|
||||
}
|
||||
|
||||
|
@@ -5,7 +5,7 @@ using System.IO;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cryville.EEW.Unity {
|
||||
class SoundPlayer : Core.SoundPlayer {
|
||||
class SoundPlayer : Core.Audio.SoundPlayer {
|
||||
public SoundPlayer() : base(GetEngineList(), AudioUsage.NotificationEvent) { }
|
||||
static List<Type> GetEngineList() => new() {
|
||||
typeof(Audio.Wasapi.MMDeviceEnumeratorWrapper),
|
||||
|
@@ -4,7 +4,7 @@ using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Cryville.EEW.Unity {
|
||||
class TTSWorker : Core.TTSWorker {
|
||||
class TTSWorker : Core.Audio.TTSWorker {
|
||||
public TTSWorker() : base(CreateSoundPlayer()) { }
|
||||
|
||||
static SoundPlayer CreateSoundPlayer() {
|
||||
|
@@ -23,6 +23,7 @@ namespace Cryville.EEW.Unity.UI {
|
||||
child.SetViewModel(e);
|
||||
child.transform.SetParent(m_listView, false);
|
||||
_displayingViews.Add(child);
|
||||
OnDisplayingViewsChanged();
|
||||
|
||||
SwitchTo(_displayingReports.Count - 1);
|
||||
|
||||
@@ -37,6 +38,7 @@ namespace Cryville.EEW.Unity.UI {
|
||||
child.SetParent(null, false);
|
||||
Destroy(child.gameObject);
|
||||
_displayingViews.RemoveAt(index);
|
||||
OnDisplayingViewsChanged();
|
||||
|
||||
if (_displayingReports.Count == 0) {
|
||||
m_currentView.gameObject.SetActive(false);
|
||||
@@ -49,6 +51,14 @@ namespace Cryville.EEW.Unity.UI {
|
||||
|
||||
if (_displayingReports.Count <= 1) m_listView.gameObject.SetActive(false);
|
||||
}
|
||||
void OnDisplayingViewsChanged() {
|
||||
_maxBaseDuration = 1;
|
||||
foreach (var e in _displayingReports) {
|
||||
float duration = GetBaseDuration(e);
|
||||
if (duration > _maxBaseDuration)
|
||||
_maxBaseDuration = duration;
|
||||
}
|
||||
}
|
||||
|
||||
void Awake() {
|
||||
if (Instance != null) {
|
||||
@@ -63,6 +73,7 @@ namespace Cryville.EEW.Unity.UI {
|
||||
|
||||
int _index = -1;
|
||||
float _tickDown;
|
||||
float _maxBaseDuration;
|
||||
void Update() {
|
||||
if (_displayingReports.Count == 0) return;
|
||||
_tickDown -= Time.deltaTime;
|
||||
@@ -77,12 +88,15 @@ namespace Cryville.EEW.Unity.UI {
|
||||
_index = index;
|
||||
var e = _displayingReports[index];
|
||||
m_currentView.SetViewModel(e, true);
|
||||
var keyProp = e.Properties.FirstOrDefault();
|
||||
_displayingViews[_index].SetCurrent(true);
|
||||
_tickDown = MathF.Exp(Math.Max(-1f, keyProp?.Severity ?? -1f) + 1);
|
||||
_tickDown = GetBaseDuration(e) / Math.Min(_maxBaseDuration, 4) * 4;
|
||||
m_currentView.gameObject.SetActive(true);
|
||||
Worker.Instance.SetCurrent(e);
|
||||
}
|
||||
static float GetBaseDuration(ReportViewModel e) {
|
||||
return MathF.Exp(Math.Max(-1f, e.Properties.FirstOrDefault()?.Severity ?? -1f) + 1);
|
||||
}
|
||||
|
||||
public void OnItemClicked(ReportViewModel viewModel) {
|
||||
int index = _displayingReports.IndexOf(viewModel);
|
||||
if (index == -1) return;
|
||||
|
@@ -12,8 +12,8 @@ namespace Cryville.EEW.Unity.UI {
|
||||
_textView = GetComponent<TMP_Text>();
|
||||
}
|
||||
|
||||
StringBuilder _sb = new();
|
||||
char[] _buffer = new char[256];
|
||||
readonly StringBuilder _sb = new();
|
||||
readonly char[] _buffer = new char[256];
|
||||
void Update() {
|
||||
_sb.Clear();
|
||||
_sb.AppendFormat(
|
||||
|
@@ -64,6 +64,7 @@ namespace Cryville.EEW.Unity {
|
||||
BuildWorkers();
|
||||
_worker.RVMGeneratorContext = SharedSettings.Instance;
|
||||
_worker.TTSMessageGeneratorContext = SharedSettings.Instance;
|
||||
_worker.RVMCulture = SharedSettings.Instance.RVMCulture;
|
||||
_ongoingReportManager.Changed += OnOngoingReported;
|
||||
_worker.Reported += OnReported;
|
||||
_grouper.GroupUpdated += OnGroupUpdated;
|
||||
@@ -87,9 +88,10 @@ namespace Cryville.EEW.Unity {
|
||||
_ongoingReportManager.Dispose();
|
||||
}
|
||||
|
||||
static void RegisterViewModelGenerators(CoreWorker worker) {
|
||||
CENCEarthquakeRVMGenerator _cencEarthquakeRVMGenerator;
|
||||
void RegisterViewModelGenerators(CoreWorker worker) {
|
||||
worker.RegisterViewModelGenerator(new BMKGEarthquakeRVMGenerator());
|
||||
worker.RegisterViewModelGenerator(new CENCEarthquakeRVMGenerator());
|
||||
worker.RegisterViewModelGenerator(_cencEarthquakeRVMGenerator = new CENCEarthquakeRVMGenerator());
|
||||
worker.RegisterViewModelGenerator(new CENCEEWRVMGenerator());
|
||||
worker.RegisterViewModelGenerator(new CWAEarthquakeRVMGenerator());
|
||||
worker.RegisterViewModelGenerator(new CWAEEWRVMGenerator());
|
||||
@@ -104,9 +106,10 @@ namespace Cryville.EEW.Unity {
|
||||
worker.RegisterViewModelGenerator(new SichuanEEWRVMGenerator());
|
||||
worker.RegisterViewModelGenerator(new VersionRVMGenerator());
|
||||
}
|
||||
static void RegisterTTSMessageGenerators(CoreWorker worker) {
|
||||
CENCEarthquakeTTSMessageGenerator _cencEarthquakeTTSMessageGenerator;
|
||||
void RegisterTTSMessageGenerators(CoreWorker worker) {
|
||||
worker.RegisterTTSMessageGenerator(new BMKGEarthquakeTTSMessageGenerator());
|
||||
worker.RegisterTTSMessageGenerator(new CENCEarthquakeTTSMessageGenerator());
|
||||
worker.RegisterTTSMessageGenerator(_cencEarthquakeTTSMessageGenerator = new CENCEarthquakeTTSMessageGenerator());
|
||||
worker.RegisterTTSMessageGenerator(new CENCEEWTTSMessageGenerator());
|
||||
worker.RegisterTTSMessageGenerator(new CWAEarthquakeTTSMessageGenerator());
|
||||
worker.RegisterTTSMessageGenerator(new CWAEEWTTSMessageGenerator());
|
||||
@@ -129,7 +132,7 @@ namespace Cryville.EEW.Unity {
|
||||
BMKGOpenDataWorker bmkgWorker = new(new Uri("http://localhost:9095/autogempa.json"));
|
||||
bmkgWorker.SetDataUris(new Uri[] { new("http://localhost:9095/gempadirasakan.json") });
|
||||
_worker.AddWorker(bmkgWorker);
|
||||
_worker.AddWorker(new NOAAAtomWorker(new("http://localhost:9095/PAAQAtom.xml")));
|
||||
_worker.AddWorker(new NOAAAtomWorker(new("http://localhost:9095/PAAQAtom.xml"), forceHttps: false));
|
||||
_worker.AddWorker(new UpdateCheckerWorker(typeof(Worker).Assembly.GetName().Version?.ToString(3) ?? "", "unity"));
|
||||
#else
|
||||
foreach (var source in SharedSettings.Instance.EventSources) {
|
||||
@@ -163,7 +166,7 @@ namespace Cryville.EEW.Unity {
|
||||
worker.IsFilterWhitelist = config.IsFilterWhitelist;
|
||||
return worker;
|
||||
}
|
||||
static WolfxWorker BuildWolfxWorkerFilter(WolfxWorker worker, WolfxEventSourceConfig config) {
|
||||
WolfxWorker BuildWolfxWorkerFilter(WolfxWorker worker, WolfxEventSourceConfig config) {
|
||||
if (config.Filter != null) worker.SetFilter(config.Filter.Select(i => i switch {
|
||||
"cenc_eew" => typeof(CENCEEW),
|
||||
"cenc_eqlist" => typeof(WolfxEarthquakeList<CENCEarthquake>),
|
||||
@@ -174,6 +177,11 @@ namespace Cryville.EEW.Unity {
|
||||
_ => throw new InvalidOperationException("Unknown Wolfx event type."),
|
||||
}));
|
||||
worker.IsFilterWhitelist = config.IsFilterWhitelist;
|
||||
|
||||
_cencEarthquakeRVMGenerator.UseRawLocationName
|
||||
= _cencEarthquakeTTSMessageGenerator.UseRawLocationName
|
||||
= config.UseRawCENCLocationName;
|
||||
|
||||
return worker;
|
||||
}
|
||||
static BMKGOpenDataWorker BuildBMKGOpenDataWorkerUris(BMKGOpenDataWorker worker, BMKGOpenDataEventSourceConfig config) {
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Assets/Plugins/Cryville.EEW.CENCStrongGroundMotion.Map.dll
Normal file
BIN
Assets/Plugins/Cryville.EEW.CENCStrongGroundMotion.Map.dll
Normal file
Binary file not shown.
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 550171b48a648b34e9ce5f1aba6244f1
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
BIN
Assets/Plugins/Cryville.EEW.CENCStrongGroundMotion.dll
Normal file
BIN
Assets/Plugins/Cryville.EEW.CENCStrongGroundMotion.dll
Normal file
Binary file not shown.
33
Assets/Plugins/Cryville.EEW.CENCStrongGroundMotion.dll.meta
Normal file
33
Assets/Plugins/Cryville.EEW.CENCStrongGroundMotion.dll.meta
Normal file
@@ -0,0 +1,33 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f848a4ea2f35e7449e584beee48c659
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -14,10 +14,10 @@
|
||||
The shared instance of the <see cref="T:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext.LocationConverter">
|
||||
<member name="P:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext.NowcastWarningDelayTolerance">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext.NowcastWarningDelayTolerance">
|
||||
<member name="M:Cryville.EEW.TTS.EmptyTTSMessageGeneratorContext.NameLocation(System.Double,System.Double,System.Globalization.CultureInfo,System.Globalization.CultureInfo@,System.String@)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.TTS.ITTSMessageGeneratorContext">
|
||||
@@ -25,16 +25,22 @@
|
||||
Represents a context used in TTS message generators.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.TTS.ITTSMessageGeneratorContext.LocationConverter">
|
||||
<summary>
|
||||
The location converter.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.TTS.ITTSMessageGeneratorContext.NowcastWarningDelayTolerance">
|
||||
<summary>
|
||||
The delay tolerance before a nowcast warning event cannot trigger sounds and TTS.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.EEW.TTS.ITTSMessageGeneratorContext.NameLocation(System.Double,System.Double,System.Globalization.CultureInfo,System.Globalization.CultureInfo@,System.String@)">
|
||||
<summary>
|
||||
Names a location in a culture.
|
||||
</summary>
|
||||
<param name="lat">The latitude of the location.</param>
|
||||
<param name="lon">The longitude of the location.</param>
|
||||
<param name="localCulture">The local culture supported by the event itself.</param>
|
||||
<param name="targetCulture">The target culture of the location name. When the method returns, set to the actual culture of the location name.</param>
|
||||
<param name="name">The location name.</param>
|
||||
<returns>Whether the name is given by the context. <see langword="false" /> if the generator should provide a local name instead.</returns>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.TTS.TTSEntry">
|
||||
<summary>
|
||||
Represents an entry sent to a TTS worker.
|
||||
@@ -101,7 +107,7 @@
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.TTS.TTSEntry.IssueTime">
|
||||
<summary>
|
||||
The time when the entry is created.
|
||||
The time when the entry is created in UTC.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -30,17 +30,17 @@
|
||||
<param name="amount">The amount of phase to increment.</param>
|
||||
<returns>The next delay value.</returns>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.EmptyLocationConverter">
|
||||
<member name="T:Cryville.EEW.EmptyLocationNamer">
|
||||
<summary>
|
||||
An empty <see cref="T:Cryville.EEW.ILocationConverter" />.
|
||||
An empty <see cref="T:Cryville.EEW.ILocationNamer" />.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.EmptyLocationConverter.Instance">
|
||||
<member name="P:Cryville.EEW.EmptyLocationNamer.Instance">
|
||||
<summary>
|
||||
The shared instance of the <see cref="T:Cryville.EEW.EmptyLocationConverter" /> class.
|
||||
The shared instance of the <see cref="T:Cryville.EEW.EmptyLocationNamer" /> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.EEW.EmptyLocationConverter.Convert(Cryville.EEW.INamedLocation,System.Globalization.CultureInfo@)">
|
||||
<member name="M:Cryville.EEW.EmptyLocationNamer.Name(System.Double,System.Double,System.Globalization.CultureInfo@,System.Int32@)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.GeoUtils">
|
||||
@@ -213,18 +213,20 @@
|
||||
<param name="culture">The preferred culture of the generated object. When the method returns, set to the actual culture of the generated object.</param>
|
||||
<returns>The generated object.</returns>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.ILocationConverter">
|
||||
<member name="T:Cryville.EEW.ILocationNamer">
|
||||
<summary>
|
||||
Represents a converter that converts a named location to a name in a specified culture.
|
||||
Represents a namer that names a location in a specified culture.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.EEW.ILocationConverter.Convert(Cryville.EEW.INamedLocation,System.Globalization.CultureInfo@)">
|
||||
<member name="M:Cryville.EEW.ILocationNamer.Name(System.Double,System.Double,System.Globalization.CultureInfo@,System.Int32@)">
|
||||
<summary>
|
||||
Converts a named location to a name in a specified culture.
|
||||
Names a location in a specified culture.
|
||||
</summary>
|
||||
<param name="location">The named location.</param>
|
||||
<param name="lat">The latitude.</param>
|
||||
<param name="lon">The longitude.</param>
|
||||
<param name="culture">The preferred culture of the name. When the method returns, set to the actual culture of the name.</param>
|
||||
<returns>The converted name.</returns>
|
||||
<param name="specificity">The preferred specificity of the name. When the method returns, set to the actual specificity of the name.</param>
|
||||
<returns>The name.</returns>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.ISourceWorker">
|
||||
<summary>
|
||||
@@ -349,6 +351,16 @@
|
||||
<returns>The string of the specified name in the resource.</returns>
|
||||
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The string of the specified name is not found.</exception>
|
||||
</member>
|
||||
<member name="M:Cryville.EEW.MessageStringSetExtensions.GetStringOrDefault(Cryville.EEW.IMessageStringSet,System.String,System.String)">
|
||||
<summary>
|
||||
Gets a string in the string set, or a default string in the string set if not found.
|
||||
</summary>
|
||||
<param name="set">The string set.</param>
|
||||
<param name="name">The name of the string.</param>
|
||||
<param name="defaultName">The name of the default string.</param>
|
||||
<returns>The string of the specified name in the resource, or the default string of the specified default name in the string set if not found.</returns>
|
||||
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The default string of the specified default name is not found.</exception>
|
||||
</member>
|
||||
<member name="M:Cryville.EEW.MessageStringSetExtensions.GetStringSetRequired(Cryville.EEW.IMessageStringSet,System.String)">
|
||||
<summary>
|
||||
Gets a string set in the string set.
|
||||
@@ -960,61 +972,6 @@
|
||||
</summary>
|
||||
<param name="value">An instance of the <see cref="T:Cryville.EEW.Models.XmlSerializedDateTimeOffset" /> struct.</param>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.INamedLocation">
|
||||
<summary>
|
||||
Represents a named location.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.INamedLocation.Name">
|
||||
<summary>
|
||||
The source name of the location.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.INamedLocation.Culture">
|
||||
<summary>
|
||||
The source culture of <see cref="P:Cryville.EEW.INamedLocation.Name" />.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.INamedLocation.Latitude">
|
||||
<summary>
|
||||
The latitude of the location.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.INamedLocation.Longitude">
|
||||
<summary>
|
||||
The longitude of the location.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.NamedLocation">
|
||||
<summary>
|
||||
Represents a named location.
|
||||
</summary>
|
||||
<param name="Name">The source name of the location.</param>
|
||||
<param name="Culture">The source culture of <paramref name="Name" />.</param>
|
||||
<param name="Latitude">The latitude of the location.</param>
|
||||
<param name="Longitude">The longitude of the location.</param>
|
||||
</member>
|
||||
<member name="M:Cryville.EEW.NamedLocation.#ctor(System.String,System.Globalization.CultureInfo,System.Double,System.Double)">
|
||||
<summary>
|
||||
Represents a named location.
|
||||
</summary>
|
||||
<param name="Name">The source name of the location.</param>
|
||||
<param name="Culture">The source culture of <paramref name="Name" />.</param>
|
||||
<param name="Latitude">The latitude of the location.</param>
|
||||
<param name="Longitude">The longitude of the location.</param>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.NamedLocation.Name">
|
||||
<summary>The source name of the location.</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.NamedLocation.Culture">
|
||||
<summary>The source culture of <paramref name="Name" />.</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.NamedLocation.Latitude">
|
||||
<summary>The latitude of the location.</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.NamedLocation.Longitude">
|
||||
<summary>The longitude of the location.</summary>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.NonstandardDateTimeJsonConverter">
|
||||
<summary>
|
||||
Converts instances of the <see cref="T:System.DateTime" /> struct to or from JSON.
|
||||
@@ -1039,7 +996,7 @@
|
||||
<member name="P:Cryville.EEW.Report.EmptyRVMGeneratorContext.SeverityScheme">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.Report.EmptyRVMGeneratorContext.LocationConverter">
|
||||
<member name="M:Cryville.EEW.Report.EmptyRVMGeneratorContext.NameLocation(System.Double,System.Double,System.Globalization.CultureInfo,System.Globalization.CultureInfo@,System.String@,System.Int32@)">
|
||||
<inheritdoc />
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.Report.EmptySeverityScheme">
|
||||
@@ -1192,10 +1149,34 @@
|
||||
The severity scheme.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Cryville.EEW.Report.IRVMGeneratorContext.LocationConverter">
|
||||
<member name="M:Cryville.EEW.Report.IRVMGeneratorContext.NameLocation(System.Double,System.Double,System.Globalization.CultureInfo,System.Globalization.CultureInfo@,System.String@,System.Int32@)">
|
||||
<summary>
|
||||
The location converter.
|
||||
Names a location in a culture.
|
||||
</summary>
|
||||
<param name="lat">The latitude of the location.</param>
|
||||
<param name="lon">The longitude of the location.</param>
|
||||
<param name="localCulture">The local culture supported by the event itself.</param>
|
||||
<param name="targetCulture">The target culture of the location name. When the method returns, set to the actual culture of the location name.</param>
|
||||
<param name="name">The location name.</param>
|
||||
<param name="specificity">The location specificity. See <see cref="P:Cryville.EEW.Report.ReportViewModel.LocationSpecificity" />.</param>
|
||||
<returns>Whether the name is given by the context. <see langword="false" /> if the generator should provide a local name instead.</returns>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.Report.RVMGeneratorContextExtensions">
|
||||
<summary>
|
||||
Provides a set of <see langword="static" /> methods related to <see cref="T:Cryville.EEW.Report.IRVMGeneratorContext" />.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Cryville.EEW.Report.RVMGeneratorContextExtensions.NameLocationTo(Cryville.EEW.Report.IRVMGeneratorContext,Cryville.EEW.Report.ReportViewModel,System.Double,System.Double,System.Globalization.CultureInfo,System.Globalization.CultureInfo)">
|
||||
<summary>
|
||||
Names a location in a culture and sets the result to a report view model.
|
||||
</summary>
|
||||
<param name="context">The context.</param>
|
||||
<param name="e">The report view model.</param>
|
||||
<param name="lat">The latitude of the location.</param>
|
||||
<param name="lon">The longitude of the location.</param>
|
||||
<param name="localCulture">The local culture supported by the event itself.</param>
|
||||
<param name="targetCulture">The target culture of the location name. When the method returns, set to the actual culture of the location name.</param>
|
||||
<returns>Whether the name is given by the context. <see langword="false" /> if the generator should provide a local name instead.</returns>
|
||||
</member>
|
||||
<member name="T:Cryville.EEW.Report.ISeverityScheme">
|
||||
<summary>
|
||||
|
Binary file not shown.
132
Assets/Prefabs/RegionView.prefab
Normal file
132
Assets/Prefabs/RegionView.prefab
Normal file
@@ -0,0 +1,132 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2984379317001549352
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2984379317001549359}
|
||||
- component: {fileID: 2962259339337128397}
|
||||
m_Layer: 0
|
||||
m_Name: RegionView
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2984379317001549359
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2984379317001549352}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3524170046801625328}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &2962259339337128397
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2984379317001549352}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c57a0e86eb63b6048ba265e9d98e84f6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_spriteRenderer: {fileID: 3524170046801625329}
|
||||
--- !u!1 &3524170046801625335
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3524170046801625328}
|
||||
- component: {fileID: 3524170046801625329}
|
||||
m_Layer: 0
|
||||
m_Name: Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3524170046801625328
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3524170046801625335}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0.5, y: 0.5, z: 1}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2984379317001549359}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &3524170046801625329
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3524170046801625335}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 0
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 0
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_Sprite: {fileID: 7482667652216324306, guid: 311925a002f4447b3a28927169b83ea6, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 0.2509804}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 1, y: 1}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
7
Assets/Prefabs/RegionView.prefab.meta
Normal file
7
Assets/Prefabs/RegionView.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bcdaa327335962646879336458cd7379
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
1973
Assets/RegionEditor.unity
Normal file
1973
Assets/RegionEditor.unity
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/RegionEditor.unity.meta
Normal file
7
Assets/RegionEditor.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8d07fde72bae47a4990c95f764ca2b43
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@@ -6,7 +6,7 @@
|
||||
"HeadlineMagnitude": " of magnitude {0:F1}",
|
||||
"MaxIntensity": "The maximum intensity observed is {0}.",
|
||||
"Region": "The epicenter is in {0}.",
|
||||
"Title": "Earthquake Data.",
|
||||
"TitleStandAlone": "Earthquake Data"
|
||||
"Title": "Earthquake data.",
|
||||
"TitleStandAlone": "Earthquake data"
|
||||
}
|
||||
}
|
@@ -6,7 +6,7 @@
|
||||
"HeadlineMagnitude": ", dengan magnitudo {0:F1}",
|
||||
"MaxIntensity": "Intensitas gempa maksimum yang dirasakan adalah {0}.",
|
||||
"Region": "Pusat gempa berada di {0}.",
|
||||
"Title": "Data Gempabumi.",
|
||||
"TitleStandAlone": "Data Gempabumi"
|
||||
"Title": "Data gempabumi.",
|
||||
"TitleStandAlone": "Data gempabumi"
|
||||
}
|
||||
}
|
@@ -3,7 +3,7 @@
|
||||
"Strings": {
|
||||
"Headline": "印度尼西亞西部時間{0},發生咗一次{1}地震。{2}",
|
||||
"HeadlineDepth": "震源深度{0}公里。",
|
||||
"HeadlineMagnitude": "規模{0:F1}級。",
|
||||
"HeadlineMagnitude": "震級{0:F1}級",
|
||||
"MaxIntensity": "觀測到嘅最大烈度為{0}。",
|
||||
"Region": "震中位於{0}。",
|
||||
"Title": "地震數據。",
|
||||
|
@@ -3,7 +3,7 @@
|
||||
"Strings": {
|
||||
"Headline": "印度尼西亞西部時間{0},發生了一次{1}地震。{2}",
|
||||
"HeadlineDepth": "震源深度{0}公里。",
|
||||
"HeadlineMagnitude": "規模{0:F1}級。",
|
||||
"HeadlineMagnitude": "規模{0:F1}級",
|
||||
"MaxIntensity": "觀測到的最大震度為{0}。",
|
||||
"Region": "震中位於{0}。",
|
||||
"Title": "地震數據。",
|
||||
|
@@ -3,7 +3,7 @@
|
||||
"Strings": {
|
||||
"Headline": "印度尼西亚西部时间{0},发生了一次{1}地震。{2}",
|
||||
"HeadlineDepth": "震源深度{0}千米。",
|
||||
"HeadlineMagnitude": "规模{0:F1}级",
|
||||
"HeadlineMagnitude": "震级{0:F1}级",
|
||||
"MaxIntensity": "观测到的最大烈度为{0}。",
|
||||
"Region": "震中位于{0}。",
|
||||
"Title": "地震数据。",
|
||||
|
@@ -1,6 +1,12 @@
|
||||
{
|
||||
"Culture": "en-US",
|
||||
"Strings": {
|
||||
"SourceName": "BMKG Open Data"
|
||||
"AuthorityName": "BMKG",
|
||||
"PropertyDepth": "Depth",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyMaxIntensity": "Max intensity",
|
||||
"SourceName": "BMKG Open Data",
|
||||
"Title": "Earthquake data"
|
||||
}
|
||||
}
|
@@ -1,6 +1,12 @@
|
||||
{
|
||||
"Culture": "id-ID",
|
||||
"Strings": {
|
||||
"SourceName": "Data Terbuka BMKG"
|
||||
"AuthorityName": "BMKG",
|
||||
"PropertyDepth": "Kedalaman",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyMaxIntensity": "Intensitas maks.",
|
||||
"SourceName": "Data Terbuka BMKG",
|
||||
"Title": "Data gempabumi"
|
||||
}
|
||||
}
|
@@ -1,6 +1,12 @@
|
||||
{
|
||||
"Culture": "yue-HK",
|
||||
"Strings": {
|
||||
"SourceName": "BMKG 開放數據"
|
||||
"AuthorityName": "BMKG",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyMaxIntensity": "最大烈度",
|
||||
"SourceName": "BMKG 開放數據",
|
||||
"Title": "地震數據"
|
||||
}
|
||||
}
|
@@ -1,6 +1,12 @@
|
||||
{
|
||||
"Culture": "zh-TW",
|
||||
"Strings": {
|
||||
"SourceName": "BMKG 開放數據"
|
||||
"AuthorityName": "BMKG",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyMaxIntensity": "最大震度",
|
||||
"SourceName": "BMKG 開放數據",
|
||||
"Title": "地震數據"
|
||||
}
|
||||
}
|
@@ -1,6 +1,12 @@
|
||||
{
|
||||
"Culture": "zh-CN",
|
||||
"Strings": {
|
||||
"SourceName": "BMKG 开放数据"
|
||||
"AuthorityName": "BMKG",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyMaxIntensity": "最大烈度",
|
||||
"SourceName": "BMKG 开放数据",
|
||||
"Title": "地震数据"
|
||||
}
|
||||
}
|
@@ -13,6 +13,7 @@
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"地震報告": "Earthquake report",
|
||||
"海嘯消息": "Tsunami message",
|
||||
"海嘯警報": "Tsunami warning",
|
||||
"海嘯警報解除": "Tsunami warning lifted"
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"Culture": "yue-HK",
|
||||
"Strings": {
|
||||
"EarthquakeBody": "{0},{1}發生規模{2:F1}有感地震,最大震度{3}。",
|
||||
"EarthquakeBody": "{0},{1}發生震級{2:F1}有感地震,最大震度{3}。",
|
||||
"EarthquakeFocalDepth": "震源深度{0}公里。",
|
||||
"TsunamiForecast": "以下地區預計海嘯高度{0}。",
|
||||
"TsunamiForecastArea": "{0}。預計到達時間{1:HH:mm}。",
|
||||
@@ -13,6 +13,7 @@
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"地震報告": "地震報告",
|
||||
"海嘯消息": "海嘯消息",
|
||||
"海嘯警報": "海嘯警報",
|
||||
"海嘯警報解除": "海嘯警報解除"
|
||||
}
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"Culture": "zh-CN",
|
||||
"Strings": {
|
||||
"EarthquakeBody": "{0},{1}发生规模{2:F1}有感地震,最大震度{3}。",
|
||||
"EarthquakeBody": "{0},{1}发生震级{2:F1}有感地震,最大震度{3}。",
|
||||
"EarthquakeFocalDepth": "震源深度{0}千米。",
|
||||
"TsunamiForecast": "以下地区预计海啸高度{0}。",
|
||||
"TsunamiForecastArea": "{0}。预计到达时间{1:HH:mm}。",
|
||||
@@ -13,6 +13,7 @@
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"地震報告": "地震报告",
|
||||
"海嘯消息": "海啸消息",
|
||||
"海嘯警報": "海啸警报",
|
||||
"海嘯警報解除": "海啸警报解除"
|
||||
}
|
||||
|
@@ -1,6 +1,15 @@
|
||||
{
|
||||
"Culture": "en-US",
|
||||
"Strings": {
|
||||
"AuthorityName": "CWA",
|
||||
"PropertyDepth": "Depth",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMaxIntensity": "Max intensity",
|
||||
"PropertyMaxTsunamiHeight": "Max tsunami height",
|
||||
"PropertyMaxTsunamiHeightValue": "{0}m",
|
||||
"PropertyMaxTsunamiHeightValueUnknown": "Unknown",
|
||||
"PropertyTsunamiMessage": "Tsunami message",
|
||||
"PropertyTsunamiWarning": "Tsunami warning",
|
||||
"SourceName": "CWA ({0})"
|
||||
},
|
||||
"StringSets": {
|
||||
@@ -9,6 +18,20 @@
|
||||
"Earthquake": "Earthquake",
|
||||
"Tsunami": "Tsunami"
|
||||
}
|
||||
},
|
||||
"PropertyMagnitude": {
|
||||
"Strings": {
|
||||
"": "Magnitude",
|
||||
"芮氏規模": "Richter magnitude"
|
||||
}
|
||||
},
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"地震報告": "Earthquake report",
|
||||
"海嘯消息": "Tsunami message",
|
||||
"海嘯警報": "Tsunami warning",
|
||||
"海嘯警報解除": "Tsunami warning lifted"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,15 @@
|
||||
{
|
||||
"Culture": "zh-TW",
|
||||
"Strings": {
|
||||
"AuthorityName": "CWA",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMaxIntensity": "最大震度",
|
||||
"PropertyMaxTsunamiHeight": "最大波高",
|
||||
"PropertyMaxTsunamiHeightValue": "{0}m",
|
||||
"PropertyMaxTsunamiHeightValueUnknown": "不明",
|
||||
"PropertyTsunamiMessage": "海\u2060嘯消\u2060息",
|
||||
"PropertyTsunamiWarning": "海\u2060嘯警\u2060報",
|
||||
"SourceName": "CWA({0})"
|
||||
},
|
||||
"StringSets": {
|
||||
@@ -9,6 +18,20 @@
|
||||
"Earthquake": "地震",
|
||||
"Tsunami": "海嘯"
|
||||
}
|
||||
},
|
||||
"PropertyMagnitude": {
|
||||
"Strings": {
|
||||
"": "規模",
|
||||
"芮氏規模": "芮氏規模"
|
||||
}
|
||||
},
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"地震報告": "地震報告",
|
||||
"海嘯消息": "海嘯消息",
|
||||
"海嘯警報": "海嘯警報",
|
||||
"海嘯警報解除": "海嘯警報解除"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,15 @@
|
||||
{
|
||||
"Culture": "yue-HK",
|
||||
"Strings": {
|
||||
"AuthorityName": "CWA",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMaxIntensity": "最大震度",
|
||||
"PropertyMaxTsunamiHeight": "最大波高",
|
||||
"PropertyMaxTsunamiHeightValue": "{0}m",
|
||||
"PropertyMaxTsunamiHeightValueUnknown": "不明",
|
||||
"PropertyTsunamiMessage": "海\u2060嘯消\u2060息",
|
||||
"PropertyTsunamiWarning": "海\u2060嘯警\u2060報",
|
||||
"SourceName": "CWA({0})"
|
||||
},
|
||||
"StringSets": {
|
||||
@@ -9,6 +18,20 @@
|
||||
"Earthquake": "地震",
|
||||
"Tsunami": "海嘯"
|
||||
}
|
||||
},
|
||||
"PropertyMagnitude": {
|
||||
"Strings": {
|
||||
"": "震級",
|
||||
"芮氏規模": "黎克特制震級"
|
||||
}
|
||||
},
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"地震報告": "地震報告",
|
||||
"海嘯消息": "海嘯消息",
|
||||
"海嘯警報": "海嘯警報",
|
||||
"海嘯警報解除": "海嘯警報解除"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,15 @@
|
||||
{
|
||||
"Culture": "zh-CN",
|
||||
"Strings": {
|
||||
"AuthorityName": "CWA",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMaxIntensity": "最大震度",
|
||||
"PropertyMaxTsunamiHeight": "最大波高",
|
||||
"PropertyMaxTsunamiHeightValue": "{0}m",
|
||||
"PropertyMaxTsunamiHeightValueUnknown": "不明",
|
||||
"PropertyTsunamiMessage": "海\u2060啸消\u2060息",
|
||||
"PropertyTsunamiWarning": "海\u2060啸警\u2060报",
|
||||
"SourceName": "CWA({0})"
|
||||
},
|
||||
"StringSets": {
|
||||
@@ -9,6 +18,20 @@
|
||||
"Earthquake": "地震",
|
||||
"Tsunami": "海啸"
|
||||
}
|
||||
},
|
||||
"PropertyMagnitude": {
|
||||
"Strings": {
|
||||
"": "震级",
|
||||
"芮氏規模": "里氏震级"
|
||||
}
|
||||
},
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"地震報告": "地震报告",
|
||||
"海嘯消息": "海啸消息",
|
||||
"海嘯警報": "海啸警报",
|
||||
"海嘯警報解除": "海啸警报解除"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,11 @@
|
||||
{
|
||||
"Culture": "en-US",
|
||||
"Strings": {
|
||||
"SourceName": "EMSC"
|
||||
"AuthorityName": "EMSC",
|
||||
"AuthorityNameForwarded": "EMSC | {0}",
|
||||
"PropertyDepth": "Depth",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"SourceName": "EMSC",
|
||||
"Title": "Earthquake event"
|
||||
}
|
||||
}
|
11
Assets/StreamingAssets/Messages/Cryville.EEW.EMSC/yue.json
Normal file
11
Assets/StreamingAssets/Messages/Cryville.EEW.EMSC/yue.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"Culture": "yue-HK",
|
||||
"Strings": {
|
||||
"AuthorityName": "EMSC",
|
||||
"AuthorityNameForwarded": "EMSC | {0}",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"SourceName": "EMSC",
|
||||
"Title": "地震事件"
|
||||
}
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9c44f369185730644b6e777e84ee0569
|
||||
guid: 0bc7279c4dd92ae43afb3f503643a84c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"Culture": "zh-TW",
|
||||
"Strings": {
|
||||
"AuthorityName": "EMSC",
|
||||
"AuthorityNameForwarded": "EMSC | {0}",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"SourceName": "EMSC",
|
||||
"Title": "地震事件"
|
||||
}
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 704940476687b1b43a713305dd275d3c
|
||||
guid: dcc04accbfc4e6b43a60d0bac2a76202
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
11
Assets/StreamingAssets/Messages/Cryville.EEW.EMSC/zh.json
Normal file
11
Assets/StreamingAssets/Messages/Cryville.EEW.EMSC/zh.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"Culture": "zh-CN",
|
||||
"Strings": {
|
||||
"AuthorityName": "EMSC",
|
||||
"AuthorityNameForwarded": "EMSC | {0}",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"SourceName": "EMSC",
|
||||
"Title": "地震事件"
|
||||
}
|
||||
}
|
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 643c09fce5fa33048a0a599cab63f9e3
|
||||
guid: c900640f0d0bccc42a6017504c74a8cb
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
@@ -52,7 +52,7 @@
|
||||
"142": "ウルグアイ",
|
||||
"143": "チリ南部沖",
|
||||
"144": "チリ南部",
|
||||
"145": "チリ南部/アルゼンチン国境",
|
||||
"145": "チリ/アルゼンチン国境南部",
|
||||
"146": "アルゼンチン南部",
|
||||
"147": "ティエラデルフエゴ",
|
||||
"148": "フォークランド諸島",
|
||||
@@ -232,7 +232,7 @@
|
||||
"304": "カシミール/チベット自治区(中国)境界",
|
||||
"305": "チベット自治区西部(中国)/インド国境",
|
||||
"306": "チベット自治区(中国)",
|
||||
"307": "中国、スーチョワン(四川)省",
|
||||
"307": "中国、スーチョワン(四川)省/チョンチン(重慶)市",
|
||||
"308": "インド北部",
|
||||
"309": "ネパール/インド国境",
|
||||
"31": "オレゴン州沿岸",
|
||||
@@ -250,7 +250,7 @@
|
||||
"320": "キルギス/シンチアンウイグル自治区(中国)国境",
|
||||
"321": "中国、シンチアンウイグル自治区南部",
|
||||
"322": "中国、カンスー(甘粛)省",
|
||||
"323": "中国、ネイモンクー(内蒙古)自治区西部",
|
||||
"323": "中国、ネイモンクー(内蒙古)自治区西部/ニンシャー(寧夏)回族自治区",
|
||||
"324": "カシミール/シンチアンウイグル自治区(中国)境界",
|
||||
"325": "中国、チンハイ(青海)省",
|
||||
"326": "シベリア南西部",
|
||||
@@ -283,7 +283,7 @@
|
||||
"350": "アフガニスタン南西部",
|
||||
"351": "アラビア半島東部",
|
||||
"352": "ペルシャ湾",
|
||||
"353": "イラン",
|
||||
"353": "イラン南部",
|
||||
"354": "パキスタン南西部",
|
||||
"355": "オマーン湾",
|
||||
"356": "パキスタン沖",
|
||||
@@ -429,7 +429,7 @@
|
||||
"482": "ミズーリ/カンザス州境",
|
||||
"483": "ミズーリ州",
|
||||
"484": "ミズーリ/アーカンソー州境",
|
||||
"485": "ミズーリ/イリノイ州境",
|
||||
"485": "ミズーリ州東部",
|
||||
"486": "ミズーリ州南東部",
|
||||
"487": "ミズーリ州、ケープジラード",
|
||||
"488": "イリノイ州南部",
|
||||
@@ -442,7 +442,7 @@
|
||||
"494": "ニュージャージー州",
|
||||
"495": "アリゾナ州東部",
|
||||
"496": "ニューメキシコ州",
|
||||
"497": "テキサス州北西部/オクラホマ州境",
|
||||
"497": "テキサス州回廊地帯",
|
||||
"498": "テキサス州西部",
|
||||
"499": "オクラホマ州",
|
||||
"5": "アリューシャン列島ニア諸島",
|
||||
@@ -558,7 +558,7 @@
|
||||
"599": "オーストラリア南方沖",
|
||||
"6": "アリューシャン列島ラット諸島",
|
||||
"60": "オアハカ州",
|
||||
"600": "オーストラリア南岸",
|
||||
"600": "サウスオーストラリア沿岸",
|
||||
"601": "ニューサウスウェールズ",
|
||||
"602": "オーストラリア、ビクトリア",
|
||||
"603": "オーストラリア南東岸",
|
||||
@@ -630,7 +630,7 @@
|
||||
"663": "オホーツク海",
|
||||
"664": "中国南東部",
|
||||
"665": "黄海",
|
||||
"666": "中国南東部東方沖",
|
||||
"666": "中国東部東方沖",
|
||||
"667": "ノボシビルスク(ニューシベリアン)諸島北方",
|
||||
"668": "ノボシビルスク(ニューシベリアン)諸島",
|
||||
"669": "東シベリア海",
|
||||
@@ -678,7 +678,7 @@
|
||||
"706": "スマトラ北部",
|
||||
"707": "マレー半島",
|
||||
"708": "タイ湾",
|
||||
"709": "アフガニスタン",
|
||||
"709": "アフガニスタン南東部",
|
||||
"71": "グアテマラ沿岸",
|
||||
"710": "パキスタン",
|
||||
"711": "カシミール南西部",
|
||||
@@ -756,7 +756,7 @@
|
||||
"95": "ウィンドワード諸島",
|
||||
"96": "コロンビア北岸",
|
||||
"97": "ベネズエラ沿岸",
|
||||
"98": "トリニダード・トバゴ",
|
||||
"98": "トリニダード",
|
||||
"99": "コロンビア北部",
|
||||
"AU": "オーストラリア",
|
||||
"CA": "カナダ",
|
||||
@@ -769,8 +769,10 @@
|
||||
"KI": "キリバス",
|
||||
"MacroregionFormat": "{0}、{1}",
|
||||
"MX": "メキシコ",
|
||||
"NC": "ニューカレドニア",
|
||||
"NO": "ノルウェー",
|
||||
"NZ": "ニュージーランド",
|
||||
"PF": "フランス領ポリネシア",
|
||||
"PG": "パプアニューギニア",
|
||||
"PT": "ポルトガル",
|
||||
"RU": "ロシア",
|
||||
|
@@ -18,8 +18,8 @@
|
||||
"111": "northern Peru",
|
||||
"112": "Peru-Brazil border",
|
||||
"113": "Amazonas, Brazil",
|
||||
"114": "off the coast of central Peru",
|
||||
"115": "near the coast of central Peru",
|
||||
"114": "off the coast of Peru",
|
||||
"115": "near the coast of Peru",
|
||||
"116": "central Peru",
|
||||
"117": "southern Peru",
|
||||
"118": "Peru-Bolivia border",
|
||||
@@ -99,7 +99,7 @@
|
||||
"185": "Vanuatu vicinity",
|
||||
"186": "Vanuatu",
|
||||
"187": "New Caledonia",
|
||||
"188": "Loyalty Islands, New Caledonia",
|
||||
"188": "Loyalty Islands",
|
||||
"189": "southeast of the Loyalty Islands",
|
||||
"19": "southeastern Alaska",
|
||||
"190": "New Ireland",
|
||||
@@ -232,7 +232,7 @@
|
||||
"304": "Kashmir-Xizang border",
|
||||
"305": "western Xizang-India border",
|
||||
"306": "Xizang, China",
|
||||
"307": "Sichuan, China",
|
||||
"307": "Sichuan-Chongqing, China",
|
||||
"308": "northern India",
|
||||
"309": "Nepal-India border",
|
||||
"31": "near the coast of Oregon",
|
||||
@@ -250,7 +250,7 @@
|
||||
"320": "Kyrgyzstan-Xinjiang border",
|
||||
"321": "southern Xinjiang, China",
|
||||
"322": "Gansu, China",
|
||||
"323": "western Nei Mongol, China",
|
||||
"323": "western Nei Mongol-Ningxia, China",
|
||||
"324": "Kashmir-Xinjiang border",
|
||||
"325": "Qinghai, China",
|
||||
"326": "southwestern Siberia",
|
||||
@@ -272,7 +272,7 @@
|
||||
"340": "Turkmenistan",
|
||||
"341": "Turkmenistan-Iran border",
|
||||
"342": "Turkmenistan-Afghanistan border",
|
||||
"343": "Turkey-Iran border",
|
||||
"343": "Türkiye-Iran border",
|
||||
"344": "Armenia-Azerbaijan-Iran border",
|
||||
"345": "northwestern Iran",
|
||||
"346": "Iran-Iraq border",
|
||||
@@ -297,8 +297,8 @@
|
||||
"363": "Greece-Bulgaria border",
|
||||
"364": "Greece",
|
||||
"365": "Aegean Sea",
|
||||
"366": "eastern Turkey",
|
||||
"367": "Georgia-Armenia-Turkey border",
|
||||
"366": "Türkiye",
|
||||
"367": "Georgia-Armenia-Türkiye border",
|
||||
"368": "southern Greece",
|
||||
"369": "Dodecanese Islands, Greece",
|
||||
"37": "Nevada",
|
||||
@@ -306,7 +306,7 @@
|
||||
"371": "eastern Mediterranean Sea",
|
||||
"372": "Cyprus",
|
||||
"373": "Dead Sea",
|
||||
"374": "Syria",
|
||||
"374": "Jordan-Syria",
|
||||
"375": "Iraq",
|
||||
"376": "Portugal",
|
||||
"377": "Spain",
|
||||
@@ -385,18 +385,18 @@
|
||||
"442": "Hudson Strait",
|
||||
"443": "northern Quebec",
|
||||
"444": "Davis Strait",
|
||||
"445": "Labrador, Newfoundland and Labrador",
|
||||
"445": "Labrador",
|
||||
"446": "Labrador Sea",
|
||||
"447": "southern Quebec",
|
||||
"448": "Gaspe Peninsula, Quebec",
|
||||
"448": "Gaspe Peninsula",
|
||||
"449": "eastern Quebec",
|
||||
"45": "California-Baja California border",
|
||||
"450": "Anticosti Island, Quebec",
|
||||
"450": "Anticosti Island",
|
||||
"451": "New Brunswick",
|
||||
"452": "Nova Scotia",
|
||||
"453": "Prince Edward Island",
|
||||
"454": "Gulf of St. Lawrence",
|
||||
"455": "Newfoundland, Newfoundland and Labrador",
|
||||
"455": "Newfoundland",
|
||||
"456": "Montana",
|
||||
"457": "eastern Idaho",
|
||||
"458": "Hebgen Lake",
|
||||
@@ -507,7 +507,7 @@
|
||||
"552": "Libya",
|
||||
"553": "Egypt",
|
||||
"554": "Red Sea",
|
||||
"555": "western Saudi Arabia",
|
||||
"555": "western Arabian Peninsula",
|
||||
"556": "Chad",
|
||||
"557": "Sudan",
|
||||
"558": "Ethiopia",
|
||||
@@ -588,11 +588,11 @@
|
||||
"625": "Tokelau",
|
||||
"626": "northern Cook Islands",
|
||||
"627": "Cook Islands",
|
||||
"628": "Society Islands, French Polynesia",
|
||||
"629": "Tubuai Islands, French Polynesia",
|
||||
"628": "Society Islands",
|
||||
"629": "Tubuai Islands",
|
||||
"63": "off the coast of Mexico",
|
||||
"630": "Marquesas Islands, French Polynesia",
|
||||
"631": "Tuamotu Archipelago, French Polynesia",
|
||||
"630": "Marquesas Islands",
|
||||
"631": "Tuamotu Archipelago",
|
||||
"632": "South Pacific Ocean",
|
||||
"633": "Lomonosov Ridge",
|
||||
"634": "Arctic Ocean",
|
||||
@@ -648,7 +648,7 @@
|
||||
"68": "off the coast of Chiapas",
|
||||
"680": "western Greenland",
|
||||
"681": "Baffin Bay",
|
||||
"682": "Baffin Island, Nunavut",
|
||||
"682": "Baffin Island",
|
||||
"683": "southeast central Pacific Ocean",
|
||||
"684": "southern East Pacific Rise",
|
||||
"685": "Easter Island",
|
||||
@@ -678,7 +678,7 @@
|
||||
"706": "northern Sumatra",
|
||||
"707": "Malay Peninsula, Malaysia",
|
||||
"708": "Gulf of Thailand",
|
||||
"709": "central Afghanistan",
|
||||
"709": "southeastern Afghanistan",
|
||||
"71": "near the coast of Guatemala",
|
||||
"710": "Pakistan",
|
||||
"711": "southwestern Kashmir",
|
||||
@@ -769,8 +769,10 @@
|
||||
"KI": "Kiribati",
|
||||
"MacroregionFormat": "{1}, {0}",
|
||||
"MX": "Mexico",
|
||||
"NC": "New Caledonia",
|
||||
"NO": "Norway",
|
||||
"NZ": "New Zealand",
|
||||
"PF": "French Polynesia",
|
||||
"PG": "Papua New Guinea",
|
||||
"PT": "Portugal",
|
||||
"RU": "Russia",
|
||||
|
@@ -11,15 +11,15 @@
|
||||
"105": "厄瓜多爾沿岸",
|
||||
"106": "哥倫比亞—厄瓜多爾邊境",
|
||||
"107": "厄瓜多爾",
|
||||
"108": "秘魯近海",
|
||||
"109": "秘魯沿岸",
|
||||
"108": "秘魯北部近海",
|
||||
"109": "秘魯北部沿岸",
|
||||
"11": "布里斯托爾灣",
|
||||
"110": "秘魯—厄瓜多爾邊境",
|
||||
"111": "秘魯北部",
|
||||
"112": "秘魯—巴西邊境",
|
||||
"113": "巴西亞馬遜",
|
||||
"114": "秘魯中部近海",
|
||||
"115": "秘魯中部沿岸",
|
||||
"114": "秘魯近海",
|
||||
"115": "秘魯沿岸",
|
||||
"116": "秘魯中部",
|
||||
"117": "秘魯南部",
|
||||
"118": "秘魯—玻利維亞邊境",
|
||||
@@ -99,7 +99,7 @@
|
||||
"185": "溫納圖附近",
|
||||
"186": "溫納圖",
|
||||
"187": "新喀里多尼亞",
|
||||
"188": "新喀里多尼亞洛亞蒂群島",
|
||||
"188": "洛亞蒂群島",
|
||||
"189": "洛亞蒂群島東南",
|
||||
"19": "阿拉斯加東南部",
|
||||
"190": "新愛爾蘭",
|
||||
@@ -232,7 +232,7 @@
|
||||
"304": "克什米爾—西藏邊境",
|
||||
"305": "西藏西部—印度邊境",
|
||||
"306": "中國西藏",
|
||||
"307": "中國四川",
|
||||
"307": "中國四川、重慶",
|
||||
"308": "印度北部",
|
||||
"309": "尼泊爾—印度邊境",
|
||||
"31": "俄勒岡沿岸",
|
||||
@@ -250,7 +250,7 @@
|
||||
"320": "吉爾吉斯—新疆邊境",
|
||||
"321": "中國新疆南部",
|
||||
"322": "中國甘肅",
|
||||
"323": "中國內蒙古西部",
|
||||
"323": "中國內蒙古西部、寧夏",
|
||||
"324": "克什米爾—新疆邊境",
|
||||
"325": "中國青海",
|
||||
"326": "西伯利亞西南部",
|
||||
@@ -297,7 +297,7 @@
|
||||
"363": "希臘—保加利亞邊境",
|
||||
"364": "希臘",
|
||||
"365": "愛琴海",
|
||||
"366": "土耳其東部",
|
||||
"366": "土耳其",
|
||||
"367": "格魯吉亞—亞美尼亞—土耳其邊境",
|
||||
"368": "希臘南部",
|
||||
"369": "希臘佐澤卡尼索斯群島",
|
||||
@@ -306,7 +306,7 @@
|
||||
"371": "地中海東部",
|
||||
"372": "塞浦路斯",
|
||||
"373": "死海",
|
||||
"374": "敘利亞",
|
||||
"374": "約旦—敘利亞",
|
||||
"375": "伊拉克",
|
||||
"376": "葡萄牙",
|
||||
"377": "西班牙",
|
||||
@@ -374,7 +374,7 @@
|
||||
"432": "克羅澤群島",
|
||||
"433": "凱爾蓋朗群島",
|
||||
"434": "斷裂海嶺",
|
||||
"435": "印度洋洋中脊東南部",
|
||||
"435": "印度洋東南海嶺",
|
||||
"436": "凱爾蓋朗海台南部",
|
||||
"437": "澳大利亞以南",
|
||||
"438": "沙斯卡寸旺省",
|
||||
@@ -385,18 +385,18 @@
|
||||
"442": "哈得遜海峽",
|
||||
"443": "魁北克省北部",
|
||||
"444": "戴維斯海峽",
|
||||
"445": "紐芬蘭與拉布拉多省拉布拉多",
|
||||
"445": "拉布拉多",
|
||||
"446": "拉布拉多海",
|
||||
"447": "魁北克省南部",
|
||||
"448": "魁北克省加斯佩半島",
|
||||
"448": "加斯佩半島",
|
||||
"449": "魁北克省東部",
|
||||
"45": "加利福尼亞—下加利福尼亞邊境",
|
||||
"450": "魁北克省安蒂科斯蒂島",
|
||||
"450": "安蒂科斯蒂島",
|
||||
"451": "新不倫瑞克省",
|
||||
"452": "新斯科舍省",
|
||||
"453": "愛德華王子島省",
|
||||
"454": "聖勞倫斯灣",
|
||||
"455": "紐芬蘭與拉布拉多省紐芬蘭",
|
||||
"455": "紐芬蘭",
|
||||
"456": "蒙大拿",
|
||||
"457": "愛達荷東部",
|
||||
"458": "希伯根湖",
|
||||
@@ -507,7 +507,7 @@
|
||||
"552": "利比亞",
|
||||
"553": "埃及",
|
||||
"554": "紅海",
|
||||
"555": "沙特阿拉伯西部",
|
||||
"555": "阿拉伯半島西部",
|
||||
"556": "乍得",
|
||||
"557": "蘇丹",
|
||||
"558": "埃塞俄比亞",
|
||||
@@ -588,11 +588,11 @@
|
||||
"625": "托克勞",
|
||||
"626": "庫克群島北部",
|
||||
"627": "庫克群島",
|
||||
"628": "法屬波利尼西亞社會群島",
|
||||
"629": "法屬波利尼西亞土布艾群島",
|
||||
"628": "社會群島",
|
||||
"629": "土布艾群島",
|
||||
"63": "墨西哥近海",
|
||||
"630": "法屬波利尼西亞馬克薩斯群島",
|
||||
"631": "法屬波利尼西亞土阿莫土群島",
|
||||
"630": "馬克薩斯群島",
|
||||
"631": "土阿莫土群島",
|
||||
"632": "南太平洋",
|
||||
"633": "羅蒙諾索夫海嶺",
|
||||
"634": "北冰洋",
|
||||
@@ -600,7 +600,7 @@
|
||||
"636": "格陵蘭島東部",
|
||||
"637": "冰島附近",
|
||||
"638": "冰島",
|
||||
"639": "央麥恩島",
|
||||
"639": "揚馬延島",
|
||||
"64": "米卻肯近海",
|
||||
"640": "格陵蘭海",
|
||||
"641": "冷岸群島以北",
|
||||
@@ -648,7 +648,7 @@
|
||||
"68": "恰帕斯近海",
|
||||
"680": "格陵蘭島西部",
|
||||
"681": "巴芬灣",
|
||||
"682": "努納武特巴芬島",
|
||||
"682": "巴芬島",
|
||||
"683": "太平洋中部東南部",
|
||||
"684": "東太平洋海隆南部",
|
||||
"685": "復活節島",
|
||||
@@ -678,7 +678,7 @@
|
||||
"706": "蘇門答臘北部",
|
||||
"707": "馬來西亞馬來半島",
|
||||
"708": "泰國灣",
|
||||
"709": "阿富汗中部",
|
||||
"709": "阿富汗東南部",
|
||||
"71": "危地馬拉沿岸",
|
||||
"710": "巴基斯坦",
|
||||
"711": "克什米爾西南部",
|
||||
@@ -769,8 +769,10 @@
|
||||
"KI": "基里巴斯",
|
||||
"MacroregionFormat": "{0}{1}",
|
||||
"MX": "墨西哥",
|
||||
"NC": "新喀里多尼亞",
|
||||
"NO": "挪威",
|
||||
"NZ": "新西蘭",
|
||||
"PF": "法屬玻里尼西亞",
|
||||
"PG": "巴布亞新畿內亞",
|
||||
"PT": "葡萄牙",
|
||||
"RU": "俄羅斯",
|
||||
|
@@ -11,15 +11,15 @@
|
||||
"105": "厄瓜多沿岸",
|
||||
"106": "哥倫比亞—厄瓜多邊境",
|
||||
"107": "厄瓜多",
|
||||
"108": "秘魯近海",
|
||||
"109": "秘魯沿岸",
|
||||
"108": "秘魯北部近海",
|
||||
"109": "秘魯北部沿岸",
|
||||
"11": "布里斯托爾灣",
|
||||
"110": "秘魯—厄瓜多邊境",
|
||||
"111": "秘魯北部",
|
||||
"112": "秘魯—巴西邊境",
|
||||
"113": "巴西亞馬遜",
|
||||
"114": "秘魯中部近海",
|
||||
"115": "秘魯中部沿岸",
|
||||
"114": "秘魯近海",
|
||||
"115": "秘魯沿岸",
|
||||
"116": "秘魯中部",
|
||||
"117": "秘魯南部",
|
||||
"118": "秘魯—玻利維亞邊境",
|
||||
@@ -99,7 +99,7 @@
|
||||
"185": "萬那杜附近",
|
||||
"186": "萬那杜",
|
||||
"187": "新喀里多尼亞",
|
||||
"188": "新喀里多尼亞羅雅提群島",
|
||||
"188": "羅雅提群島",
|
||||
"189": "羅雅提群島東南",
|
||||
"19": "阿拉斯加東南部",
|
||||
"190": "新愛爾蘭",
|
||||
@@ -232,7 +232,7 @@
|
||||
"304": "喀什米爾—西藏邊境",
|
||||
"305": "西藏西部—印度邊境",
|
||||
"306": "中國西藏",
|
||||
"307": "中國四川",
|
||||
"307": "中國四川、重慶",
|
||||
"308": "印度北部",
|
||||
"309": "尼泊爾—印度邊境",
|
||||
"31": "奧勒岡沿岸",
|
||||
@@ -250,7 +250,7 @@
|
||||
"320": "吉爾吉斯—新疆邊境",
|
||||
"321": "中國新疆南部",
|
||||
"322": "中國甘肅",
|
||||
"323": "中國內蒙古西部",
|
||||
"323": "中國內蒙古西部、寧夏",
|
||||
"324": "喀什米爾—新疆邊境",
|
||||
"325": "中國青海",
|
||||
"326": "西伯利亞西南部",
|
||||
@@ -297,7 +297,7 @@
|
||||
"363": "希臘—保加利亞邊境",
|
||||
"364": "希臘",
|
||||
"365": "愛琴海",
|
||||
"366": "土耳其東部",
|
||||
"366": "土耳其",
|
||||
"367": "喬治亞—亞美尼亞—土耳其邊境",
|
||||
"368": "希臘南部",
|
||||
"369": "希臘佐澤卡尼索斯群島",
|
||||
@@ -306,7 +306,7 @@
|
||||
"371": "地中海東部",
|
||||
"372": "賽普勒斯",
|
||||
"373": "死海",
|
||||
"374": "敘利亞",
|
||||
"374": "約旦—敘利亞",
|
||||
"375": "伊拉克",
|
||||
"376": "葡萄牙",
|
||||
"377": "西班牙",
|
||||
@@ -374,7 +374,7 @@
|
||||
"432": "克羅澤群島",
|
||||
"433": "凱爾蓋朗群島",
|
||||
"434": "斷裂海嶺",
|
||||
"435": "印度洋洋中脊東南部",
|
||||
"435": "印度洋東南海嶺",
|
||||
"436": "凱爾蓋朗海台南部",
|
||||
"437": "澳大利亞以南",
|
||||
"438": "薩克其萬省",
|
||||
@@ -385,18 +385,18 @@
|
||||
"442": "哈得遜海峽",
|
||||
"443": "魁北克省北部",
|
||||
"444": "戴維斯海峽",
|
||||
"445": "紐芬蘭與拉布拉多省拉布拉多",
|
||||
"445": "拉布拉多",
|
||||
"446": "拉布拉多海",
|
||||
"447": "魁北克省南部",
|
||||
"448": "魁北克省加斯佩半島",
|
||||
"448": "加斯佩半島",
|
||||
"449": "魁北克省東部",
|
||||
"45": "加利福尼亞—下加利福尼亞邊境",
|
||||
"450": "魁北克省安蒂科斯蒂島",
|
||||
"450": "安蒂科斯蒂島",
|
||||
"451": "新不倫瑞克省",
|
||||
"452": "新斯科舍省",
|
||||
"453": "愛德華王子島省",
|
||||
"454": "聖勞倫斯灣",
|
||||
"455": "紐芬蘭與拉布拉多省紐芬蘭",
|
||||
"455": "紐芬蘭",
|
||||
"456": "蒙大拿",
|
||||
"457": "愛達荷東部",
|
||||
"458": "希伯根湖",
|
||||
@@ -507,7 +507,7 @@
|
||||
"552": "利比亞",
|
||||
"553": "埃及",
|
||||
"554": "紅海",
|
||||
"555": "沙烏地阿拉伯西部",
|
||||
"555": "阿拉伯半島西部",
|
||||
"556": "查德",
|
||||
"557": "蘇丹",
|
||||
"558": "衣索比亞",
|
||||
@@ -588,11 +588,11 @@
|
||||
"625": "托克勞",
|
||||
"626": "庫克群島北部",
|
||||
"627": "庫克群島",
|
||||
"628": "法屬玻里尼西亞社會群島",
|
||||
"629": "法屬玻里尼西亞土布艾群島",
|
||||
"628": "社會群島",
|
||||
"629": "土布艾群島",
|
||||
"63": "墨西哥近海",
|
||||
"630": "法屬玻里尼西亞馬克薩斯群島",
|
||||
"631": "法屬玻里尼西亞土阿莫土群島",
|
||||
"630": "馬克薩斯群島",
|
||||
"631": "土阿莫土群島",
|
||||
"632": "南太平洋",
|
||||
"633": "羅蒙諾索夫海嶺",
|
||||
"634": "北冰洋",
|
||||
@@ -600,7 +600,7 @@
|
||||
"636": "格陵蘭島東部",
|
||||
"637": "冰島附近",
|
||||
"638": "冰島",
|
||||
"639": "央麥恩島",
|
||||
"639": "揚馬延島",
|
||||
"64": "米卻肯近海",
|
||||
"640": "格陵蘭海",
|
||||
"641": "冷岸群島以北",
|
||||
@@ -648,7 +648,7 @@
|
||||
"68": "恰帕斯近海",
|
||||
"680": "格陵蘭島西部",
|
||||
"681": "巴芬灣",
|
||||
"682": "努納武特巴芬島",
|
||||
"682": "巴芬島",
|
||||
"683": "太平洋中部東南部",
|
||||
"684": "東太平洋海隆南部",
|
||||
"685": "復活節島",
|
||||
@@ -678,7 +678,7 @@
|
||||
"706": "蘇門答臘北部",
|
||||
"707": "馬來西亞馬來半島",
|
||||
"708": "泰國灣",
|
||||
"709": "阿富汗中部",
|
||||
"709": "阿富汗東南部",
|
||||
"71": "瓜地馬拉沿岸",
|
||||
"710": "巴基斯坦",
|
||||
"711": "喀什米爾西南部",
|
||||
@@ -769,8 +769,10 @@
|
||||
"KI": "吉里巴斯",
|
||||
"MacroregionFormat": "{0}{1}",
|
||||
"MX": "墨西哥",
|
||||
"NC": "新喀里多尼亞",
|
||||
"NO": "挪威",
|
||||
"NZ": "紐西蘭",
|
||||
"PF": "法屬玻里尼西亞",
|
||||
"PG": "巴布亞紐幾內亞",
|
||||
"PT": "葡萄牙",
|
||||
"RU": "俄羅斯",
|
||||
|
@@ -11,15 +11,15 @@
|
||||
"105": "厄瓜多尔沿岸",
|
||||
"106": "哥伦比亚—厄瓜多尔边境",
|
||||
"107": "厄瓜多尔",
|
||||
"108": "秘鲁近海",
|
||||
"109": "秘鲁沿岸",
|
||||
"108": "秘鲁北部近海",
|
||||
"109": "秘鲁北部沿岸",
|
||||
"11": "布里斯托尔湾",
|
||||
"110": "秘鲁—厄瓜多尔边境",
|
||||
"111": "秘鲁北部",
|
||||
"112": "秘鲁—巴西边境",
|
||||
"113": "巴西亚马孙",
|
||||
"114": "秘鲁中部近海",
|
||||
"115": "秘鲁中部沿岸",
|
||||
"114": "秘鲁近海",
|
||||
"115": "秘鲁沿岸",
|
||||
"116": "秘鲁中部",
|
||||
"117": "秘鲁南部",
|
||||
"118": "秘鲁—玻利维亚边境",
|
||||
@@ -99,7 +99,7 @@
|
||||
"185": "瓦努阿图附近",
|
||||
"186": "瓦努阿图",
|
||||
"187": "新喀里多尼亚",
|
||||
"188": "新喀里多尼亚洛亚蒂群岛",
|
||||
"188": "洛亚蒂群岛",
|
||||
"189": "洛亚蒂群岛东南",
|
||||
"19": "阿拉斯加东南部",
|
||||
"190": "新爱尔兰",
|
||||
@@ -232,7 +232,7 @@
|
||||
"304": "克什米尔—西藏边境",
|
||||
"305": "西藏西部—印度边境",
|
||||
"306": "中国西藏",
|
||||
"307": "中国四川",
|
||||
"307": "中国四川、重庆",
|
||||
"308": "印度北部",
|
||||
"309": "尼泊尔—印度边境",
|
||||
"31": "俄勒冈沿岸",
|
||||
@@ -250,7 +250,7 @@
|
||||
"320": "吉尔吉斯斯坦—新疆边境",
|
||||
"321": "中国新疆南部",
|
||||
"322": "中国甘肃",
|
||||
"323": "中国内蒙古西部",
|
||||
"323": "中国内蒙古西部、宁夏",
|
||||
"324": "克什米尔—新疆边境",
|
||||
"325": "中国青海",
|
||||
"326": "西伯利亚西南部",
|
||||
@@ -297,7 +297,7 @@
|
||||
"363": "希腊—保加利亚边境",
|
||||
"364": "希腊",
|
||||
"365": "爱琴海",
|
||||
"366": "土耳其东部",
|
||||
"366": "土耳其",
|
||||
"367": "格鲁吉亚—亚美尼亚—土耳其边境",
|
||||
"368": "希腊南部",
|
||||
"369": "希腊佐泽卡尼索斯群岛",
|
||||
@@ -306,7 +306,7 @@
|
||||
"371": "地中海东部",
|
||||
"372": "塞浦路斯",
|
||||
"373": "死海",
|
||||
"374": "叙利亚",
|
||||
"374": "约旦—叙利亚",
|
||||
"375": "伊拉克",
|
||||
"376": "葡萄牙",
|
||||
"377": "西班牙",
|
||||
@@ -374,7 +374,7 @@
|
||||
"432": "克罗泽群岛",
|
||||
"433": "凯尔盖朗群岛",
|
||||
"434": "断裂海岭",
|
||||
"435": "印度洋洋中脊东南部",
|
||||
"435": "印度洋东南海岭",
|
||||
"436": "凯尔盖朗海台南部",
|
||||
"437": "澳大利亚以南",
|
||||
"438": "萨斯喀彻温省",
|
||||
@@ -385,18 +385,18 @@
|
||||
"442": "哈得孙海峡",
|
||||
"443": "魁北克省北部",
|
||||
"444": "戴维斯海峡",
|
||||
"445": "纽芬兰与拉布拉多省拉布拉多",
|
||||
"445": "拉布拉多",
|
||||
"446": "拉布拉多海",
|
||||
"447": "魁北克省南部",
|
||||
"448": "魁北克省加斯佩半岛",
|
||||
"448": "加斯佩半岛",
|
||||
"449": "魁北克省东部",
|
||||
"45": "加利福尼亚—下加利福尼亚边境",
|
||||
"450": "魁北克省安蒂科斯蒂岛",
|
||||
"450": "安蒂科斯蒂岛",
|
||||
"451": "新不伦瑞克省",
|
||||
"452": "新斯科舍省",
|
||||
"453": "爱德华王子岛省",
|
||||
"454": "圣劳伦斯湾",
|
||||
"455": "纽芬兰与拉布拉多省纽芬兰",
|
||||
"455": "纽芬兰",
|
||||
"456": "蒙大拿",
|
||||
"457": "爱达荷东部",
|
||||
"458": "希伯根湖",
|
||||
@@ -507,7 +507,7 @@
|
||||
"552": "利比亚",
|
||||
"553": "埃及",
|
||||
"554": "红海",
|
||||
"555": "沙特阿拉伯西部",
|
||||
"555": "阿拉伯半岛西部",
|
||||
"556": "乍得",
|
||||
"557": "苏丹",
|
||||
"558": "埃塞俄比亚",
|
||||
@@ -588,11 +588,11 @@
|
||||
"625": "托克劳",
|
||||
"626": "库克群岛北部",
|
||||
"627": "库克群岛",
|
||||
"628": "法属波利尼西亚社会群岛",
|
||||
"629": "法属波利尼西亚土布艾群岛",
|
||||
"628": "社会群岛",
|
||||
"629": "土布艾群岛",
|
||||
"63": "墨西哥近海",
|
||||
"630": "法属波利尼西亚马克萨斯群岛",
|
||||
"631": "法属波利尼西亚土阿莫土群岛",
|
||||
"630": "马克萨斯群岛",
|
||||
"631": "土阿莫土群岛",
|
||||
"632": "南太平洋",
|
||||
"633": "罗蒙诺索夫海岭",
|
||||
"634": "北冰洋",
|
||||
@@ -600,7 +600,7 @@
|
||||
"636": "格陵兰岛东部",
|
||||
"637": "冰岛附近",
|
||||
"638": "冰岛",
|
||||
"639": "央麦恩岛",
|
||||
"639": "扬马延岛",
|
||||
"64": "米却肯近海",
|
||||
"640": "格陵兰海",
|
||||
"641": "斯瓦尔巴群岛以北",
|
||||
@@ -648,7 +648,7 @@
|
||||
"68": "恰帕斯近海",
|
||||
"680": "格陵兰岛西部",
|
||||
"681": "巴芬湾",
|
||||
"682": "努纳武特巴芬岛",
|
||||
"682": "巴芬岛",
|
||||
"683": "太平洋中部东南部",
|
||||
"684": "东太平洋海隆南部",
|
||||
"685": "复活节岛",
|
||||
@@ -678,7 +678,7 @@
|
||||
"706": "苏门答腊北部",
|
||||
"707": "马来西亚马来半岛",
|
||||
"708": "泰国湾",
|
||||
"709": "阿富汗中部",
|
||||
"709": "阿富汗东南部",
|
||||
"71": "危地马拉沿岸",
|
||||
"710": "巴基斯坦",
|
||||
"711": "克什米尔西南部",
|
||||
@@ -769,8 +769,10 @@
|
||||
"KI": "基里巴斯",
|
||||
"MacroregionFormat": "{0}{1}",
|
||||
"MX": "墨西哥",
|
||||
"NC": "新喀里多尼亚",
|
||||
"NO": "挪威",
|
||||
"NZ": "新西兰",
|
||||
"PF": "法属波利尼西亚",
|
||||
"PG": "巴布亚新几内亚",
|
||||
"PT": "葡萄牙",
|
||||
"RU": "俄罗斯",
|
||||
|
@@ -1,6 +1,28 @@
|
||||
{
|
||||
"Culture": "en-US",
|
||||
"Strings": {
|
||||
"SourceName": "GlobalQuakeServer"
|
||||
"AuthorityName": "GlobalQuake",
|
||||
"PropertyDepth": "Depth",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyQuality": "Quality",
|
||||
"SourceName": "GlobalQuakeServer",
|
||||
"Title": "Detected",
|
||||
"TitleArchived": "Archived",
|
||||
"TitleCanceled": "Canceled"
|
||||
},
|
||||
"StringSets": {
|
||||
"PropertyQualityValue": {
|
||||
"Strings": {
|
||||
"S": "S",
|
||||
"A": "A",
|
||||
"B": "B",
|
||||
"C": "C",
|
||||
"D": "D",
|
||||
"E": "E",
|
||||
"F": "F",
|
||||
"?": "?"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,28 @@
|
||||
{
|
||||
"Culture": "yue-HK",
|
||||
"Strings": {
|
||||
"SourceName": "GlobalQuakeServer"
|
||||
"AuthorityName": "GlobalQuake",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyQuality": "品質",
|
||||
"SourceName": "GlobalQuakeServer",
|
||||
"Title": "檢出",
|
||||
"TitleArchived": "歸檔",
|
||||
"TitleCanceled": "取消"
|
||||
},
|
||||
"StringSets": {
|
||||
"PropertyQualityValue": {
|
||||
"Strings": {
|
||||
"S": "S",
|
||||
"A": "A",
|
||||
"B": "B",
|
||||
"C": "C",
|
||||
"D": "D",
|
||||
"E": "E",
|
||||
"F": "F",
|
||||
"?": "?"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,28 @@
|
||||
{
|
||||
"Culture": "zh-TW",
|
||||
"Strings": {
|
||||
"SourceName": "GlobalQuakeServer"
|
||||
"AuthorityName": "GlobalQuake",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyQuality": "品質",
|
||||
"SourceName": "GlobalQuakeServer",
|
||||
"Title": "檢出",
|
||||
"TitleArchived": "歸檔",
|
||||
"TitleCanceled": "取消"
|
||||
},
|
||||
"StringSets": {
|
||||
"PropertyQualityValue": {
|
||||
"Strings": {
|
||||
"S": "S",
|
||||
"A": "A",
|
||||
"B": "B",
|
||||
"C": "C",
|
||||
"D": "D",
|
||||
"E": "E",
|
||||
"F": "F",
|
||||
"?": "?"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,6 +1,28 @@
|
||||
{
|
||||
"Culture": "zh-CN",
|
||||
"Strings": {
|
||||
"SourceName": "GlobalQuakeServer"
|
||||
"AuthorityName": "GlobalQuake",
|
||||
"PropertyDepth": "深度",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyMagnitude": "M",
|
||||
"PropertyQuality": "质量",
|
||||
"SourceName": "GlobalQuakeServer",
|
||||
"Title": "检出",
|
||||
"TitleArchived": "归档",
|
||||
"TitleCanceled": "取消"
|
||||
},
|
||||
"StringSets": {
|
||||
"PropertyQualityValue": {
|
||||
"Strings": {
|
||||
"S": "S",
|
||||
"A": "A",
|
||||
"B": "B",
|
||||
"C": "C",
|
||||
"D": "D",
|
||||
"E": "E",
|
||||
"F": "F",
|
||||
"?": "?"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -106,7 +106,7 @@
|
||||
"0226": "There is a possibility of a destructive local tsunami near the epicenter.",
|
||||
"0227": "Minor local tsunami may occur near the epicenter, but no tsunami damage is expected.",
|
||||
"0228": "A shallow earthquake with the same magnitude in a sea area may generate a tsunami.",
|
||||
"0229": "The possibility of tsunami generation toward Japan in currently under evaluation.",
|
||||
"0229": "The possibility of tsunami generation toward Japan is currently under evaluation.",
|
||||
"0230": "This earthquake poses no tsunami risk to Japan.",
|
||||
"0241": "Earthquake Early Warning is in effect for this earthquake.",
|
||||
"0242": "Earthquake Early Warning is in effect for this earthquake. Its maximum seismic intensity was 2.",
|
||||
@@ -160,12 +160,12 @@
|
||||
"Status": {
|
||||
"Strings": {
|
||||
"訓練": "This report is for drilling.",
|
||||
"試験": "This report is for experiment."
|
||||
"試験": "This report is for testing."
|
||||
}
|
||||
},
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"": "report",
|
||||
"": "Information",
|
||||
"北海道・三陸沖後発地震注意情報": "Hokkaido and off-Sanriku aftershock notice",
|
||||
"南海トラフ地震に関連する情報": "Information related to Nankai Trough earthquake",
|
||||
"噴火に関する火山観測報": "Volcano observation information about eruption",
|
||||
|
@@ -118,7 +118,7 @@
|
||||
},
|
||||
"EarthquakeMagnitudeUnknown": {
|
||||
"Strings": {
|
||||
"": "地震嘅規模不明。",
|
||||
"": "地震嘅震級不明。",
|
||||
"M8を超える巨大地震": "推定呢次地震係震級大於8嘅巨大地震。"
|
||||
}
|
||||
},
|
||||
@@ -131,7 +131,7 @@
|
||||
},
|
||||
"NankaiTroughInfo": {
|
||||
"Strings": {
|
||||
"111": "南海海槽地震嘅監視區域內發生咗規模6.8或以上嘅地震。\n氣象廳已經開始調查呢次發生嘅地震與南海海槽地震嘅關聯性,並舉辦關於沿南海海槽地震嘅評估檢討會。\n若位於南海海槽地震嘅預想受災地區,請根據各自嘅情況,採取行動保護自身安全。",
|
||||
"111": "南海海槽地震嘅監視區域內發生咗震級6.8或以上嘅地震。\n氣象廳已經開始調查呢次發生嘅地震與南海海槽地震嘅關聯性,並舉辦關於沿南海海槽地震嘅評估檢討會。\n若位於南海海槽地震嘅預想受災地區,請根據各自嘅情況,採取行動保護自身安全。",
|
||||
"112": "應變觀測點觀測到咗顯著嘅變化,且變化正在增大。\n氣象廳已經開始調查觀測到嘅現象與南海海槽地震嘅關聯性,並舉辦關於沿南海海槽地震嘅評估檢討會。\n若位於南海海槽地震嘅預想受災地區,請注意後續嘅資訊。",
|
||||
"113": "觀測到咗可能表明預想震源域內嘅板塊邊界嘅固著狀態發生變化嘅現象。\n氣象廳已經開始調查觀測到嘅現象與南海海槽地震嘅關聯性,並舉辦關於沿南海海槽地震嘅評估檢討會。\n若位於南海海槽地震嘅預想受災地區,請注意後續嘅資訊。",
|
||||
"120": "氣象廳臨時舉辦咗關於沿南海海槽地震嘅評估檢討會。評估認為,由於本次地震嘅矩震級為8.0或以上,包括唔係呢次地震嘅震源域嘅區域在內,南海海槽地震嘅預想震源域內,大規模地震發生嘅可能性與平常相比相對較高。\n請根據政府同自治體等後續嘅呼籲等採取防災措施。\n氣象廳將繼續密切監視沿南海海槽地殼活動嘅推移。",
|
||||
@@ -160,12 +160,12 @@
|
||||
"Status": {
|
||||
"Strings": {
|
||||
"訓練": "呢報係訓練報。",
|
||||
"試験": "呢報係試驗報。"
|
||||
"試験": "呢報係測試報。"
|
||||
}
|
||||
},
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"": "電文",
|
||||
"": "資訊",
|
||||
"北海道・三陸沖後発地震注意情報": "北海道、三陸外海餘震注意資訊",
|
||||
"南海トラフ地震に関連する情報": "關於南海海槽地震嘅資訊",
|
||||
"噴火に関する火山観測報": "關於火山噴發嘅火山觀測報",
|
||||
@@ -227,7 +227,7 @@
|
||||
"32": "海上警報(火山噴發警報解除)",
|
||||
"33": "海上預報(火山噴發預報)",
|
||||
"35": "活火山留意(海底火山)",
|
||||
"36": "週邊海域警戒",
|
||||
"36": "周邊海域警戒",
|
||||
"51": "爆發",
|
||||
"52": "噴發",
|
||||
"53": "開始噴發",
|
||||
|
@@ -12,7 +12,7 @@
|
||||
"EarthquakeHypocenterDepth": "震源深度約{0}公里。",
|
||||
"EarthquakeHypocenterDepth0": "震源深度為極淺。",
|
||||
"EarthquakeHypocenterDepthUnknown": "震源深度不明。",
|
||||
"EarthquakeMagnitude": "表示地震規模的震級推定為{0:F1}級。",
|
||||
"EarthquakeMagnitude": "地震的規模推定為{0:F1}級。",
|
||||
"EarthquakeMultiple": "本資訊是由於多次地震而發表的。",
|
||||
"EarthquakeMultipleIndex": "地震{0}",
|
||||
"HeadlineAshDetailed": "此次{0}噴發,降灰等情況的詳細預報如下。",
|
||||
@@ -119,7 +119,7 @@
|
||||
"EarthquakeMagnitudeUnknown": {
|
||||
"Strings": {
|
||||
"": "地震的規模不明。",
|
||||
"M8を超える巨大地震": "推定本次地震為震級大於8的巨大地震"
|
||||
"M8を超える巨大地震": "推定本次地震為規模大於8的巨大地震"
|
||||
}
|
||||
},
|
||||
"HeadlineVolcanoWarning": {
|
||||
@@ -134,7 +134,7 @@
|
||||
"111": "南海海槽地震的監視區域內發生了規模6.8或以上的地震。\n氣象廳已經開始調查本次發生的地震與南海海槽地震的關聯性,並舉辦關於沿南海海槽地震的評估檢討會。\n若位於南海海槽地震的預想受災地區,請根據各自的情況,採取行動保護自身安全。",
|
||||
"112": "應變觀測點觀測到了顯著的變化,且變化正在增大。\n氣象廳已經開始調查觀測到的現象與南海海槽地震的關聯性,並舉辦關於沿南海海槽地震的評估檢討會。\n若位於南海海槽地震的預想受災地區,請注意後續的資訊。",
|
||||
"113": "觀測到了可能表明預想震源域內的板塊邊界的固著狀態發生變化的現象。\n氣象廳已經開始調查觀測到的現象與南海海槽地震的關聯性,並舉辦關於沿南海海槽地震的評估檢討會。\n若位於南海海槽地震的預想受災地區,請注意後續的資訊。",
|
||||
"120": "氣象廳臨時舉辦了關於沿南海海槽地震的評估檢討會。評估認為,由於本次地震的矩震級為8.0或以上,包括不是本次地震的震源域的區域在內,南海海槽地震的預想震源域內,大規模地震發生的可能性與平常相比相對較高。\n請根據政府和自治體等後續的呼籲等採取防災措施。\n氣象廳將繼續密切監視沿南海海槽地殼活動的推移。",
|
||||
"120": "氣象廳臨時舉辦了關於沿南海海槽地震的評估檢討會。評估認為,由於本次地震的地震矩規模為8.0或以上,包括不是本次地震的震源域的區域在內,南海海槽地震的預想震源域內,大規模地震發生的可能性與平常相比相對較高。\n請根據政府和自治體等後續的呼籲等採取防災措施。\n氣象廳將繼續密切監視沿南海海槽地殼活動的推移。",
|
||||
"130": "氣象廳臨時舉辦了關於沿南海海槽地震的評估檢討會。評估認為,南海海槽地震的預想震源域內,大規模地震發生的可能性與平常相比相對較高。\n請根據政府和自治體等後續的呼籲等採取防災措施。\n氣象廳將繼續密切監視沿南海海槽地殼活動的推移。",
|
||||
"190": "氣象廳臨時舉辦了關於沿南海海槽地震的評估檢討會。評估認為,沒有觀測到能夠表明沿南海海槽的大規模地震發生的可能性與平常相比相對較高的變化。\n氣象廳將繼續密切監視沿南海海槽地殼活動的推移。",
|
||||
"200": "氣象廳舉辦了關於沿南海海槽地震的評估檢討會。當前,沒有觀測到能夠表明沿南海海槽的大規模地震發生的可能性與平常相比相對較高的變化。",
|
||||
@@ -160,12 +160,12 @@
|
||||
"Status": {
|
||||
"Strings": {
|
||||
"訓練": "本報為訓練報。",
|
||||
"試験": "本報為試驗報。"
|
||||
"試験": "本報為測試報。"
|
||||
}
|
||||
},
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"": "電文",
|
||||
"": "資訊",
|
||||
"北海道・三陸沖後発地震注意情報": "北海道、三陸外海餘震注意資訊",
|
||||
"南海トラフ地震に関連する情報": "關於南海海槽地震的資訊",
|
||||
"噴火に関する火山観測報": "關於火山噴發的火山觀測報",
|
||||
|
@@ -118,7 +118,7 @@
|
||||
},
|
||||
"EarthquakeMagnitudeUnknown": {
|
||||
"Strings": {
|
||||
"": "地震的规模不明。",
|
||||
"": "地震的震级不明。",
|
||||
"M8を超える巨大地震": "推定本次地震为震级大于8的巨大地震"
|
||||
}
|
||||
},
|
||||
@@ -131,7 +131,7 @@
|
||||
},
|
||||
"NankaiTroughInfo": {
|
||||
"Strings": {
|
||||
"111": "南海海槽地震的监视区域内发生了规模6.8或以上的地震。\n气象厅已经开始调查本次发生的地震与南海海槽地震的关联性,并举办关于沿南海海槽地震的评估检讨会。\n若位于南海海槽地震的预想受灾地区,请根据各自的情况,采取行动保护自身安全。",
|
||||
"111": "南海海槽地震的监视区域内发生了震级6.8或以上的地震。\n气象厅已经开始调查本次发生的地震与南海海槽地震的关联性,并举办关于沿南海海槽地震的评估检讨会。\n若位于南海海槽地震的预想受灾地区,请根据各自的情况,采取行动保护自身安全。",
|
||||
"112": "应变观测点观测到了显著的变化,且变化正在增大。\n气象厅已经开始调查观测到的现象与南海海槽地震的关联性,并举办关于沿南海海槽地震的评估检讨会。\n若位于南海海槽地震的预想受灾地区,请注意后续的信息。",
|
||||
"113": "观测到了可能表明预想震源域内的板块边界的固着状态发生变化的现象。\n气象厅已经开始调查观测到的现象与南海海槽地震的关联性,并举办关于沿南海海槽地震的评估检讨会。\n若位于南海海槽地震的预想受灾地区,请注意后续的信息。",
|
||||
"120": "气象厅临时举办了关于沿南海海槽地震的评估检讨会。评估认为,由于本次地震的矩震级为8.0或以上,包括不是本次地震的震源域的区域在内,南海海槽地震的预想震源域内,大规模地震发生的可能性与平常相比相对较高。\n请根据政府和自治体等后续的呼吁等采取防灾措施。\n气象厅将继续密切监视沿南海海槽地壳活动的推移。",
|
||||
@@ -160,12 +160,12 @@
|
||||
"Status": {
|
||||
"Strings": {
|
||||
"訓練": "本报为训练报。",
|
||||
"試験": "本报为试验报。"
|
||||
"試験": "本报为测试报。"
|
||||
}
|
||||
},
|
||||
"Title": {
|
||||
"Strings": {
|
||||
"": "电文",
|
||||
"": "信息",
|
||||
"北海道・三陸沖後発地震注意情報": "北海道、三陆外海余震注意信息",
|
||||
"南海トラフ地震に関連する情報": "关于南海海槽地震的信息",
|
||||
"噴火に関する火山観測報": "关于火山喷发的火山观测报",
|
||||
|
@@ -1,6 +1,117 @@
|
||||
{
|
||||
"Culture": "en-US",
|
||||
"Strings": {
|
||||
"AuthorityName": "JMA",
|
||||
"LocationAggregated": "{0} (+{1})",
|
||||
"PlumeColorPlume": "Colored plume",
|
||||
"PlumeWhitePlume": "White plume",
|
||||
"PropertyDepth": "Depth",
|
||||
"PropertyDepthValue": "{0}km",
|
||||
"PropertyDepthValueVeryShallow": "Very shallow",
|
||||
"PropertyMaxIntensity": "Max intensity",
|
||||
"PropertyMaxLPGM": "Max LPGM intensity",
|
||||
"PropertyMaxTsunamiHeight": "Max tsunami height",
|
||||
"PropertyMaxTsunamiHeightConditionBelow": "below",
|
||||
"PropertyMaxTsunamiHeightConditionOver": "over",
|
||||
"PropertyMaxTsunamiHeightValue": "{0}m",
|
||||
"PropertyPlumeHeightAboveCrater": "{0} height above crater",
|
||||
"PropertyPlumeHeightAboveCraterValue": "{0}km",
|
||||
"PropertyPlumeHeightAboveCraterValueNone": "No plume",
|
||||
"PropertyPlumeHeightAboveCraterValueUnknown": "Unknown",
|
||||
"SourceName": "JMA Atom"
|
||||
},
|
||||
"StringSets": {
|
||||
"InfoKind": {
|
||||
"Strings": {
|
||||
"": "Information",
|
||||
"北海道・三陸沖後発地震注意情報": "Hokkaido and off-Sanriku aftershock notice",
|
||||
"南海トラフ地震に関連する情報": "Information related to Nankai Trough earthquake",
|
||||
"噴火に関する火山観測報": "Volcano observation information about eruption",
|
||||
"噴火警報・予報": "Vocanic warning and forecast",
|
||||
"噴火速報": "Volcanic eruption notice",
|
||||
"地震の活動状況等に関する情報": "Earthquake activity information",
|
||||
"地震回数情報": "Earthquake count information",
|
||||
"地震情報": "Earthquake and seismic intensity information",
|
||||
"推定噴煙流向報": "Estimated plume direction information",
|
||||
"津波情報": "Tsunami information",
|
||||
"津波警報・注意報・予報": "Tsunami warning, advisory, and forecast",
|
||||
"火山の状況に関する解説情報": "Explanatory information on volcano status",
|
||||
"長周期地震動に関する観測情報": "Long period ground motion observation information",
|
||||
"降灰予報": "Volcanic ash fall forecast",
|
||||
"震度速報": "Seismic intensity information",
|
||||
"震源要素更新のお知らせ": "Significant earthquake hypocenter update notice",
|
||||
"震源速報": "Earthquake information"
|
||||
}
|
||||
},
|
||||
"PredicateVolcanic": {
|
||||
"Strings": {
|
||||
"51": "explosively erupted",
|
||||
"52": "erupted",
|
||||
"53": "started erupting",
|
||||
"54": "is erupting continuously",
|
||||
"55": "stopped erupting continuously",
|
||||
"56": "is actively erupting",
|
||||
"61": "appeared explosively erupted",
|
||||
"62": "appeared erupted",
|
||||
"63": "appeared to start erupting",
|
||||
"64": "appeared to be erupting continuously",
|
||||
"65": "appeared to stop erupting"
|
||||
}
|
||||
},
|
||||
"PropertyMagnitudeValueUnknown": {
|
||||
"Strings": {
|
||||
"": "Unknown",
|
||||
"M8を超える巨大地震": "Massive earthquake of M8 and above"
|
||||
}
|
||||
},
|
||||
"PropertyMaxTsunamiHeightSpecialValue": {
|
||||
"Strings": {
|
||||
"微弱": "Slight",
|
||||
"欠測": "Data missing",
|
||||
"観測中": "Information pending"
|
||||
}
|
||||
},
|
||||
"PropertyPlumeHeightAboveCraterValueCondition": {
|
||||
"Strings": {
|
||||
"上昇中": "rising",
|
||||
"以上": "over",
|
||||
"雲に入る": "entering clouds"
|
||||
}
|
||||
},
|
||||
"PropertyTsunamiWarningValue": {
|
||||
"Strings": {
|
||||
"5": "Major Tsunami Warning",
|
||||
"4": "Tsunami Warning",
|
||||
"3": "Tsunami Advisory",
|
||||
"0": "Tsunami Forecast",
|
||||
"": "Lifted"
|
||||
}
|
||||
},
|
||||
"PropertyVocanicWarningValue": {
|
||||
"Strings": {
|
||||
"11": "Level 1",
|
||||
"12": "Level 2",
|
||||
"13": "Level 3",
|
||||
"14": "Level 4",
|
||||
"15": "Level 5",
|
||||
"21": "Potential",
|
||||
"22": "Caution around crater",
|
||||
"23": "Caution non-residential",
|
||||
"24": "Caution foot of mountains",
|
||||
"25": "Caution residential",
|
||||
"31": "Volcanic warning",
|
||||
"32": "Warning lifted",
|
||||
"33": "Volcanic forecast",
|
||||
"35": "Potential",
|
||||
"36": "Caution sea area",
|
||||
"": "Volcanic warning"
|
||||
}
|
||||
},
|
||||
"Status": {
|
||||
"Strings": {
|
||||
"訓練": "{0} (Drilling)",
|
||||
"試験": "{0} (Testing)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user