From 1fb3ef47618b16e3e9119a6fc19bbf021ae8c62b Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Thu, 5 Mar 2026 18:58:30 +0900 Subject: [PATCH 01/16] =?UTF-8?q?data=5Fvalidator=E3=81=AE=E4=B8=8D?= =?UTF-8?q?=E6=95=B4=E5=90=88=E6=A4=9C=E5=87=BA=E6=99=82=E3=81=ABPR?= =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E3=81=B8=E5=86=85=E8=A8=B3?= =?UTF-8?q?=E3=82=92=E6=8A=95=E7=A8=BF=E3=81=99=E3=82=8B=20(#1406)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/verify_data_Integrity.yml | 43 +++++++- data_validator/src/main.rs | 109 +++++++++++++++----- 2 files changed, 126 insertions(+), 26 deletions(-) diff --git a/.github/workflows/verify_data_Integrity.yml b/.github/workflows/verify_data_Integrity.yml index d4435509..25bb32e5 100644 --- a/.github/workflows/verify_data_Integrity.yml +++ b/.github/workflows/verify_data_Integrity.yml @@ -9,10 +9,51 @@ on: name: Verify station data integrity +permissions: + contents: read + pull-requests: write + issues: write + jobs: verify_migration_data: name: Verify pushed migration data runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - run: cargo run --bin data_validator + + - name: Run data validator + id: validate + run: | + if cargo run --bin data_validator; then + echo "result=success" >> "$GITHUB_OUTPUT" + else + echo "result=failure" >> "$GITHUB_OUTPUT" + fi + + - name: Find existing comment + if: github.event_name == 'pull_request' + uses: peter-evans/find-comment@v3 + id: find_comment + with: + issue-number: ${{ github.event.pull_request.number }} + comment-author: "github-actions[bot]" + body-includes: "" + + - name: Post or update validation failure comment + if: github.event_name == 'pull_request' && steps.validate.outputs.result == 'failure' + uses: peter-evans/create-or-update-comment@v4 + with: + issue-number: ${{ github.event.pull_request.number }} + comment-id: ${{ steps.find_comment.outputs.comment-id }} + body-path: /tmp/validation_report.md + edit-mode: replace + + - name: Delete comment if validation passed + if: github.event_name == 'pull_request' && steps.validate.outputs.result == 'success' && steps.find_comment.outputs.comment-id != '' + run: gh api repos/${{ github.repository }}/issues/comments/${{ steps.find_comment.outputs.comment-id }} -X DELETE + env: + GH_TOKEN: ${{ github.token }} + + - name: Fail job if validation failed + if: steps.validate.outputs.result == 'failure' + run: exit 1 diff --git a/data_validator/src/main.rs b/data_validator/src/main.rs index e29f9672..a9bc1b7a 100644 --- a/data_validator/src/main.rs +++ b/data_validator/src/main.rs @@ -1,55 +1,114 @@ use core::panic; +use std::collections::HashSet; use std::path::Path; use csv::{ReaderBuilder, StringRecord}; fn main() -> Result<(), Box> { - let mut has_err = false; + let mut invalid_station_ids: Vec = Vec::new(); + let mut invalid_type_ids: Vec = Vec::new(); let data_path: &Path = Path::new("data"); let mut rdr = ReaderBuilder::new().from_path(data_path.join("3!stations.csv"))?; - let records: Vec = rdr.records().filter_map(|row| row.ok()).collect(); - let station_ids: Vec = records + let records: Vec = rdr.records().collect::, _>>()?; + let station_ids: HashSet = records .iter() .map(|row| row.get(0).unwrap().parse::().unwrap()) .collect(); let mut rdr = ReaderBuilder::new().from_path(data_path.join("4!types.csv"))?; - let records: Vec = rdr.records().filter_map(|row| row.ok()).collect(); - let type_ids: Vec = records + let records: Vec = rdr.records().collect::, _>>()?; + let type_ids: HashSet = records .iter() .map(|row| row.get(1).unwrap().parse::().unwrap()) .collect(); let mut rdr = ReaderBuilder::new().from_path(data_path.join("5!station_station_types.csv"))?; - let records: Vec = rdr.records().filter_map(|row| row.ok()).collect(); + let records: Vec = rdr.records().collect::, _>>()?; - if let Some(invalid_record) = records - .iter() - .find(|row| !station_ids.contains(&row.get(1).unwrap().parse::().unwrap())) - { - println!( - "[INVALID] Unrecognized Station ID {:?} Found!", - invalid_record.get(1).unwrap() - ); - has_err = true; - } + for record in &records { + let line = || record.iter().collect::>().join(","); - if let Some(invalid_record) = records - .iter() - .find(|row| !type_ids.contains(&row.get(2).unwrap().parse::().unwrap())) - { - println!( - "[INVALID] Unrecognized Type ID {:?} Found!", - invalid_record.get(2).unwrap() - ); - has_err = true; + let station_cd: u32 = match record.get(1).and_then(|v| v.parse().ok()) { + Some(id) => id, + None => { + println!("[INVALID] Failed to parse station_cd from row: {}", line()); + invalid_station_ids.push(line()); + continue; + } + }; + let type_cd: u32 = match record.get(2).and_then(|v| v.parse().ok()) { + Some(id) => id, + None => { + println!("[INVALID] Failed to parse type_cd from row: {}", line()); + invalid_type_ids.push(line()); + continue; + } + }; + + if !station_ids.contains(&station_cd) { + println!("[INVALID] Unrecognized Station ID {:?} Found!", station_cd); + invalid_station_ids.push(line()); + } + if !type_ids.contains(&type_cd) { + println!("[INVALID] Unrecognized Type ID {:?} Found!", type_cd); + invalid_type_ids.push(line()); + } } + let has_err = !invalid_station_ids.is_empty() || !invalid_type_ids.is_empty(); + if has_err { + let report = build_markdown_report(&invalid_station_ids, &invalid_type_ids); + let report_path = + std::env::var("VALIDATION_REPORT_PATH").unwrap_or("/tmp/validation_report.md".into()); + std::fs::write(&report_path, &report)?; + eprintln!("Validation report written to {}", report_path); panic!("[FATAL] Verification hasn't been passed!"); } println!("[VALID] No errors reported."); Ok(()) } + +fn build_markdown_report(invalid_station_ids: &[String], invalid_type_ids: &[String]) -> String { + let mut md = String::new(); + + md.push_str("\n"); + md.push_str("## :x: データ整合性チェックに失敗しました\n\n"); + md.push_str("`5!station_station_types.csv` に存在しない外部キーへの参照が含まれています。\n\n"); + + if !invalid_station_ids.is_empty() { + md.push_str(&format!( + "### 不正な Station ID ({} 件)\n\n", + invalid_station_ids.len() + )); + md.push_str("`3!stations.csv` に存在しない `station_cd` が参照されています。\n\n"); + md.push_str("
\n該当レコード一覧\n\n"); + md.push_str("| 行データ |\n|---|\n"); + for line in invalid_station_ids { + md.push_str(&format!("| `{}` |\n", escape_markdown_cell(line))); + } + md.push_str("\n
\n\n"); + } + + if !invalid_type_ids.is_empty() { + md.push_str(&format!( + "### 不正な Type ID ({} 件)\n\n", + invalid_type_ids.len() + )); + md.push_str("`4!types.csv` に存在しない `type_cd` が参照されています。\n\n"); + md.push_str("
\n該当レコード一覧\n\n"); + md.push_str("| 行データ |\n|---|\n"); + for line in invalid_type_ids { + md.push_str(&format!("| `{}` |\n", escape_markdown_cell(line))); + } + md.push_str("\n
\n\n"); + } + + md +} + +fn escape_markdown_cell(s: &str) -> String { + s.replace('`', "`").replace('|', "|") +} From 64b2b23ebbc5037027a676425ae1c2b3b951cda6 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Thu, 5 Mar 2026 20:09:06 +0900 Subject: [PATCH 02/16] ci: use pull_request_target to fix token permissions (#1407) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci: use pull_request_target to fix "Resource not accessible by integration" The pull_request trigger gives GITHUB_TOKEN read-only permissions in certain contexts (fork PRs, restrictive repo/org settings), causing peter-evans/create-or-update-comment and gh api DELETE calls to fail. Switch both verify_data_Integrity.yml and visualize_stopping_patterns.yml to pull_request_target, which runs with the base repo's token permissions. Explicitly checkout the PR head SHA so the correct code is validated. https://claude.ai/code/session_01Lr3k5y8UYcH26a8hndo8ek * ci: fix privilege escalation by splitting into two-workflow pattern Both verify_data_Integrity.yml and visualize_stopping_patterns.yml used pull_request_target while checking out and executing untrusted PR code (cargo run, python3) with write permissions — a known code-execution escalation path. Fix by splitting each into two workflows: - Runner workflow: triggered by pull_request (read-only token), executes untrusted PR code, uploads results as artifacts - Comment workflow: triggered by workflow_run (write permissions), only downloads trusted artifact data and manages PR comments This ensures untrusted code never runs with elevated permissions. https://claude.ai/code/session_01Lr3k5y8UYcH26a8hndo8ek * ci: add actions: read permission for cross-run artifact download actions/download-artifact@v4 with run-id requires actions: read to access artifacts from the triggering workflow run. https://claude.ai/code/session_01Lr3k5y8UYcH26a8hndo8ek * ci: use trusted event context for PR number and harden metadata reads - Use github.event.workflow_run.pull_requests[0].number instead of reading PR number from artifact files (avoids trusting artifact data) - Add conclusion == 'success' gate to visualization comment workflow so it only posts when the source workflow succeeded - Add existence/non-empty checks for metadata files with clear error messages or safe defaults https://claude.ai/code/session_01Lr3k5y8UYcH26a8hndo8ek --------- Co-authored-by: Claude --- .github/workflows/verify_data_Integrity.yml | 37 +++++------ .../verify_data_integrity_comment.yml | 59 ++++++++++++++++++ .../workflows/visualize_stopping_patterns.yml | 37 +++++------ .../visualize_stopping_patterns_comment.yml | 61 +++++++++++++++++++ 4 files changed, 148 insertions(+), 46 deletions(-) create mode 100644 .github/workflows/verify_data_integrity_comment.yml create mode 100644 .github/workflows/visualize_stopping_patterns_comment.yml diff --git a/.github/workflows/verify_data_Integrity.yml b/.github/workflows/verify_data_Integrity.yml index 25bb32e5..beca87b8 100644 --- a/.github/workflows/verify_data_Integrity.yml +++ b/.github/workflows/verify_data_Integrity.yml @@ -11,8 +11,6 @@ name: Verify station data integrity permissions: contents: read - pull-requests: write - issues: write jobs: verify_migration_data: @@ -30,29 +28,22 @@ jobs: echo "result=failure" >> "$GITHUB_OUTPUT" fi - - name: Find existing comment - if: github.event_name == 'pull_request' - uses: peter-evans/find-comment@v3 - id: find_comment - with: - issue-number: ${{ github.event.pull_request.number }} - comment-author: "github-actions[bot]" - body-includes: "" + - name: Save metadata for comment workflow + if: always() && github.event_name == 'pull_request' + run: | + mkdir -p /tmp/validation-artifacts + echo "${{ github.event.pull_request.number }}" > /tmp/validation-artifacts/pr_number + echo "${{ steps.validate.outputs.result }}" > /tmp/validation-artifacts/result + if [ -f /tmp/validation_report.md ]; then + cp /tmp/validation_report.md /tmp/validation-artifacts/ + fi - - name: Post or update validation failure comment - if: github.event_name == 'pull_request' && steps.validate.outputs.result == 'failure' - uses: peter-evans/create-or-update-comment@v4 + - name: Upload validation artifacts + if: always() && github.event_name == 'pull_request' + uses: actions/upload-artifact@v4 with: - issue-number: ${{ github.event.pull_request.number }} - comment-id: ${{ steps.find_comment.outputs.comment-id }} - body-path: /tmp/validation_report.md - edit-mode: replace - - - name: Delete comment if validation passed - if: github.event_name == 'pull_request' && steps.validate.outputs.result == 'success' && steps.find_comment.outputs.comment-id != '' - run: gh api repos/${{ github.repository }}/issues/comments/${{ steps.find_comment.outputs.comment-id }} -X DELETE - env: - GH_TOKEN: ${{ github.token }} + name: validation-result + path: /tmp/validation-artifacts/ - name: Fail job if validation failed if: steps.validate.outputs.result == 'failure' diff --git a/.github/workflows/verify_data_integrity_comment.yml b/.github/workflows/verify_data_integrity_comment.yml new file mode 100644 index 00000000..5c5e8868 --- /dev/null +++ b/.github/workflows/verify_data_integrity_comment.yml @@ -0,0 +1,59 @@ +name: Post data validation comment + +on: + workflow_run: + workflows: ["Verify station data integrity"] + types: [completed] + +permissions: + actions: read + pull-requests: write + issues: write + +jobs: + comment: + name: Post validation result comment + runs-on: ubuntu-latest + if: github.event.workflow_run.event == 'pull_request' + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: validation-result + path: /tmp/validation-artifacts + run-id: ${{ github.event.workflow_run.id }} + github-token: ${{ github.token }} + + - name: Read metadata + id: meta + run: | + echo "pr_number=${{ github.event.workflow_run.pull_requests[0].number }}" >> "$GITHUB_OUTPUT" + if [ -s /tmp/validation-artifacts/result ]; then + echo "result=$(cat /tmp/validation-artifacts/result)" >> "$GITHUB_OUTPUT" + else + echo "::error::Missing or empty result metadata" + exit 1 + fi + + - name: Find existing comment + uses: peter-evans/find-comment@v3 + id: find_comment + with: + issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} + comment-author: "github-actions[bot]" + body-includes: "" + + - name: Post or update validation failure comment + if: steps.meta.outputs.result == 'failure' + uses: peter-evans/create-or-update-comment@v4 + with: + issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} + comment-id: ${{ steps.find_comment.outputs.comment-id }} + body-path: /tmp/validation-artifacts/validation_report.md + edit-mode: replace + + - name: Delete comment if validation passed + if: steps.meta.outputs.result == 'success' && steps.find_comment.outputs.comment-id != '' + run: gh api repos/${{ github.repository }}/issues/comments/${{ steps.find_comment.outputs.comment-id }} -X DELETE + env: + GH_TOKEN: ${{ github.token }} diff --git a/.github/workflows/visualize_stopping_patterns.yml b/.github/workflows/visualize_stopping_patterns.yml index cb58af22..984bd293 100644 --- a/.github/workflows/visualize_stopping_patterns.yml +++ b/.github/workflows/visualize_stopping_patterns.yml @@ -8,8 +8,6 @@ on: permissions: contents: read - pull-requests: write - issues: write jobs: visualize: @@ -34,26 +32,19 @@ jobs: BASE_REF="origin/${{ github.event.pull_request.base.ref }}" \ python3 .github/scripts/visualize_stopping_patterns.py - - name: Find existing comment + - name: Save metadata for comment workflow if: always() - uses: peter-evans/find-comment@v3 - id: find_comment - with: - issue-number: ${{ github.event.pull_request.number }} - comment-author: "github-actions[bot]" - body-includes: "" - - - name: Post or update comment - if: steps.visualize.outputs.has_changes == 'true' - uses: peter-evans/create-or-update-comment@v4 + run: | + mkdir -p /tmp/visualize-artifacts + echo "${{ github.event.pull_request.number }}" > /tmp/visualize-artifacts/pr_number + echo "${{ steps.visualize.outputs.has_changes }}" > /tmp/visualize-artifacts/has_changes + if [ -f /tmp/visualization_comment.md ]; then + cp /tmp/visualization_comment.md /tmp/visualize-artifacts/ + fi + + - name: Upload artifacts + if: always() + uses: actions/upload-artifact@v4 with: - issue-number: ${{ github.event.pull_request.number }} - comment-id: ${{ steps.find_comment.outputs.comment-id }} - body-path: /tmp/visualization_comment.md - edit-mode: replace - - - name: Delete comment if no changes - if: steps.visualize.outputs.has_changes == 'false' && steps.find_comment.outputs.comment-id != '' - run: gh api repos/${{ github.repository }}/issues/comments/${{ steps.find_comment.outputs.comment-id }} -X DELETE - env: - GH_TOKEN: ${{ github.token }} + name: visualization-result + path: /tmp/visualize-artifacts/ diff --git a/.github/workflows/visualize_stopping_patterns_comment.yml b/.github/workflows/visualize_stopping_patterns_comment.yml new file mode 100644 index 00000000..2fe0bea3 --- /dev/null +++ b/.github/workflows/visualize_stopping_patterns_comment.yml @@ -0,0 +1,61 @@ +name: Post stopping pattern visualization comment + +on: + workflow_run: + workflows: ["Visualize Stopping Patterns"] + types: [completed] + +permissions: + actions: read + pull-requests: write + issues: write + +jobs: + comment: + name: Post visualization comment + runs-on: ubuntu-latest + if: >- + github.event.workflow_run.conclusion == 'success' && + github.event.workflow_run.event == 'pull_request' + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + name: visualization-result + path: /tmp/visualize-artifacts + run-id: ${{ github.event.workflow_run.id }} + github-token: ${{ github.token }} + + - name: Read metadata + id: meta + run: | + echo "pr_number=${{ github.event.workflow_run.pull_requests[0].number }}" >> "$GITHUB_OUTPUT" + if [ -s /tmp/visualize-artifacts/has_changes ]; then + echo "has_changes=$(cat /tmp/visualize-artifacts/has_changes)" >> "$GITHUB_OUTPUT" + else + echo "::warning::has_changes metadata missing or empty, defaulting to false" + echo "has_changes=false" >> "$GITHUB_OUTPUT" + fi + + - name: Find existing comment + uses: peter-evans/find-comment@v3 + id: find_comment + with: + issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} + comment-author: "github-actions[bot]" + body-includes: "" + + - name: Post or update comment + if: steps.meta.outputs.has_changes == 'true' + uses: peter-evans/create-or-update-comment@v4 + with: + issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} + comment-id: ${{ steps.find_comment.outputs.comment-id }} + body-path: /tmp/visualize-artifacts/visualization_comment.md + edit-mode: replace + + - name: Delete comment if no changes + if: steps.meta.outputs.has_changes == 'false' && steps.find_comment.outputs.comment-id != '' + run: gh api repos/${{ github.repository }}/issues/comments/${{ steps.find_comment.outputs.comment-id }} -X DELETE + env: + GH_TOKEN: ${{ github.token }} From ce5b4b8006f240aca8c48b9cc26cd17f0f3344c2 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Thu, 5 Mar 2026 20:22:25 +0900 Subject: [PATCH 03/16] ci: fix PR number resolution with artifact fallback (#1408) github.event.workflow_run.pull_requests[0].number can be empty when GitHub cannot resolve the PR association (e.g., head and base branch share the same name). This caused the comment step to fail on PR #1405. Use event context when available, fall back to artifact pr_number file. All downstream steps reference steps.meta.outputs.pr_number. https://claude.ai/code/session_01Lr3k5y8UYcH26a8hndo8ek Co-authored-by: Claude --- .../workflows/verify_data_integrity_comment.yml | 16 +++++++++++++--- .../visualize_stopping_patterns_comment.yml | 16 +++++++++++++--- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.github/workflows/verify_data_integrity_comment.yml b/.github/workflows/verify_data_integrity_comment.yml index 5c5e8868..f78c4d60 100644 --- a/.github/workflows/verify_data_integrity_comment.yml +++ b/.github/workflows/verify_data_integrity_comment.yml @@ -27,7 +27,17 @@ jobs: - name: Read metadata id: meta run: | - echo "pr_number=${{ github.event.workflow_run.pull_requests[0].number }}" >> "$GITHUB_OUTPUT" + PR_NUMBER="${{ github.event.workflow_run.pull_requests[0].number }}" + if [ -z "$PR_NUMBER" ] && [ -s /tmp/validation-artifacts/pr_number ]; then + PR_NUMBER=$(cat /tmp/validation-artifacts/pr_number) + echo "::warning::pull_requests context empty, using artifact fallback" + fi + if [ -z "$PR_NUMBER" ]; then + echo "::error::Could not determine PR number" + exit 1 + fi + echo "pr_number=$PR_NUMBER" >> "$GITHUB_OUTPUT" + if [ -s /tmp/validation-artifacts/result ]; then echo "result=$(cat /tmp/validation-artifacts/result)" >> "$GITHUB_OUTPUT" else @@ -39,7 +49,7 @@ jobs: uses: peter-evans/find-comment@v3 id: find_comment with: - issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} + issue-number: ${{ steps.meta.outputs.pr_number }} comment-author: "github-actions[bot]" body-includes: "" @@ -47,7 +57,7 @@ jobs: if: steps.meta.outputs.result == 'failure' uses: peter-evans/create-or-update-comment@v4 with: - issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} + issue-number: ${{ steps.meta.outputs.pr_number }} comment-id: ${{ steps.find_comment.outputs.comment-id }} body-path: /tmp/validation-artifacts/validation_report.md edit-mode: replace diff --git a/.github/workflows/visualize_stopping_patterns_comment.yml b/.github/workflows/visualize_stopping_patterns_comment.yml index 2fe0bea3..e4e99550 100644 --- a/.github/workflows/visualize_stopping_patterns_comment.yml +++ b/.github/workflows/visualize_stopping_patterns_comment.yml @@ -29,7 +29,17 @@ jobs: - name: Read metadata id: meta run: | - echo "pr_number=${{ github.event.workflow_run.pull_requests[0].number }}" >> "$GITHUB_OUTPUT" + PR_NUMBER="${{ github.event.workflow_run.pull_requests[0].number }}" + if [ -z "$PR_NUMBER" ] && [ -s /tmp/visualize-artifacts/pr_number ]; then + PR_NUMBER=$(cat /tmp/visualize-artifacts/pr_number) + echo "::warning::pull_requests context empty, using artifact fallback" + fi + if [ -z "$PR_NUMBER" ]; then + echo "::error::Could not determine PR number" + exit 1 + fi + echo "pr_number=$PR_NUMBER" >> "$GITHUB_OUTPUT" + if [ -s /tmp/visualize-artifacts/has_changes ]; then echo "has_changes=$(cat /tmp/visualize-artifacts/has_changes)" >> "$GITHUB_OUTPUT" else @@ -41,7 +51,7 @@ jobs: uses: peter-evans/find-comment@v3 id: find_comment with: - issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} + issue-number: ${{ steps.meta.outputs.pr_number }} comment-author: "github-actions[bot]" body-includes: "" @@ -49,7 +59,7 @@ jobs: if: steps.meta.outputs.has_changes == 'true' uses: peter-evans/create-or-update-comment@v4 with: - issue-number: ${{ github.event.workflow_run.pull_requests[0].number }} + issue-number: ${{ steps.meta.outputs.pr_number }} comment-id: ${{ steps.find_comment.outputs.comment-id }} body-path: /tmp/visualize-artifacts/visualization_comment.md edit-mode: replace From fad371ddcb4d4c094662922d1df7b10383b5fb70 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Thu, 5 Mar 2026 21:03:26 +0900 Subject: [PATCH 04/16] =?UTF-8?q?ci:=20=E3=83=96=E3=83=A9=E3=83=B3?= =?UTF-8?q?=E3=83=81=E3=83=99=E3=83=BC=E3=82=B9=E3=81=AEPR=E3=83=A9?= =?UTF-8?q?=E3=83=99=E3=83=A9=E3=83=BC=E3=82=92=E5=B0=8E=E5=85=A5=E3=81=97?= =?UTF-8?q?=E3=80=81labeler=E3=82=92v5=E3=81=AB=E6=9B=B4=E6=96=B0=20(#1409?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - actions/labeler を v4 → v5 に更新し、labeler.yml を v5 形式に移行 - TimonVS/pr-labeler-action@v5 を追加してブランチパターンによるラベル付与を実装 - ヘッドブランチ (feature/*, fix/*, data/*, release/* 等) に基づくラベル付与 - ベースブランチ (master, dev, staging) に基づく deploy:production / deploy:dev / deploy:staging ラベル付与 - labeler.yml からブランチ記法 (deploy-prod, deploy-staging, deploy-dev) を除去 https://claude.ai/code/session_011JibAfjh65ao3VdZFJhXka Co-authored-by: Claude --- .github/labeler.yml | 34 ++++++++++++++++++-------------- .github/pr-labeler.yml | 10 +++++++++- .github/workflows/pr_labeler.yml | 17 ++++++++++++++-- 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index de284cfe..00db028f 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,20 +1,24 @@ ci/cd: - - ".github/workflows/*" - - ".github/*.yml" + - changed-files: + - any-glob-to-any-file: + - ".github/workflows/*" + - ".github/*.yml" rust: - - "src/*" - - "src/**/*" + - changed-files: + - any-glob-to-any-file: + - "src/*" + - "src/**/*" protobuf: - - "proto/*" - - "proto/**/*" -deploy-prod: - - "master" -deploy-staging: - - "staging" -deploy-dev: - - "dev" + - changed-files: + - any-glob-to-any-file: + - "proto/*" + - "proto/**/*" documentation: - - ".github/ISSUE_TEMPLATE/*" - - "pull_request_template.md" + - changed-files: + - any-glob-to-any-file: + - ".github/ISSUE_TEMPLATE/*" + - "pull_request_template.md" data: - - "*.csv" + - changed-files: + - any-glob-to-any-file: + - "*.csv" diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml index f096fb65..3088fd32 100644 --- a/.github/pr-labeler.yml +++ b/.github/pr-labeler.yml @@ -1,3 +1,11 @@ +# Head branch (source) patterns feature: feature/* fix: fix/* -chore: chore/* \ No newline at end of file +chore: chore/* +data: data/* +release: release/* + +# Base branch (target) patterns +deploy:production: master +deploy:dev: dev +deploy:staging: staging diff --git a/.github/workflows/pr_labeler.yml b/.github/workflows/pr_labeler.yml index 356bbb91..e92890f4 100644 --- a/.github/workflows/pr_labeler.yml +++ b/.github/workflows/pr_labeler.yml @@ -3,12 +3,25 @@ on: - pull_request_target jobs: - triage: + label-by-files: + name: Label by changed files permissions: contents: read pull-requests: write runs-on: ubuntu-latest steps: - - uses: actions/labeler@v4 + - uses: actions/labeler@v5 with: repo-token: "${{ secrets.GITHUB_TOKEN }}" + + label-by-branch: + name: Label by branch + permissions: + contents: read + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: TimonVS/pr-labeler-action@v5 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" + configuration-path: .github/pr-labeler.yml From 63b86ca92481037aca05072529e1bdc776d3fc6f Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 00:55:26 +0900 Subject: [PATCH 05/16] Add katakana to IPA conversion for SSML phoneme tags (#1410) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add katakana-to-IPA conversion module for TTS pronunciation Rule-based converter that handles: - Palatalized sounds (拗音): キョ→kʲo, チョ→t͡ɕo, ジョ→ʤo, etc. - Moraic nasal (撥音) assimilation: ン→m/ɲ/ŋ/n/ɴ based on context - Geminate consonants (促音): ッ doubles following onset - Long vowels: オウ→oː, オオ→oː, ー→vowelː Replaces 31 hardcoded IPA mappings in Cloud Functions tts.ts with systematic pattern-based generation from katakana input. https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * chore: update gRPCProto submodule with name_ipa fields Points to local branch adding optional name_ipa to Station and Line messages for TTS IPA transcription support. https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * feat: wire up IPA generation in Station/Line gRPC responses Compute name_ipa from name_katakana using katakana_to_ipa() in: - Station DTO (From for GrpcStation) - Line DTO (From for GrpcLine) - StationMinimal construction in route queries The IPA field is optional and only set when the katakana input produces a non-empty transcription. https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * chore: update gRPCProto submodule with StationMinimal name_ipa field https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * fix: resolve clippy warnings and fmt issues in ipa module https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * style: apply cargo fmt to DTO files https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * bump proto submod * chore: sync proto submodule pointer * fix: improve IPA phonological rules for palatal nasal and voiced affricate gemination - Add 'j' and 'ç' to palatal assimilation check in nasal_for_following so ン before ヤ行/ヒ行 correctly produces ɲ (e.g. シンヨコハマ → ɕiɲjokohama) - Fix sokuon (ッ) handling for voiced affricates: replace dead d͡ check with actual mapped symbols dʑ/ʤ, geminating with 'd' instead of 't' * bump proto submod * test: add regression tests for voiced affricate gemination (ッジ/ッジュ) * chore: sync proto submodule pointer * revert: restore proto submodule pointer * fix(ipa): return None on unknown characters, fix geminate palatalized onsets - Change katakana_to_ipa to return Option, returning None when input contains characters that cannot be converted instead of silently dropping them. - Fix geminate (ッ) handling for palatalized onsets: only duplicate the base consonant (e.g., ッキョ → kkʲo) instead of the full onset including palatalization marker (was producing kʲkʲo). - Update all call sites to use the new Option return type. https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * style: fix rustfmt formatting in dto files https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * fix: use consistent IPA symbol dʑ for ジ行拗音 mappings ('ジ','ョ') was using "ʤo" while ('ジ','ャ') and ('ジ','ュ') used "dʑ". Updated to "dʑo" for consistency. https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * docs: fix split_onset comment to match return type (&str, &str) The comment said "or None if starts with a vowel" but the function returns (&str, &str), with an empty onset when the string starts with a vowel. https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * fix: geminate only the first base consonant for multi-char onsets For onsets like "dz", strip_secondary_articulation returns the full string, causing "dzdz..." duplication. Now only the leading character of the base is pushed, matching the intended gemination behavior. https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ --------- Co-authored-by: Claude --- stationapi/proto | 2 +- stationapi/src/domain.rs | 1 + stationapi/src/domain/ipa.rs | 591 ++++++++++++++++++++ stationapi/src/use_case/dto/line.rs | 7 +- stationapi/src/use_case/dto/station.rs | 7 +- stationapi/src/use_case/interactor/query.rs | 3 + 6 files changed, 608 insertions(+), 3 deletions(-) create mode 100644 stationapi/src/domain/ipa.rs diff --git a/stationapi/proto b/stationapi/proto index d97e808d..f05b09f3 160000 --- a/stationapi/proto +++ b/stationapi/proto @@ -1 +1 @@ -Subproject commit d97e808d6afa1dd010a7361fa852a995d7f0484b +Subproject commit f05b09f37213515a3a7d79d16d714b9c61984e5a diff --git a/stationapi/src/domain.rs b/stationapi/src/domain.rs index b1720a0d..87d9d08c 100644 --- a/stationapi/src/domain.rs +++ b/stationapi/src/domain.rs @@ -1,4 +1,5 @@ pub mod entity; pub mod error; +pub mod ipa; pub mod normalize; pub mod repository; diff --git a/stationapi/src/domain/ipa.rs b/stationapi/src/domain/ipa.rs new file mode 100644 index 00000000..66f406cc --- /dev/null +++ b/stationapi/src/domain/ipa.rs @@ -0,0 +1,591 @@ +/// Convert a katakana string to its IPA transcription. +/// Returns `None` if the input contains characters that cannot be converted. +pub fn katakana_to_ipa(input: &str) -> Option { + if input.is_empty() { + return Some(String::new()); + } + + let chars: Vec = input.chars().collect(); + let len = chars.len(); + let mut result = Vec::new(); + let mut i = 0; + + while i < len { + // Try two-character combinations first (palatalized sounds: キョ, シャ, etc.) + if i + 1 < len { + if let Some(ipa) = lookup_digraph(chars[i], chars[i + 1]) { + result.push(ipa); + i += 2; + continue; + } + } + + // Single character lookup — return None on unknown characters + result.push(lookup_single(chars[i])?); + + i += 1; + } + + Some(apply_phonological_rules(&result)) +} + +/// Look up a two-character (digraph) combination. +/// Handles palatalized sounds (拗音): キャ, シュ, チョ, etc. +fn lookup_digraph(c1: char, c2: char) -> Option { + let ipa = match (c1, c2) { + // カ行拗音 + ('キ', 'ャ') => "kʲa", + ('キ', 'ュ') => "kʲɯ", + ('キ', 'ョ') => "kʲo", + // サ行拗音 (シ is already palatal) + ('シ', 'ャ') => "ɕa", + ('シ', 'ュ') => "ɕɯ", + ('シ', 'ョ') => "ɕo", + // タ行拗音 + ('チ', 'ャ') => "t͡ɕa", + ('チ', 'ュ') => "t͡ɕɯ", + ('チ', 'ョ') => "t͡ɕo", + // ナ行拗音 + ('ニ', 'ャ') => "ɲa", + ('ニ', 'ュ') => "ɲɯ", + ('ニ', 'ョ') => "ɲo", + // ハ行拗音 + ('ヒ', 'ャ') => "ça", + ('ヒ', 'ュ') => "çɯ", + ('ヒ', 'ョ') => "ço", + // マ行拗音 + ('ミ', 'ャ') => "mʲa", + ('ミ', 'ュ') => "mʲɯ", + ('ミ', 'ョ') => "mʲo", + // ラ行拗音 + ('リ', 'ャ') => "ɾʲa", + ('リ', 'ュ') => "ɾʲɯ", + ('リ', 'ョ') => "ɾʲo", + // ガ行拗音 + ('ギ', 'ャ') => "ɡʲa", + ('ギ', 'ュ') => "ɡʲɯ", + ('ギ', 'ョ') => "ɡʲo", + // ザ行拗音 (ジ is voiced postalveolar affricate) + ('ジ', 'ャ') => "dʑa", + ('ジ', 'ュ') => "dʑɯ", + ('ジ', 'ョ') => "dʑo", + // バ行拗音 + ('ビ', 'ャ') => "bʲa", + ('ビ', 'ュ') => "bʲɯ", + ('ビ', 'ョ') => "bʲo", + // ピ行拗音 + ('ピ', 'ャ') => "pʲa", + ('ピ', 'ュ') => "pʲɯ", + ('ピ', 'ョ') => "pʲo", + _ => return None, + }; + Some(Phoneme::Regular(ipa)) +} + +/// Look up a single katakana character. +fn lookup_single(c: char) -> Option { + let ipa = match c { + // 母音 + 'ア' | 'ァ' => return Some(Phoneme::Regular("a")), + 'イ' | 'ィ' => return Some(Phoneme::Regular("i")), + 'ウ' | 'ゥ' => return Some(Phoneme::Regular("ɯ")), + 'エ' | 'ェ' => return Some(Phoneme::Regular("e")), + 'オ' | 'ォ' => return Some(Phoneme::Regular("o")), + // カ行 + 'カ' => "ka", + 'キ' => "kʲi", + 'ク' => "kɯ", + 'ケ' => "ke", + 'コ' => "ko", + // サ行 + 'サ' => "sa", + 'シ' => "ɕi", + 'ス' => "sɯ", + 'セ' => "se", + 'ソ' => "so", + // タ行 + 'タ' => "ta", + 'チ' => "t͡ɕi", + 'ツ' => "t͡sɯ", + 'テ' => "te", + 'ト' => "to", + // ナ行 + 'ナ' => "na", + 'ニ' => "ɲi", + 'ヌ' => "nɯ", + 'ネ' => "ne", + 'ノ' => "no", + // ハ行 + 'ハ' => "ha", + 'ヒ' => "çi", + 'フ' => "ɸɯ", + 'ヘ' => "he", + 'ホ' => "ho", + // マ行 + 'マ' => "ma", + 'ミ' => "mi", + 'ム' => "mɯ", + 'メ' => "me", + 'モ' => "mo", + // ヤ行 + 'ヤ' | 'ャ' => "ja", + 'ユ' | 'ュ' => "jɯ", + 'ヨ' | 'ョ' => "jo", + // ラ行 + 'ラ' => "ɾa", + 'リ' => "ɾi", + 'ル' => "ɾɯ", + 'レ' => "ɾe", + 'ロ' => "ɾo", + // ワ行 + 'ワ' => "wa", + 'ヰ' => "i", + 'ヱ' => "e", + 'ヲ' => "o", + // ガ行 + 'ガ' => "ɡa", + 'ギ' => "ɡi", + 'グ' => "ɡɯ", + 'ゲ' => "ɡe", + 'ゴ' => "ɡo", + // ザ行 + 'ザ' => "za", + 'ジ' => "ʤi", + 'ズ' => "zɯ", + 'ゼ' => "ze", + 'ゾ' => "zo", + // ダ行 + 'ダ' => "da", + 'ヂ' => "dʑi", + 'ヅ' => "dzɯ", + 'デ' => "de", + 'ド' => "do", + // バ行 + 'バ' => "ba", + 'ビ' => "bi", + 'ブ' => "bɯ", + 'ベ' => "be", + 'ボ' => "bo", + // パ行 + 'パ' => "pa", + 'ピ' => "pi", + 'プ' => "pɯ", + 'ペ' => "pe", + 'ポ' => "po", + // 特殊 + 'ン' => return Some(Phoneme::MoraicNasal), + 'ッ' => return Some(Phoneme::Geminate), + 'ー' => return Some(Phoneme::LongVowel), + _ => return None, + }; + Some(Phoneme::Regular(ipa)) +} + +/// Intermediate phoneme representation before phonological rules are applied. +#[derive(Debug, Clone)] +enum Phoneme { + Regular(&'static str), + MoraicNasal, // ン - assimilates to following consonant + Geminate, // ッ - doubles following consonant + LongVowel, // ー - lengthens preceding vowel +} + +/// Extract the leading consonant cluster from an IPA string. +/// Returns (onset, remainder). If the string starts with a vowel, onset is "". +fn split_onset(ipa: &str) -> (&str, &str) { + // Find where the first vowel-like character starts + let vowel_start = ipa + .char_indices() + .find(|(_, c)| "aiɯeouəɐ".contains(*c)) + .map(|(i, _)| i) + .unwrap_or(ipa.len()); + ipa.split_at(vowel_start) +} + +/// Strip secondary articulation markers (e.g., palatalization ʲ) from an onset, +/// returning only the base consonant(s). +fn strip_secondary_articulation(onset: &str) -> String { + onset.replace('ʲ', "") +} + +/// Get the last vowel character from an IPA string for long vowel extension. +fn last_vowel(ipa: &str) -> Option<&'static str> { + for c in ipa.chars().rev() { + match c { + 'a' => return Some("a"), + 'i' => return Some("i"), + 'ɯ' => return Some("ɯ"), + 'e' => return Some("e"), + 'o' => return Some("o"), + 'u' => return Some("u"), + _ => continue, + } + } + None +} + +/// Classify the place of articulation of the following phoneme for ン assimilation. +fn nasal_for_following(next_ipa: &str) -> &'static str { + // Check first meaningful character(s) of the following phoneme + if next_ipa.starts_with('b') || next_ipa.starts_with('p') || next_ipa.starts_with('m') { + "m" // bilabial assimilation + } else if next_ipa.starts_with('ɲ') + || next_ipa.starts_with("dʑ") + || next_ipa.starts_with('ʤ') + || next_ipa.starts_with('ɕ') + || next_ipa.starts_with("ɡʲ") + || next_ipa.starts_with("kʲ") + || next_ipa.starts_with('j') + || next_ipa.starts_with('ç') + { + "ɲ" // palatal assimilation + } else if next_ipa.starts_with('k') || next_ipa.starts_with('ɡ') || next_ipa.starts_with('ŋ') + { + "ŋ" // velar assimilation + } else if next_ipa.starts_with('n') + || next_ipa.starts_with('t') + || next_ipa.starts_with('d') + || next_ipa.starts_with('s') + || next_ipa.starts_with('z') + || next_ipa.starts_with('ɾ') + { + "n" // alveolar assimilation (includes t͡ɕ, t͡s which start with t) + } else { + "ɴ" // default: uvular nasal (word-final or before vowels) + } +} + +/// Apply phonological rules: ン assimilation, ッ gemination, long vowels. +fn apply_phonological_rules(phonemes: &[Phoneme]) -> String { + let mut output = String::new(); + let len = phonemes.len(); + let mut i = 0; + + while i < len { + match &phonemes[i] { + Phoneme::Regular(ipa) => { + output.push_str(ipa); + i += 1; + } + Phoneme::MoraicNasal => { + // Look ahead for assimilation + if let Some(next_ipa) = find_next_regular(&phonemes[i + 1..]) { + output.push_str(nasal_for_following(next_ipa)); + } else { + output.push('ɴ'); // word-final + } + i += 1; + } + Phoneme::Geminate => { + // Double the onset of the following consonant. + // For affricates (t͡ɕ, t͡s), only the stop portion (t) is geminated. + // For palatalized onsets (kʲ, ɡʲ, etc.), only the base consonant is geminated. + if let Some(next_ipa) = find_next_regular(&phonemes[i + 1..]) { + if next_ipa.starts_with("t͡ɕ") || next_ipa.starts_with("t͡s") { + output.push('t'); + } else if next_ipa.starts_with("dʑ") || next_ipa.starts_with("ʤ") { + output.push('d'); + } else { + let (onset, _) = split_onset(next_ipa); + if !onset.is_empty() { + let base = strip_secondary_articulation(onset); + if let Some(c) = base.chars().next() { + output.push(c); + } + } + } + } + i += 1; + } + Phoneme::LongVowel => { + // Lengthen the preceding vowel + if last_vowel(&output).is_some() { + // Check if already has ː + if !output.ends_with('ː') { + output.push('ː'); + } + } else { + output.push('ː'); + } + i += 1; + } + } + } + + // Apply long vowel contractions: オウ → oː pattern + apply_vowel_length(&output) +} + +/// Find the IPA string of the next Regular phoneme in the slice. +fn find_next_regular(phonemes: &[Phoneme]) -> Option<&'static str> { + phonemes.iter().find_map(|p| match p { + Phoneme::Regular(ipa) => Some(*ipa), + _ => None, + }) +} + +/// Apply vowel length rules for common Japanese patterns. +/// オウ → oː (after consonant+o), ョウ/ョオ patterns are handled by digraph + this. +fn apply_vowel_length(input: &str) -> String { + let mut result = String::with_capacity(input.len()); + let chars: Vec = input.chars().collect(); + let len = chars.len(); + let mut i = 0; + + while i < len { + if i + 1 < len && chars[i] == 'o' && chars[i + 1] == 'ɯ' { + // oɯ → oː (おう/こう pattern) + result.push('o'); + result.push('ː'); + i += 2; + continue; + } + if i + 1 < len && chars[i] == 'o' && chars[i + 1] == 'o' { + // oo → oː (おお pattern) + result.push('o'); + result.push('ː'); + i += 2; + continue; + } + result.push(chars[i]); + i += 1; + } + + result +} + +#[cfg(test)] +mod tests { + use super::*; + + /// Helper: unwrap the Option for concise test assertions. + fn ipa(input: &str) -> String { + katakana_to_ipa(input).expect("expected valid katakana input") + } + + // Tests based on the hardcoded IPA mappings from Cloud Functions tts.ts + + #[test] + fn test_shibuya() { + assert_eq!(ipa("シブヤ"), "ɕibɯja"); + } + + #[test] + fn test_shinagawa() { + assert_eq!(ipa("シナガワ"), "ɕinaɡawa"); + } + + #[test] + fn test_ueno() { + assert_eq!(ipa("ウエノ"), "ɯeno"); + } + + #[test] + fn test_ikebukuro() { + assert_eq!(ipa("イケブクロ"), "ikebɯkɯɾo"); + } + + #[test] + fn test_shinjuku() { + // ン before ジュ → ɲ, ジュ → dʑɯ + assert_eq!(ipa("シンジュク"), "ɕiɲdʑɯkɯ"); + } + + #[test] + fn test_osaka() { + // オオ → oː + assert_eq!(ipa("オオサカ"), "oːsaka"); + } + + #[test] + fn test_kyoto() { + // キョウ → kʲoː (via kʲo + ウ → oɯ → oː) + assert_eq!(ipa("キョウト"), "kʲoːto"); + } + + #[test] + fn test_yokohama() { + assert_eq!(ipa("ヨコハマ"), "jokohama"); + } + + #[test] + fn test_chiba() { + assert_eq!(ipa("チバ"), "t͡ɕiba"); + } + + #[test] + fn test_kawasaki() { + assert_eq!(ipa("カワサキ"), "kawasakʲi"); + } + + #[test] + fn test_tsurumi() { + assert_eq!(ipa("ツルミ"), "t͡sɯɾɯmi"); + } + + #[test] + fn test_ryogoku() { + // リョウ → ɾʲoː (via ɾʲo + ウ → oɯ → oː) + assert_eq!(ipa("リョウゴク"), "ɾʲoːɡokɯ"); + } + + #[test] + fn test_shimbashi() { + // ン before バ → m + assert_eq!(ipa("シンバシ"), "ɕimbaɕi"); + } + + #[test] + fn test_keisei() { + assert_eq!(ipa("ケイセイ"), "keisei"); + } + + #[test] + fn test_oshiage() { + assert_eq!(ipa("オシアゲ"), "oɕiaɡe"); + } + + #[test] + fn test_meitetsu() { + // ツ is consistently t͡sɯ (affricate with tie bar) + assert_eq!(ipa("メイテツ"), "meitet͡sɯ"); + } + + #[test] + fn test_seibu() { + assert_eq!(ipa("セイブ"), "seibɯ"); + } + + #[test] + fn test_toride() { + assert_eq!(ipa("トリデ"), "toɾide"); + } + + #[test] + fn test_fukiage() { + assert_eq!(ipa("フキアゲ"), "ɸɯkʲiaɡe"); + } + + #[test] + fn test_fuse() { + assert_eq!(ipa("フセ"), "ɸɯse"); + } + + #[test] + fn test_inagekaigan() { + // ン at word end → ɴ + assert_eq!(ipa("イナゲカイガン"), "inaɡekaiɡaɴ"); + } + + #[test] + fn test_inage() { + assert_eq!(ipa("イナゲ"), "inaɡe"); + } + + #[test] + fn test_kire_uriwari() { + assert_eq!(ipa("キレウリワリ"), "kʲiɾeɯɾiwaɾi"); + } + + #[test] + fn test_yao() { + assert_eq!(ipa("ヤオ"), "jao"); + } + + #[test] + fn test_mejiro() { + assert_eq!(ipa("メジロ"), "meʤiɾo"); + } + + #[test] + fn test_isesaki() { + assert_eq!(ipa("イセサキ"), "isesakʲi"); + } + + #[test] + fn test_ube() { + assert_eq!(ipa("ウベ"), "ɯbe"); + } + + #[test] + fn test_itchome() { + // ッチョウ → tt͡ɕoː + assert_eq!(ipa("イッチョウメ"), "itt͡ɕoːme"); + } + + #[test] + fn test_sanchome() { + assert_eq!(ipa("サンチョウメ"), "sant͡ɕoːme"); + } + + #[test] + fn test_koen() { + // コウエン: コ=ko, ウ→長音化でoː, エン=eɴ → koːeɴ + // Note: the original hardcoded value was "koeɴ" but phonologically "koːeɴ" is correct + assert_eq!(ipa("コウエン"), "koːeɴ"); + } + + #[test] + fn test_long_vowel_mark() { + // ー explicitly lengthens + assert_eq!(ipa("ラーメン"), "ɾaːmeɴ"); + } + + #[test] + fn test_tokyo() { + // トウキョウ: ト=to, ウ→oː, キョ=kʲo, ウ→oː + assert_eq!(ipa("トウキョウ"), "toːkʲoː"); + } + + #[test] + fn test_nagoya() { + assert_eq!(ipa("ナゴヤ"), "naɡoja"); + } + + #[test] + fn test_sapporo() { + // ッポ → ppo + assert_eq!(ipa("サッポロ"), "sappoɾo"); + } + + #[test] + fn test_namba() { + // ン before バ → m + assert_eq!(ipa("ナンバ"), "namba"); + } + + #[test] + fn test_shin_yokohama() { + // ン before ヨ(j) → ɲ (palatal assimilation) + assert_eq!(ipa("シンヨコハマ"), "ɕiɲjokohama"); + } + + #[test] + fn test_geminate_ji() { + // ッジ → dʤi (voiced affricate gemination emits 'd') + assert_eq!(ipa("カッジ"), "kadʤi"); + } + + #[test] + fn test_geminate_ju() { + // ッジュ → ddʑɯ (voiced affricate gemination with digraph) + assert_eq!(ipa("カッジュ"), "kaddʑɯ"); + } + + #[test] + fn test_empty() { + assert_eq!(katakana_to_ipa(""), Some(String::new())); + } + + #[test] + fn test_unknown_characters_returns_none() { + assert_eq!(katakana_to_ipa("ABC"), None); + assert_eq!(katakana_to_ipa("シブヤX"), None); + } + + #[test] + fn test_geminate_palatalized() { + // ッキョ → kkʲo (only the base consonant 'k' is geminated, not 'kʲ') + assert_eq!(ipa("ニッキョウ"), "ɲikkʲoː"); + } +} diff --git a/stationapi/src/use_case/dto/line.rs b/stationapi/src/use_case/dto/line.rs index 9f18aeee..f94c3d48 100644 --- a/stationapi/src/use_case/dto/line.rs +++ b/stationapi/src/use_case/dto/line.rs @@ -1,10 +1,14 @@ use crate::{ - domain::entity::{gtfs::TransportType, line::Line}, + domain::{ + entity::{gtfs::TransportType, line::Line}, + ipa::katakana_to_ipa, + }, proto::{Line as GrpcLine, TransportType as GrpcTransportType}, }; impl From for GrpcLine { fn from(line: Line) -> Self { + let name_ipa = katakana_to_ipa(&line.line_name_k).filter(|ipa| !ipa.is_empty()); // バス路線の場合は line_type を OtherLineType (0) に強制 // (鉄道用の line_type が誤って設定されている可能性があるため) let line_type = if line.transport_type == TransportType::Bus { @@ -32,6 +36,7 @@ impl From for GrpcLine { .map(|train_type| Box::new(train_type.into())), average_distance: line.average_distance.unwrap_or(0.0), transport_type: convert_transport_type(line.transport_type), + name_ipa, } } } diff --git a/stationapi/src/use_case/dto/station.rs b/stationapi/src/use_case/dto/station.rs index 44195a60..6e52cc19 100644 --- a/stationapi/src/use_case/dto/station.rs +++ b/stationapi/src/use_case/dto/station.rs @@ -1,5 +1,8 @@ use crate::{ - domain::entity::{gtfs::TransportType, station::Station}, + domain::{ + entity::{gtfs::TransportType, station::Station}, + ipa::katakana_to_ipa, + }, proto::{Station as GrpcStation, TransportType as GrpcTransportType}, }; @@ -14,6 +17,7 @@ impl From for i32 { impl From for GrpcStation { fn from(station: Station) -> Self { + let name_ipa = katakana_to_ipa(&station.station_name_k).filter(|ipa| !ipa.is_empty()); Self { id: station.station_cd as u32, group_id: station.station_g_cd as u32, @@ -43,6 +47,7 @@ impl From for GrpcStation { has_train_types: Some(station.has_train_types), train_type: station.train_type.map(|tt| Box::new((*tt).into())), transport_type: station.transport_type.into(), + name_ipa, } } } diff --git a/stationapi/src/use_case/interactor/query.rs b/stationapi/src/use_case/interactor/query.rs index bcaafd23..ee3f30b9 100644 --- a/stationapi/src/use_case/interactor/query.rs +++ b/stationapi/src/use_case/interactor/query.rs @@ -834,6 +834,8 @@ where }) .collect(); + let name_ipa = crate::domain::ipa::katakana_to_ipa(&row.station_name_k) + .filter(|ipa| !ipa.is_empty()); proto::StationMinimal { id: row.station_cd as u32, group_id: row.station_g_cd as u32, @@ -845,6 +847,7 @@ where stop_condition: row.pass.unwrap_or(0), has_train_types: Some(row.type_id.is_some()), train_type_id: row.type_id.map(|id| id as u32), + name_ipa, } }) .collect::>(); From aaf82cf17dc0fca8de180a087f38e576565dd1f0 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 06:41:51 +0900 Subject: [PATCH 06/16] fix: handle full-width space in katakana-to-IPA conversion (#1411) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: handle full-width space in katakana-to-IPA conversion Station names like "ドッキョウダイガクマエ ソウカマツバラ" contain a full-width space (U+3000) which was not mapped in lookup_single, causing katakana_to_ipa to return None and nameIpa to be null. https://claude.ai/code/session_01Pjo9E2fzdLZEkvNqxXAPeQ * test: add half-width space test for katakana-to-IPA conversion Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude --- stationapi/src/domain/ipa.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/stationapi/src/domain/ipa.rs b/stationapi/src/domain/ipa.rs index 66f406cc..4b16f0b7 100644 --- a/stationapi/src/domain/ipa.rs +++ b/stationapi/src/domain/ipa.rs @@ -176,6 +176,8 @@ fn lookup_single(c: char) -> Option { 'ン' => return Some(Phoneme::MoraicNasal), 'ッ' => return Some(Phoneme::Geminate), 'ー' => return Some(Phoneme::LongVowel), + // 空白(全角・半角)はそのまま透過 + ' ' | ' ' => return Some(Phoneme::Regular(" ")), _ => return None, }; Some(Phoneme::Regular(ipa)) @@ -588,4 +590,22 @@ mod tests { // ッキョ → kkʲo (only the base consonant 'k' is geminated, not 'kʲ') assert_eq!(ipa("ニッキョウ"), "ɲikkʲoː"); } + + #[test] + fn test_dokkyo_daigakumae_soka_matsubara() { + // Full-width space between words should be preserved + assert_eq!( + ipa("ドッキョウダイガクマエ ソウカマツバラ"), + "dokkʲoːdaiɡakɯmae soːkamat͡sɯbaɾa" + ); + } + + #[test] + fn test_dokkyo_daigakumae_soka_matsubara_halfwidth() { + // Half-width (ASCII) space between words should also be accepted + assert_eq!( + ipa("ドッキョウダイガクマエ ソウカマツバラ"), + "dokkʲoːdaiɡakɯmae soːkamat͡sɯbaɾa" + ); + } } From 487af67f0c4375571a56a46c45f60a7ccc15e946 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 07:31:53 +0900 Subject: [PATCH 07/16] =?UTF-8?q?fix:=20=E8=B7=AF=E7=B7=9A=E5=90=8DIPA?= =?UTF-8?q?=E3=81=8B=E3=82=89=E5=85=B1=E9=80=9A=E6=8E=A5=E5=B0=BE=E8=BE=9E?= =?UTF-8?q?(=E7=B7=9A/=E6=9C=AC=E7=B7=9A/=E6=94=AF=E7=B7=9A)=E3=82=92?= =?UTF-8?q?=E9=99=A4=E5=8E=BB=20(#1412)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: strip line-name suffixes (線/本線/支線) from IPA for English TTS Line names like セイブイケブクロセン were converted to IPA as "seibɯikebɯkɯɾoseɴ", but English TTS reads these as "Seibu Ikebukuro Line", making the trailing "seɴ" incorrect. Strip common suffixes (セン, ホンセン, シセン) before IPA conversion so only the proper name portion is transcribed. シンカンセン (Shinkansen) is preserved as it is used as-is in English. Co-Authored-By: Claude Opus 4.6 * style: apply cargo fmt Co-Authored-By: Claude Opus 4.6 * docs: fix strip_line_name_suffix comment to match implementation Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- stationapi/src/domain/ipa.rs | 76 +++++++++++++++++++++++++++++ stationapi/src/use_case/dto/line.rs | 5 +- 2 files changed, 79 insertions(+), 2 deletions(-) diff --git a/stationapi/src/domain/ipa.rs b/stationapi/src/domain/ipa.rs index 4b16f0b7..1c204954 100644 --- a/stationapi/src/domain/ipa.rs +++ b/stationapi/src/domain/ipa.rs @@ -1,3 +1,27 @@ +/// Common katakana suffixes for line names, ordered longest-first for greedy matching. +const LINE_NAME_SUFFIXES: &[&str] = &["ホンセン", "シセン", "セン"]; +/// Suffixes that should NOT be stripped even though they end with セン. +const LINE_NAME_SUFFIX_EXCEPTIONS: &[&str] = &["シンカンセン"]; + +/// Strip a common line-name suffix (線/本線/支線) from a katakana string. +/// 新幹線 (Shinkansen) is preserved as it is used as-is in English. +/// Returns the stem (without the suffix). If no known suffix is found, returns the input unchanged. +pub fn strip_line_name_suffix(input: &str) -> &str { + for exception in LINE_NAME_SUFFIX_EXCEPTIONS { + if input.ends_with(exception) { + return input; + } + } + for suffix in LINE_NAME_SUFFIXES { + if let Some(stem) = input.strip_suffix(suffix) { + if !stem.is_empty() { + return stem; + } + } + } + input +} + /// Convert a katakana string to its IPA transcription. /// Returns `None` if the input contains characters that cannot be converted. pub fn katakana_to_ipa(input: &str) -> Option { @@ -608,4 +632,56 @@ mod tests { "dokkʲoːdaiɡakɯmae soːkamat͡sɯbaɾa" ); } + + // ============================================ + // strip_line_name_suffix tests + // ============================================ + + #[test] + fn test_strip_sen() { + assert_eq!( + strip_line_name_suffix("セイブイケブクロセン"), + "セイブイケブクロ" + ); + } + + #[test] + fn test_strip_honsen() { + assert_eq!( + strip_line_name_suffix("トウカイドウホンセン"), + "トウカイドウ" + ); + } + + #[test] + fn test_strip_shinkansen_preserved() { + // 新幹線(Shinkansen)は英語でもそのまま使われるので除去しない + assert_eq!( + strip_line_name_suffix("トウホクシンカンセン"), + "トウホクシンカンセン" + ); + } + + #[test] + fn test_strip_shisen() { + assert_eq!( + strip_line_name_suffix("ナガノハラクサツグチシセン"), + "ナガノハラクサツグチ" + ); + } + + #[test] + fn test_strip_no_suffix() { + // ライン等セン以外の末尾はそのまま返す + assert_eq!( + strip_line_name_suffix("ショウナンシンジュクライン"), + "ショウナンシンジュクライン" + ); + } + + #[test] + fn test_strip_bare_sen_returns_unchanged() { + // "セン" だけの場合、stemが空になるので除去しない + assert_eq!(strip_line_name_suffix("セン"), "セン"); + } } diff --git a/stationapi/src/use_case/dto/line.rs b/stationapi/src/use_case/dto/line.rs index f94c3d48..734e65c7 100644 --- a/stationapi/src/use_case/dto/line.rs +++ b/stationapi/src/use_case/dto/line.rs @@ -1,14 +1,15 @@ use crate::{ domain::{ entity::{gtfs::TransportType, line::Line}, - ipa::katakana_to_ipa, + ipa::{katakana_to_ipa, strip_line_name_suffix}, }, proto::{Line as GrpcLine, TransportType as GrpcTransportType}, }; impl From for GrpcLine { fn from(line: Line) -> Self { - let name_ipa = katakana_to_ipa(&line.line_name_k).filter(|ipa| !ipa.is_empty()); + let name_ipa = katakana_to_ipa(strip_line_name_suffix(&line.line_name_k)) + .filter(|ipa| !ipa.is_empty()); // バス路線の場合は line_type を OtherLineType (0) に強制 // (鉄道用の line_type が誤って設定されている可能性があるため) let line_type = if line.transport_type == TransportType::Bus { From 945a1bad3e7f59d67a7ec45afaafafe7cb6fa850 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 07:46:32 +0900 Subject: [PATCH 08/16] fix: replace line-name suffixes with English IPA instead of stripping (#1413) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of just removing 線/本線/支線 from the IPA, replace them with their English IPA equivalents (laɪn / meɪn laɪn) so that Google TTS correctly pronounces the line type in English. Co-authored-by: Claude Opus 4.6 --- stationapi/src/domain/ipa.rs | 63 ++++++++++++++++------------- stationapi/src/use_case/dto/line.rs | 9 +++-- 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/stationapi/src/domain/ipa.rs b/stationapi/src/domain/ipa.rs index 1c204954..143370a8 100644 --- a/stationapi/src/domain/ipa.rs +++ b/stationapi/src/domain/ipa.rs @@ -1,25 +1,32 @@ -/// Common katakana suffixes for line names, ordered longest-first for greedy matching. -const LINE_NAME_SUFFIXES: &[&str] = &["ホンセン", "シセン", "セン"]; -/// Suffixes that should NOT be stripped even though they end with セン. +/// Katakana line-name suffixes paired with their English IPA replacements. +/// Ordered longest-first for greedy matching. +const LINE_NAME_SUFFIX_MAP: &[(&str, &str)] = &[ + ("ホンセン", " meɪn laɪn"), + ("シセン", " laɪn"), + ("セン", " laɪn"), +]; +/// Suffixes that should NOT be replaced even though they end with セン. const LINE_NAME_SUFFIX_EXCEPTIONS: &[&str] = &["シンカンセン"]; -/// Strip a common line-name suffix (線/本線/支線) from a katakana string. +/// Replace a common line-name suffix (線/本線/支線) in a katakana string +/// with its English IPA equivalent (Line / Main Line). /// 新幹線 (Shinkansen) is preserved as it is used as-is in English. -/// Returns the stem (without the suffix). If no known suffix is found, returns the input unchanged. -pub fn strip_line_name_suffix(input: &str) -> &str { +/// Returns the stem and the English IPA suffix to append. +/// If no known suffix is found, returns the full input with an empty suffix. +pub fn replace_line_name_suffix(input: &str) -> (&str, &str) { for exception in LINE_NAME_SUFFIX_EXCEPTIONS { if input.ends_with(exception) { - return input; + return (input, ""); } } - for suffix in LINE_NAME_SUFFIXES { + for (suffix, replacement) in LINE_NAME_SUFFIX_MAP { if let Some(stem) = input.strip_suffix(suffix) { if !stem.is_empty() { - return stem; + return (stem, replacement); } } } - input + (input, "") } /// Convert a katakana string to its IPA transcription. @@ -634,54 +641,54 @@ mod tests { } // ============================================ - // strip_line_name_suffix tests + // replace_line_name_suffix tests // ============================================ #[test] - fn test_strip_sen() { + fn test_replace_sen() { assert_eq!( - strip_line_name_suffix("セイブイケブクロセン"), - "セイブイケブクロ" + replace_line_name_suffix("セイブイケブクロセン"), + ("セイブイケブクロ", " laɪn") ); } #[test] - fn test_strip_honsen() { + fn test_replace_honsen() { assert_eq!( - strip_line_name_suffix("トウカイドウホンセン"), - "トウカイドウ" + replace_line_name_suffix("トウカイドウホンセン"), + ("トウカイドウ", " meɪn laɪn") ); } #[test] - fn test_strip_shinkansen_preserved() { + fn test_replace_shinkansen_preserved() { // 新幹線(Shinkansen)は英語でもそのまま使われるので除去しない assert_eq!( - strip_line_name_suffix("トウホクシンカンセン"), - "トウホクシンカンセン" + replace_line_name_suffix("トウホクシンカンセン"), + ("トウホクシンカンセン", "") ); } #[test] - fn test_strip_shisen() { + fn test_replace_shisen() { assert_eq!( - strip_line_name_suffix("ナガノハラクサツグチシセン"), - "ナガノハラクサツグチ" + replace_line_name_suffix("ナガノハラクサツグチシセン"), + ("ナガノハラクサツグチ", " laɪn") ); } #[test] - fn test_strip_no_suffix() { + fn test_replace_no_suffix() { // ライン等セン以外の末尾はそのまま返す assert_eq!( - strip_line_name_suffix("ショウナンシンジュクライン"), - "ショウナンシンジュクライン" + replace_line_name_suffix("ショウナンシンジュクライン"), + ("ショウナンシンジュクライン", "") ); } #[test] - fn test_strip_bare_sen_returns_unchanged() { + fn test_replace_bare_sen_returns_unchanged() { // "セン" だけの場合、stemが空になるので除去しない - assert_eq!(strip_line_name_suffix("セン"), "セン"); + assert_eq!(replace_line_name_suffix("セン"), ("セン", "")); } } diff --git a/stationapi/src/use_case/dto/line.rs b/stationapi/src/use_case/dto/line.rs index 734e65c7..79a0f438 100644 --- a/stationapi/src/use_case/dto/line.rs +++ b/stationapi/src/use_case/dto/line.rs @@ -1,15 +1,18 @@ use crate::{ domain::{ entity::{gtfs::TransportType, line::Line}, - ipa::{katakana_to_ipa, strip_line_name_suffix}, + ipa::{katakana_to_ipa, replace_line_name_suffix}, }, proto::{Line as GrpcLine, TransportType as GrpcTransportType}, }; impl From for GrpcLine { fn from(line: Line) -> Self { - let name_ipa = katakana_to_ipa(strip_line_name_suffix(&line.line_name_k)) - .filter(|ipa| !ipa.is_empty()); + let name_ipa = { + let (stem, suffix_ipa) = replace_line_name_suffix(&line.line_name_k); + katakana_to_ipa(stem).map(|ipa| format!("{ipa}{suffix_ipa}")) + } + .filter(|ipa| !ipa.is_empty()); // バス路線の場合は line_type を OtherLineType (0) に強制 // (鉄道用の line_type が誤って設定されている可能性があるため) let line_type = if line.transport_type == TransportType::Bus { From 9d5ac8127082fd06ee078375538d586280fd8845 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 07:57:30 +0900 Subject: [PATCH 09/16] =?UTF-8?q?Revert=20"fix:=20replace=20line-name=20su?= =?UTF-8?q?ffixes=20with=20English=20IPA=20instead=20of=20stripping?= =?UTF-8?q?=E2=80=A6"=20(#1414)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 945a1bad3e7f59d67a7ec45afaafafe7cb6fa850. --- stationapi/src/domain/ipa.rs | 63 +++++++++++++---------------- stationapi/src/use_case/dto/line.rs | 9 ++--- 2 files changed, 31 insertions(+), 41 deletions(-) diff --git a/stationapi/src/domain/ipa.rs b/stationapi/src/domain/ipa.rs index 143370a8..1c204954 100644 --- a/stationapi/src/domain/ipa.rs +++ b/stationapi/src/domain/ipa.rs @@ -1,32 +1,25 @@ -/// Katakana line-name suffixes paired with their English IPA replacements. -/// Ordered longest-first for greedy matching. -const LINE_NAME_SUFFIX_MAP: &[(&str, &str)] = &[ - ("ホンセン", " meɪn laɪn"), - ("シセン", " laɪn"), - ("セン", " laɪn"), -]; -/// Suffixes that should NOT be replaced even though they end with セン. +/// Common katakana suffixes for line names, ordered longest-first for greedy matching. +const LINE_NAME_SUFFIXES: &[&str] = &["ホンセン", "シセン", "セン"]; +/// Suffixes that should NOT be stripped even though they end with セン. const LINE_NAME_SUFFIX_EXCEPTIONS: &[&str] = &["シンカンセン"]; -/// Replace a common line-name suffix (線/本線/支線) in a katakana string -/// with its English IPA equivalent (Line / Main Line). +/// Strip a common line-name suffix (線/本線/支線) from a katakana string. /// 新幹線 (Shinkansen) is preserved as it is used as-is in English. -/// Returns the stem and the English IPA suffix to append. -/// If no known suffix is found, returns the full input with an empty suffix. -pub fn replace_line_name_suffix(input: &str) -> (&str, &str) { +/// Returns the stem (without the suffix). If no known suffix is found, returns the input unchanged. +pub fn strip_line_name_suffix(input: &str) -> &str { for exception in LINE_NAME_SUFFIX_EXCEPTIONS { if input.ends_with(exception) { - return (input, ""); + return input; } } - for (suffix, replacement) in LINE_NAME_SUFFIX_MAP { + for suffix in LINE_NAME_SUFFIXES { if let Some(stem) = input.strip_suffix(suffix) { if !stem.is_empty() { - return (stem, replacement); + return stem; } } } - (input, "") + input } /// Convert a katakana string to its IPA transcription. @@ -641,54 +634,54 @@ mod tests { } // ============================================ - // replace_line_name_suffix tests + // strip_line_name_suffix tests // ============================================ #[test] - fn test_replace_sen() { + fn test_strip_sen() { assert_eq!( - replace_line_name_suffix("セイブイケブクロセン"), - ("セイブイケブクロ", " laɪn") + strip_line_name_suffix("セイブイケブクロセン"), + "セイブイケブクロ" ); } #[test] - fn test_replace_honsen() { + fn test_strip_honsen() { assert_eq!( - replace_line_name_suffix("トウカイドウホンセン"), - ("トウカイドウ", " meɪn laɪn") + strip_line_name_suffix("トウカイドウホンセン"), + "トウカイドウ" ); } #[test] - fn test_replace_shinkansen_preserved() { + fn test_strip_shinkansen_preserved() { // 新幹線(Shinkansen)は英語でもそのまま使われるので除去しない assert_eq!( - replace_line_name_suffix("トウホクシンカンセン"), - ("トウホクシンカンセン", "") + strip_line_name_suffix("トウホクシンカンセン"), + "トウホクシンカンセン" ); } #[test] - fn test_replace_shisen() { + fn test_strip_shisen() { assert_eq!( - replace_line_name_suffix("ナガノハラクサツグチシセン"), - ("ナガノハラクサツグチ", " laɪn") + strip_line_name_suffix("ナガノハラクサツグチシセン"), + "ナガノハラクサツグチ" ); } #[test] - fn test_replace_no_suffix() { + fn test_strip_no_suffix() { // ライン等セン以外の末尾はそのまま返す assert_eq!( - replace_line_name_suffix("ショウナンシンジュクライン"), - ("ショウナンシンジュクライン", "") + strip_line_name_suffix("ショウナンシンジュクライン"), + "ショウナンシンジュクライン" ); } #[test] - fn test_replace_bare_sen_returns_unchanged() { + fn test_strip_bare_sen_returns_unchanged() { // "セン" だけの場合、stemが空になるので除去しない - assert_eq!(replace_line_name_suffix("セン"), ("セン", "")); + assert_eq!(strip_line_name_suffix("セン"), "セン"); } } diff --git a/stationapi/src/use_case/dto/line.rs b/stationapi/src/use_case/dto/line.rs index 79a0f438..734e65c7 100644 --- a/stationapi/src/use_case/dto/line.rs +++ b/stationapi/src/use_case/dto/line.rs @@ -1,18 +1,15 @@ use crate::{ domain::{ entity::{gtfs::TransportType, line::Line}, - ipa::{katakana_to_ipa, replace_line_name_suffix}, + ipa::{katakana_to_ipa, strip_line_name_suffix}, }, proto::{Line as GrpcLine, TransportType as GrpcTransportType}, }; impl From for GrpcLine { fn from(line: Line) -> Self { - let name_ipa = { - let (stem, suffix_ipa) = replace_line_name_suffix(&line.line_name_k); - katakana_to_ipa(stem).map(|ipa| format!("{ipa}{suffix_ipa}")) - } - .filter(|ipa| !ipa.is_empty()); + let name_ipa = katakana_to_ipa(strip_line_name_suffix(&line.line_name_k)) + .filter(|ipa| !ipa.is_empty()); // バス路線の場合は line_type を OtherLineType (0) に強制 // (鉄道用の line_type が誤って設定されている可能性があるため) let line_type = if line.transport_type == TransportType::Bus { From 9bc9162b8df408602b46f1de1e12b104ecc9cd3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=BF=E3=81=A3=E3=81=9F=E3=82=93?= <147319703+mittan12@users.noreply.github.com> Date: Fri, 6 Mar 2026 12:11:37 +0900 Subject: [PATCH 10/16] =?UTF-8?q?=E8=BF=91=E9=89=84=E7=A8=AE=E5=88=A5?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20(#1405)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * master<-dev (#1337) * GetRoutesMinimal RPCを実装 (#1334) * Add minimal route retrieval functionality and related proto types * Refactor code formatting for improved readability in grpc.rs and query.rs * Add line symbols to LineMinimal in get_lines_by_station_group_id * Update subproject commit reference in stationapi/proto * Add get_lines_by_id_list method and update QueryUseCase trait * Refactor import order for improved readability in grpc.rs * Use entry method for inserting line_minimal in all_lines to avoid overwriting * Refactor route_row_tree_map creation into a separate build_route_tree_map method for improved readability * Enhance line symbol handling in QueryInteractor: populate line_symbols for all lines and update line_minimal entries conditionally * Refactor line symbol handling in QueryInteractor: update all_lines conditionally based on line_symbols presence * Add AGENTS.md for automation agent and contributor workflow guidelines * Update AGENTS.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * 石橋阪大前駅ローカライズ修正 (#1336) --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * master<-dev (#1374) * SQLの致命的なバグをいくつか修正 (#1371) * ひらがな混じりで駅検索ができないバグを修正 * get_train_types_by_station_idが動かないバグを修正 * GetStationsByLineGroupIdの修正 * ユニットテスト拡充 * cargo fmt * バス路線はline_typeをOtherLineTypeに強制 (#1372) * direction_idがNULLのトリップに存在するバス停も正しく取り込むよう修正 (#1373) * direction_idがNULLのトリップに存在するバス停も正しく取り込むよう修正 GTFSの仕様ではdirection_idはオプショナルであり、NULLの場合でも バス停は有効な停留所として扱うべきである。 これまではvariant_only_with_neighbors CTEで「direction_id IS NOT NULL」 のトリップにのみ存在するバス停をフィルタリングしていたため、 早81の原宿駅前や渋谷駅東口などのバス停がレスポンスから除外されていた。 * バリアントバス停の位置推定でメイントリップに存在する隣接バス停を優先 variant_only_with_neighborsでバス停の隣接情報を選択する際に、 隣接バス停(prev_stop_id/next_stop_id)がメイントリップに存在する レコードを優先するよう修正。 これにより、原宿駅前などのバス停がより正確な位置に挿入される。 --------- Co-authored-by: Claude --------- Co-authored-by: Claude * 西鉄データ更新 (#1375) * 春日原駅を特急停車駅に指定 * 聖マリア病院前の駅名修正 * master<-dev (#1391) * GetStationsByLineIdList RPC追加 複数のline_idを一括で処理するバッチRPCを追加。 既存のGetStationByIdList/GetLineByIdListと同じバッチパターンに従う。 Co-Authored-By: Claude Opus 4.6 * cargo fmt * get_by_line_id_vecのORDER BYを入力順序保持のCASE式に変更 Co-Authored-By: Claude Opus 4.6 * Merge pull request #1389 from TrainLCD/feature/tt-batch GetStationsByLineGroupIdList RPC追加 * get_stations_by_line_group_id_vecで列車種別を一括取得してセット (#1390) * get_stations_by_line_group_id_vecで列車種別を一括取得してセット N+1問題を回避しつつ、train_type_repository.get_by_line_group_id_vecで 複数line_group_idの列車種別を1クエリで取得し、top-levelとlines[].station の両方にセットするよう修正。 Co-Authored-By: Claude Opus 4.6 * get_stations_by_line_group_id_vecのユニットテストを追加 Co-Authored-By: Claude Opus 4.6 * ネストされた駅のtrain_typeをis_some()で明示的に検証するよう修正 Co-Authored-By: Claude Opus 4.6 * train_typeをtrain_type_mapから常に上書きしてリーク防止 Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 * 近鉄種別修正 * 近鉄種別修正 駅コード修正 --------- Co-authored-by: Tsubasa SEKIGUCHI Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Claude --- data/4!types.csv | 4 + data/5!station_station_types.csv | 1150 +++++++++++++++--------------- 2 files changed, 560 insertions(+), 594 deletions(-) diff --git a/data/4!types.csv b/data/4!types.csv index 208bfb18..898bd2f1 100644 --- a/data/4!types.csv +++ b/data/4!types.csv @@ -263,6 +263,10 @@ Yokokawa","SL群马 254,371,A特急,Aトッキュウ,A Limited Express,A特快,A특급,#DC143C,0,4,0,,COMPLETE 255,372,B特急,Bトッキュウ,B Limited Express,B特快,B특급,#DC143C,0,4,0,,COMPLETE 202,373,区間準急,クカンジュンキュウ,Sub. Semi-Express,区间准急,구간준급,#00FF00,0,3,0,近鉄奈良線・難波線・大阪線、阪神なんば線・阪神本線用,PARTIAL +221,374,区間急行,クカンキュウコウ,Sub. Express,区间快速,구간급행,#F7931D,0,3,0,近鉄用,COMPLETE +228,375,急行,キュウコウ,Express,特快,급행,#F7931D,0,3,0,近鉄用,COMPLETE +213,376,快速急行,カイソクキュウコウ,Rapid Express,快速急行,쾌속급행,#DC143C,0,3,0,近鉄用,COMPLETE +213,377,快速急行,カイソクキュウコウ,Rapid Express,快速急行,쾌속급행,#00BFFF,0,3,0,阪神なんば線・阪神本線用,COMPLETE 256,400,京王ライナー(京王八王子方面),ケイオウライナー,Keio Liner(for Keiō-hachiōji),京王Liner,게이오 라이너,#DD0077,0,2,0,,COMPLETE 257,401,京王ライナー(橋本方面),ケイオウライナー,Keio Liner(for Hashimoto),京王Liner,게이오 라이너,#DD0078,0,2,0,,COMPLETE 258,402,モーニングウィング号,モーニングウィングゴウ,"Morning Wing(Miurakaigan to Shinagawa, Sengakuji)",Morning Wing,모닝윙호,#379412,1,2,0,,COMPLETE diff --git a/data/5!station_station_types.csv b/data/5!station_station_types.csv index c5875788..d1772cdd 100644 --- a/data/5!station_station_types.csv +++ b/data/5!station_station_types.csv @@ -3473,69 +3473,69 @@ DEFAULT,3102741,315,110,0,南が丘 DEFAULT,3102742,315,110,0,久居 DEFAULT,3102743,315,110,0,桃園 DEFAULT,3102744,315,110,0,伊勢中川 -DEFAULT,3102701,304,111,0,近鉄名古屋 -DEFAULT,3102702,304,111,1,米野 -DEFAULT,3102703,304,111,1,黄金 -DEFAULT,3102704,304,111,1,烏森 -DEFAULT,3102705,304,111,1,近鉄八田 -DEFAULT,3102706,304,111,1,伏屋 -DEFAULT,3102707,304,111,1,戸田 -DEFAULT,3102708,304,111,0,近鉄蟹江 -DEFAULT,3102709,304,111,1,富吉 -DEFAULT,3102710,304,111,1,佐古木 -DEFAULT,3102711,304,111,0,近鉄弥富 -DEFAULT,3102712,304,111,1,近鉄長島 -DEFAULT,3102713,304,111,0,桑名 -DEFAULT,3102714,304,111,1,益生 -DEFAULT,3102715,304,111,1,伊勢朝日 -DEFAULT,3102716,304,111,1,川越富洲原 -DEFAULT,3102717,304,111,0,近鉄富田 -DEFAULT,3102718,304,111,1,霞ヶ浦 -DEFAULT,3102719,304,111,1,阿倉川 -DEFAULT,3102720,304,111,1,川原町 -DEFAULT,3102721,304,111,0,近鉄四日市 -DEFAULT,3102722,304,111,1,新正 -DEFAULT,3102723,304,111,1,海山道 -DEFAULT,3102724,304,111,0,塩浜 -DEFAULT,3102725,304,111,1,北楠 -DEFAULT,3102726,304,111,1,楠 -DEFAULT,3102727,304,111,1,長太ノ浦 -DEFAULT,3102728,304,111,1,箕田 -DEFAULT,3102729,304,111,0,伊勢若松 -DEFAULT,3102730,304,111,1,千代崎 -DEFAULT,3102731,304,111,0,白子 -DEFAULT,3102732,304,111,1,鼓ヶ浦 -DEFAULT,3102733,304,111,1,磯山 -DEFAULT,3102734,304,111,1,千里 -DEFAULT,3102735,304,111,1,豊津上野 -DEFAULT,3102736,304,111,1,白塚 -DEFAULT,3102737,304,111,1,高田本山 -DEFAULT,3102738,304,111,0,江戸橋 -DEFAULT,3102739,304,111,0,津 -DEFAULT,3102740,304,111,0,津新町 -DEFAULT,3102741,304,111,0,南が丘 -DEFAULT,3102742,304,111,0,久居 -DEFAULT,3102743,304,111,0,桃園 -DEFAULT,3102744,304,111,0,伊勢中川 -DEFAULT,3100901,304,111,0,伊勢中川 -DEFAULT,3100902,304,111,1,伊勢中原 -DEFAULT,3100903,304,111,1,松ヶ崎 -DEFAULT,3100904,304,111,0,松阪 -DEFAULT,3100905,304,111,1,東松阪 -DEFAULT,3100906,304,111,1,櫛田 -DEFAULT,3100907,304,111,1,漕代 -DEFAULT,3100908,304,111,1,斎宮 -DEFAULT,3100909,304,111,1,明星 -DEFAULT,3100910,304,111,1,明野 -DEFAULT,3100911,304,111,1,小俣 -DEFAULT,3100912,304,111,1,宮町 -DEFAULT,3100913,304,111,0,伊勢市 -DEFAULT,3100914,304,111,0,宇治山田 -DEFAULT,3101001,304,111,0,宇治山田 -DEFAULT,3101002,304,111,0,五十鈴川 -DEFAULT,3101003,304,111,0,朝熊 -DEFAULT,3101004,304,111,0,池の浦 -DEFAULT,3101005,304,111,0,鳥羽 +DEFAULT,3102701,375,111,0,近鉄名古屋 +DEFAULT,3102702,375,111,1,米野 +DEFAULT,3102703,375,111,1,黄金 +DEFAULT,3102704,375,111,1,烏森 +DEFAULT,3102705,375,111,1,近鉄八田 +DEFAULT,3102706,375,111,1,伏屋 +DEFAULT,3102707,375,111,1,戸田 +DEFAULT,3102708,375,111,0,近鉄蟹江 +DEFAULT,3102709,375,111,1,富吉 +DEFAULT,3102710,375,111,1,佐古木 +DEFAULT,3102711,375,111,0,近鉄弥富 +DEFAULT,3102712,375,111,1,近鉄長島 +DEFAULT,3102713,375,111,0,桑名 +DEFAULT,3102714,375,111,1,益生 +DEFAULT,3102715,375,111,1,伊勢朝日 +DEFAULT,3102716,375,111,1,川越富洲原 +DEFAULT,3102717,375,111,0,近鉄富田 +DEFAULT,3102718,375,111,1,霞ヶ浦 +DEFAULT,3102719,375,111,1,阿倉川 +DEFAULT,3102720,375,111,1,川原町 +DEFAULT,3102721,375,111,0,近鉄四日市 +DEFAULT,3102722,375,111,1,新正 +DEFAULT,3102723,375,111,1,海山道 +DEFAULT,3102724,375,111,0,塩浜 +DEFAULT,3102725,375,111,1,北楠 +DEFAULT,3102726,375,111,1,楠 +DEFAULT,3102727,375,111,1,長太ノ浦 +DEFAULT,3102728,375,111,1,箕田 +DEFAULT,3102729,375,111,0,伊勢若松 +DEFAULT,3102730,375,111,1,千代崎 +DEFAULT,3102731,375,111,0,白子 +DEFAULT,3102732,375,111,1,鼓ヶ浦 +DEFAULT,3102733,375,111,1,磯山 +DEFAULT,3102734,375,111,1,千里 +DEFAULT,3102735,375,111,1,豊津上野 +DEFAULT,3102736,375,111,1,白塚 +DEFAULT,3102737,375,111,1,高田本山 +DEFAULT,3102738,375,111,0,江戸橋 +DEFAULT,3102739,375,111,0,津 +DEFAULT,3102740,375,111,0,津新町 +DEFAULT,3102741,375,111,0,南が丘 +DEFAULT,3102742,375,111,0,久居 +DEFAULT,3102743,375,111,0,桃園 +DEFAULT,3102744,375,111,0,伊勢中川 +DEFAULT,3100901,375,111,0,伊勢中川 +DEFAULT,3100902,375,111,1,伊勢中原 +DEFAULT,3100903,375,111,1,松ヶ崎 +DEFAULT,3100904,375,111,0,松阪 +DEFAULT,3100905,375,111,1,東松阪 +DEFAULT,3100906,375,111,1,櫛田 +DEFAULT,3100907,375,111,1,漕代 +DEFAULT,3100908,375,111,1,斎宮 +DEFAULT,3100909,375,111,1,明星 +DEFAULT,3100910,375,111,1,明野 +DEFAULT,3100911,375,111,1,小俣 +DEFAULT,3100912,375,111,1,宮町 +DEFAULT,3100913,375,111,0,伊勢市 +DEFAULT,3100914,375,111,0,宇治山田 +DEFAULT,3101001,375,111,0,宇治山田 +DEFAULT,3101002,375,111,0,五十鈴川 +DEFAULT,3101003,375,111,0,朝熊 +DEFAULT,3101004,375,111,0,池の浦 +DEFAULT,3101005,375,111,0,鳥羽 DEFAULT,3102701,306,112,0,近鉄名古屋 DEFAULT,3102702,306,112,1,米野 DEFAULT,3102703,306,112,1,黄金 @@ -12065,49 +12065,49 @@ DEFAULT,3102513,315,316,0,久津川 DEFAULT,3102514,315,316,0,寺田 DEFAULT,3102515,315,316,0,富野荘 DEFAULT,3102516,315,316,0,新田辺 -DEFAULT,3102501,304,317,0,京都 -DEFAULT,3102502,304,317,0,東寺 -DEFAULT,3102503,304,317,1,十条 -DEFAULT,3102504,304,317,1,上鳥羽口 -DEFAULT,3102505,304,317,0,竹田 -DEFAULT,3102506,304,317,1,伏見 -DEFAULT,3102507,304,317,0,近鉄丹波橋 -DEFAULT,3102508,304,317,0,桃山御陵前 -DEFAULT,3102509,304,317,1,向島 -DEFAULT,3102510,304,317,1,小倉 -DEFAULT,3102511,304,317,1,伊勢田 -DEFAULT,3102512,304,317,0,大久保 -DEFAULT,3102513,304,317,1,久津川 -DEFAULT,3102514,304,317,1,寺田 -DEFAULT,3102515,304,317,1,富野荘 -DEFAULT,3102516,304,317,0,新田辺 -DEFAULT,3102517,304,317,1,興戸 -DEFAULT,3102518,304,317,1,三山木 -DEFAULT,3102519,304,317,1,近鉄宮津 -DEFAULT,3102520,304,317,1,狛田 -DEFAULT,3102521,304,317,0,新祝園 -DEFAULT,3102522,304,317,1,木津川台 -DEFAULT,3102523,304,317,1,山田川 -DEFAULT,3102524,304,317,0,高の原 -DEFAULT,3102525,304,317,1,平城 -DEFAULT,3102526,304,317,0,大和西大寺 -DEFAULT,3100201,304,317,0,大和西大寺 -DEFAULT,3100202,304,317,1,尼ヶ辻 -DEFAULT,3100203,304,317,2,西ノ京 -DEFAULT,3100204,304,317,1,九条 -DEFAULT,3100205,304,317,0,近鉄郡山 -DEFAULT,3100206,304,317,1,筒井 -DEFAULT,3100207,304,317,0,平端 -DEFAULT,3100208,304,317,1,ファミリー公園前 -DEFAULT,3100209,304,317,1,結崎 -DEFAULT,3100210,304,317,1,石見 -DEFAULT,3100211,304,317,0,田原本 -DEFAULT,3100212,304,317,1,笠縫 -DEFAULT,3100213,304,317,1,新ノ口 -DEFAULT,3100214,304,317,0,大和八木 -DEFAULT,3100215,304,317,0,八木西口 -DEFAULT,3100216,304,317,0,畝傍御陵前 -DEFAULT,3100217,304,317,0,橿原神宮前 +DEFAULT,3102501,375,317,0,京都 +DEFAULT,3102502,375,317,0,東寺 +DEFAULT,3102503,375,317,1,十条 +DEFAULT,3102504,375,317,1,上鳥羽口 +DEFAULT,3102505,375,317,0,竹田 +DEFAULT,3102506,375,317,1,伏見 +DEFAULT,3102507,375,317,0,近鉄丹波橋 +DEFAULT,3102508,375,317,0,桃山御陵前 +DEFAULT,3102509,375,317,1,向島 +DEFAULT,3102510,375,317,1,小倉 +DEFAULT,3102511,375,317,1,伊勢田 +DEFAULT,3102512,375,317,0,大久保 +DEFAULT,3102513,375,317,1,久津川 +DEFAULT,3102514,375,317,1,寺田 +DEFAULT,3102515,375,317,1,富野荘 +DEFAULT,3102516,375,317,0,新田辺 +DEFAULT,3102517,375,317,1,興戸 +DEFAULT,3102518,375,317,1,三山木 +DEFAULT,3102519,375,317,1,近鉄宮津 +DEFAULT,3102520,375,317,1,狛田 +DEFAULT,3102521,375,317,0,新祝園 +DEFAULT,3102522,375,317,1,木津川台 +DEFAULT,3102523,375,317,1,山田川 +DEFAULT,3102524,375,317,0,高の原 +DEFAULT,3102525,375,317,1,平城 +DEFAULT,3102526,375,317,0,大和西大寺 +DEFAULT,3100201,375,317,0,大和西大寺 +DEFAULT,3100202,375,317,1,尼ヶ辻 +DEFAULT,3100203,375,317,2,西ノ京 +DEFAULT,3100204,375,317,1,九条 +DEFAULT,3100205,375,317,0,近鉄郡山 +DEFAULT,3100206,375,317,1,筒井 +DEFAULT,3100207,375,317,0,平端 +DEFAULT,3100208,375,317,1,ファミリー公園前 +DEFAULT,3100209,375,317,1,結崎 +DEFAULT,3100210,375,317,1,石見 +DEFAULT,3100211,375,317,0,田原本 +DEFAULT,3100212,375,317,1,笠縫 +DEFAULT,3100213,375,317,1,新ノ口 +DEFAULT,3100214,375,317,0,大和八木 +DEFAULT,3100215,375,317,0,八木西口 +DEFAULT,3100216,375,317,0,畝傍御陵前 +DEFAULT,3100217,375,317,0,橿原神宮前 DEFAULT,3102501,306,318,0,京都 DEFAULT,3102502,306,318,1,東寺 DEFAULT,3102503,306,318,1,十条 @@ -12179,34 +12179,34 @@ DEFAULT,3102525,100,319,0,平城 DEFAULT,3102526,100,319,0,大和西大寺 DEFAULT,3102527,100,319,0,新大宮 DEFAULT,3102528,100,319,0,近鉄奈良 -DEFAULT,3102501,304,320,0,京都 -DEFAULT,3102502,304,320,0,東寺 -DEFAULT,3102503,304,320,1,十条 -DEFAULT,3102504,304,320,1,上鳥羽口 -DEFAULT,3102505,304,320,0,竹田 -DEFAULT,3102506,304,320,1,伏見 -DEFAULT,3102507,304,320,0,近鉄丹波橋 -DEFAULT,3102508,304,320,0,桃山御陵前 -DEFAULT,3102509,304,320,1,向島 -DEFAULT,3102510,304,320,1,小倉 -DEFAULT,3102511,304,320,1,伊勢田 -DEFAULT,3102512,304,320,0,大久保 -DEFAULT,3102513,304,320,1,久津川 -DEFAULT,3102514,304,320,1,寺田 -DEFAULT,3102515,304,320,1,富野荘 -DEFAULT,3102516,304,320,0,新田辺 -DEFAULT,3102517,304,320,1,興戸 -DEFAULT,3102518,304,320,1,三山木 -DEFAULT,3102519,304,320,1,近鉄宮津 -DEFAULT,3102520,304,320,1,狛田 -DEFAULT,3102521,304,320,0,新祝園 -DEFAULT,3102522,304,320,1,木津川台 -DEFAULT,3102523,304,320,1,山田川 -DEFAULT,3102524,304,320,0,高の原 -DEFAULT,3102525,304,320,1,平城 -DEFAULT,3102526,304,320,0,大和西大寺 -DEFAULT,3102527,304,320,0,新大宮 -DEFAULT,3102528,304,320,0,近鉄奈良 +DEFAULT,3102501,375,320,0,京都 +DEFAULT,3102502,375,320,0,東寺 +DEFAULT,3102503,375,320,1,十条 +DEFAULT,3102504,375,320,1,上鳥羽口 +DEFAULT,3102505,375,320,0,竹田 +DEFAULT,3102506,375,320,1,伏見 +DEFAULT,3102507,375,320,0,近鉄丹波橋 +DEFAULT,3102508,375,320,0,桃山御陵前 +DEFAULT,3102509,375,320,1,向島 +DEFAULT,3102510,375,320,1,小倉 +DEFAULT,3102511,375,320,1,伊勢田 +DEFAULT,3102512,375,320,0,大久保 +DEFAULT,3102513,375,320,1,久津川 +DEFAULT,3102514,375,320,1,寺田 +DEFAULT,3102515,375,320,1,富野荘 +DEFAULT,3102516,375,320,0,新田辺 +DEFAULT,3102517,375,320,1,興戸 +DEFAULT,3102518,375,320,1,三山木 +DEFAULT,3102519,375,320,1,近鉄宮津 +DEFAULT,3102520,375,320,1,狛田 +DEFAULT,3102521,375,320,0,新祝園 +DEFAULT,3102522,375,320,1,木津川台 +DEFAULT,3102523,375,320,1,山田川 +DEFAULT,3102524,375,320,0,高の原 +DEFAULT,3102525,375,320,1,平城 +DEFAULT,3102526,375,320,0,大和西大寺 +DEFAULT,3102527,375,320,0,新大宮 +DEFAULT,3102528,375,320,0,近鉄奈良 DEFAULT,3102501,306,321,0,京都 DEFAULT,3102502,306,321,1,東寺 DEFAULT,3102503,306,321,1,十条 @@ -12272,43 +12272,43 @@ DEFAULT,3101101,100,322,0,平端 DEFAULT,3101102,100,322,0,二階堂 DEFAULT,3101103,100,322,0,前栽 DEFAULT,3101104,100,322,0,天理 -DEFAULT,3102501,304,323,0,京都 -DEFAULT,3102502,304,323,0,東寺 -DEFAULT,3102503,304,323,1,十条 -DEFAULT,3102504,304,323,1,上鳥羽口 -DEFAULT,3102505,304,323,0,竹田 -DEFAULT,3102506,304,323,1,伏見 -DEFAULT,3102507,304,323,0,近鉄丹波橋 -DEFAULT,3102508,304,323,0,桃山御陵前 -DEFAULT,3102509,304,323,1,向島 -DEFAULT,3102510,304,323,1,小倉 -DEFAULT,3102511,304,323,1,伊勢田 -DEFAULT,3102512,304,323,0,大久保 -DEFAULT,3102513,304,323,1,久津川 -DEFAULT,3102514,304,323,1,寺田 -DEFAULT,3102515,304,323,1,富野荘 -DEFAULT,3102516,304,323,0,新田辺 -DEFAULT,3102517,304,323,1,興戸 -DEFAULT,3102518,304,323,1,三山木 -DEFAULT,3102519,304,323,1,近鉄宮津 -DEFAULT,3102520,304,323,1,狛田 -DEFAULT,3102521,304,323,0,新祝園 -DEFAULT,3102522,304,323,1,木津川台 -DEFAULT,3102523,304,323,1,山田川 -DEFAULT,3102524,304,323,0,高の原 -DEFAULT,3102525,304,323,1,平城 -DEFAULT,3102526,304,323,0,大和西大寺 -DEFAULT,3100201,304,323,0,大和西大寺 -DEFAULT,3100202,304,323,1,尼ヶ辻 -DEFAULT,3100203,304,323,2,西ノ京 -DEFAULT,3100204,304,323,1,九条 -DEFAULT,3100205,304,323,0,近鉄郡山 -DEFAULT,3100206,304,323,1,筒井 -DEFAULT,3100207,304,323,0,平端 -DEFAULT,3101101,304,323,0,平端 -DEFAULT,3101102,304,323,0,二階堂 -DEFAULT,3101103,304,323,0,前栽 -DEFAULT,3101104,304,323,0,天理 +DEFAULT,3102501,375,323,0,京都 +DEFAULT,3102502,375,323,0,東寺 +DEFAULT,3102503,375,323,1,十条 +DEFAULT,3102504,375,323,1,上鳥羽口 +DEFAULT,3102505,375,323,0,竹田 +DEFAULT,3102506,375,323,1,伏見 +DEFAULT,3102507,375,323,0,近鉄丹波橋 +DEFAULT,3102508,375,323,0,桃山御陵前 +DEFAULT,3102509,375,323,1,向島 +DEFAULT,3102510,375,323,1,小倉 +DEFAULT,3102511,375,323,1,伊勢田 +DEFAULT,3102512,375,323,0,大久保 +DEFAULT,3102513,375,323,1,久津川 +DEFAULT,3102514,375,323,1,寺田 +DEFAULT,3102515,375,323,1,富野荘 +DEFAULT,3102516,375,323,0,新田辺 +DEFAULT,3102517,375,323,1,興戸 +DEFAULT,3102518,375,323,1,三山木 +DEFAULT,3102519,375,323,1,近鉄宮津 +DEFAULT,3102520,375,323,1,狛田 +DEFAULT,3102521,375,323,0,新祝園 +DEFAULT,3102522,375,323,1,木津川台 +DEFAULT,3102523,375,323,1,山田川 +DEFAULT,3102524,375,323,0,高の原 +DEFAULT,3102525,375,323,1,平城 +DEFAULT,3102526,375,323,0,大和西大寺 +DEFAULT,3100201,375,323,0,大和西大寺 +DEFAULT,3100202,375,323,1,尼ヶ辻 +DEFAULT,3100203,375,323,2,西ノ京 +DEFAULT,3100204,375,323,1,九条 +DEFAULT,3100205,375,323,0,近鉄郡山 +DEFAULT,3100206,375,323,1,筒井 +DEFAULT,3100207,375,323,0,平端 +DEFAULT,3101101,375,323,0,平端 +DEFAULT,3101102,375,323,0,二階堂 +DEFAULT,3101103,375,323,0,前栽 +DEFAULT,3101104,375,323,0,天理 DEFAULT,3100301,100,324,0,大阪阿部野橋 DEFAULT,3100302,100,324,0,河堀口 DEFAULT,3100303,100,324,0,北田辺 @@ -12381,78 +12381,78 @@ DEFAULT,3100325,315,325,0,浮孔 DEFAULT,3100326,315,325,0,坊城 DEFAULT,3100327,315,325,0,橿原神宮西口 DEFAULT,3100328,315,325,0,橿原神宮前 -DEFAULT,3100301,319,326,0,大阪阿部野橋 -DEFAULT,3100302,319,326,1,河堀口 -DEFAULT,3100303,319,326,1,北田辺 -DEFAULT,3100304,319,326,1,今川 -DEFAULT,3100305,319,326,1,針中野 -DEFAULT,3100306,319,326,1,矢田 -DEFAULT,3100307,319,326,1,河内天美 -DEFAULT,3100308,319,326,1,布忍 -DEFAULT,3100309,319,326,1,高見ノ里 -DEFAULT,3100310,319,326,1,河内松原 -DEFAULT,3100311,319,326,1,恵我ノ荘 -DEFAULT,3100312,319,326,1,高鷲 -DEFAULT,3100313,319,326,1,藤井寺 -DEFAULT,3100314,319,326,1,土師ノ里 -DEFAULT,3100315,319,326,1,道明寺 -DEFAULT,3100316,319,326,0,古市 -DEFAULT,3100317,319,326,1,駒ヶ谷 -DEFAULT,3100318,319,326,1,上ノ太子 -DEFAULT,3100319,319,326,1,二上山 -DEFAULT,3100320,319,326,1,二上神社口 -DEFAULT,3100321,319,326,1,当麻寺 -DEFAULT,3100322,319,326,1,磐城 -DEFAULT,3100323,319,326,0,尺土 -DEFAULT,3100324,319,326,0,高田市 -DEFAULT,3100325,319,326,0,浮孔 -DEFAULT,3100326,319,326,0,坊城 -DEFAULT,3100327,319,326,0,橿原神宮西口 -DEFAULT,3100328,319,326,0,橿原神宮前 -DEFAULT,3100301,304,327,0,大阪阿部野橋 -DEFAULT,3100302,304,327,1,河堀口 -DEFAULT,3100303,304,327,1,北田辺 -DEFAULT,3100304,304,327,1,今川 -DEFAULT,3100305,304,327,1,針中野 -DEFAULT,3100306,304,327,1,矢田 -DEFAULT,3100307,304,327,1,河内天美 -DEFAULT,3100308,304,327,1,布忍 -DEFAULT,3100309,304,327,1,高見ノ里 -DEFAULT,3100310,304,327,1,河内松原 -DEFAULT,3100311,304,327,1,恵我ノ荘 -DEFAULT,3100312,304,327,1,高鷲 -DEFAULT,3100313,304,327,1,藤井寺 -DEFAULT,3100314,304,327,1,土師ノ里 -DEFAULT,3100315,304,327,1,道明寺 -DEFAULT,3100316,304,327,0,古市 -DEFAULT,3100317,304,327,1,駒ヶ谷 -DEFAULT,3100318,304,327,1,上ノ太子 -DEFAULT,3100319,304,327,1,二上山 -DEFAULT,3100320,304,327,1,二上神社口 -DEFAULT,3100321,304,327,1,当麻寺 -DEFAULT,3100322,304,327,1,磐城 -DEFAULT,3100323,304,327,0,尺土 -DEFAULT,3100324,304,327,0,高田市 -DEFAULT,3100325,304,327,1,浮孔 -DEFAULT,3100326,304,327,1,坊城 -DEFAULT,3100327,304,327,1,橿原神宮西口 -DEFAULT,3100328,304,327,0,橿原神宮前 -DEFAULT,3100701,304,327,0,橿原神宮前 -DEFAULT,3100702,304,327,0,岡寺 -DEFAULT,3100703,304,327,0,飛鳥 -DEFAULT,3100704,304,327,0,壺阪山 -DEFAULT,3100705,304,327,0,市尾 -DEFAULT,3100706,304,327,0,葛 -DEFAULT,3100707,304,327,0,吉野口 -DEFAULT,3100708,304,327,0,薬水 -DEFAULT,3100709,304,327,0,福神 -DEFAULT,3100710,304,327,0,大阿太 -DEFAULT,3100711,304,327,0,下市口 -DEFAULT,3100712,304,327,0,越部 -DEFAULT,3100713,304,327,0,六田 -DEFAULT,3100714,304,327,0,大和上市 -DEFAULT,3100715,304,327,0,吉野神宮 -DEFAULT,3100716,304,327,0,吉野 +DEFAULT,3100301,374,326,0,大阪阿部野橋 +DEFAULT,3100302,374,326,1,河堀口 +DEFAULT,3100303,374,326,1,北田辺 +DEFAULT,3100304,374,326,1,今川 +DEFAULT,3100305,374,326,1,針中野 +DEFAULT,3100306,374,326,1,矢田 +DEFAULT,3100307,374,326,1,河内天美 +DEFAULT,3100308,374,326,1,布忍 +DEFAULT,3100309,374,326,1,高見ノ里 +DEFAULT,3100310,374,326,1,河内松原 +DEFAULT,3100311,374,326,1,恵我ノ荘 +DEFAULT,3100312,374,326,1,高鷲 +DEFAULT,3100313,374,326,1,藤井寺 +DEFAULT,3100314,374,326,1,土師ノ里 +DEFAULT,3100315,374,326,1,道明寺 +DEFAULT,3100316,374,326,0,古市 +DEFAULT,3100317,374,326,1,駒ヶ谷 +DEFAULT,3100318,374,326,1,上ノ太子 +DEFAULT,3100319,374,326,1,二上山 +DEFAULT,3100320,374,326,1,二上神社口 +DEFAULT,3100321,374,326,1,当麻寺 +DEFAULT,3100322,374,326,1,磐城 +DEFAULT,3100323,374,326,0,尺土 +DEFAULT,3100324,374,326,0,高田市 +DEFAULT,3100325,374,326,0,浮孔 +DEFAULT,3100326,374,326,0,坊城 +DEFAULT,3100327,374,326,0,橿原神宮西口 +DEFAULT,3100328,374,326,0,橿原神宮前 +DEFAULT,3100301,375,327,0,大阪阿部野橋 +DEFAULT,3100302,375,327,1,河堀口 +DEFAULT,3100303,375,327,1,北田辺 +DEFAULT,3100304,375,327,1,今川 +DEFAULT,3100305,375,327,1,針中野 +DEFAULT,3100306,375,327,1,矢田 +DEFAULT,3100307,375,327,1,河内天美 +DEFAULT,3100308,375,327,1,布忍 +DEFAULT,3100309,375,327,1,高見ノ里 +DEFAULT,3100310,375,327,1,河内松原 +DEFAULT,3100311,375,327,1,恵我ノ荘 +DEFAULT,3100312,375,327,1,高鷲 +DEFAULT,3100313,375,327,1,藤井寺 +DEFAULT,3100314,375,327,1,土師ノ里 +DEFAULT,3100315,375,327,1,道明寺 +DEFAULT,3100316,375,327,0,古市 +DEFAULT,3100317,375,327,1,駒ヶ谷 +DEFAULT,3100318,375,327,1,上ノ太子 +DEFAULT,3100319,375,327,1,二上山 +DEFAULT,3100320,375,327,1,二上神社口 +DEFAULT,3100321,375,327,1,当麻寺 +DEFAULT,3100322,375,327,1,磐城 +DEFAULT,3100323,375,327,0,尺土 +DEFAULT,3100324,375,327,0,高田市 +DEFAULT,3100325,375,327,1,浮孔 +DEFAULT,3100326,375,327,1,坊城 +DEFAULT,3100327,375,327,1,橿原神宮西口 +DEFAULT,3100328,375,327,0,橿原神宮前 +DEFAULT,3100701,375,327,0,橿原神宮前 +DEFAULT,3100702,375,327,0,岡寺 +DEFAULT,3100703,375,327,0,飛鳥 +DEFAULT,3100704,375,327,0,壺阪山 +DEFAULT,3100705,375,327,0,市尾 +DEFAULT,3100706,375,327,0,葛 +DEFAULT,3100707,375,327,0,吉野口 +DEFAULT,3100708,375,327,0,薬水 +DEFAULT,3100709,375,327,0,福神 +DEFAULT,3100710,375,327,0,大阿太 +DEFAULT,3100711,375,327,0,下市口 +DEFAULT,3100712,375,327,0,越部 +DEFAULT,3100713,375,327,0,六田 +DEFAULT,3100714,375,327,0,大和上市 +DEFAULT,3100715,375,327,0,吉野神宮 +DEFAULT,3100716,375,327,0,吉野 DEFAULT,3100301,306,328,0,大阪阿部野橋 DEFAULT,3100302,306,328,1,河堀口 DEFAULT,3100303,306,328,1,北田辺 @@ -12545,30 +12545,30 @@ DEFAULT,3102205,315,330,0,川西 DEFAULT,3102206,315,330,0,滝谷不動 DEFAULT,3102207,315,330,0,汐ノ宮 DEFAULT,3102208,315,330,0,河内長野 -DEFAULT,3100301,304,331,0,大阪阿部野橋 -DEFAULT,3100302,304,331,1,河堀口 -DEFAULT,3100303,304,331,1,北田辺 -DEFAULT,3100304,304,331,1,今川 -DEFAULT,3100305,304,331,1,針中野 -DEFAULT,3100306,304,331,1,矢田 -DEFAULT,3100307,304,331,1,河内天美 -DEFAULT,3100308,304,331,1,布忍 -DEFAULT,3100309,304,331,1,高見ノ里 -DEFAULT,3100310,304,331,1,河内松原 -DEFAULT,3100311,304,331,1,恵我ノ荘 -DEFAULT,3100312,304,331,1,高鷲 -DEFAULT,3100313,304,331,1,藤井寺 -DEFAULT,3100314,304,331,1,土師ノ里 -DEFAULT,3100315,304,331,1,道明寺 -DEFAULT,3100316,304,331,0,古市 -DEFAULT,3102201,304,331,0,古市 -DEFAULT,3102202,304,331,0,喜志 -DEFAULT,3102203,304,331,0,富田林 -DEFAULT,3102204,304,331,0,富田林西口 -DEFAULT,3102205,304,331,0,川西 -DEFAULT,3102206,304,331,0,滝谷不動 -DEFAULT,3102207,304,331,0,汐ノ宮 -DEFAULT,3102208,304,331,0,河内長野 +DEFAULT,3100301,375,331,0,大阪阿部野橋 +DEFAULT,3100302,375,331,1,河堀口 +DEFAULT,3100303,375,331,1,北田辺 +DEFAULT,3100304,375,331,1,今川 +DEFAULT,3100305,375,331,1,針中野 +DEFAULT,3100306,375,331,1,矢田 +DEFAULT,3100307,375,331,1,河内天美 +DEFAULT,3100308,375,331,1,布忍 +DEFAULT,3100309,375,331,1,高見ノ里 +DEFAULT,3100310,375,331,1,河内松原 +DEFAULT,3100311,375,331,1,恵我ノ荘 +DEFAULT,3100312,375,331,1,高鷲 +DEFAULT,3100313,375,331,1,藤井寺 +DEFAULT,3100314,375,331,1,土師ノ里 +DEFAULT,3100315,375,331,1,道明寺 +DEFAULT,3100316,375,331,0,古市 +DEFAULT,3102201,375,331,0,古市 +DEFAULT,3102202,375,331,0,喜志 +DEFAULT,3102203,375,331,0,富田林 +DEFAULT,3102204,375,331,0,富田林西口 +DEFAULT,3102205,375,331,0,川西 +DEFAULT,3102206,375,331,0,滝谷不動 +DEFAULT,3102207,375,331,0,汐ノ宮 +DEFAULT,3102208,375,331,0,河内長野 DEFAULT,3500207,373,332,0,尼崎 DEFAULT,3500206,373,332,0,大物 DEFAULT,3500205,373,332,0,出来島 @@ -12641,91 +12641,91 @@ DEFAULT,3102016,315,333,0,菖蒲池 DEFAULT,3102017,315,333,0,大和西大寺 DEFAULT,3102018,315,333,0,新大宮 DEFAULT,3102019,315,333,0,近鉄奈良 -DEFAULT,3100101,304,334,0,大阪難波 -DEFAULT,3100102,304,334,0,近鉄日本橋 -DEFAULT,3100103,304,334,0,大阪上本町 -DEFAULT,3102020,304,334,0,大阪上本町 -DEFAULT,3102021,304,334,0,鶴橋 -DEFAULT,3102022,304,334,1,今里 -DEFAULT,3102001,304,334,0,布施 -DEFAULT,3102002,304,334,1,河内永和 -DEFAULT,3102003,304,334,1,河内小阪 -DEFAULT,3102004,304,334,1,八戸ノ里 -DEFAULT,3102005,304,334,1,若江岩田 -DEFAULT,3102006,304,334,1,河内花園 -DEFAULT,3102007,304,334,1,東花園 -DEFAULT,3102008,304,334,1,瓢箪山 -DEFAULT,3102009,304,334,1,枚岡 -DEFAULT,3102010,304,334,1,額田 -DEFAULT,3102011,304,334,0,石切 -DEFAULT,3102012,304,334,0,生駒 -DEFAULT,3102013,304,334,1,東生駒 -DEFAULT,3102014,304,334,1,富雄 -DEFAULT,3102015,304,334,0,学園前 -DEFAULT,3102016,304,334,1,菖蒲池 -DEFAULT,3102017,304,334,0,大和西大寺 -DEFAULT,3102018,304,334,0,新大宮 -DEFAULT,3102019,304,334,0,近鉄奈良 -DEFAULT,3500132,330,335,0,神戸三宮 -DEFAULT,3500131,330,335,1,春日野道 -DEFAULT,3500130,330,335,1,岩屋 -DEFAULT,3500129,330,335,1,西灘 -DEFAULT,3500128,330,335,1,大石 -DEFAULT,3500127,330,335,1,新在家 -DEFAULT,3500126,330,335,1,石屋川 -DEFAULT,3500125,330,335,1,御影 -DEFAULT,3500124,330,335,1,住吉 -DEFAULT,3500123,330,335,0,魚崎 -DEFAULT,3500122,330,335,1,青木 -DEFAULT,3500121,330,335,1,深江 -DEFAULT,3500120,330,335,2,芦屋 -DEFAULT,3500119,330,335,1,打出 -DEFAULT,3500118,330,335,1,香櫨園 -DEFAULT,3500117,330,335,0,西宮 -DEFAULT,3500116,330,335,2,今津 -DEFAULT,3500115,330,335,1,久寿川 -DEFAULT,3500114,330,335,0,甲子園 -DEFAULT,3500113,330,335,1,鳴尾・武庫川女子大前 -DEFAULT,3500112,330,335,2,武庫川 -DEFAULT,3500111,330,335,1,尼崎センタープール前 -DEFAULT,3500110,330,335,1,出屋敷 -DEFAULT,3500109,330,335,0,尼崎 -DEFAULT,3500207,330,335,0,尼崎 -DEFAULT,3500206,330,335,1,大物 -DEFAULT,3500205,330,335,1,出来島 -DEFAULT,3500204,330,335,1,福 -DEFAULT,3500203,330,335,1,伝法 -DEFAULT,3500202,330,335,1,千鳥橋 -DEFAULT,3500201,330,335,0,西九条 -DEFAULT,3500208,330,335,0,九条 -DEFAULT,3500209,330,335,0,ドーム前 -DEFAULT,3500210,330,335,0,桜川 -DEFAULT,3500211,330,335,0,大阪難波 -DEFAULT,3100101,330,335,0,大阪難波 -DEFAULT,3100102,330,335,0,近鉄日本橋 -DEFAULT,3100103,330,335,0,大阪上本町 -DEFAULT,3102020,330,335,0,大阪上本町 -DEFAULT,3102021,330,335,0,鶴橋 -DEFAULT,3102022,330,335,1,今里 -DEFAULT,3102001,330,335,1,布施 -DEFAULT,3102002,330,335,1,河内永和 -DEFAULT,3102003,330,335,1,河内小阪 -DEFAULT,3102004,330,335,1,八戸ノ里 -DEFAULT,3102005,330,335,1,若江岩田 -DEFAULT,3102006,330,335,1,河内花園 -DEFAULT,3102007,330,335,1,東花園 -DEFAULT,3102008,330,335,1,瓢箪山 -DEFAULT,3102009,330,335,1,枚岡 -DEFAULT,3102010,330,335,1,額田 -DEFAULT,3102011,330,335,1,石切 -DEFAULT,3102012,330,335,0,生駒 -DEFAULT,3102013,330,335,1,東生駒 -DEFAULT,3102014,330,335,1,富雄 -DEFAULT,3102015,330,335,0,学園前 -DEFAULT,3102016,330,335,1,菖蒲池 -DEFAULT,3102017,330,335,0,大和西大寺 -DEFAULT,3102018,330,335,0,新大宮 -DEFAULT,3102019,330,335,0,近鉄奈良 +DEFAULT,3100101,375,334,0,大阪難波 +DEFAULT,3100102,375,334,0,近鉄日本橋 +DEFAULT,3100103,375,334,0,大阪上本町 +DEFAULT,3102020,375,334,0,大阪上本町 +DEFAULT,3102021,375,334,0,鶴橋 +DEFAULT,3102022,375,334,1,今里 +DEFAULT,3102001,375,334,0,布施 +DEFAULT,3102002,375,334,1,河内永和 +DEFAULT,3102003,375,334,1,河内小阪 +DEFAULT,3102004,375,334,1,八戸ノ里 +DEFAULT,3102005,375,334,1,若江岩田 +DEFAULT,3102006,375,334,1,河内花園 +DEFAULT,3102007,375,334,1,東花園 +DEFAULT,3102008,375,334,1,瓢箪山 +DEFAULT,3102009,375,334,1,枚岡 +DEFAULT,3102010,375,334,1,額田 +DEFAULT,3102011,375,334,0,石切 +DEFAULT,3102012,375,334,0,生駒 +DEFAULT,3102013,375,334,1,東生駒 +DEFAULT,3102014,375,334,1,富雄 +DEFAULT,3102015,375,334,0,学園前 +DEFAULT,3102016,375,334,1,菖蒲池 +DEFAULT,3102017,375,334,0,大和西大寺 +DEFAULT,3102018,375,334,0,新大宮 +DEFAULT,3102019,375,334,0,近鉄奈良 +DEFAULT,3500132,377,335,0,神戸三宮 +DEFAULT,3500131,377,335,1,春日野道 +DEFAULT,3500130,377,335,1,岩屋 +DEFAULT,3500129,377,335,1,西灘 +DEFAULT,3500128,377,335,1,大石 +DEFAULT,3500127,377,335,1,新在家 +DEFAULT,3500126,377,335,1,石屋川 +DEFAULT,3500125,377,335,1,御影 +DEFAULT,3500124,377,335,1,住吉 +DEFAULT,3500123,377,335,0,魚崎 +DEFAULT,3500122,377,335,1,青木 +DEFAULT,3500121,377,335,1,深江 +DEFAULT,3500120,377,335,2,芦屋 +DEFAULT,3500119,377,335,1,打出 +DEFAULT,3500118,377,335,1,香櫨園 +DEFAULT,3500117,377,335,0,西宮 +DEFAULT,3500116,377,335,2,今津 +DEFAULT,3500115,377,335,1,久寿川 +DEFAULT,3500114,377,335,0,甲子園 +DEFAULT,3500113,377,335,1,鳴尾・武庫川女子大前 +DEFAULT,3500112,377,335,2,武庫川 +DEFAULT,3500111,377,335,1,尼崎センタープール前 +DEFAULT,3500110,377,335,1,出屋敷 +DEFAULT,3500109,377,335,0,尼崎 +DEFAULT,3500207,377,335,0,尼崎 +DEFAULT,3500206,377,335,1,大物 +DEFAULT,3500205,377,335,1,出来島 +DEFAULT,3500204,377,335,1,福 +DEFAULT,3500203,377,335,1,伝法 +DEFAULT,3500202,377,335,1,千鳥橋 +DEFAULT,3500201,377,335,0,西九条 +DEFAULT,3500208,377,335,0,九条 +DEFAULT,3500209,377,335,0,ドーム前 +DEFAULT,3500210,377,335,0,桜川 +DEFAULT,3500211,377,335,0,大阪難波 +DEFAULT,3100101,376,335,0,大阪難波 +DEFAULT,3100102,376,335,0,近鉄日本橋 +DEFAULT,3100103,376,335,0,大阪上本町 +DEFAULT,3102020,376,335,0,大阪上本町 +DEFAULT,3102021,376,335,0,鶴橋 +DEFAULT,3102022,376,335,1,今里 +DEFAULT,3102001,376,335,1,布施 +DEFAULT,3102002,376,335,1,河内永和 +DEFAULT,3102003,376,335,1,河内小阪 +DEFAULT,3102004,376,335,1,八戸ノ里 +DEFAULT,3102005,376,335,1,若江岩田 +DEFAULT,3102006,376,335,1,河内花園 +DEFAULT,3102007,376,335,1,東花園 +DEFAULT,3102008,376,335,1,瓢箪山 +DEFAULT,3102009,376,335,1,枚岡 +DEFAULT,3102010,376,335,1,額田 +DEFAULT,3102011,376,335,1,石切 +DEFAULT,3102012,376,335,0,生駒 +DEFAULT,3102013,376,335,1,東生駒 +DEFAULT,3102014,376,335,1,富雄 +DEFAULT,3102015,376,335,0,学園前 +DEFAULT,3102016,376,335,1,菖蒲池 +DEFAULT,3102017,376,335,0,大和西大寺 +DEFAULT,3102018,376,335,0,新大宮 +DEFAULT,3102019,376,335,0,近鉄奈良 DEFAULT,3100101,306,336,0,大阪難波 DEFAULT,3100102,306,336,1,近鉄日本橋 DEFAULT,3100103,306,336,0,大阪上本町 @@ -12871,137 +12871,137 @@ DEFAULT,3100533,315,339,0,室生口大野 DEFAULT,3100534,315,339,0,三本松 DEFAULT,3100535,315,339,0,赤目口 DEFAULT,3100536,315,339,0,名張 -DEFAULT,3100501,304,340,0,大阪上本町 -DEFAULT,3100502,304,340,0,鶴橋 -DEFAULT,3100503,304,340,1,今里 -DEFAULT,3100504,304,340,0,布施 -DEFAULT,3100505,304,340,1,俊徳道 -DEFAULT,3100506,304,340,1,長瀬 -DEFAULT,3100507,304,340,1,弥刀 -DEFAULT,3100508,304,340,1,久宝寺口 -DEFAULT,3100509,304,340,1,近鉄八尾 -DEFAULT,3100510,304,340,1,河内山本 -DEFAULT,3100511,304,340,1,高安 -DEFAULT,3100512,304,340,1,恩智 -DEFAULT,3100513,304,340,1,法善寺 -DEFAULT,3100514,304,340,1,堅下 -DEFAULT,3100515,304,340,1,安堂 -DEFAULT,3100516,304,340,0,河内国分 -DEFAULT,3100517,304,340,1,大阪教育大前 -DEFAULT,3100518,304,340,1,関屋 -DEFAULT,3100519,304,340,1,二上 -DEFAULT,3100520,304,340,1,近鉄下田 -DEFAULT,3100521,304,340,0,五位堂 -DEFAULT,3100522,304,340,1,築山 -DEFAULT,3100523,304,340,0,大和高田 -DEFAULT,3100524,304,340,1,松塚 -DEFAULT,3100525,304,340,1,真菅 -DEFAULT,3100526,304,340,0,大和八木 -DEFAULT,3100527,304,340,1,耳成 -DEFAULT,3100528,304,340,1,大福 -DEFAULT,3100529,304,340,0,桜井 -DEFAULT,3100530,304,340,0,大和朝倉 -DEFAULT,3100531,304,340,0,長谷寺 -DEFAULT,3100532,304,340,0,榛原 -DEFAULT,3100533,304,340,0,室生口大野 -DEFAULT,3100534,304,340,0,三本松 -DEFAULT,3100535,304,340,0,赤目口 -DEFAULT,3100536,304,340,0,名張 -DEFAULT,3100537,304,340,0,桔梗が丘 -DEFAULT,3100538,304,340,0,美旗 -DEFAULT,3100539,304,340,0,伊賀神戸 -DEFAULT,3100540,304,340,0,青山町 -DEFAULT,3100541,304,340,0,伊賀上津 -DEFAULT,3100542,304,340,0,西青山 -DEFAULT,3100543,304,340,0,東青山 -DEFAULT,3100544,304,340,0,榊原温泉口 -DEFAULT,3100545,304,340,1,大三 -DEFAULT,3100546,304,340,1,伊勢石橋 -DEFAULT,3100547,304,340,1,川合高岡 -DEFAULT,3100548,304,340,0,伊勢中川 -DEFAULT,3100901,304,340,0,伊勢中川 -DEFAULT,3100902,304,340,1,伊勢中原 -DEFAULT,3100903,304,340,1,松ヶ崎 -DEFAULT,3100904,304,340,0,松阪 -DEFAULT,3100905,304,340,1,東松阪 -DEFAULT,3100906,304,340,1,櫛田 -DEFAULT,3100907,304,340,1,漕代 -DEFAULT,3100908,304,340,1,斎宮 -DEFAULT,3100909,304,340,1,明星 -DEFAULT,3100910,304,340,1,明野 -DEFAULT,3100911,304,340,1,小俣 -DEFAULT,3100912,304,340,1,宮町 -DEFAULT,3100913,304,340,0,伊勢市 -DEFAULT,3100914,304,340,0,宇治山田 -DEFAULT,3101001,304,340,0,宇治山田 -DEFAULT,3101002,304,340,0,五十鈴川 -DEFAULT,3100501,330,341,0,大阪上本町 -DEFAULT,3100502,330,341,0,鶴橋 -DEFAULT,3100503,330,341,1,今里 -DEFAULT,3100504,330,341,1,布施 -DEFAULT,3100505,330,341,1,俊徳道 -DEFAULT,3100506,330,341,1,長瀬 -DEFAULT,3100507,330,341,1,弥刀 -DEFAULT,3100508,330,341,1,久宝寺口 -DEFAULT,3100509,330,341,1,近鉄八尾 -DEFAULT,3100510,330,341,1,河内山本 -DEFAULT,3100511,330,341,1,高安 -DEFAULT,3100512,330,341,1,恩智 -DEFAULT,3100513,330,341,1,法善寺 -DEFAULT,3100514,330,341,1,堅下 -DEFAULT,3100515,330,341,1,安堂 -DEFAULT,3100516,330,341,1,河内国分 -DEFAULT,3100517,330,341,1,大阪教育大前 -DEFAULT,3100518,330,341,1,関屋 -DEFAULT,3100519,330,341,1,二上 -DEFAULT,3100520,330,341,1,近鉄下田 -DEFAULT,3100521,330,341,0,五位堂 -DEFAULT,3100522,330,341,1,築山 -DEFAULT,3100523,330,341,0,大和高田 -DEFAULT,3100524,330,341,1,松塚 -DEFAULT,3100525,330,341,1,真菅 -DEFAULT,3100526,330,341,0,大和八木 -DEFAULT,3100527,330,341,1,耳成 -DEFAULT,3100528,330,341,1,大福 -DEFAULT,3100529,330,341,0,桜井 -DEFAULT,3100530,330,341,1,大和朝倉 -DEFAULT,3100531,330,341,1,長谷寺 -DEFAULT,3100532,330,341,0,榛原 -DEFAULT,3100533,330,341,0,室生口大野 -DEFAULT,3100534,330,341,1,三本松 -DEFAULT,3100535,330,341,0,赤目口 -DEFAULT,3100536,330,341,0,名張 -DEFAULT,3100537,330,341,0,桔梗が丘 -DEFAULT,3100538,330,341,0,美旗 -DEFAULT,3100539,330,341,0,伊賀神戸 -DEFAULT,3100540,330,341,0,青山町 -DEFAULT,3100541,330,341,1,伊賀上津 -DEFAULT,3100542,330,341,1,西青山 -DEFAULT,3100543,330,341,1,東青山 -DEFAULT,3100544,330,341,0,榊原温泉口 -DEFAULT,3100545,330,341,1,大三 -DEFAULT,3100546,330,341,1,伊勢石橋 -DEFAULT,3100547,330,341,1,川合高岡 -DEFAULT,3100548,330,341,0,伊勢中川 -DEFAULT,3100901,330,341,0,伊勢中川 -DEFAULT,3100902,330,341,1,伊勢中原 -DEFAULT,3100903,330,341,1,松ヶ崎 -DEFAULT,3100904,330,341,0,松阪 -DEFAULT,3100905,330,341,1,東松阪 -DEFAULT,3100906,330,341,1,櫛田 -DEFAULT,3100907,330,341,1,漕代 -DEFAULT,3100908,330,341,1,斎宮 -DEFAULT,3100909,330,341,1,明星 -DEFAULT,3100910,330,341,1,明野 -DEFAULT,3100911,330,341,1,小俣 -DEFAULT,3100912,330,341,1,宮町 -DEFAULT,3100913,330,341,0,伊勢市 -DEFAULT,3100914,330,341,0,宇治山田 -DEFAULT,3101001,330,341,0,宇治山田 -DEFAULT,3101002,330,341,0,五十鈴川 -DEFAULT,3101003,330,341,0,朝熊 -DEFAULT,3101004,330,341,0,池の浦 -DEFAULT,3101005,330,341,0,鳥羽 +DEFAULT,3100501,375,340,0,大阪上本町 +DEFAULT,3100502,375,340,0,鶴橋 +DEFAULT,3100503,375,340,1,今里 +DEFAULT,3100504,375,340,0,布施 +DEFAULT,3100505,375,340,1,俊徳道 +DEFAULT,3100506,375,340,1,長瀬 +DEFAULT,3100507,375,340,1,弥刀 +DEFAULT,3100508,375,340,1,久宝寺口 +DEFAULT,3100509,375,340,1,近鉄八尾 +DEFAULT,3100510,375,340,1,河内山本 +DEFAULT,3100511,375,340,1,高安 +DEFAULT,3100512,375,340,1,恩智 +DEFAULT,3100513,375,340,1,法善寺 +DEFAULT,3100514,375,340,1,堅下 +DEFAULT,3100515,375,340,1,安堂 +DEFAULT,3100516,375,340,0,河内国分 +DEFAULT,3100517,375,340,1,大阪教育大前 +DEFAULT,3100518,375,340,1,関屋 +DEFAULT,3100519,375,340,1,二上 +DEFAULT,3100520,375,340,1,近鉄下田 +DEFAULT,3100521,375,340,0,五位堂 +DEFAULT,3100522,375,340,1,築山 +DEFAULT,3100523,375,340,0,大和高田 +DEFAULT,3100524,375,340,1,松塚 +DEFAULT,3100525,375,340,1,真菅 +DEFAULT,3100526,375,340,0,大和八木 +DEFAULT,3100527,375,340,1,耳成 +DEFAULT,3100528,375,340,1,大福 +DEFAULT,3100529,375,340,0,桜井 +DEFAULT,3100530,375,340,0,大和朝倉 +DEFAULT,3100531,375,340,0,長谷寺 +DEFAULT,3100532,375,340,0,榛原 +DEFAULT,3100533,375,340,0,室生口大野 +DEFAULT,3100534,375,340,0,三本松 +DEFAULT,3100535,375,340,0,赤目口 +DEFAULT,3100536,375,340,0,名張 +DEFAULT,3100537,375,340,0,桔梗が丘 +DEFAULT,3100538,375,340,0,美旗 +DEFAULT,3100539,375,340,0,伊賀神戸 +DEFAULT,3100540,375,340,0,青山町 +DEFAULT,3100541,375,340,0,伊賀上津 +DEFAULT,3100542,375,340,0,西青山 +DEFAULT,3100543,375,340,0,東青山 +DEFAULT,3100544,375,340,0,榊原温泉口 +DEFAULT,3100545,375,340,1,大三 +DEFAULT,3100546,375,340,1,伊勢石橋 +DEFAULT,3100547,375,340,1,川合高岡 +DEFAULT,3100548,375,340,0,伊勢中川 +DEFAULT,3100901,375,340,0,伊勢中川 +DEFAULT,3100902,375,340,1,伊勢中原 +DEFAULT,3100903,375,340,1,松ヶ崎 +DEFAULT,3100904,375,340,0,松阪 +DEFAULT,3100905,375,340,1,東松阪 +DEFAULT,3100906,375,340,1,櫛田 +DEFAULT,3100907,375,340,1,漕代 +DEFAULT,3100908,375,340,1,斎宮 +DEFAULT,3100909,375,340,1,明星 +DEFAULT,3100910,375,340,1,明野 +DEFAULT,3100911,375,340,1,小俣 +DEFAULT,3100912,375,340,1,宮町 +DEFAULT,3100913,375,340,0,伊勢市 +DEFAULT,3100914,375,340,0,宇治山田 +DEFAULT,3101001,375,340,0,宇治山田 +DEFAULT,3101002,375,340,0,五十鈴川 +DEFAULT,3100501,376,341,0,大阪上本町 +DEFAULT,3100502,376,341,0,鶴橋 +DEFAULT,3100503,376,341,1,今里 +DEFAULT,3100504,376,341,1,布施 +DEFAULT,3100505,376,341,1,俊徳道 +DEFAULT,3100506,376,341,1,長瀬 +DEFAULT,3100507,376,341,1,弥刀 +DEFAULT,3100508,376,341,1,久宝寺口 +DEFAULT,3100509,376,341,1,近鉄八尾 +DEFAULT,3100510,376,341,1,河内山本 +DEFAULT,3100511,376,341,1,高安 +DEFAULT,3100512,376,341,1,恩智 +DEFAULT,3100513,376,341,1,法善寺 +DEFAULT,3100514,376,341,1,堅下 +DEFAULT,3100515,376,341,1,安堂 +DEFAULT,3100516,376,341,1,河内国分 +DEFAULT,3100517,376,341,1,大阪教育大前 +DEFAULT,3100518,376,341,1,関屋 +DEFAULT,3100519,376,341,1,二上 +DEFAULT,3100520,376,341,1,近鉄下田 +DEFAULT,3100521,376,341,0,五位堂 +DEFAULT,3100522,376,341,1,築山 +DEFAULT,3100523,376,341,0,大和高田 +DEFAULT,3100524,376,341,1,松塚 +DEFAULT,3100525,376,341,1,真菅 +DEFAULT,3100526,376,341,0,大和八木 +DEFAULT,3100527,376,341,1,耳成 +DEFAULT,3100528,376,341,1,大福 +DEFAULT,3100529,376,341,0,桜井 +DEFAULT,3100530,376,341,1,大和朝倉 +DEFAULT,3100531,376,341,1,長谷寺 +DEFAULT,3100532,376,341,0,榛原 +DEFAULT,3100533,376,341,0,室生口大野 +DEFAULT,3100534,376,341,1,三本松 +DEFAULT,3100535,376,341,0,赤目口 +DEFAULT,3100536,376,341,0,名張 +DEFAULT,3100537,376,341,0,桔梗が丘 +DEFAULT,3100538,376,341,0,美旗 +DEFAULT,3100539,376,341,0,伊賀神戸 +DEFAULT,3100540,376,341,0,青山町 +DEFAULT,3100541,376,341,1,伊賀上津 +DEFAULT,3100542,376,341,1,西青山 +DEFAULT,3100543,376,341,1,東青山 +DEFAULT,3100544,376,341,0,榊原温泉口 +DEFAULT,3100545,376,341,1,大三 +DEFAULT,3100546,376,341,1,伊勢石橋 +DEFAULT,3100547,376,341,1,川合高岡 +DEFAULT,3100548,376,341,0,伊勢中川 +DEFAULT,3100901,376,341,0,伊勢中川 +DEFAULT,3100902,376,341,1,伊勢中原 +DEFAULT,3100903,376,341,1,松ヶ崎 +DEFAULT,3100904,376,341,0,松阪 +DEFAULT,3100905,376,341,1,東松阪 +DEFAULT,3100906,376,341,1,櫛田 +DEFAULT,3100907,376,341,1,漕代 +DEFAULT,3100908,376,341,1,斎宮 +DEFAULT,3100909,376,341,1,明星 +DEFAULT,3100910,376,341,1,明野 +DEFAULT,3100911,376,341,1,小俣 +DEFAULT,3100912,376,341,1,宮町 +DEFAULT,3100913,376,341,0,伊勢市 +DEFAULT,3100914,376,341,0,宇治山田 +DEFAULT,3101001,376,341,0,宇治山田 +DEFAULT,3101002,376,341,0,五十鈴川 +DEFAULT,3101003,376,341,0,朝熊 +DEFAULT,3101004,376,341,0,池の浦 +DEFAULT,3101005,376,341,0,鳥羽 DEFAULT,3100901,100,342,0,伊勢中川 DEFAULT,3100902,100,342,0,伊勢中原 DEFAULT,3100903,100,342,0,松ヶ崎 @@ -13037,44 +13037,6 @@ DEFAULT,3101513,100,342,0,志摩横山 DEFAULT,3101514,100,342,0,鵜方 DEFAULT,3101515,100,342,0,志摩神明 DEFAULT,3101516,100,342,0,賢島 -DEFAULT,3100901,304,343,0,伊勢中川 -DEFAULT,3100902,304,343,1,伊勢中原 -DEFAULT,3100903,304,343,1,松ヶ崎 -DEFAULT,3100904,304,343,0,松阪 -DEFAULT,3100905,304,343,1,東松阪 -DEFAULT,3100906,304,343,1,櫛田 -DEFAULT,3100907,304,343,1,漕代 -DEFAULT,3100908,304,343,1,斎宮 -DEFAULT,3100909,304,343,1,明星 -DEFAULT,3100910,304,343,1,明野 -DEFAULT,3100911,304,343,1,小俣 -DEFAULT,3100912,304,343,2,宮町 -DEFAULT,3100913,304,343,0,伊勢市 -DEFAULT,3100914,304,343,0,宇治山田 -DEFAULT,3101001,304,343,0,宇治山田 -DEFAULT,3101002,304,343,0,五十鈴川 -DEFAULT,3101003,304,343,0,朝熊 -DEFAULT,3101004,304,343,0,池の浦 -DEFAULT,3101005,304,343,0,鳥羽 -DEFAULT,3100901,330,344,0,伊勢中川 -DEFAULT,3100902,330,344,1,伊勢中原 -DEFAULT,3100903,330,344,1,松ヶ崎 -DEFAULT,3100904,330,344,0,松阪 -DEFAULT,3100905,330,344,1,東松阪 -DEFAULT,3100906,330,344,1,櫛田 -DEFAULT,3100907,330,344,1,漕代 -DEFAULT,3100908,330,344,1,斎宮 -DEFAULT,3100909,330,344,1,明星 -DEFAULT,3100910,330,344,1,明野 -DEFAULT,3100911,330,344,1,小俣 -DEFAULT,3100912,330,344,1,宮町 -DEFAULT,3100913,330,344,0,伊勢市 -DEFAULT,3100914,330,344,0,宇治山田 -DEFAULT,3101001,330,344,0,宇治山田 -DEFAULT,3101002,330,344,0,五十鈴川 -DEFAULT,3101003,330,344,0,朝熊 -DEFAULT,3101004,330,344,0,池の浦 -DEFAULT,3101005,330,344,0,鳥羽 DEFAULT,3100101,306,345,0,大阪難波 DEFAULT,3100102,306,345,1,近鉄日本橋 DEFAULT,3100103,306,345,0,大阪上本町 @@ -14274,45 +14236,45 @@ DEFAULT,3102513,100,373,0,久津川 DEFAULT,3102514,100,373,0,寺田 DEFAULT,3102515,100,373,0,富野荘 DEFAULT,3102516,100,373,0,新田辺 -DEFAULT,9961001,304,374,0,国際会館 -DEFAULT,9961002,304,374,0,松ヶ崎 -DEFAULT,9961003,304,374,0,北山 -DEFAULT,9961004,304,374,0,北大路 -DEFAULT,9961005,304,374,0,鞍馬口 -DEFAULT,9961006,304,374,0,今出川 -DEFAULT,9961007,304,374,0,丸太町 -DEFAULT,9961008,304,374,0,烏丸御池 -DEFAULT,9961009,304,374,0,四条 -DEFAULT,9961010,304,374,0,五条 -DEFAULT,9961011,304,374,0,京都 -DEFAULT,9961012,304,374,0,九条 -DEFAULT,9961013,304,374,0,十条 -DEFAULT,9961014,304,374,0,くいな橋 -DEFAULT,9961015,304,374,0,竹田 -DEFAULT,3102505,304,374,0,竹田 -DEFAULT,3102506,304,374,1,伏見 -DEFAULT,3102507,304,374,0,近鉄丹波橋 -DEFAULT,3102508,304,374,0,桃山御陵前 -DEFAULT,3102509,304,374,1,向島 -DEFAULT,3102510,304,374,1,小倉 -DEFAULT,3102511,304,374,1,伊勢田 -DEFAULT,3102512,304,374,0,大久保 -DEFAULT,3102513,304,374,1,久津川 -DEFAULT,3102514,304,374,1,寺田 -DEFAULT,3102515,304,374,1,富野荘 -DEFAULT,3102516,304,374,0,新田辺 -DEFAULT,3102517,304,374,1,興戸 -DEFAULT,3102518,304,374,1,三山木 -DEFAULT,3102519,304,374,1,近鉄宮津 -DEFAULT,3102520,304,374,1,狛田 -DEFAULT,3102521,304,374,0,新祝園 -DEFAULT,3102522,304,374,1,木津川台 -DEFAULT,3102523,304,374,1,山田川 -DEFAULT,3102524,304,374,0,高の原 -DEFAULT,3102525,304,374,1,平城 -DEFAULT,3102526,304,374,0,大和西大寺 -DEFAULT,3102527,304,374,0,新大宮 -DEFAULT,3102528,304,374,0,近鉄奈良 +DEFAULT,9961001,375,374,0,国際会館 +DEFAULT,9961002,375,374,0,松ヶ崎 +DEFAULT,9961003,375,374,0,北山 +DEFAULT,9961004,375,374,0,北大路 +DEFAULT,9961005,375,374,0,鞍馬口 +DEFAULT,9961006,375,374,0,今出川 +DEFAULT,9961007,375,374,0,丸太町 +DEFAULT,9961008,375,374,0,烏丸御池 +DEFAULT,9961009,375,374,0,四条 +DEFAULT,9961010,375,374,0,五条 +DEFAULT,9961011,375,374,0,京都 +DEFAULT,9961012,375,374,0,九条 +DEFAULT,9961013,375,374,0,十条 +DEFAULT,9961014,375,374,0,くいな橋 +DEFAULT,9961015,375,374,0,竹田 +DEFAULT,3102505,375,374,0,竹田 +DEFAULT,3102506,375,374,1,伏見 +DEFAULT,3102507,375,374,0,近鉄丹波橋 +DEFAULT,3102508,375,374,0,桃山御陵前 +DEFAULT,3102509,375,374,1,向島 +DEFAULT,3102510,375,374,1,小倉 +DEFAULT,3102511,375,374,1,伊勢田 +DEFAULT,3102512,375,374,0,大久保 +DEFAULT,3102513,375,374,1,久津川 +DEFAULT,3102514,375,374,1,寺田 +DEFAULT,3102515,375,374,1,富野荘 +DEFAULT,3102516,375,374,0,新田辺 +DEFAULT,3102517,375,374,1,興戸 +DEFAULT,3102518,375,374,1,三山木 +DEFAULT,3102519,375,374,1,近鉄宮津 +DEFAULT,3102520,375,374,1,狛田 +DEFAULT,3102521,375,374,0,新祝園 +DEFAULT,3102522,375,374,1,木津川台 +DEFAULT,3102523,375,374,1,山田川 +DEFAULT,3102524,375,374,0,高の原 +DEFAULT,3102525,375,374,1,平城 +DEFAULT,3102526,375,374,0,大和西大寺 +DEFAULT,3102527,375,374,0,新大宮 +DEFAULT,3102528,375,374,0,近鉄奈良 DEFAULT,1130201,100,375,0,大崎 DEFAULT,1130202,100,375,0,五反田 DEFAULT,1130203,100,375,0,目黒 @@ -14374,25 +14336,25 @@ DEFAULT,1132702,230,376,1,酒々井 DEFAULT,1132703,230,376,2,成田 DEFAULT,1132704,230,376,0,空港第2ビル(第2旅客ターミナル) DEFAULT,1132705,230,376,0,成田空港(第1旅客ターミナル) -DEFAULT,3102501,304,377,0,京都 -DEFAULT,3102502,304,377,0,東寺 -DEFAULT,3102503,304,377,1,十条 -DEFAULT,3102504,304,377,1,上鳥羽口 -DEFAULT,3102505,304,377,0,竹田 -DEFAULT,3102506,304,377,1,伏見 -DEFAULT,3102507,304,377,0,近鉄丹波橋 -DEFAULT,3102508,304,377,0,桃山御陵前 -DEFAULT,3102509,304,377,1,向島 -DEFAULT,3102510,304,377,1,小倉 -DEFAULT,3102511,304,377,1,伊勢田 -DEFAULT,3102512,304,377,0,大久保 -DEFAULT,3102513,304,377,1,久津川 -DEFAULT,3102514,304,377,1,寺田 -DEFAULT,3102515,304,377,1,富野荘 -DEFAULT,3102516,304,377,0,新田辺 -DEFAULT,3102517,304,377,0,興戸 -DEFAULT,3102518,304,377,0,三山木 -DEFAULT,3102519,304,377,0,近鉄宮津 +DEFAULT,3102501,375,377,0,京都 +DEFAULT,3102502,375,377,0,東寺 +DEFAULT,3102503,375,377,1,十条 +DEFAULT,3102504,375,377,1,上鳥羽口 +DEFAULT,3102505,375,377,0,竹田 +DEFAULT,3102506,375,377,1,伏見 +DEFAULT,3102507,375,377,0,近鉄丹波橋 +DEFAULT,3102508,375,377,0,桃山御陵前 +DEFAULT,3102509,375,377,1,向島 +DEFAULT,3102510,375,377,1,小倉 +DEFAULT,3102511,375,377,1,伊勢田 +DEFAULT,3102512,375,377,0,大久保 +DEFAULT,3102513,375,377,1,久津川 +DEFAULT,3102514,375,377,1,寺田 +DEFAULT,3102515,375,377,1,富野荘 +DEFAULT,3102516,375,377,0,新田辺 +DEFAULT,3102517,375,377,0,興戸 +DEFAULT,3102518,375,377,0,三山木 +DEFAULT,3102519,375,377,0,近鉄宮津 DEFAULT,1190202,231,378,0,門司港 DEFAULT,1190203,231,378,1,小森江 DEFAULT,1190204,231,378,0,門司 @@ -22099,20 +22061,20 @@ DEFAULT,3101902,100,616,0,柳 DEFAULT,3101903,100,616,0,鈴鹿市 DEFAULT,3101904,100,616,0,三日市 DEFAULT,3101905,100,616,0,平田町 -DEFAULT,3102721,304,617,0,近鉄四日市 -DEFAULT,3102722,304,617,1,新正 -DEFAULT,3102723,304,617,1,海山道 -DEFAULT,3102724,304,617,0,塩浜 -DEFAULT,3102725,304,617,1,北楠 -DEFAULT,3102726,304,617,1,楠 -DEFAULT,3102727,304,617,1,長太ノ浦 -DEFAULT,3102728,304,617,1,箕田 -DEFAULT,3102729,304,617,0,伊勢若松 -DEFAULT,3101901,304,617,0,伊勢若松 -DEFAULT,3101902,304,617,0,柳 -DEFAULT,3101903,304,617,0,鈴鹿市 -DEFAULT,3101904,304,617,0,三日市 -DEFAULT,3101905,304,617,0,平田町 +DEFAULT,3102721,375,617,0,近鉄四日市 +DEFAULT,3102722,375,617,1,新正 +DEFAULT,3102723,375,617,1,海山道 +DEFAULT,3102724,375,617,0,塩浜 +DEFAULT,3102725,375,617,1,北楠 +DEFAULT,3102726,375,617,1,楠 +DEFAULT,3102727,375,617,1,長太ノ浦 +DEFAULT,3102728,375,617,1,箕田 +DEFAULT,3102729,375,617,0,伊勢若松 +DEFAULT,3101901,375,617,0,伊勢若松 +DEFAULT,3101902,375,617,0,柳 +DEFAULT,3101903,375,617,0,鈴鹿市 +DEFAULT,3101904,375,617,0,三日市 +DEFAULT,3101905,375,617,0,平田町 DEFAULT,2100130,100,618,0,森林公園 DEFAULT,2100129,100,618,0,東松山 DEFAULT,2100128,100,618,0,高坂 @@ -41050,4 +41012,4 @@ DEFAULT,9942017,102,1220,0,あわら湯のまち DEFAULT,9942018,102,1220,1,水居 DEFAULT,9942019,102,1220,0,三国神社 DEFAULT,9942020,102,1220,0,三国 -DEFAULT,9942021,102,1220,0,三国港 \ No newline at end of file +DEFAULT,9942021,102,1220,0,三国港 From badeb9fc2a5d1a94338a4351f16b84962dffc516 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 12:59:34 +0900 Subject: [PATCH 11/16] fix: replace line-name suffixes with English IPA instead of stripping (#1415) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of just removing 線/本線/支線 from the IPA, replace them with their English IPA equivalents (laɪn / meɪn laɪn) so that Google TTS correctly pronounces the line type in English. Co-authored-by: Claude Opus 4.6 --- stationapi/src/domain/ipa.rs | 164 ++++++++++++++-------------- stationapi/src/use_case/dto/line.rs | 9 +- 2 files changed, 91 insertions(+), 82 deletions(-) diff --git a/stationapi/src/domain/ipa.rs b/stationapi/src/domain/ipa.rs index 1c204954..fa65402c 100644 --- a/stationapi/src/domain/ipa.rs +++ b/stationapi/src/domain/ipa.rs @@ -1,25 +1,32 @@ -/// Common katakana suffixes for line names, ordered longest-first for greedy matching. -const LINE_NAME_SUFFIXES: &[&str] = &["ホンセン", "シセン", "セン"]; -/// Suffixes that should NOT be stripped even though they end with セン. +/// Katakana line-name suffixes paired with their English IPA replacements. +/// Ordered longest-first for greedy matching. +const LINE_NAME_SUFFIX_MAP: &[(&str, &str)] = &[ + ("ホンセン", " meɪn laɪn"), + ("シセン", " laɪn"), + ("セン", " laɪn"), +]; +/// Suffixes that should NOT be replaced even though they end with セン. const LINE_NAME_SUFFIX_EXCEPTIONS: &[&str] = &["シンカンセン"]; -/// Strip a common line-name suffix (線/本線/支線) from a katakana string. +/// Replace a common line-name suffix (線/本線/支線) in a katakana string +/// with its English IPA equivalent (Line / Main Line). /// 新幹線 (Shinkansen) is preserved as it is used as-is in English. -/// Returns the stem (without the suffix). If no known suffix is found, returns the input unchanged. -pub fn strip_line_name_suffix(input: &str) -> &str { +/// Returns the stem and the English IPA suffix to append. +/// If no known suffix is found, returns the full input with an empty suffix. +pub fn replace_line_name_suffix(input: &str) -> (&str, &str) { for exception in LINE_NAME_SUFFIX_EXCEPTIONS { if input.ends_with(exception) { - return input; + return (input, ""); } } - for suffix in LINE_NAME_SUFFIXES { + for (suffix, replacement) in LINE_NAME_SUFFIX_MAP { if let Some(stem) = input.strip_suffix(suffix) { if !stem.is_empty() { - return stem; + return (stem, replacement); } } } - input + (input, "") } /// Convert a katakana string to its IPA transcription. @@ -86,9 +93,9 @@ fn lookup_digraph(c1: char, c2: char) -> Option { ('リ', 'ュ') => "ɾʲɯ", ('リ', 'ョ') => "ɾʲo", // ガ行拗音 - ('ギ', 'ャ') => "ɡʲa", - ('ギ', 'ュ') => "ɡʲɯ", - ('ギ', 'ョ') => "ɡʲo", + ('ギ', 'ャ') => "gʲa", + ('ギ', 'ュ') => "gʲɯ", + ('ギ', 'ョ') => "gʲo", // ザ行拗音 (ジ is voiced postalveolar affricate) ('ジ', 'ャ') => "dʑa", ('ジ', 'ュ') => "dʑɯ", @@ -113,43 +120,43 @@ fn lookup_single(c: char) -> Option { 'ア' | 'ァ' => return Some(Phoneme::Regular("a")), 'イ' | 'ィ' => return Some(Phoneme::Regular("i")), 'ウ' | 'ゥ' => return Some(Phoneme::Regular("ɯ")), - 'エ' | 'ェ' => return Some(Phoneme::Regular("e")), + 'エ' | 'ェ' => return Some(Phoneme::Regular("ɛ")), 'オ' | 'ォ' => return Some(Phoneme::Regular("o")), // カ行 'カ' => "ka", 'キ' => "kʲi", 'ク' => "kɯ", - 'ケ' => "ke", + 'ケ' => "kɛ", 'コ' => "ko", // サ行 'サ' => "sa", 'シ' => "ɕi", 'ス' => "sɯ", - 'セ' => "se", + 'セ' => "sɛ", 'ソ' => "so", // タ行 'タ' => "ta", 'チ' => "t͡ɕi", 'ツ' => "t͡sɯ", - 'テ' => "te", + 'テ' => "tɛ", 'ト' => "to", // ナ行 'ナ' => "na", 'ニ' => "ɲi", 'ヌ' => "nɯ", - 'ネ' => "ne", + 'ネ' => "nɛ", 'ノ' => "no", // ハ行 'ハ' => "ha", 'ヒ' => "çi", 'フ' => "ɸɯ", - 'ヘ' => "he", + 'ヘ' => "hɛ", 'ホ' => "ho", // マ行 'マ' => "ma", 'ミ' => "mi", 'ム' => "mɯ", - 'メ' => "me", + 'メ' => "mɛ", 'モ' => "mo", // ヤ行 'ヤ' | 'ャ' => "ja", @@ -159,42 +166,42 @@ fn lookup_single(c: char) -> Option { 'ラ' => "ɾa", 'リ' => "ɾi", 'ル' => "ɾɯ", - 'レ' => "ɾe", + 'レ' => "ɾɛ", 'ロ' => "ɾo", // ワ行 'ワ' => "wa", 'ヰ' => "i", - 'ヱ' => "e", + 'ヱ' => "ɛ", 'ヲ' => "o", // ガ行 - 'ガ' => "ɡa", - 'ギ' => "ɡi", - 'グ' => "ɡɯ", - 'ゲ' => "ɡe", - 'ゴ' => "ɡo", + 'ガ' => "ga", + 'ギ' => "gi", + 'グ' => "gɯ", + 'ゲ' => "gɛ", + 'ゴ' => "go", // ザ行 'ザ' => "za", 'ジ' => "ʤi", 'ズ' => "zɯ", - 'ゼ' => "ze", + 'ゼ' => "zɛ", 'ゾ' => "zo", // ダ行 'ダ' => "da", 'ヂ' => "dʑi", 'ヅ' => "dzɯ", - 'デ' => "de", + 'デ' => "dɛ", 'ド' => "do", // バ行 'バ' => "ba", 'ビ' => "bi", 'ブ' => "bɯ", - 'ベ' => "be", + 'ベ' => "bɛ", 'ボ' => "bo", // パ行 'パ' => "pa", 'ピ' => "pi", 'プ' => "pɯ", - 'ペ' => "pe", + 'ペ' => "pɛ", 'ポ' => "po", // 特殊 'ン' => return Some(Phoneme::MoraicNasal), @@ -222,7 +229,7 @@ fn split_onset(ipa: &str) -> (&str, &str) { // Find where the first vowel-like character starts let vowel_start = ipa .char_indices() - .find(|(_, c)| "aiɯeouəɐ".contains(*c)) + .find(|(_, c)| "aiɯɛeouəɐ".contains(*c)) .map(|(i, _)| i) .unwrap_or(ipa.len()); ipa.split_at(vowel_start) @@ -241,7 +248,7 @@ fn last_vowel(ipa: &str) -> Option<&'static str> { 'a' => return Some("a"), 'i' => return Some("i"), 'ɯ' => return Some("ɯ"), - 'e' => return Some("e"), + 'ɛ' => return Some("ɛ"), 'o' => return Some("o"), 'u' => return Some("u"), _ => continue, @@ -259,14 +266,13 @@ fn nasal_for_following(next_ipa: &str) -> &'static str { || next_ipa.starts_with("dʑ") || next_ipa.starts_with('ʤ') || next_ipa.starts_with('ɕ') - || next_ipa.starts_with("ɡʲ") + || next_ipa.starts_with("gʲ") || next_ipa.starts_with("kʲ") || next_ipa.starts_with('j') || next_ipa.starts_with('ç') { "ɲ" // palatal assimilation - } else if next_ipa.starts_with('k') || next_ipa.starts_with('ɡ') || next_ipa.starts_with('ŋ') - { + } else if next_ipa.starts_with('k') || next_ipa.starts_with('g') || next_ipa.starts_with('ŋ') { "ŋ" // velar assimilation } else if next_ipa.starts_with('n') || next_ipa.starts_with('t') @@ -305,7 +311,7 @@ fn apply_phonological_rules(phonemes: &[Phoneme]) -> String { Phoneme::Geminate => { // Double the onset of the following consonant. // For affricates (t͡ɕ, t͡s), only the stop portion (t) is geminated. - // For palatalized onsets (kʲ, ɡʲ, etc.), only the base consonant is geminated. + // For palatalized onsets (kʲ, gʲ, etc.), only the base consonant is geminated. if let Some(next_ipa) = find_next_regular(&phonemes[i + 1..]) { if next_ipa.starts_with("t͡ɕ") || next_ipa.starts_with("t͡s") { output.push('t'); @@ -398,17 +404,17 @@ mod tests { #[test] fn test_shinagawa() { - assert_eq!(ipa("シナガワ"), "ɕinaɡawa"); + assert_eq!(ipa("シナガワ"), "ɕinagawa"); } #[test] fn test_ueno() { - assert_eq!(ipa("ウエノ"), "ɯeno"); + assert_eq!(ipa("ウエノ"), "ɯɛno"); } #[test] fn test_ikebukuro() { - assert_eq!(ipa("イケブクロ"), "ikebɯkɯɾo"); + assert_eq!(ipa("イケブクロ"), "ikɛbɯkɯɾo"); } #[test] @@ -452,7 +458,7 @@ mod tests { #[test] fn test_ryogoku() { // リョウ → ɾʲoː (via ɾʲo + ウ → oɯ → oː) - assert_eq!(ipa("リョウゴク"), "ɾʲoːɡokɯ"); + assert_eq!(ipa("リョウゴク"), "ɾʲoːgokɯ"); } #[test] @@ -463,54 +469,54 @@ mod tests { #[test] fn test_keisei() { - assert_eq!(ipa("ケイセイ"), "keisei"); + assert_eq!(ipa("ケイセイ"), "kɛisɛi"); } #[test] fn test_oshiage() { - assert_eq!(ipa("オシアゲ"), "oɕiaɡe"); + assert_eq!(ipa("オシアゲ"), "oɕiagɛ"); } #[test] fn test_meitetsu() { // ツ is consistently t͡sɯ (affricate with tie bar) - assert_eq!(ipa("メイテツ"), "meitet͡sɯ"); + assert_eq!(ipa("メイテツ"), "mɛitɛt͡sɯ"); } #[test] fn test_seibu() { - assert_eq!(ipa("セイブ"), "seibɯ"); + assert_eq!(ipa("セイブ"), "sɛibɯ"); } #[test] fn test_toride() { - assert_eq!(ipa("トリデ"), "toɾide"); + assert_eq!(ipa("トリデ"), "toɾidɛ"); } #[test] fn test_fukiage() { - assert_eq!(ipa("フキアゲ"), "ɸɯkʲiaɡe"); + assert_eq!(ipa("フキアゲ"), "ɸɯkʲiagɛ"); } #[test] fn test_fuse() { - assert_eq!(ipa("フセ"), "ɸɯse"); + assert_eq!(ipa("フセ"), "ɸɯsɛ"); } #[test] fn test_inagekaigan() { // ン at word end → ɴ - assert_eq!(ipa("イナゲカイガン"), "inaɡekaiɡaɴ"); + assert_eq!(ipa("イナゲカイガン"), "inagɛkaigaɴ"); } #[test] fn test_inage() { - assert_eq!(ipa("イナゲ"), "inaɡe"); + assert_eq!(ipa("イナゲ"), "inagɛ"); } #[test] fn test_kire_uriwari() { - assert_eq!(ipa("キレウリワリ"), "kʲiɾeɯɾiwaɾi"); + assert_eq!(ipa("キレウリワリ"), "kʲiɾɛɯɾiwaɾi"); } #[test] @@ -520,41 +526,41 @@ mod tests { #[test] fn test_mejiro() { - assert_eq!(ipa("メジロ"), "meʤiɾo"); + assert_eq!(ipa("メジロ"), "mɛʤiɾo"); } #[test] fn test_isesaki() { - assert_eq!(ipa("イセサキ"), "isesakʲi"); + assert_eq!(ipa("イセサキ"), "isɛsakʲi"); } #[test] fn test_ube() { - assert_eq!(ipa("ウベ"), "ɯbe"); + assert_eq!(ipa("ウベ"), "ɯbɛ"); } #[test] fn test_itchome() { // ッチョウ → tt͡ɕoː - assert_eq!(ipa("イッチョウメ"), "itt͡ɕoːme"); + assert_eq!(ipa("イッチョウメ"), "itt͡ɕoːmɛ"); } #[test] fn test_sanchome() { - assert_eq!(ipa("サンチョウメ"), "sant͡ɕoːme"); + assert_eq!(ipa("サンチョウメ"), "sant͡ɕoːmɛ"); } #[test] fn test_koen() { // コウエン: コ=ko, ウ→長音化でoː, エン=eɴ → koːeɴ // Note: the original hardcoded value was "koeɴ" but phonologically "koːeɴ" is correct - assert_eq!(ipa("コウエン"), "koːeɴ"); + assert_eq!(ipa("コウエン"), "koːɛɴ"); } #[test] fn test_long_vowel_mark() { // ー explicitly lengthens - assert_eq!(ipa("ラーメン"), "ɾaːmeɴ"); + assert_eq!(ipa("ラーメン"), "ɾaːmɛɴ"); } #[test] @@ -565,7 +571,7 @@ mod tests { #[test] fn test_nagoya() { - assert_eq!(ipa("ナゴヤ"), "naɡoja"); + assert_eq!(ipa("ナゴヤ"), "nagoja"); } #[test] @@ -620,7 +626,7 @@ mod tests { // Full-width space between words should be preserved assert_eq!( ipa("ドッキョウダイガクマエ ソウカマツバラ"), - "dokkʲoːdaiɡakɯmae soːkamat͡sɯbaɾa" + "dokkʲoːdaigakɯmaɛ soːkamat͡sɯbaɾa" ); } @@ -629,59 +635,59 @@ mod tests { // Half-width (ASCII) space between words should also be accepted assert_eq!( ipa("ドッキョウダイガクマエ ソウカマツバラ"), - "dokkʲoːdaiɡakɯmae soːkamat͡sɯbaɾa" + "dokkʲoːdaigakɯmaɛ soːkamat͡sɯbaɾa" ); } // ============================================ - // strip_line_name_suffix tests + // replace_line_name_suffix tests // ============================================ #[test] - fn test_strip_sen() { + fn test_replace_sen() { assert_eq!( - strip_line_name_suffix("セイブイケブクロセン"), - "セイブイケブクロ" + replace_line_name_suffix("セイブイケブクロセン"), + ("セイブイケブクロ", " laɪn") ); } #[test] - fn test_strip_honsen() { + fn test_replace_honsen() { assert_eq!( - strip_line_name_suffix("トウカイドウホンセン"), - "トウカイドウ" + replace_line_name_suffix("トウカイドウホンセン"), + ("トウカイドウ", " meɪn laɪn") ); } #[test] - fn test_strip_shinkansen_preserved() { + fn test_replace_shinkansen_preserved() { // 新幹線(Shinkansen)は英語でもそのまま使われるので除去しない assert_eq!( - strip_line_name_suffix("トウホクシンカンセン"), - "トウホクシンカンセン" + replace_line_name_suffix("トウホクシンカンセン"), + ("トウホクシンカンセン", "") ); } #[test] - fn test_strip_shisen() { + fn test_replace_shisen() { assert_eq!( - strip_line_name_suffix("ナガノハラクサツグチシセン"), - "ナガノハラクサツグチ" + replace_line_name_suffix("ナガノハラクサツグチシセン"), + ("ナガノハラクサツグチ", " laɪn") ); } #[test] - fn test_strip_no_suffix() { + fn test_replace_no_suffix() { // ライン等セン以外の末尾はそのまま返す assert_eq!( - strip_line_name_suffix("ショウナンシンジュクライン"), - "ショウナンシンジュクライン" + replace_line_name_suffix("ショウナンシンジュクライン"), + ("ショウナンシンジュクライン", "") ); } #[test] - fn test_strip_bare_sen_returns_unchanged() { + fn test_replace_bare_sen_returns_unchanged() { // "セン" だけの場合、stemが空になるので除去しない - assert_eq!(strip_line_name_suffix("セン"), "セン"); + assert_eq!(replace_line_name_suffix("セン"), ("セン", "")); } } diff --git a/stationapi/src/use_case/dto/line.rs b/stationapi/src/use_case/dto/line.rs index 734e65c7..79a0f438 100644 --- a/stationapi/src/use_case/dto/line.rs +++ b/stationapi/src/use_case/dto/line.rs @@ -1,15 +1,18 @@ use crate::{ domain::{ entity::{gtfs::TransportType, line::Line}, - ipa::{katakana_to_ipa, strip_line_name_suffix}, + ipa::{katakana_to_ipa, replace_line_name_suffix}, }, proto::{Line as GrpcLine, TransportType as GrpcTransportType}, }; impl From for GrpcLine { fn from(line: Line) -> Self { - let name_ipa = katakana_to_ipa(strip_line_name_suffix(&line.line_name_k)) - .filter(|ipa| !ipa.is_empty()); + let name_ipa = { + let (stem, suffix_ipa) = replace_line_name_suffix(&line.line_name_k); + katakana_to_ipa(stem).map(|ipa| format!("{ipa}{suffix_ipa}")) + } + .filter(|ipa| !ipa.is_empty()); // バス路線の場合は line_type を OtherLineType (0) に強制 // (鉄道用の line_type が誤って設定されている可能性があるため) let line_type = if line.transport_type == TransportType::Bus { From 8fb5c84eb8593ca21395230bd9cc4027d0fcb920 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 21:28:14 +0900 Subject: [PATCH 12/16] test: add name_ipa unit tests for Line DTO conversion (#1416) --- stationapi/src/use_case/dto/line.rs | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/stationapi/src/use_case/dto/line.rs b/stationapi/src/use_case/dto/line.rs index 79a0f438..cf090db3 100644 --- a/stationapi/src/use_case/dto/line.rs +++ b/stationapi/src/use_case/dto/line.rs @@ -372,4 +372,38 @@ mod tests { assert_eq!(grpc_line.id, 12345); } + + // ============================================ + // name_ipa 変換テスト + // ============================================ + + #[test] + fn test_name_ipa_sen_suffix_replaced_with_line() { + // 〜セン → IPA + " laɪn" + let mut line = create_test_line(TransportType::Rail, None); + line.line_name_k = "セイブイケブクロセン".to_string(); + let grpc_line: GrpcLine = line.into(); + + assert_eq!(grpc_line.name_ipa, Some("sɛibɯikɛbɯkɯɾo laɪn".to_string())); + } + + #[test] + fn test_name_ipa_honsen_suffix_replaced_with_main_line() { + // 〜ホンセン → IPA + " meɪn laɪn" + let mut line = create_test_line(TransportType::Rail, None); + line.line_name_k = "トウカイドウホンセン".to_string(); + let grpc_line: GrpcLine = line.into(); + + assert_eq!(grpc_line.name_ipa, Some("toːkaidoː meɪn laɪn".to_string())); + } + + #[test] + fn test_name_ipa_shinkansen_preserved() { + // 〜シンカンセン は英語でもそのまま使われるため置換しない + let mut line = create_test_line(TransportType::Rail, None); + line.line_name_k = "トウホクシンカンセン".to_string(); + let grpc_line: GrpcLine = line.into(); + + assert_eq!(grpc_line.name_ipa, Some("toːhokɯɕiŋkansɛɴ".to_string())); + } } From d602572190fe08768cfe5a55d7811c623263ff70 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 21:31:57 +0900 Subject: [PATCH 13/16] =?UTF-8?q?fix:=20=E5=90=8D=E5=89=8D=E6=A4=9C?= =?UTF-8?q?=E7=B4=A2RPC=E3=81=AE=E3=83=AD=E3=83=BC=E3=83=9E=E5=AD=97?= =?UTF-8?q?=E6=A4=9C=E7=B4=A2=E3=82=92case-insensitive=E3=81=AB=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=20(#1417)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...f2163cda87863b73fef621d587a5056b9f8f4bf96fcd77ae1017.json} | 4 ++-- stationapi/src/infrastructure/station_repository.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename .sqlx/{query-16b301ca5df4be89b803987fd71cc41b55e885ccd4bd3ca4bcae1f7336742d3f.json => query-5f4de4e07d61f2163cda87863b73fef621d587a5056b9f8f4bf96fcd77ae1017.json} (90%) diff --git a/.sqlx/query-16b301ca5df4be89b803987fd71cc41b55e885ccd4bd3ca4bcae1f7336742d3f.json b/.sqlx/query-5f4de4e07d61f2163cda87863b73fef621d587a5056b9f8f4bf96fcd77ae1017.json similarity index 90% rename from .sqlx/query-16b301ca5df4be89b803987fd71cc41b55e885ccd4bd3ca4bcae1f7336742d3f.json rename to .sqlx/query-5f4de4e07d61f2163cda87863b73fef621d587a5056b9f8f4bf96fcd77ae1017.json index 0d154880..3d2650ed 100644 --- a/.sqlx/query-16b301ca5df4be89b803987fd71cc41b55e885ccd4bd3ca4bcae1f7336742d3f.json +++ b/.sqlx/query-5f4de4e07d61f2163cda87863b73fef621d587a5056b9f8f4bf96fcd77ae1017.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "WITH from_stations AS (\n SELECT\n s.station_cd,\n s.line_cd\n FROM stations AS s\n WHERE s.station_g_cd = $1\n AND s.e_status = 0\n ),\n filtered AS (\n SELECT DISTINCT ON (s.station_cd)\n s.station_cd,\n s.station_g_cd,\n s.station_name,\n s.station_name_k,\n s.station_name_r,\n s.station_name_rn,\n s.station_name_zh,\n s.station_name_ko,\n s.station_number1,\n s.station_number2,\n s.station_number3,\n s.station_number4,\n s.three_letter_code,\n s.line_cd,\n s.pref_cd,\n s.post,\n s.address,\n s.lon,\n s.lat,\n s.open_ymd,\n s.close_ymd,\n s.e_status,\n s.e_sort,\n l.company_cd,\n COALESCE(NULLIF(COALESCE(a.line_name, l.line_name), ''), NULL) AS line_name,\n COALESCE(NULLIF(COALESCE(a.line_name_k, l.line_name_k), ''), NULL) AS line_name_k,\n COALESCE(NULLIF(COALESCE(a.line_name_h, l.line_name_h), ''), NULL) AS line_name_h,\n COALESCE(NULLIF(COALESCE(a.line_name_r, l.line_name_r), ''), NULL) AS line_name_r,\n COALESCE(NULLIF(COALESCE(a.line_name_zh, l.line_name_zh), ''), NULL) AS line_name_zh,\n COALESCE(NULLIF(COALESCE(a.line_name_ko, l.line_name_ko), ''), NULL) AS line_name_ko,\n COALESCE(NULLIF(COALESCE(a.line_color_c, l.line_color_c), ''), NULL) AS line_color_c,\n l.line_type,\n l.line_symbol1,\n l.line_symbol2,\n l.line_symbol3,\n l.line_symbol4,\n l.line_symbol1_color,\n l.line_symbol2_color,\n l.line_symbol3_color,\n l.line_symbol4_color,\n l.line_symbol1_shape,\n l.line_symbol2_shape,\n l.line_symbol3_shape,\n l.line_symbol4_shape,\n COALESCE(l.average_distance, 0.0)::DOUBLE PRECISION AS average_distance,\n COALESCE(from_sst.line_group_cd, NULL)::int AS line_group_cd, -- has_train_types用\n NULL::int AS type_id,\n NULL::int AS sst_id,\n NULL::int AS type_cd,\n NULL::int AS pass,\n NULL::text AS type_name,\n NULL::text AS type_name_k,\n NULL::text AS type_name_r,\n NULL::text AS type_name_zh,\n NULL::text AS type_name_ko,\n NULL::text AS color,\n NULL::int AS direction,\n NULL::int AS kind,\n s.transport_type\n FROM stations AS s\n LEFT JOIN from_stations AS fs\n ON fs.station_cd IS NOT NULL\n LEFT JOIN station_station_types AS from_sst\n ON from_sst.station_cd = fs.station_cd\n LEFT JOIN station_station_types AS dst_sst\n ON dst_sst.station_cd = s.station_cd\n LEFT JOIN types AS t\n ON t.type_cd = dst_sst.type_cd\n LEFT JOIN line_aliases AS la\n ON la.station_cd = s.station_cd\n LEFT JOIN aliases AS a\n ON la.alias_cd = a.id\n JOIN lines AS l\n ON l.line_cd = s.line_cd\n AND l.e_status = 0\n WHERE\n (\n s.station_name LIKE $2\n OR s.station_name_rn LIKE $3\n OR s.station_name_k LIKE $4\n OR s.station_name_zh LIKE $5\n OR s.station_name_ko LIKE $6\n )\n AND s.e_status = 0\n AND ($8::int IS NULL OR COALESCE(s.transport_type, 0) = $8)\n AND (\n (\n from_sst.id IS NOT NULL\n AND dst_sst.id IS NOT NULL\n AND from_sst.line_group_cd = dst_sst.line_group_cd\n AND dst_sst.pass <> 1\n )\n OR\n (\n (from_sst.id IS NULL OR dst_sst.id IS NULL)\n AND s.line_cd = COALESCE(fs.line_cd, s.line_cd)\n )\n )\n ORDER BY s.station_cd, s.station_g_cd, s.station_name\n )\n SELECT *\n FROM filtered\n ORDER BY station_g_cd, station_name\n LIMIT $7", + "query": "WITH from_stations AS (\n SELECT\n s.station_cd,\n s.line_cd\n FROM stations AS s\n WHERE s.station_g_cd = $1\n AND s.e_status = 0\n ),\n filtered AS (\n SELECT DISTINCT ON (s.station_cd)\n s.station_cd,\n s.station_g_cd,\n s.station_name,\n s.station_name_k,\n s.station_name_r,\n s.station_name_rn,\n s.station_name_zh,\n s.station_name_ko,\n s.station_number1,\n s.station_number2,\n s.station_number3,\n s.station_number4,\n s.three_letter_code,\n s.line_cd,\n s.pref_cd,\n s.post,\n s.address,\n s.lon,\n s.lat,\n s.open_ymd,\n s.close_ymd,\n s.e_status,\n s.e_sort,\n l.company_cd,\n COALESCE(NULLIF(COALESCE(a.line_name, l.line_name), ''), NULL) AS line_name,\n COALESCE(NULLIF(COALESCE(a.line_name_k, l.line_name_k), ''), NULL) AS line_name_k,\n COALESCE(NULLIF(COALESCE(a.line_name_h, l.line_name_h), ''), NULL) AS line_name_h,\n COALESCE(NULLIF(COALESCE(a.line_name_r, l.line_name_r), ''), NULL) AS line_name_r,\n COALESCE(NULLIF(COALESCE(a.line_name_zh, l.line_name_zh), ''), NULL) AS line_name_zh,\n COALESCE(NULLIF(COALESCE(a.line_name_ko, l.line_name_ko), ''), NULL) AS line_name_ko,\n COALESCE(NULLIF(COALESCE(a.line_color_c, l.line_color_c), ''), NULL) AS line_color_c,\n l.line_type,\n l.line_symbol1,\n l.line_symbol2,\n l.line_symbol3,\n l.line_symbol4,\n l.line_symbol1_color,\n l.line_symbol2_color,\n l.line_symbol3_color,\n l.line_symbol4_color,\n l.line_symbol1_shape,\n l.line_symbol2_shape,\n l.line_symbol3_shape,\n l.line_symbol4_shape,\n COALESCE(l.average_distance, 0.0)::DOUBLE PRECISION AS average_distance,\n COALESCE(from_sst.line_group_cd, NULL)::int AS line_group_cd, -- has_train_types用\n NULL::int AS type_id,\n NULL::int AS sst_id,\n NULL::int AS type_cd,\n NULL::int AS pass,\n NULL::text AS type_name,\n NULL::text AS type_name_k,\n NULL::text AS type_name_r,\n NULL::text AS type_name_zh,\n NULL::text AS type_name_ko,\n NULL::text AS color,\n NULL::int AS direction,\n NULL::int AS kind,\n s.transport_type\n FROM stations AS s\n LEFT JOIN from_stations AS fs\n ON fs.station_cd IS NOT NULL\n LEFT JOIN station_station_types AS from_sst\n ON from_sst.station_cd = fs.station_cd\n LEFT JOIN station_station_types AS dst_sst\n ON dst_sst.station_cd = s.station_cd\n LEFT JOIN types AS t\n ON t.type_cd = dst_sst.type_cd\n LEFT JOIN line_aliases AS la\n ON la.station_cd = s.station_cd\n LEFT JOIN aliases AS a\n ON la.alias_cd = a.id\n JOIN lines AS l\n ON l.line_cd = s.line_cd\n AND l.e_status = 0\n WHERE\n (\n s.station_name LIKE $2\n OR s.station_name_rn ILIKE $3\n OR s.station_name_k LIKE $4\n OR s.station_name_zh LIKE $5\n OR s.station_name_ko LIKE $6\n )\n AND s.e_status = 0\n AND ($8::int IS NULL OR COALESCE(s.transport_type, 0) = $8)\n AND (\n (\n from_sst.id IS NOT NULL\n AND dst_sst.id IS NOT NULL\n AND from_sst.line_group_cd = dst_sst.line_group_cd\n AND dst_sst.pass <> 1\n )\n OR\n (\n (from_sst.id IS NULL OR dst_sst.id IS NULL)\n AND s.line_cd = COALESCE(fs.line_cd, s.line_cd)\n )\n )\n ORDER BY s.station_cd, s.station_g_cd, s.station_name\n )\n SELECT *\n FROM filtered\n ORDER BY station_g_cd, station_name\n LIMIT $7", "describe": { "columns": [ { @@ -373,5 +373,5 @@ false ] }, - "hash": "16b301ca5df4be89b803987fd71cc41b55e885ccd4bd3ca4bcae1f7336742d3f" + "hash": "5f4de4e07d61f2163cda87863b73fef621d587a5056b9f8f4bf96fcd77ae1017" } diff --git a/stationapi/src/infrastructure/station_repository.rs b/stationapi/src/infrastructure/station_repository.rs index d1615b68..764e7922 100644 --- a/stationapi/src/infrastructure/station_repository.rs +++ b/stationapi/src/infrastructure/station_repository.rs @@ -1223,7 +1223,7 @@ impl InternalStationRepository { WHERE ( s.station_name LIKE $2 - OR s.station_name_rn LIKE $3 + OR s.station_name_rn ILIKE $3 OR s.station_name_k LIKE $4 OR s.station_name_zh LIKE $5 OR s.station_name_ko LIKE $6 From 4de328944850a4f34a88eee63e9fa30a8156b44b Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Fri, 6 Mar 2026 22:05:35 +0900 Subject: [PATCH 14/16] =?UTF-8?q?fix:=20IPA=E7=94=9F=E6=88=90=E3=81=A7?= =?UTF-8?q?=E3=82=A8=E6=AE=B5=E3=81=AE=E6=AF=8D=E9=9F=B3=E3=82=92=C9=9B?= =?UTF-8?q?=E3=81=8B=E3=82=89e=E3=81=AB=E5=A4=89=E6=9B=B4=E3=81=97Google?= =?UTF-8?q?=20TTS=E3=81=AE=E7=99=BA=E9=9F=B3=E3=82=92=E4=BF=AE=E6=AD=A3=20?= =?UTF-8?q?(#1418)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stationapi/src/domain/ipa.rs | 111 ++++++++++++++++++---------- stationapi/src/use_case/dto/line.rs | 4 +- 2 files changed, 76 insertions(+), 39 deletions(-) diff --git a/stationapi/src/domain/ipa.rs b/stationapi/src/domain/ipa.rs index fa65402c..d0c09934 100644 --- a/stationapi/src/domain/ipa.rs +++ b/stationapi/src/domain/ipa.rs @@ -120,43 +120,43 @@ fn lookup_single(c: char) -> Option { 'ア' | 'ァ' => return Some(Phoneme::Regular("a")), 'イ' | 'ィ' => return Some(Phoneme::Regular("i")), 'ウ' | 'ゥ' => return Some(Phoneme::Regular("ɯ")), - 'エ' | 'ェ' => return Some(Phoneme::Regular("ɛ")), + 'エ' | 'ェ' => return Some(Phoneme::Regular("e")), 'オ' | 'ォ' => return Some(Phoneme::Regular("o")), // カ行 'カ' => "ka", 'キ' => "kʲi", 'ク' => "kɯ", - 'ケ' => "kɛ", + 'ケ' => "ke", 'コ' => "ko", // サ行 'サ' => "sa", 'シ' => "ɕi", 'ス' => "sɯ", - 'セ' => "sɛ", + 'セ' => "se", 'ソ' => "so", // タ行 'タ' => "ta", 'チ' => "t͡ɕi", 'ツ' => "t͡sɯ", - 'テ' => "tɛ", + 'テ' => "te", 'ト' => "to", // ナ行 'ナ' => "na", 'ニ' => "ɲi", 'ヌ' => "nɯ", - 'ネ' => "nɛ", + 'ネ' => "ne", 'ノ' => "no", // ハ行 'ハ' => "ha", 'ヒ' => "çi", 'フ' => "ɸɯ", - 'ヘ' => "hɛ", + 'ヘ' => "he", 'ホ' => "ho", // マ行 'マ' => "ma", 'ミ' => "mi", 'ム' => "mɯ", - 'メ' => "mɛ", + 'メ' => "me", 'モ' => "mo", // ヤ行 'ヤ' | 'ャ' => "ja", @@ -166,42 +166,42 @@ fn lookup_single(c: char) -> Option { 'ラ' => "ɾa", 'リ' => "ɾi", 'ル' => "ɾɯ", - 'レ' => "ɾɛ", + 'レ' => "ɾe", 'ロ' => "ɾo", // ワ行 'ワ' => "wa", 'ヰ' => "i", - 'ヱ' => "ɛ", + 'ヱ' => "e", 'ヲ' => "o", // ガ行 'ガ' => "ga", 'ギ' => "gi", 'グ' => "gɯ", - 'ゲ' => "gɛ", + 'ゲ' => "ge", 'ゴ' => "go", // ザ行 'ザ' => "za", 'ジ' => "ʤi", 'ズ' => "zɯ", - 'ゼ' => "zɛ", + 'ゼ' => "ze", 'ゾ' => "zo", // ダ行 'ダ' => "da", 'ヂ' => "dʑi", 'ヅ' => "dzɯ", - 'デ' => "dɛ", + 'デ' => "de", 'ド' => "do", // バ行 'バ' => "ba", 'ビ' => "bi", 'ブ' => "bɯ", - 'ベ' => "bɛ", + 'ベ' => "be", 'ボ' => "bo", // パ行 'パ' => "pa", 'ピ' => "pi", 'プ' => "pɯ", - 'ペ' => "pɛ", + 'ペ' => "pe", 'ポ' => "po", // 特殊 'ン' => return Some(Phoneme::MoraicNasal), @@ -229,7 +229,7 @@ fn split_onset(ipa: &str) -> (&str, &str) { // Find where the first vowel-like character starts let vowel_start = ipa .char_indices() - .find(|(_, c)| "aiɯɛeouəɐ".contains(*c)) + .find(|(_, c)| "aiɯeouəɐ".contains(*c)) .map(|(i, _)| i) .unwrap_or(ipa.len()); ipa.split_at(vowel_start) @@ -248,7 +248,7 @@ fn last_vowel(ipa: &str) -> Option<&'static str> { 'a' => return Some("a"), 'i' => return Some("i"), 'ɯ' => return Some("ɯ"), - 'ɛ' => return Some("ɛ"), + 'e' => return Some("e"), 'o' => return Some("o"), 'u' => return Some("u"), _ => continue, @@ -370,6 +370,10 @@ fn apply_vowel_length(input: &str) -> String { result.push('o'); result.push('ː'); i += 2; + // Skip a following long-vowel mark to avoid duplicate 'ː' + if i < len && (chars[i] == 'ː' || chars[i] == 'ー') { + i += 1; + } continue; } if i + 1 < len && chars[i] == 'o' && chars[i + 1] == 'o' { @@ -377,6 +381,21 @@ fn apply_vowel_length(input: &str) -> String { result.push('o'); result.push('ː'); i += 2; + // Skip a following long-vowel mark to avoid duplicate 'ː' + if i < len && (chars[i] == 'ː' || chars[i] == 'ー') { + i += 1; + } + continue; + } + if i + 1 < len && chars[i] == 'e' && chars[i + 1] == 'i' { + // ei → eː (えい/けい pattern — 京成 keisei → keːseː) + result.push('e'); + result.push('ː'); + i += 2; + // Skip a following long-vowel mark to avoid duplicate 'ː' + if i < len && (chars[i] == 'ː' || chars[i] == 'ー') { + i += 1; + } continue; } result.push(chars[i]); @@ -409,12 +428,12 @@ mod tests { #[test] fn test_ueno() { - assert_eq!(ipa("ウエノ"), "ɯɛno"); + assert_eq!(ipa("ウエノ"), "ɯeno"); } #[test] fn test_ikebukuro() { - assert_eq!(ipa("イケブクロ"), "ikɛbɯkɯɾo"); + assert_eq!(ipa("イケブクロ"), "ikebɯkɯɾo"); } #[test] @@ -469,54 +488,72 @@ mod tests { #[test] fn test_keisei() { - assert_eq!(ipa("ケイセイ"), "kɛisɛi"); + assert_eq!(ipa("ケイセイ"), "keːseː"); } #[test] fn test_oshiage() { - assert_eq!(ipa("オシアゲ"), "oɕiagɛ"); + assert_eq!(ipa("オシアゲ"), "oɕiage"); } #[test] fn test_meitetsu() { // ツ is consistently t͡sɯ (affricate with tie bar) - assert_eq!(ipa("メイテツ"), "mɛitɛt͡sɯ"); + assert_eq!(ipa("メイテツ"), "meːtet͡sɯ"); } #[test] fn test_seibu() { - assert_eq!(ipa("セイブ"), "sɛibɯ"); + assert_eq!(ipa("セイブ"), "seːbɯ"); + } + + #[test] + fn test_ei_long_vowel_no_duplicate() { + // セイー should not produce "seːː" + assert_eq!(ipa("セイー"), "seː"); + } + + #[test] + fn test_ou_long_vowel_no_duplicate() { + // コウー should not produce "koːː" + assert_eq!(ipa("コウー"), "koː"); + } + + #[test] + fn test_oo_long_vowel_no_duplicate() { + // オオー should not produce "oːː" + assert_eq!(ipa("オオー"), "oː"); } #[test] fn test_toride() { - assert_eq!(ipa("トリデ"), "toɾidɛ"); + assert_eq!(ipa("トリデ"), "toɾide"); } #[test] fn test_fukiage() { - assert_eq!(ipa("フキアゲ"), "ɸɯkʲiagɛ"); + assert_eq!(ipa("フキアゲ"), "ɸɯkʲiage"); } #[test] fn test_fuse() { - assert_eq!(ipa("フセ"), "ɸɯsɛ"); + assert_eq!(ipa("フセ"), "ɸɯse"); } #[test] fn test_inagekaigan() { // ン at word end → ɴ - assert_eq!(ipa("イナゲカイガン"), "inagɛkaigaɴ"); + assert_eq!(ipa("イナゲカイガン"), "inagekaigaɴ"); } #[test] fn test_inage() { - assert_eq!(ipa("イナゲ"), "inagɛ"); + assert_eq!(ipa("イナゲ"), "inage"); } #[test] fn test_kire_uriwari() { - assert_eq!(ipa("キレウリワリ"), "kʲiɾɛɯɾiwaɾi"); + assert_eq!(ipa("キレウリワリ"), "kʲiɾeɯɾiwaɾi"); } #[test] @@ -526,41 +563,41 @@ mod tests { #[test] fn test_mejiro() { - assert_eq!(ipa("メジロ"), "mɛʤiɾo"); + assert_eq!(ipa("メジロ"), "meʤiɾo"); } #[test] fn test_isesaki() { - assert_eq!(ipa("イセサキ"), "isɛsakʲi"); + assert_eq!(ipa("イセサキ"), "isesakʲi"); } #[test] fn test_ube() { - assert_eq!(ipa("ウベ"), "ɯbɛ"); + assert_eq!(ipa("ウベ"), "ɯbe"); } #[test] fn test_itchome() { // ッチョウ → tt͡ɕoː - assert_eq!(ipa("イッチョウメ"), "itt͡ɕoːmɛ"); + assert_eq!(ipa("イッチョウメ"), "itt͡ɕoːme"); } #[test] fn test_sanchome() { - assert_eq!(ipa("サンチョウメ"), "sant͡ɕoːmɛ"); + assert_eq!(ipa("サンチョウメ"), "sant͡ɕoːme"); } #[test] fn test_koen() { // コウエン: コ=ko, ウ→長音化でoː, エン=eɴ → koːeɴ // Note: the original hardcoded value was "koeɴ" but phonologically "koːeɴ" is correct - assert_eq!(ipa("コウエン"), "koːɛɴ"); + assert_eq!(ipa("コウエン"), "koːeɴ"); } #[test] fn test_long_vowel_mark() { // ー explicitly lengthens - assert_eq!(ipa("ラーメン"), "ɾaːmɛɴ"); + assert_eq!(ipa("ラーメン"), "ɾaːmeɴ"); } #[test] @@ -626,7 +663,7 @@ mod tests { // Full-width space between words should be preserved assert_eq!( ipa("ドッキョウダイガクマエ ソウカマツバラ"), - "dokkʲoːdaigakɯmaɛ soːkamat͡sɯbaɾa" + "dokkʲoːdaigakɯmae soːkamat͡sɯbaɾa" ); } @@ -635,7 +672,7 @@ mod tests { // Half-width (ASCII) space between words should also be accepted assert_eq!( ipa("ドッキョウダイガクマエ ソウカマツバラ"), - "dokkʲoːdaigakɯmaɛ soːkamat͡sɯbaɾa" + "dokkʲoːdaigakɯmae soːkamat͡sɯbaɾa" ); } diff --git a/stationapi/src/use_case/dto/line.rs b/stationapi/src/use_case/dto/line.rs index cf090db3..6bc0f996 100644 --- a/stationapi/src/use_case/dto/line.rs +++ b/stationapi/src/use_case/dto/line.rs @@ -384,7 +384,7 @@ mod tests { line.line_name_k = "セイブイケブクロセン".to_string(); let grpc_line: GrpcLine = line.into(); - assert_eq!(grpc_line.name_ipa, Some("sɛibɯikɛbɯkɯɾo laɪn".to_string())); + assert_eq!(grpc_line.name_ipa, Some("seːbɯikebɯkɯɾo laɪn".to_string())); } #[test] @@ -404,6 +404,6 @@ mod tests { line.line_name_k = "トウホクシンカンセン".to_string(); let grpc_line: GrpcLine = line.into(); - assert_eq!(grpc_line.name_ipa, Some("toːhokɯɕiŋkansɛɴ".to_string())); + assert_eq!(grpc_line.name_ipa, Some("toːhokɯɕiŋkanseɴ".to_string())); } } From fb3827e803f7f41bfb1f6a8434607fe9dd269c19 Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Sat, 7 Mar 2026 11:49:00 +0900 Subject: [PATCH 15/16] =?UTF-8?q?fix:=20IPA=E6=AF=8D=E9=9F=B3=E9=95=B7?= =?UTF-8?q?=E9=9F=B3=E5=8C=96=E3=83=AB=E3=83=BC=E3=83=AB=E3=82=92=E5=89=8A?= =?UTF-8?q?=E9=99=A4=E3=81=97Google=20TTS=E3=81=AE=E8=AA=A4=E8=AA=AD?= =?UTF-8?q?=E3=82=92=E4=BF=AE=E6=AD=A3=20(#1419)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: IPA母音長音化ルールを削除しGoogle TTSの誤読を修正 apply_vowel_length関数(ei→eː, oɯ→oː, oo→oː)を削除。 Google TTSがeːを英語の/eɪ/と解釈し「名鉄」が「まいてつ」と 発音される問題を修正。カタカナの音素をそのまま出力するようにした。 Co-Authored-By: Claude Opus 4.6 * fix: fmtの余分な空行とLine DTOテストの期待値を修正 Co-Authored-By: Claude Opus 4.6 * fix: 連続母音間にIPA音節区切りを挿入しGoogle TTSの二重母音誤読を防止 Google TTSが連続母音(ei, ou等)を英語の二重母音として解釈し 「西武」が「サイブ」と発音される問題を修正。 insert_syllable_breaks関数で母音間に「.」を挿入し、 各母音が独立した音節であることをTTSに伝える。 Co-Authored-By: Claude Opus 4.6 * test: 実在しない駅名・路線名のテストケースを削除 セイー、コウー、オオー、ラーメン、カッジ、カッジュ、ニッキョウ など架空の組み合わせのテストを削除。 ニッキョウのパターンはドッキョウダイガクマエのテストでカバー済み。 Co-Authored-By: Claude Opus 4.6 --------- Co-authored-by: Claude Opus 4.6 --- stationapi/src/domain/ipa.rs | 156 +++++++--------------------- stationapi/src/use_case/dto/line.rs | 12 ++- 2 files changed, 47 insertions(+), 121 deletions(-) diff --git a/stationapi/src/domain/ipa.rs b/stationapi/src/domain/ipa.rs index d0c09934..32abd4b9 100644 --- a/stationapi/src/domain/ipa.rs +++ b/stationapi/src/domain/ipa.rs @@ -344,67 +344,36 @@ fn apply_phonological_rules(phonemes: &[Phoneme]) -> String { } } - // Apply long vowel contractions: オウ → oː pattern - apply_vowel_length(&output) + insert_syllable_breaks(&output) } -/// Find the IPA string of the next Regular phoneme in the slice. -fn find_next_regular(phonemes: &[Phoneme]) -> Option<&'static str> { - phonemes.iter().find_map(|p| match p { - Phoneme::Regular(ipa) => Some(*ipa), - _ => None, - }) -} - -/// Apply vowel length rules for common Japanese patterns. -/// オウ → oː (after consonant+o), ョウ/ョオ patterns are handled by digraph + this. -fn apply_vowel_length(input: &str) -> String { +/// Insert IPA syllable boundary markers (`.`) between consecutive vowels. +/// This prevents Google TTS from interpreting cross-mora vowel sequences +/// (e.g. `ei` in セイ) as English diphthongs (e.g. /eɪ/ → "ai"). +fn insert_syllable_breaks(input: &str) -> String { let mut result = String::with_capacity(input.len()); - let chars: Vec = input.chars().collect(); - let len = chars.len(); - let mut i = 0; + let mut prev_is_vowel = false; - while i < len { - if i + 1 < len && chars[i] == 'o' && chars[i + 1] == 'ɯ' { - // oɯ → oː (おう/こう pattern) - result.push('o'); - result.push('ː'); - i += 2; - // Skip a following long-vowel mark to avoid duplicate 'ː' - if i < len && (chars[i] == 'ː' || chars[i] == 'ー') { - i += 1; - } - continue; - } - if i + 1 < len && chars[i] == 'o' && chars[i + 1] == 'o' { - // oo → oː (おお pattern) - result.push('o'); - result.push('ː'); - i += 2; - // Skip a following long-vowel mark to avoid duplicate 'ː' - if i < len && (chars[i] == 'ː' || chars[i] == 'ー') { - i += 1; - } - continue; - } - if i + 1 < len && chars[i] == 'e' && chars[i + 1] == 'i' { - // ei → eː (えい/けい pattern — 京成 keisei → keːseː) - result.push('e'); - result.push('ː'); - i += 2; - // Skip a following long-vowel mark to avoid duplicate 'ː' - if i < len && (chars[i] == 'ː' || chars[i] == 'ー') { - i += 1; - } - continue; + for c in input.chars() { + let is_vowel = "aiɯeou".contains(c); + if is_vowel && prev_is_vowel { + result.push('.'); } - result.push(chars[i]); - i += 1; + result.push(c); + prev_is_vowel = is_vowel; } result } +/// Find the IPA string of the next Regular phoneme in the slice. +fn find_next_regular(phonemes: &[Phoneme]) -> Option<&'static str> { + phonemes.iter().find_map(|p| match p { + Phoneme::Regular(ipa) => Some(*ipa), + _ => None, + }) +} + #[cfg(test)] mod tests { use super::*; @@ -428,7 +397,7 @@ mod tests { #[test] fn test_ueno() { - assert_eq!(ipa("ウエノ"), "ɯeno"); + assert_eq!(ipa("ウエノ"), "ɯ.eno"); } #[test] @@ -444,14 +413,12 @@ mod tests { #[test] fn test_osaka() { - // オオ → oː - assert_eq!(ipa("オオサカ"), "oːsaka"); + assert_eq!(ipa("オオサカ"), "o.osaka"); } #[test] fn test_kyoto() { - // キョウ → kʲoː (via kʲo + ウ → oɯ → oː) - assert_eq!(ipa("キョウト"), "kʲoːto"); + assert_eq!(ipa("キョウト"), "kʲo.ɯto"); } #[test] @@ -476,8 +443,7 @@ mod tests { #[test] fn test_ryogoku() { - // リョウ → ɾʲoː (via ɾʲo + ウ → oɯ → oː) - assert_eq!(ipa("リョウゴク"), "ɾʲoːgokɯ"); + assert_eq!(ipa("リョウゴク"), "ɾʲo.ɯgokɯ"); } #[test] @@ -488,41 +454,23 @@ mod tests { #[test] fn test_keisei() { - assert_eq!(ipa("ケイセイ"), "keːseː"); + assert_eq!(ipa("ケイセイ"), "ke.ise.i"); } #[test] fn test_oshiage() { - assert_eq!(ipa("オシアゲ"), "oɕiage"); + assert_eq!(ipa("オシアゲ"), "oɕi.age"); } #[test] fn test_meitetsu() { // ツ is consistently t͡sɯ (affricate with tie bar) - assert_eq!(ipa("メイテツ"), "meːtet͡sɯ"); + assert_eq!(ipa("メイテツ"), "me.itet͡sɯ"); } #[test] fn test_seibu() { - assert_eq!(ipa("セイブ"), "seːbɯ"); - } - - #[test] - fn test_ei_long_vowel_no_duplicate() { - // セイー should not produce "seːː" - assert_eq!(ipa("セイー"), "seː"); - } - - #[test] - fn test_ou_long_vowel_no_duplicate() { - // コウー should not produce "koːː" - assert_eq!(ipa("コウー"), "koː"); - } - - #[test] - fn test_oo_long_vowel_no_duplicate() { - // オオー should not produce "oːː" - assert_eq!(ipa("オオー"), "oː"); + assert_eq!(ipa("セイブ"), "se.ibɯ"); } #[test] @@ -532,7 +480,7 @@ mod tests { #[test] fn test_fukiage() { - assert_eq!(ipa("フキアゲ"), "ɸɯkʲiage"); + assert_eq!(ipa("フキアゲ"), "ɸɯkʲi.age"); } #[test] @@ -543,7 +491,7 @@ mod tests { #[test] fn test_inagekaigan() { // ン at word end → ɴ - assert_eq!(ipa("イナゲカイガン"), "inagekaigaɴ"); + assert_eq!(ipa("イナゲカイガン"), "inageka.igaɴ"); } #[test] @@ -553,12 +501,12 @@ mod tests { #[test] fn test_kire_uriwari() { - assert_eq!(ipa("キレウリワリ"), "kʲiɾeɯɾiwaɾi"); + assert_eq!(ipa("キレウリワリ"), "kʲiɾe.ɯɾiwaɾi"); } #[test] fn test_yao() { - assert_eq!(ipa("ヤオ"), "jao"); + assert_eq!(ipa("ヤオ"), "ja.o"); } #[test] @@ -578,32 +526,22 @@ mod tests { #[test] fn test_itchome() { - // ッチョウ → tt͡ɕoː - assert_eq!(ipa("イッチョウメ"), "itt͡ɕoːme"); + assert_eq!(ipa("イッチョウメ"), "itt͡ɕo.ɯme"); } #[test] fn test_sanchome() { - assert_eq!(ipa("サンチョウメ"), "sant͡ɕoːme"); + assert_eq!(ipa("サンチョウメ"), "sant͡ɕo.ɯme"); } #[test] fn test_koen() { - // コウエン: コ=ko, ウ→長音化でoː, エン=eɴ → koːeɴ - // Note: the original hardcoded value was "koeɴ" but phonologically "koːeɴ" is correct - assert_eq!(ipa("コウエン"), "koːeɴ"); - } - - #[test] - fn test_long_vowel_mark() { - // ー explicitly lengthens - assert_eq!(ipa("ラーメン"), "ɾaːmeɴ"); + assert_eq!(ipa("コウエン"), "ko.ɯ.eɴ"); } #[test] fn test_tokyo() { - // トウキョウ: ト=to, ウ→oː, キョ=kʲo, ウ→oː - assert_eq!(ipa("トウキョウ"), "toːkʲoː"); + assert_eq!(ipa("トウキョウ"), "to.ɯkʲo.ɯ"); } #[test] @@ -629,18 +567,6 @@ mod tests { assert_eq!(ipa("シンヨコハマ"), "ɕiɲjokohama"); } - #[test] - fn test_geminate_ji() { - // ッジ → dʤi (voiced affricate gemination emits 'd') - assert_eq!(ipa("カッジ"), "kadʤi"); - } - - #[test] - fn test_geminate_ju() { - // ッジュ → ddʑɯ (voiced affricate gemination with digraph) - assert_eq!(ipa("カッジュ"), "kaddʑɯ"); - } - #[test] fn test_empty() { assert_eq!(katakana_to_ipa(""), Some(String::new())); @@ -652,18 +578,12 @@ mod tests { assert_eq!(katakana_to_ipa("シブヤX"), None); } - #[test] - fn test_geminate_palatalized() { - // ッキョ → kkʲo (only the base consonant 'k' is geminated, not 'kʲ') - assert_eq!(ipa("ニッキョウ"), "ɲikkʲoː"); - } - #[test] fn test_dokkyo_daigakumae_soka_matsubara() { // Full-width space between words should be preserved assert_eq!( ipa("ドッキョウダイガクマエ ソウカマツバラ"), - "dokkʲoːdaigakɯmae soːkamat͡sɯbaɾa" + "dokkʲo.ɯda.igakɯma.e so.ɯkamat͡sɯbaɾa" ); } @@ -672,7 +592,7 @@ mod tests { // Half-width (ASCII) space between words should also be accepted assert_eq!( ipa("ドッキョウダイガクマエ ソウカマツバラ"), - "dokkʲoːdaigakɯmae soːkamat͡sɯbaɾa" + "dokkʲo.ɯda.igakɯma.e so.ɯkamat͡sɯbaɾa" ); } diff --git a/stationapi/src/use_case/dto/line.rs b/stationapi/src/use_case/dto/line.rs index 6bc0f996..967f4b1f 100644 --- a/stationapi/src/use_case/dto/line.rs +++ b/stationapi/src/use_case/dto/line.rs @@ -384,7 +384,10 @@ mod tests { line.line_name_k = "セイブイケブクロセン".to_string(); let grpc_line: GrpcLine = line.into(); - assert_eq!(grpc_line.name_ipa, Some("seːbɯikebɯkɯɾo laɪn".to_string())); + assert_eq!( + grpc_line.name_ipa, + Some("se.ibɯ.ikebɯkɯɾo laɪn".to_string()) + ); } #[test] @@ -394,7 +397,10 @@ mod tests { line.line_name_k = "トウカイドウホンセン".to_string(); let grpc_line: GrpcLine = line.into(); - assert_eq!(grpc_line.name_ipa, Some("toːkaidoː meɪn laɪn".to_string())); + assert_eq!( + grpc_line.name_ipa, + Some("to.ɯka.ido.ɯ meɪn laɪn".to_string()) + ); } #[test] @@ -404,6 +410,6 @@ mod tests { line.line_name_k = "トウホクシンカンセン".to_string(); let grpc_line: GrpcLine = line.into(); - assert_eq!(grpc_line.name_ipa, Some("toːhokɯɕiŋkanseɴ".to_string())); + assert_eq!(grpc_line.name_ipa, Some("to.ɯhokɯɕiŋkanseɴ".to_string())); } } From 8efa9db40fce9bad0754c69b825f005e8526df9f Mon Sep 17 00:00:00 2001 From: Tsubasa SEKIGUCHI Date: Tue, 10 Mar 2026 19:27:35 +0900 Subject: [PATCH 16/16] =?UTF-8?q?=E5=90=8D=E9=89=84=E7=B7=9A=E8=8B=B1?= =?UTF-8?q?=E8=AA=9E=E9=A7=85=E5=90=8D=E4=BF=AE=E6=AD=A3=20(#1420)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix Meitetsu Nagoya Main Line station names * Fix Meitetsu Toyokawa Line station names * Fix Meitetsu Nishio and Gamagori station names * Fix Meitetsu Mikawa Line station names * Fix Meitetsu Toyota Line station names * Fix Meitetsu Tokoname and Airport station names * Fix Meitetsu Chikko Line station names * Fix Meitetsu Kowa and Chitashin station names * Fix Meitetsu Tsushima and Bisai station names * Fix Meitetsu Takehana and Hashima station names * Fix Meitetsu Inuyama Line station names * Fix Meitetsu Hiromi Line station names * Fix Meitetsu Komaki Line station names * Fix Meitetsu Kakamigahara Line station names * Fix Meitetsu Seto Line station names * Fix Meitetsu line English names * Fix Meitetsu line English names --- data/2!lines.csv | 40 +-- data/3!stations.csv | 614 ++++++++++++++++++++++---------------------- 2 files changed, 327 insertions(+), 327 deletions(-) diff --git a/data/2!lines.csv b/data/2!lines.csv index 420fdd82..c4a20a59 100644 --- a/data/2!lines.csv +++ b/data/2!lines.csv @@ -298,27 +298,27 @@ line_cd,company_cd,line_name,line_name_k,line_name_h,line_name_r,line_name_rn,li 29002,19,相鉄いずみ野線,ソウテツイズミノセン,相鉄いずみ野線,Sotetsu Izumino Line,Sotetsu Izumino Line,相铁泉野线,소테쓰 이즈미노선,#000080,2,SO,,,,#0967B4,,,,REVERSED_SQUARE,,,,0,29002,1457.079 29003,19,相鉄・JR直通線,ソウテツ・ジェイアールチョクツウセン,相鉄・JR直通線,Sotetsu-JR Link Line,Sotetsu-JR Link Line,相铁·JR直通线,소테츠·JR직통선,#000080,2,SO,JS,JA,,#0967B4,#E31F26,#00B48D,,REVERSED_SQUARE,SQUARE,SQUARE,,0,29003,2844.978049 29004,19,相鉄新横浜線,ソウテツシンヨコハマセン,相鉄新横浜線,Sotetsu Shin-yokohama Line,Sotetsu Shin-yokohama Line,相铁新横滨线,소테츠 신요코하마선,#000080,2,SO,,,,#0967B4,,,,REVERSED_SQUARE,,,,0,29004,3039.779394 -30001,20,名鉄名古屋本線,メイテツナゴヤホンセン,名鉄名古屋本線,Meitetsu Nagoya Main Line,Meitetsu Nagoya Main Line,名古屋本线,나고야 본선,#D12027,2,NH,,,,#D12027,,,,HALF_SQUARE,,,,0,30001,1655.795356 -30002,20,名鉄豊川線,メイテツトヨカワセン,名鉄豊川線,Meitetsu Toyokawa Line,Meitetsu Toyokawa Line,丰川线,도요카와 선,#D12027,2,TK,NH,,,#D12027,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30002,1674.838845 -30003,20,名鉄西尾線,メイテツニシオセン,名鉄西尾線,Meitetsu Nishio Line,Meitetsu Nishio Line,西尾线,니시오 선,#654E9E,2,GN,NH,,,#654E9E,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30003,1594.851264 -30004,20,名鉄蒲郡線,メイテツガマゴオリセン,名鉄蒲郡線,Meitetsu Gamagori Line,Meitetsu Gamagori Line,蒲郡线,가마고리 선,#654E9E,2,GN,NH,,,#654E9E,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30004,1851.878486 -30005,20,名鉄三河線,メイテツミカワセン,名鉄三河線,Meitetsu Mikawa Line,Meitetsu Mikawa Line,三河线,미카와 선,#9EB03A,2,MY,NH,MU,,#9EB03A,#D12027,#654E9E,,HALF_SQUARE,HALF_SQUARE,HALF_SQUARE,,0,30005,1712.967911 -30006,20,名鉄豊田線,メイテツトヨタセン,名鉄豊田線,Meitetsu Toyota Line,Meitetsu Toyota Line,丰田线,도요타 선,#9EB03A,2,TT,MY,,,#9EB03A,#9EB03A,,,HALF_SQUARE,HALF_SQUARE,,,0,30006,2033.956266 -30007,20,名鉄常滑・空港線,メイテツトコナメクウコウセン,名鉄空港線,Meitetsu Airport Line,Meitetsu Airport Line,机场线,쿠코 선,#1065AB,2,TA,NH,,,#1065AB,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30007,1963.626165 -30008,20,名鉄常滑線,メイテツトコナメセン,名鉄常滑線,Meitetsu Tokoname Line,Meitetsu Tokoname Line,常滑线,도코나메 선,#1065AB,2,TA,NH,,,#1065AB,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30008,1377.073011 -30009,20,名鉄河和線,メイテツコウワセン,名鉄河和線,Meitetsu Kowa Line,Meitetsu Kowa Line,河和线,고와 선,#2A9DD8,2,KC,TA,,,#2A9DD8,#1065AB,,,HALF_SQUARE,HALF_SQUARE,,,0,30009,1319.738301 -30010,20,名鉄知多新線,メイテツチタシンセン,名鉄知多新線,Meitetsu Chitashin Line,Meitetsu Chitashin Line,知多新线,지타 신선,#2A9DD8,2,KC,TA,,,#2A9DD8,#1065AB,,,HALF_SQUARE,HALF_SQUARE,,,0,30010,2506.025703 -30011,20,名鉄築港線,メイテツチッコウセン,名鉄築港線,Meitetsu Chikko Line,Meitetsu Chikko Line,筑港线,짓코 선,#727171,2,CH,TA,,,#727171,#1065AB,,,HALF_SQUARE,HALF_SQUARE,,,0,30011,1315.220896 -30012,20,名鉄瀬戸線,メイテツセトセン,名鉄瀬戸線,Meitetsu Seto Line,Meitetsu Seto Line,濑户线,세토 선,#990099,2,ST,,,,#7C2982,,,,HALF_SQUARE,,,,0,30012,1031.909304 -30013,20,名鉄津島線,メイテツツシマセン,名鉄津島線,Meitetsu Shima Line,Meitetsu Shima Line,津岛线,쓰시마 선,#E85624,2,TB,NH,,,#E85624,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30013,1644.416104 -30014,20,名鉄尾西線,メイテツビサイセン,名鉄尾西線,Meitetsu Bisai Line,Meitetsu Bisai Line,尾西线,비사이 선,#E85624,2,TB,BS,NH,,#E85624,#E85624,#D12027,,HALF_SQUARE,HALF_SQUARE,HALF_SQUARE,,0,30014,1357.492756 -30015,20,名鉄犬山線,メイテツイヌヤマセン,名鉄犬山線,Meitetsu Inuyama Line,Meitetsu Inuyama Line,犬山线,이누야마 선,#018B44,2,IY,NH,,,#018B44,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30015,1543.941187 -30016,20,名鉄各務原線,メイテツカカミガハラセン,名鉄各務原線,Meitetsu Kagamihara Line,Meitetsu Kagamihara Line,各务原线,가카미가하라 선,#018B44,2,KG,IY,,,#018B44,#018B44,,,HALF_SQUARE,HALF_SQUARE,,,0,30016,1017.291421 -30017,20,名鉄広見線,メイテツヒロミセン,名鉄広見線,Meitetsu Hiromi Line,Meitetsu Hiromi Line,广见线,히로미 선,#018B44,2,HM,IY,,,#018B44,#018B44,,,HALF_SQUARE,HALF_SQUARE,,,0,30017,1946.036918 -30018,20,名鉄小牧線,メイテツコマキセン,名鉄小牧線,Meitetsu Komaki Line,Meitetsu Komaki Line,小牧线,고마키 선,#DA5290,2,KM,IY,,,#DA5290,#018B44,,,HALF_SQUARE,HALF_SQUARE,,,0,30018,1555.024917 +30001,20,名鉄名古屋本線,メイテツナゴヤホンセン,名鉄名古屋本線,Nagoya Line,Nagoya Line,名古屋本线,나고야 본선,#D12027,2,NH,,,,#D12027,,,,HALF_SQUARE,,,,0,30001,1655.795356 +30002,20,名鉄豊川線,メイテツトヨカワセン,名鉄豊川線,Toyokawa Line,Toyokawa Line,丰川线,도요카와 선,#D12027,2,TK,NH,,,#D12027,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30002,1674.838845 +30003,20,名鉄西尾線,メイテツニシオセン,名鉄西尾線,Nishio Line,Nishio Line,西尾线,니시오 선,#654E9E,2,GN,NH,,,#654E9E,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30003,1594.851264 +30004,20,名鉄蒲郡線,メイテツガマゴオリセン,名鉄蒲郡線,Gamagori Line,Gamagori Line,蒲郡线,가마고리 선,#654E9E,2,GN,NH,,,#654E9E,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30004,1851.878486 +30005,20,名鉄三河線,メイテツミカワセン,名鉄三河線,Mikawa Line,Mikawa Line,三河线,미카와 선,#9EB03A,2,MY,NH,MU,,#9EB03A,#D12027,#654E9E,,HALF_SQUARE,HALF_SQUARE,HALF_SQUARE,,0,30005,1712.967911 +30006,20,名鉄豊田線,メイテツトヨタセン,名鉄豊田線,Toyota Line,Toyota Line,丰田线,도요타 선,#9EB03A,2,TT,MY,,,#9EB03A,#9EB03A,,,HALF_SQUARE,HALF_SQUARE,,,0,30006,2033.956266 +30007,20,名鉄常滑・空港線,メイテツトコナメクウコウセン,名鉄空港線,Airport Line,Airport Line,机场线,쿠코 선,#1065AB,2,TA,NH,,,#1065AB,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30007,1963.626165 +30008,20,名鉄常滑線,メイテツトコナメセン,名鉄常滑線,Tokoname Line,Tokoname Line,常滑线,도코나메 선,#1065AB,2,TA,NH,,,#1065AB,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30008,1377.073011 +30009,20,名鉄河和線,メイテツコウワセン,名鉄河和線,Kowa Line,Kowa Line,河和线,고와 선,#2A9DD8,2,KC,TA,,,#2A9DD8,#1065AB,,,HALF_SQUARE,HALF_SQUARE,,,0,30009,1319.738301 +30010,20,名鉄知多新線,メイテツチタシンセン,名鉄知多新線,Chita Line,Chita Line,知多新线,지타 신선,#2A9DD8,2,KC,TA,,,#2A9DD8,#1065AB,,,HALF_SQUARE,HALF_SQUARE,,,0,30010,2506.025703 +30011,20,名鉄築港線,メイテツチッコウセン,名鉄築港線,Chikko Line,Chikko Line,筑港线,짓코 선,#727171,2,CH,TA,,,#727171,#1065AB,,,HALF_SQUARE,HALF_SQUARE,,,0,30011,1315.220896 +30012,20,名鉄瀬戸線,メイテツセトセン,名鉄瀬戸線,Seto Line,Seto Line,濑户线,세토 선,#990099,2,ST,,,,#7C2982,,,,HALF_SQUARE,,,,0,30012,1031.909304 +30013,20,名鉄津島線,メイテツツシマセン,名鉄津島線,Tsushima Line,Tsushima Line,津岛线,쓰시마 선,#E85624,2,TB,NH,,,#E85624,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30013,1644.416104 +30014,20,名鉄尾西線,メイテツビサイセン,名鉄尾西線,Bisai Line,Bisai Line,尾西线,비사이 선,#E85624,2,TB,BS,NH,,#E85624,#E85624,#D12027,,HALF_SQUARE,HALF_SQUARE,HALF_SQUARE,,0,30014,1357.492756 +30015,20,名鉄犬山線,メイテツイヌヤマセン,名鉄犬山線,Inuyama Line,Inuyama Line,犬山线,이누야마 선,#018B44,2,IY,NH,,,#018B44,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30015,1543.941187 +30016,20,名鉄各務原線,メイテツカカミガハラセン,名鉄各務原線,Kakamigahara Line,Kakamigahara Line,各务原线,가카미가하라 선,#018B44,2,KG,IY,,,#018B44,#018B44,,,HALF_SQUARE,HALF_SQUARE,,,0,30016,1017.291421 +30017,20,名鉄広見線,メイテツヒロミセン,名鉄広見線,Hiromi Line,Hiromi Line,广见线,히로미 선,#018B44,2,HM,IY,,,#018B44,#018B44,,,HALF_SQUARE,HALF_SQUARE,,,0,30017,1946.036918 +30018,20,名鉄小牧線,メイテツコマキセン,名鉄小牧線,Komaki Line,Komaki Line,小牧线,고마키 선,#DA5290,2,KM,IY,,,#DA5290,#018B44,,,HALF_SQUARE,HALF_SQUARE,,,0,30018,1555.024917 30019,20,犬山モノレール,イヌヤマモノレール,名鉄モンキーパークモノレール線,Inuyama Monorail,Inuyama Monorail,,,#808080,5,,,,,,,,,,,,,2,30019,561.7888943 -30020,20,名鉄竹鼻線,メイテツタケハナセン,名鉄竹鼻線,Meitetsu Takehana Line,Meitetsu Takehana Line,竹鼻线,다케하나 선,#D7A629,2,TH,NH,,,#D7A629,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30020,1215.772894 -30021,20,名鉄羽島線,メイテツハシマセン,名鉄羽島線,Meitetsu Hashima Line,Meitetsu Hashima Line,羽岛线,하시마 선,#D7A629,2,TH,NH,,,#D7A629,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30021,1191.63985 +30020,20,名鉄竹鼻線,メイテツタケハナセン,名鉄竹鼻線,Takehana Line,Takehana Line,竹鼻线,다케하나 선,#D7A629,2,TH,NH,,,#D7A629,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30020,1215.772894 +30021,20,名鉄羽島線,メイテツハシマセン,名鉄羽島線,Hashima Line,Hashima Line,羽岛线,하시마 선,#D7A629,2,TH,NH,,,#D7A629,#D12027,,,HALF_SQUARE,HALF_SQUARE,,,0,30021,1191.63985 31001,21,近鉄難波線,キンテツナンバセン,近鉄難波線,Kintetsu Namba Line,Kintetsu Namba Line,,,#008000,2,A,,,,#D21644,,,,KINTETSU,,,,0,31001,1182.516682 31002,21,近鉄橿原線,キンテツカシハラセン,近鉄橿原線,Kintetsu Kashihara Line,Kintetsu Kashihara Line,,,#DEA83F,2,B,,,,#FAB202,,,,KINTETSU,,,,0,31002,1465.804214 31003,21,近鉄南大阪線,キンテツミナミオオサカセン,近鉄南大阪線,Kintetsu Minami-Osaka Line,Kintetsu Minami-Osaka Line,,,#FF1493,2,F,,,,#028E46,,,,KINTETSU,,,,0,31003,1412.223426 diff --git a/data/3!stations.csv b/data/3!stations.csv index b3fe23ba..2b5ad05b 100644 --- a/data/3!stations.csv +++ b/data/3!stations.csv @@ -6230,316 +6230,316 @@ station_cd,station_g_cd,station_name,station_name_k,station_name_r,station_name_ 2900401,1130604,新横浜,シンヨコハマ,Shin-yokohama,Shin-yokohama,新横滨,신요코하마,52,,,,,29004,14,222-0026,神奈川県横浜市港北区新横浜3丁目7番2号,139.617472,35.509056,0000-00-00,0000-00-00,0,2900401 2900402,2900301,羽沢横浜国大,ハザワヨコハマコクダイ,Hazawa yokohama-kokudai,Hazawa yokohama-kokudai,羽泽横滨国大,하자와요코하마코쿠다이,51,,,,,29004,14,221-0866,神奈川県横浜市神奈川区羽沢南二丁目471,139.586389,35.481389,0000-00-00,0000-00-00,0,2900402 2900403,2900108,西谷,ニシヤ,Nishiya,Nishiya,西谷,니시야,08,,,,,29004,14,240-0052,神奈川県横浜市保土ケ谷区西谷町1101,139.565721,35.478092,0000-00-00,0000-00-00,0,2900403 -3000101,1141301,豊橋,トヨハシ,TOYOHASHI,TOYOHASHI,丰桥,도요하시,01,,,,,30001,23,440-0075,愛知県豊橋市花田町西宿,137.382128,34.762734,0000-00-00,0000-00-00,0,3000101 -3000102,3000102,伊奈,イナ,INA,INA,伊奈,이나,02,,,,,30001,23,441-0105,愛知県豊川市伊奈町南山新田292-1,137.354743,34.802857,0000-00-00,0000-00-00,0,3000102 -3000103,3000103,小田渕,オダブチ,ODABUCHI,ODABUCHI,小田渕,오다부치,03,,,,,30001,23,442-0844,愛知県豊川市小田渕町大字卯足,137.34559,34.814739,0000-00-00,0000-00-00,0,3000103 -3000104,3000104,国府,コウ,KO,KO,国府,고,04,,,,,30001,23,442-0856,愛知県豊川市久保町葉善寺,137.328101,34.83752,0000-00-00,0000-00-00,0,3000104 -3000105,3000105,御油,ゴユ,GOYU,GOYU,御油,고유,05,,,,,30001,23,441-0211,愛知県豊川市御油町西井領,137.321443,34.846113,0000-00-00,0000-00-00,0,3000105 -3000106,3000106,名電赤坂,メイデンアカサカ,MEIDEN AKASAKA,MEIDEN AKASAKA,名电赤坂,메이덴아카사카,06,,,,,30001,23,441-0202,愛知県豊川市赤坂町松本,137.311152,34.859331,0000-00-00,0000-00-00,0,3000106 -3000107,3000107,名電長沢,メイデンナガサワ,MEIDAN NAGASAWA,MEIDAN NAGASAWA,名电长泽,메이덴나가사와,07,,,,,30001,23,441-0203,愛知県豊川市長沢町音羽,137.288298,34.871623,0000-00-00,0000-00-00,0,3000107 -3000108,3000108,本宿,モトジュク,MOTOJUKU,MOTOJUKU,本宿,모토주쿠,08,,,,,30001,23,444-3505,愛知県岡崎市本宿町一里山,137.260014,34.893025,0000-00-00,0000-00-00,0,3000108 -3000109,3000109,名電山中,メイデンヤマナカ,MEIDEN YAMANAKA,MEIDEN YAMANAKA,名电山中,메이덴야마나카,09,,,,,30001,23,444-3511,愛知県岡崎市舞木町山中町,137.242829,34.899474,0000-00-00,0000-00-00,0,3000109 -3000110,3000110,藤川,フジカワ,FUJIKAWA,FUJIKAWA,藤川,후지카와,10,,,,,30001,23,444-3523,愛知県岡崎市藤川町字松本,137.218428,34.913304,0000-00-00,0000-00-00,0,3000110 -3000111,3000111,美合,ミアイ,MIAI,MIAI,美合,미아이,11,,,,,30001,23,444-0802,愛知県岡崎市美合町一ノ久保,137.196317,34.923763,0000-00-00,0000-00-00,0,3000111 -3000112,3000112,男川,オトガワ,OTOGAWA,OTOGAWA,男川,오토가와,12,,,,,30001,23,444-0811,愛知県岡崎市大西町揚枝,137.183296,34.937461,0000-00-00,0000-00-00,0,3000112 -3000113,3000113,東岡崎,ヒガシオカザキ,HIGASHI OKAZAKI,HIGASHI OKAZAKI,东冈崎,히가시오카자키,13,,,,,30001,23,444-0860,愛知県岡崎市明大寺本町4丁目,137.167333,34.951904,0000-00-00,0000-00-00,0,3000113 -3000114,3000114,岡崎公園前,オカザキコウエンマエ,OKAZAKIKOEN-MAE,OKAZAKIKOEN-MAE,冈崎公园前,오카자키코엔마에,14,,,,,30001,23,444-0921,愛知県岡崎市中岡崎町,137.153309,34.954984,0000-00-00,0000-00-00,0,3000114 -3000115,3000115,矢作橋,ヤハギバシ,YAHAGIBASHI,YAHAGIBASHI,矢作桥,야하기바시,15,,,,,30001,23,444-0943,愛知県岡崎市矢作町字馬乗,137.139957,34.961149,0000-00-00,0000-00-00,0,3000115 -3000116,3000116,宇頭,ウトウ,UTO,UTO,宇头,우토,16,,,,,30001,23,444-0905,愛知県岡崎市宇頭町山ノ神,137.118103,34.971367,0000-00-00,0000-00-00,0,3000116 -3000117,3000117,新安城,シンアンジョウ,SHIN ANJO,SHIN ANJO,新安城,신안조,17,,,,,30001,23,446-0007,愛知県安城市東栄町1丁目,137.085443,34.986885,0000-00-00,0000-00-00,0,3000117 -3000118,3000118,牛田,ウシダ,USHIDA,USHIDA,牛田,우시다,18,,,,,30001,23,472-0003,愛知県知立市牛田,137.060946,34.999294,0000-00-00,0000-00-00,0,3000118 -3000119,3000119,知立,チリュウ,CHIRYU,CHIRYU,知立,지류,19,,,,,30001,23,472-0037,愛知県知立市栄2丁目,137.039722,35.006111,0000-00-00,0000-00-00,0,3000119 -3000120,3000120,一ツ木,ヒトツギ,HITOTSUGI,HITOTSUGI,一木,히토쓰기,20,,,,,30001,23,448-0000,愛知県刈谷市一木本郷前,137.02551,35.01367,0000-00-00,0000-00-00,0,3000120 -3000121,3000121,富士松,フジマツ,FUJIMATSU,FUJIMATSU,富士松,후지마쓰,21,,,,,30001,23,448-0005,愛知県刈谷市今川町下矢戸,137.016508,35.029759,0000-00-00,0000-00-00,0,3000121 -3000122,3000122,豊明,トヨアケ,TOYOAKE,TOYOAKE,丰明,도요아케,22,,,,,30001,23,470-1141,愛知県豊明市阿野町字明定,137.008161,35.041127,0000-00-00,0000-00-00,0,3000122 -3000123,3000123,前後,ゼンゴ,ZENGO,ZENGO,前后,젠고,23,,,,,30001,23,470-1151,愛知県豊明市前後町字大代,136.995665,35.05227,0000-00-00,0000-00-00,0,3000123 -3000124,3000124,中京競馬場前,チュウキョウケイバジョウマエ,CHUKYO-KEIBAJO-MAE,CHUKYO-KEIBAJO-MAE,中京竞马场前,주쿄케이바조마에,24,,,,,30001,23,458-0801,愛知県名古屋市緑区鳴海町大字境松,136.98158,35.061302,0000-00-00,0000-00-00,0,3000124 -3000125,3000125,有松,アリマツ,ARIMATSU,ARIMATSU,有松,아리마쓰,25,,,,,30001,23,458-0824,愛知県名古屋市緑区鳴海町有松裏,136.971084,35.067687,0000-00-00,0000-00-00,0,3000125 -3000126,3000126,左京山,サキョウヤマ,SAKYOYAMAE,SAKYOYAMAE,左京山,사쿄야마,26,,,,,30001,23,458-0801,愛知県名古屋市緑区鳴海町左京山,136.960301,35.070553,0000-00-00,0000-00-00,0,3000126 -3000127,3000127,鳴海,ナルミ,NARUMI,NARUMI,鸣海,나루미,27,,,,,30001,23,458-0831,愛知県名古屋市緑区鳴海町向田,136.950096,35.079149,0000-00-00,0000-00-00,0,3000127 -3000128,3000128,本星崎,モトホシザキ,MOTO HOSHIZAKI,MOTO HOSHIZAKI,本星崎,모토호시자키,28,,,,,30001,23,457-0812,愛知県名古屋市南区星崎町東浦下,136.937378,35.087392,0000-00-00,0000-00-00,0,3000128 -3000129,3000129,本笠寺,モトカサデラ,MOTO KASADERA,MOTO KASADERA,本笠寺,모토카사데라,29,,,,,30001,23,457-0058,愛知県名古屋市南区前浜通7丁目,136.933409,35.099199,0000-00-00,0000-00-00,0,3000129 -3000130,3000130,桜,サクラ,SAKURA,SAKURA,樱,사쿠라,30,,,,,30001,23,457-0014,愛知県名古屋市南区呼続町6丁目,136.934586,35.106062,0000-00-00,0000-00-00,0,3000130 -3000131,3000131,呼続,ヨビツギ,YOBITSUGI,YOBITSUGI,呼续,요비쓰기,31,,,,,30001,23,457-0014,愛知県名古屋市南区呼続町1丁目,136.930387,35.114722,0000-00-00,0000-00-00,0,3000131 -3000132,3000132,堀田,ホリタ,HORITA,HORITA,堀田,호리타,32,,,,,30001,23,467-0856,愛知県名古屋市瑞穂区新開町28-26,136.919839,35.120251,0000-00-00,0000-00-00,0,3000132 -3000133,3000133,神宮前,ジングウマエ,JINGU-MAE,JINGU-MAE,神宫前,진구마에,33,,,,,30001,23,456-0032,愛知県名古屋市熱田区三本松町,136.912485,35.125857,0000-00-00,0000-00-00,0,3000133 -3000134,1141102,金山,カナヤマ,KANAYAMA,KANAYAMA,金山,가나야마,34,,,,,30001,23,456-0002,愛知県名古屋市熱田区金山町一丁目1-18,136.9013,35.142871,0000-00-00,0000-00-00,0,3000134 -3000135,3000135,山王,サンノウ,SANNO,SANNO,山王,산노,35,,,,,30001,23,454-0000,愛知県名古屋市中川区東出町2丁目,136.888461,35.15233,0000-00-00,0000-00-00,0,3000135 -3000136,1141101,名鉄名古屋,メイテツナゴヤ,MEITETSU NAGOYA,MEITETSU NAGOYA,名铁名古屋,메이테쓰 나고야,36,,,,,30001,23,450-0002,愛知県名古屋市中村区名駅1-2-1,136.884187,35.169252,1941-08-12,0000-00-00,0,3000136 -3000137,3000137,栄生,サコウ,SAKO,SAKO,荣生,사코,37,,,,,30001,23,451-0000,愛知県名古屋市西区藤ノ宮通3丁目,136.873051,35.183687,0000-00-00,0000-00-00,0,3000137 -3000138,3000138,東枇杷島,ヒガシビワジマ,HIGASHI BIWAJIMA,HIGASHI BIWAJIMA,东枇杷岛,히가시비와지마,38,,,,,30001,23,451-0053,愛知県名古屋市西区枇杷島通3丁目,136.870168,35.189808,0000-00-00,0000-00-00,0,3000138 -3000139,3000139,西枇杷島,ニシビワジマ,NISHI BIWAJIMA,NISHI BIWAJIMA,西枇杷岛,니시비와지마,39,,,,,30001,23,452-0000,愛知県清須市西枇杷島町下小田井川口,136.865685,35.195015,0000-00-00,0000-00-00,0,3000139 -3000140,3000140,二ツ杁,フタツイリ,FUTATSU-IRI,FUTATSU-IRI,二杁,후타쓰이리,40,,,,,30001,23,452-0065,愛知県清須市西枇杷島町芳野,136.859583,35.194646,0000-00-00,0000-00-00,0,3000140 -3000141,3000141,新川橋,シンカワバシ,SHINKAWA-BASHI,SHINKAWA-BASHI,新川桥,신카와바시,41,,,,,30001,23,452-0913,愛知県清須市上河原,136.851989,35.195701,0000-00-00,0000-00-00,0,3000141 -3000142,3000142,須ヶ口,スカグチ,SUKAGUCHI,SUKAGUCHI,须口,스카구치,42,,,,,30001,23,452-0912,愛知県清須市須ヶ口駅前一丁目1,136.846229,35.198684,0000-00-00,0000-00-00,0,3000142 -3000143,3000143,丸ノ内,マルノウチ,MARUNOUCHI,MARUNOUCHI,丸之内,마루노우치,43,,,,,30001,23,452-0942,愛知県清須市清洲,136.841927,35.204742,0000-00-00,0000-00-00,0,3000143 -3000144,3000144,新清洲,シンキヨス,SHIN KIYOSU,SHIN KIYOSU,新清洲,신키요스,44,,,,,30001,23,452-0943,愛知県清須市新清洲1丁目,136.835607,35.211249,0000-00-00,0000-00-00,0,3000144 -3000145,3000145,大里,オオサト,OSATO,OSATO,大里,오사토,45,,,,,30001,23,492-8233,愛知県稲沢市奥田町三十番神,136.818428,35.226216,0000-00-00,0000-00-00,0,3000145 -3000146,3000146,奥田,オクダ,OKUDA,OKUDA,奥田,오쿠다,46,,,,,30001,23,492-8233,愛知県稲沢市奥田町木之内,136.810917,35.235412,0000-00-00,0000-00-00,0,3000146 -3000147,3000147,国府宮,コウノミヤ,KONOMIYA,KONOMIYA,国府宫,고노미야,47,,,,,30001,23,492-8208,愛知県稲沢市松下1丁目,136.802963,35.254218,0000-00-00,0000-00-00,0,3000147 -3000148,3000148,島氏永,シマウジナガ,SHIMA-UJINAGA,SHIMA-UJINAGA,岛氏永,시마우지나가,48,,,,,30001,23,492-8205,愛知県稲沢市島町,136.800987,35.270777,0000-00-00,0000-00-00,0,3000148 -3000149,3000149,妙興寺,ミョウコウジ,MYOKOJI,MYOKOJI,妙兴寺,묘코지,49,,,,,30001,23,491-0922,愛知県一宮市大和町大字妙興寺徳法寺浦,136.798231,35.287178,0000-00-00,0000-00-00,0,3000149 -3000150,1150237,名鉄一宮,メイテツイチノミヤ,MEITETSU ICHINOMIYA,MEITETSU ICHINOMIYA,名铁一宫,메이테쓰이치노미야,50,,,,,30001,23,491-0912,愛知県一宮市新生1丁目,136.797225,35.30154,0000-00-00,0000-00-00,0,3000150 -3000151,3000151,今伊勢,イマイセ,IMAISE,IMAISE,今伊势,이마이세,51,,,,,30001,23,491-0057,愛知県一宮市今伊勢町大字宮後字一丁野,136.789273,35.31836,0000-00-00,0000-00-00,0,3000151 -3000152,3000152,石刀,イワト,IWATO,IWATO,石刀,이와토,52,,,,,30001,23,491-0051,愛知県一宮市今伊勢町大字馬寄字西切声,136.785407,35.326204,0000-00-00,0000-00-00,0,3000152 -3000153,3000153,新木曽川,シンキソガワ,SHIN KISOGAWA,SHIN KISOGAWA,新木曾川,신키소가와,53,,,,,30001,23,493-0001,愛知県一宮市木曽川町黒田下市場南121-4,136.779421,35.342047,0000-00-00,0000-00-00,0,3000153 -3000154,3000154,黒田,クロダ,KURODA,KURODA,黑田,구로다,54,,,,,30001,23,493-0001,愛知県一宮市木曽川町黒田字西針口北ノ切12-4,136.777502,35.350213,0000-00-00,0000-00-00,0,3000154 -3000155,3000155,木曽川堤,キソガワヅツミ,KISOGAWA-ZUTSUMI,KISOGAWA-ZUTSUMI,木曾川堤,기소가와즈쓰미,55,,,,,30001,23,493-8001,愛知県一宮市北方町大字北方字倉骨,136.770486,35.365067,0000-00-00,0000-00-00,0,3000155 -3000156,3000156,笠松,カサマツ,KASAMATSU,KASAMATSU,笠松,가사마쓰,56,,,,,30001,21,501-6037,岐阜県羽島郡笠松町西金池町,136.764664,35.37466,0000-00-00,0000-00-00,0,3000156 -3000157,3000157,岐南,ギナン,GINAN,GINAN,岐南,기난,57,,,,,30001,21,501-6018,岐阜県羽島郡岐南町下印食,136.769165,35.389716,0000-00-00,0000-00-00,0,3000157 -3000158,3000158,茶所,チャジョ,CHAJO,CHAJO,茶所,자조,58,,,,,30001,21,500-8431,岐阜県岐阜市加納八幡町,136.768917,35.402048,0000-00-00,0000-00-00,0,3000158 -3000159,3000159,加納,カノウ,KANO,KANO,加纳,가노,59,,,,,30001,21,500-8402,岐阜県岐阜市竜田町9丁目,136.765984,35.405209,0000-00-00,0000-00-00,0,3000159 -3000160,3000160,名鉄岐阜,メイテツギフ,MEITETSU GIFU,MEITETSU GIFU,名铁岐阜,메이테쓰기후,60,,,,,30001,21,500-8833,岐阜県岐阜市神田町9丁目,136.760066,35.411136,0000-00-00,0000-00-00,0,3000160 -3000201,3000104,国府,コウ,KO,KO,国府,고,,04,,,,30002,23,442-0856,愛知県豊川市久保町葉善寺,137.328101,34.83752,0000-00-00,0000-00-00,0,3000201 -3000202,3000202,八幡,ヤワタ,YAWATA,YAWATA,八幡,야와타,01,,,,,30002,23,442-0857,愛知県豊川市八幡町野路,137.352113,34.82916,0000-00-00,0000-00-00,0,3000202 -3000203,3000203,諏訪町,スワチョウ,SUWACHO,SUWACHO,诹访町,스와초,02,,,,,30002,23,442-0068,愛知県豊川市諏訪3-250,137.370479,34.823464,0000-00-00,0000-00-00,0,3000203 -3000204,3000204,稲荷口,イナリグチ,INARIGUCHI,INARIGUCHI,稻荷口,이나리구치,03,,,,,30002,23,442-0044,愛知県豊川市二見町駅前通,137.387703,34.818435,0000-00-00,0000-00-00,0,3000204 -3000205,1141306,豊川稲荷,トヨカワイナリ,TOYOKAWA-INARI,TOYOKAWA-INARI,丰川稻荷,도요카와이나리,04,,,,,30002,23,442-0033,愛知県豊川市豊川町仁保通18,137.396058,34.821755,0000-00-00,0000-00-00,0,3000205 -3000301,3000117,新安城,シンアンジョウ,SHIN ANJO,SHIN ANJO,新安城,신안조,,17,,,,30003,23,446-0007,愛知県安城市東栄町1丁目,137.085443,34.986885,0000-00-00,0000-00-00,0,3000301 -3000302,3000302,北安城,キタアンジョウ,KITA ANJO,KITA ANJO,北安城,기타안조,01,,,,,30003,23,446-0061,愛知県安城市新田町新栄1,137.092146,34.964677,0000-00-00,0000-00-00,0,3000302 -3000303,3000303,南安城,ミナミアンジョウ,MINAMI ANJO,MINAMI ANJO,南安城,미나미안조,02,,,,,30003,23,446-0000,愛知県安城市的場41-2,137.092457,34.951976,0000-00-00,0000-00-00,0,3000303 -3000304,3000304,碧海古井,ヘキカイフルイ,HEKIKAI FURUI,HEKIKAI FURUI,碧海古井,헤키카이후루이,03,,,,,30003,23,446-0025,愛知県安城市古井町字大久後4-5,137.090863,34.93723,0000-00-00,0000-00-00,0,3000304 -3000305,3000305,堀内公園,ホリウチコウエン,HORIUCHIKOEN,HORIUCHIKOEN,堀内公园,호리우치코엔,04,,,,,30003,23,444-1155,愛知県安城市堀内町前山92,137.089636,34.927834,0000-00-00,0000-00-00,0,3000305 -3000306,3000306,桜井,サクライ,SAKURAI,SAKURAI,樱井,사쿠라이,05,,,,,30003,23,444-1154,愛知県安城市桜井町新田124,137.088345,34.917477,0000-00-00,0000-00-00,0,3000306 -3000316,3000316,南桜井,ミナミサクライ,MINAMI SAKURAI,MINAMI SAKURAI,南樱井,미나미사쿠라이,06,,,,,30003,23,444-1162,愛知県安城市小川町水遣23,137.07721,34.906302,0000-00-00,0000-00-00,0,3000306 -3000307,3000307,米津,ヨネヅ,YONEZU,YONEZU,米津,요네즈,07,,,,,30003,23,445-0802,愛知県西尾市米津町仲之畑1-1,137.060993,34.892822,0000-00-00,0000-00-00,0,3000307 -3000308,3000308,桜町前,サクラマチマエ,SAKURAMACHI-MAE,SAKURAMACHI-MAE,樱町前,사쿠라마치마에,08,,,,,30003,23,445-0804,愛知県西尾市緑町4-28,137.062444,34.880107,0000-00-00,0000-00-00,0,3000308 -3000309,3000309,西尾口,ニシオグチ,NISHIO-GUCHI,NISHIO-GUCHI,西尾口,니시오구치,09,,,,,30003,23,445-0073,愛知県西尾市寄住町柴草7-3,137.062661,34.870647,0000-00-00,0000-00-00,0,3000309 -3000310,3000310,西尾,ニシオ,NISHIO,NISHIO,西尾,니시오,10,,,,,30003,23,445-0851,愛知県西尾市住吉町4-18,137.057789,34.863917,0000-00-00,0000-00-00,0,3000310 -3000311,3000311,福地,フクチ,FUKUCHI,FUKUCHI,福地,후쿠치,11,,,,,30003,23,445-0873,愛知県西尾市川口町松原28,137.048579,34.844663,0000-00-00,0000-00-00,0,3000311 -3000312,3000312,鎌谷,カマヤ,KAMAYA,KAMAYA,镰谷,가마야,,,,,,30003,23,445-0044,愛知県西尾市鎌谷町中屋敷,137.061203,34.839095,0000-00-00,0000-00-00,2,3000312 -3000313,3000313,上横須賀,カミヨコスカ,KAMI YOKOSUKA,KAMI YOKOSUKA,上横须贺,가미요코스카,12,,,,,30003,23,444-0521,愛知県西尾市吉良町上横須賀宮前60-2,137.071883,34.829941,0000-00-00,0000-00-00,0,3000313 -3000314,3000314,三河荻原,ミカワオギハラ,MIKAWA OGIHARA,MIKAWA OGIHARA,三河扇原,미카와오기하라,,,,,,30003,23,444-0524,愛知県西尾市吉良町荻原,137.067012,34.806111,0000-00-00,0000-00-00,2,3000314 -3000315,3000315,吉良吉田,キラヨシダ,KIRA YOSHIDA,KIRA YOSHIDA,吉良吉田,기라요시다,13,,,,,30003,23,444-0516,愛知県西尾市吉良町吉田船戸5,137.071017,34.794043,0000-00-00,0000-00-00,0,3000315 -3000401,3000315,吉良吉田,キラヨシダ,KIRA YOSHIDA,KIRA YOSHIDA,吉良吉田,기라요시다,13,,,,,30004,23,444-0516,愛知県西尾市吉良町吉田船戸5,137.071017,34.794043,0000-00-00,0000-00-00,0,3000401 -3000402,3000402,三河鳥羽,ミカワトバ,MIKAWA TOBA,MIKAWA TOBA,三河鸟羽,미카와토바,14,,,,,30004,23,444-0704,愛知県西尾市鳥羽町,137.104984,34.793214,0000-00-00,0000-00-00,0,3000402 -3000403,3000403,西幡豆,ニシハズ,NISHI HAZU,NISHI HAZU,西幡豆,니시하즈,15,,,,,30004,23,444-0703,愛知県西尾市西幡豆町中屋敷16番地4,137.121271,34.792431,0000-00-00,0000-00-00,0,3000403 -3000404,3000404,東幡豆,ヒガシハズ,HIGASHI HAZU,HIGASHI HAZU,东幡豆,히가시하즈,16,,,,,30004,23,444-0701,愛知県西尾市東幡豆町小見行田,137.145645,34.789693,0000-00-00,0000-00-00,0,3000404 -3000405,3000405,こどもの国,コドモノクニ,KODOMONOKUNI,KODOMONOKUNI,儿童之国,고도모노쿠니,17,,,,,30004,23,444-0701,愛知県西尾市東幡豆町御堂前,137.162721,34.788791,0000-00-00,0000-00-00,0,3000405 -3000406,3000406,西浦,ニシウラ,NISHIURA,NISHIURA,西浦,니시우라,18,,,,,30004,23,443-0105,愛知県蒲郡市西浦町馬々48-1,137.178617,34.79003,0000-00-00,0000-00-00,0,3000406 -3000407,3000407,形原,カタハラ,KATAHARA,KATAHARA,形原,가타하라,19,,,,,30004,23,443-0104,愛知県蒲郡市形原町形原御嶽62,137.184594,34.798607,0000-00-00,0000-00-00,0,3000407 -3000408,3000408,三河鹿島,ミカワカシマ,KIKAWA KASHIMA,KIKAWA KASHIMA,三河鹿岛,미카와카시마,20,,,,,30004,23,443-0037,愛知県蒲郡市鹿島町横砂39-1,137.189687,34.813313,0000-00-00,0000-00-00,0,3000408 -3000409,1150216,蒲郡競艇場前,ガマゴオリキョウテイジョウマエ,GAMAGORI-KYOTEIJO-MAE,GAMAGORI-KYOTEIJO-MAE,蒲郡竞艇场前,가마고리쿄테이조마에,21,,,,,30004,23,443-0046,愛知県蒲郡市竹谷町油井17-9,137.202014,34.825545,0000-00-00,0000-00-00,0,3000409 -3000410,1150215,蒲郡,ガマゴオリ,GAMAGORI,GAMAGORI,蒲郡,가마고리,22,,,,,30004,23,443-0043,愛知県蒲郡市元町,137.226115,34.822743,0000-00-00,0000-00-00,0,3000410 -3000501,3000501,碧南,ヘキナン,HEKINAN,HEKINAN,碧南,헤키난,,,11,,,30005,23,447-0846,愛知県碧南市中町5-48,136.985613,34.874041,0000-00-00,0000-00-00,0,3000501 -3000502,3000502,碧南中央,ヘキナンチュウオウ,HEKINAN-CHUO,HEKINAN-CHUO,碧南中央,헤키난추오,,,10,,,30005,23,447-0877,愛知県碧南市栄町3-59,136.989476,34.887395,0000-00-00,0000-00-00,0,3000502 -3000503,3000503,新川町,シンカワマチ,SHINKAWA-MACHI,SHINKAWA-MACHI,新川町,신카와마치,,,09,,,30005,23,447-0863,愛知県碧南市新川町3-113,136.990312,34.896619,0000-00-00,0000-00-00,0,3000503 -3000504,3000504,北新川,キタシンカワ,KITA SHINKAWA,KITA SHINKAWA,北新川,기타신카와,,,08,,,30005,23,447-0065,愛知県碧南市久沓町4-19,136.992475,34.906018,0000-00-00,0000-00-00,0,3000504 -3000505,3000505,高浜港,タカハマミナト,TAKAHAMA-MINATO,TAKAHAMA-MINATO,高滨港,다카하마미나토,,,07,,,30005,23,444-1325,愛知県高浜市青木町6-3-1,136.989391,34.921536,0000-00-00,0000-00-00,0,3000505 -3000506,3000506,三河高浜,ミカワタカハマ,MIKAWA TAKAHAMA,MIKAWA TAKAHAMA,三河高滨,미카와타카하마,,,06,,,30005,23,444-1334,愛知県高浜市春日町5-3-1,136.989954,34.930796,0000-00-00,0000-00-00,0,3000506 -3000507,3000507,吉浜,ヨシハマ,YOSHIHAMA,YOSHIHAMA,吉滨,요시하마,,,05,,,30005,23,444-1331,愛知県高浜市屋敷町1-2-30,136.98919,34.946327,0000-00-00,0000-00-00,0,3000507 -3000508,3000508,小垣江,オガキエ,OGAKIE,OGAKIE,小垣江,오가키에,,,04,,,30005,23,448-0813,愛知県刈谷市小垣江町字下半ノ木20-3,136.995455,34.9639,0000-00-00,0000-00-00,0,3000508 -3000509,3000509,刈谷市,カリヤシ,KARIYASHI,KARIYASHI,刈谷市,가리야시,,,03,,,30005,23,448-0844,愛知県刈谷市広小路3-504-1,136.993844,34.984803,0000-00-00,0000-00-00,0,3000509 -3000510,1150224,刈谷,カリヤ,KARIYA,KARIYA,刈谷,가리야,,,02,,,30005,23,448-0028,愛知県刈谷市桜町1丁目,137.008642,34.990884,0000-00-00,0000-00-00,0,3000510 -3000511,3000511,重原,シゲハラ,SHIGEHARA,SHIGEHARA,重原,시게하라,,,01,,,30005,23,472-0026,愛知県知立市上重原町本郷4-4,137.023727,34.994824,0000-00-00,0000-00-00,0,3000511 -3000512,3000119,知立,チリュウ,CHIRYU,CHIRYU,知立,지류,,19,,,,30005,23,472-0037,愛知県知立市栄2丁目,137.039722,35.006111,0000-00-00,0000-00-00,0,3000512 -3000513,3000513,三河知立,ミカワチリュウ,MIKAWA CHIRYU,MIKAWA CHIRYU,三河知立,미카와치류,01,,,,,30005,23,472-0006,愛知県知立市山町茶碓山8番地10,137.054972,35.005722,0000-00-00,0000-00-00,0,3000513 -3000514,3000514,三河八橋,ミカワヤツハシ,MIKAWA YATSUHASHI,MIKAWA YATSUHASHI,三河八桥,미카와야쓰하시,02,,,,,30005,23,473-0924,愛知県豊田市花園町五反田39,137.077147,35.010913,0000-00-00,0000-00-00,0,3000514 -3000515,3000515,若林,ワカバヤシ,WAKABAYASHI,WAKABAYASHI,若林,와카바야시,03,,,,,30005,23,473-0914,愛知県豊田市若林東町沖田37,137.095851,35.026284,0000-00-00,0000-00-00,0,3000515 -3000516,3000516,竹村,タケムラ,TAKEMURA,TAKEMURA,竹村,다케무라,04,,,,,30005,23,473-0906,愛知県豊田市竹町宮下16,137.11476,35.040067,0000-00-00,0000-00-00,0,3000516 -3000517,3000517,土橋,ツチハシ,TSUCHIHASHI,TSUCHIHASHI,土桥,쓰치하시,05,,,,,30005,23,471-0842,愛知県豊田市土橋町8-145,137.129572,35.058179,0000-00-00,0000-00-00,0,3000517 -3000518,3000518,上挙母,ウワゴロモ,UWA GOROMO,UWA GOROMO,上举母,우와고로모,06,,,,,30005,23,471-0876,愛知県豊田市金谷町2-96,137.154453,35.071854,0000-00-00,0000-00-00,0,3000518 -3000519,3000519,豊田市,トヨタシ,TOYOTASHI,TOYOTASHI,丰田市,도요타시,07,,,,,30005,23,471-0026,愛知県豊田市若宮町1-35,137.156227,35.087305,0000-00-00,0000-00-00,0,3000519 -3000520,3000520,梅坪,ウメツボ,UMETSUBO,UMETSUBO,梅坪,우메쓰보,08,,,,,30005,23,471-0064,愛知県豊田市梅坪町7-125,137.162206,35.099654,0000-00-00,0000-00-00,0,3000520 -3000521,3000521,越戸,コシド,KOSHIDO,KOSHIDO,越户,고시도,09,,,,,30005,23,470-0332,愛知県豊田市越戸町梅盛4,137.180178,35.10769,0000-00-00,0000-00-00,0,3000521 -3000522,3000522,平戸橋,ヒラトバシ,HIRATO-BASHI,HIRATO-BASHI,平户桥,히라토바시,10,,,,,30005,23,470-0331,愛知県豊田市平戸橋町石平43,137.184725,35.114628,0000-00-00,0000-00-00,0,3000522 -3000523,3000523,猿投,サナゲ,SANAGE,SANAGE,猿投,사나게,11,,,,,30005,23,470-0372,愛知県豊田市井上町5-62,137.178739,35.122613,0000-00-00,0000-00-00,0,3000523 -3000601,3000519,豊田市,トヨタシ,TOYOTASHI,TOYOTASHI,丰田市,도요타시,,07,,,,30006,23,471-0026,愛知県豊田市若宮町1-35,137.156227,35.087305,0000-00-00,0000-00-00,0,3000601 -3000602,3000520,梅坪,ウメツボ,UMETSUBO,UMETSUBO,梅坪,우메쓰보,,08,,,,30006,23,471-0064,愛知県豊田市梅坪町7-125,137.162206,35.099654,0000-00-00,0000-00-00,0,3000602 -3000603,3000603,上豊田,カミトヨタ,KAMI TOYOTA,KAMI TOYOTA,上丰田,가미토요타,01,,,,,30006,23,470-0341,愛知県豊田市上原町西山135-2,137.15535,35.116168,0000-00-00,0000-00-00,0,3000603 -3000604,3000604,浄水,ジョウスイ,JOSUI,JOSUI,净水,조스이,02,,,,,30006,23,470-0343,愛知県豊田市浄水町伊保原243,137.137186,35.121298,0000-00-00,0000-00-00,0,3000604 -3000605,3000605,三好ヶ丘,ミヨシガオカ,MIYOSHIGAOKA,MIYOSHIGAOKA,三好丘,미요시가오카,03,,,,,30006,23,470-0202,愛知県みよし市三好丘二丁目1-1,137.111219,35.126918,0000-00-00,0000-00-00,0,3000605 -3000606,3000606,黒笹,クロザサ,KUROZASA,KUROZASA,黑笹,구로자사,04,,,,,30006,23,470-0201,愛知県みよし市黒笹町縄手36-2,137.091365,35.127681,0000-00-00,0000-00-00,0,3000606 -3000607,3000607,米野木,コメノキ,KOMENOKI,KOMENOKI,米野木,고메노키,05,,,,,30006,23,470-0111,愛知県日進市米野木町南山185-3,137.06702,35.123728,0000-00-00,0000-00-00,0,3000607 -3000608,3000608,日進,ニッシン,NISSHIN,NISSHIN,日进,닛신,06,,,,,30006,23,470-0113,愛知県日進市栄2-1708,137.04878,35.118378,0000-00-00,0000-00-00,0,3000608 -3000609,3000609,赤池,アカイケ,AKAIKE,AKAIKE,赤池,아카이케,07,,,,,30006,23,470-0125,愛知県日進市赤池1-1503,137.017978,35.121097,0000-00-00,0000-00-00,0,3000609 -3000701,3000701,常滑,トコナメ,TOKONAME,TOKONAME,常滑,도코나메,22,,,,,30007,23,479-0838,愛知県常滑市鯉江本町5-141,136.834992,34.891167,0000-00-00,0000-00-00,0,3000701 -3000702,3000702,りんくう常滑,リンクウトコナメ,RINKU TOKONAME,RINKU TOKONAME,临空常滑,린쿠토코나메,23,,,,,30007,23,479-0882,愛知県常滑市りんくう町,136.828164,34.87967,0000-00-00,0000-00-00,0,3000702 -3000703,3000703,中部国際空港,チュウブコクサイクウコウ,CENTRAL JAPAN INTERNATIONAL AIRPORT,CENTRAL JAPAN INTERNATIONAL AIRPORT,中部国际机场,주부코쿠사이쿠코,24,,,,,30007,23,479-0881,愛知県常滑市セントレア,136.816382,34.859262,0000-00-00,0000-00-00,0,3000703 -3000801,1141101,名鉄名古屋,メイテツナゴヤ,MEITETSU NAGOYA,MEITETSU NAGOYA,名铁名古屋,메이테쓰 나고야,,36,,,,30008,23,453-0002,愛知県名古屋市中村区名駅一丁目2-1,136.884187,35.169252,0000-00-00,0000-00-00,0,3000801 -3000802,3000135,山王,サンノウ,SANNO,SANNO,山王,산노,,35,,,,30008,23,454-0000,愛知県名古屋市中川区東出町2丁目,136.888461,35.15233,0000-00-00,0000-00-00,0,3000802 -3000803,1141102,金山,カナヤマ,KANAYAMA,KANAYAMA,金山,가나야마,,34,,,,30008,23,456-0002,愛知県名古屋市熱田区金山町一丁目1-18,136.9013,35.142871,0000-00-00,0000-00-00,0,3000803 -3000804,3000133,神宮前,ジングウマエ,JINGU-MAE,JINGU-MAE,神宫前,진구마에,,33,,,,30008,23,456-0032,愛知県名古屋市熱田区三本松町,136.912485,35.125857,0000-00-00,0000-00-00,0,3000804 -3000805,3000805,豊田本町,トヨダホンマチ,TOYODAHOMMACHI,TOYODAHOMMACHI,丰田本町,도요다혼마치,01,,,,,30008,23,457-0863,愛知県名古屋市南区豊1-26-17,136.910877,35.113586,0000-00-00,0000-00-00,0,3000805 -3000806,3000806,道徳,ドウトク,DOTOKU,DOTOKU,道德,도토쿠,02,,,,,30008,23,457-0841,愛知県名古屋市南区豊田1-12-10,136.909409,35.105712,0000-00-00,0000-00-00,0,3000806 -3000807,3000807,大江,オオエ,OE,OE,大江,오에,03,,,,,30008,23,457-0836,愛知県名古屋市南区加福本通2-8-1,136.912758,35.093258,0000-00-00,0000-00-00,0,3000807 -3000808,3000808,大同町,ダイドウチョウ,DAIDOCHO,DAIDOCHO,大同町,다이도초,04,,,,,30008,23,457-0811,愛知県名古屋市南区大同町3-1,136.909314,35.080268,0000-00-00,0000-00-00,0,3000808 -3000809,3000809,柴田,シバタ,SHIBATA,SHIBATA,柴田,시바타,05,,,,,30008,23,457-0815,愛知県名古屋市南区柴田町5-5,136.909126,35.072774,0000-00-00,0000-00-00,0,3000809 -3000810,3000810,名和,ナワ,NAWA,NAWA,名和,나와,06,,,,,30008,23,476-0002,愛知県東海市名和町四番割81-7,136.911709,35.060914,0000-00-00,0000-00-00,0,3000810 -3000811,3000811,聚楽園,シュウラクエン,SHURAKUEN,SHURAKUEN,聚乐园,슈라쿠엔,07,,,,,30008,23,476-0003,愛知県東海市荒尾町リの割235-3,136.90304,35.042857,0000-00-00,0000-00-00,0,3000811 -3000812,3000812,新日鉄前,シンニッテツマエ,SHIN NITTETSU-MAE,SHIN NITTETSU-MAE,新日铁前,신닛테쓰마에,08,,,,,30008,23,476-0015,愛知県東海市東海町2-6-4,136.899491,35.035161,0000-00-00,0000-00-00,0,3000812 -3000813,3000813,太田川,オオタガワ,OTAGAWA,OTAGAWA,太田川,오타가와,09,,,,,30008,23,477-0031,愛知県東海市大田町後田52,136.892504,35.020221,0000-00-00,0000-00-00,0,3000813 -3000814,3000814,尾張横須賀,オワリヨコスカ,OWARI YOKOSUKA,OWARI YOKOSUKA,尾张横须贺,오와리요코스카,10,,,,,30008,23,477-0034,愛知県東海市養父町北反田13-2,136.885655,35.010132,0000-00-00,0000-00-00,0,3000814 -3000815,3000815,寺本,テラモト,TERAMOTO,TERAMOTO,寺本,데라모토,11,,,,,30008,23,478-0001,愛知県知多市八幡字西水代135-2,136.875498,35.000191,0000-00-00,0000-00-00,0,3000815 -3000816,3000816,朝倉,アサクラ,ASAKURA,ASAKURA,朝仓,아사쿠라,12,,,,,30008,23,478-0047,愛知県知多市緑町25-8,136.863419,34.993858,0000-00-00,0000-00-00,0,3000816 -3000817,3000817,古見,コミ,KOMI,KOMI,古见,고미,13,,,,,30008,23,478-0017,愛知県知多市新知字森下29-3,136.856673,34.987809,0000-00-00,0000-00-00,0,3000817 -3000818,3000818,長浦,ナガウラ,NAGAURA,NAGAURA,长浦,나가우라,14,,,,,30008,23,478-0042,愛知県知多市長浦1-400,136.847808,34.978432,0000-00-00,0000-00-00,0,3000818 -3000819,3000819,日長,ヒナガ,HINAGA,HINAGA,日长,히나가,15,,,,,30008,23,478-0041,愛知県知多市日長字森下108-1,136.832152,34.96162,0000-00-00,0000-00-00,0,3000819 -3000820,3000820,新舞子,シンマイコ,SHIN MAIKO,SHIN MAIKO,新舞子,신마이코,16,,,,,30008,23,478-0036,愛知県知多市新舞子字大瀬55-1,136.828669,34.949689,0000-00-00,0000-00-00,0,3000820 -3000821,3000821,大野町,オオノマチ,ONOMACHI,ONOMACHI,大野町,오노마치,17,,,,,30008,23,479-0866,愛知県常滑市大野町5-170,136.827641,34.935441,0000-00-00,0000-00-00,0,3000821 -3000822,3000822,西ノ口,ニシノクチ,NISHINOKUCHI,NISHINOKUCHI,西之口,니시노쿠치,18,,,,,30008,23,479-0864,愛知県常滑市住吉町4丁目34番地,136.82663,34.926759,0000-00-00,0000-00-00,0,3000822 -3000823,3000823,蒲池,カバイケ,KABAIKE,KABAIKE,蒲池,가바이케,19,,,,,30008,23,479-0856,愛知県常滑市蒲池町5-105,136.825536,34.915408,0000-00-00,0000-00-00,0,3000823 -3000824,3000824,榎戸,エノキド,ENOKIDO,ENOKIDO,榎户,에노키도,20,,,,,30008,23,479-0848,愛知県常滑市港町5-208,136.82822,34.90489,0000-00-00,0000-00-00,0,3000824 -3000825,3000825,多屋,タヤ,TAYA,TAYA,多屋,다야,21,,,,,30008,23,479-0839,愛知県常滑市多屋町5-160,136.830695,34.896983,0000-00-00,0000-00-00,0,3000825 -3000826,3000701,常滑,トコナメ,TOKONAME,TOKONAME,常滑,도코나메,22,,,,,30008,23,479-0838,愛知県常滑市鯉江本町5-141,136.834992,34.891167,0000-00-00,0000-00-00,0,3000826 -3000901,3000813,太田川,オオタガワ,OTAGAWA,OTAGAWA,太田川,오타가와,,09,,,,30009,23,477-0031,愛知県東海市大田町後田52,136.892504,35.020221,0000-00-00,0000-00-00,0,3000901 -3000902,3000902,高横須賀,タカヨコスカ,TAKAYOKOSUKA,TAKAYOKOSUKA,高横须贺,다카요코스카,01,,,,,30009,23,477-0037,愛知県東海市高横須賀町松本1-3,136.893696,35.009608,0000-00-00,0000-00-00,0,3000902 -3000922,3000922,加木屋中ノ池,カギヤナカノイケ,,,加木屋中之池,KAGIYA-NAKANOIKE,02,,,,,30009,23,477-0032,愛知県東海市加木屋町唐畑46番地2,136.902583,35,2024-03-16,0000-00-00,0,3000902 -3000903,3000903,南加木屋,ミナミカギヤ,MINAMI KAGIYA,MINAMI KAGIYA,南加木屋,미나미카기야,03,,,,,30009,23,477-0032,愛知県東海市加木屋町南平井15,136.906853,34.989216,0000-00-00,0000-00-00,0,3000903 -3000904,3000904,八幡新田,ヤワタシンデン,YAWATA-SHINDEN,YAWATA-SHINDEN,八幡新田,야와타신덴,04,,,,,30009,23,477-0032,愛知県東海市加木屋町陀々法師43-1,136.912578,34.973674,0000-00-00,0000-00-00,0,3000904 -3000905,3000905,巽ヶ丘,タツミガオカ,TATSUMIGAOKA,TATSUMIGAOKA,巽丘,다쓰미가오카,05,,,,,30009,23,478-0012,愛知県知多市巽ヶ丘3丁目134,136.915556,34.962265,0000-00-00,0000-00-00,0,3000905 -3000906,3000906,白沢,シラサワ,SHIRASAWA,SHIRASAWA,白泽,시라사와,06,,,,,30009,23,470-2201,愛知県知多郡阿久比町大字白沢字豊石山17-4,136.91537,34.955219,0000-00-00,0000-00-00,0,3000906 -3000907,3000907,坂部,サカベ,SAKABE,SAKABE,坂部,사카베,07,,,,,30009,23,470-2212,愛知県知多郡阿久比町大字卯坂字上向田35-7,136.916562,34.941579,0000-00-00,0000-00-00,0,3000907 -3000908,3000908,阿久比,アグイ,AGUI,AGUI,阿久比,아구이,08,,,,,30009,23,470-2213,愛知県知多郡阿久比町大字阿久比字千速54-3,136.918517,34.931256,0000-00-00,0000-00-00,0,3000908 -3000909,3000909,椋岡,ムクオカ,MUKUOKA,MUKUOKA,椋冈,무쿠오카,,,,,,30009,23,470-2214,愛知県知多郡阿久比町椋岡,136.920387,34.926592,0000-00-00,0000-00-00,2,3000909 -3000910,3000910,植大,ウエダイ,UEDAI,UEDAI,植大,우에다이,09,,,,,30009,23,470-2216,愛知県知多郡阿久比町植大大前田4-3,136.923448,34.917457,0000-00-00,0000-00-00,0,3000910 -3000911,3000911,半田口,ハンダグチ,HANDAGUCHI,HANDAGUCHI,半田口,한다구치,10,,,,,30009,23,475-0961,愛知県半田市岩滑中町2-150,136.925462,34.909111,0000-00-00,0000-00-00,0,3000911 -3000912,3000912,住吉町,スミヨシチョウ,SUMIYOSHICHO,SUMIYOSHICHO,住吉町,스미요시초,11,,,,,30009,23,475-0902,愛知県半田市宮路町156-2,136.925684,34.902042,0000-00-00,0000-00-00,0,3000912 -3000913,3000913,知多半田,チタハンダ,CHITA HANDA,CHITA HANDA,知多半田,지타한다,12,,,,,30009,23,475-0857,愛知県半田市広小路町128-1,136.925954,34.893931,0000-00-00,0000-00-00,0,3000913 -3000914,3000914,成岩,ナラワ,NARAWA,NARAWA,成岩,나라와,13,,,,,30009,23,475-0846,愛知県半田市栄町3-4,136.921879,34.886209,0000-00-00,0000-00-00,0,3000914 -3000915,3000915,青山,アオヤマ,AOYAMA,AOYAMA,青山,아오야마,14,,,,,30009,23,475-0837,愛知県半田市有楽町4-6,136.917,34.878132,0000-00-00,0000-00-00,0,3000915 -3000916,3000916,上ゲ,アゲ,AGE,AGE,上个,아게,15,,,,,30009,23,470-2339,愛知県知多郡武豊町字下門23-5,136.916403,34.858389,0000-00-00,0000-00-00,0,3000916 -3000917,3000917,知多武豊,チタタケトヨ,CHITA TAKETOYO,CHITA TAKETOYO,知多武丰,지타타케토요,16,,,,,30009,23,470-2347,愛知県知多郡武豊町字道崎43-8,136.916439,34.850732,0000-00-00,0000-00-00,0,3000917 -3000918,3000918,富貴,フキ,FUKI,FUKI,富贵,후키,17,,,,,30009,23,470-2531,愛知県知多郡武豊町大字冨貴外前田5-5,136.917043,34.828823,0000-00-00,0000-00-00,0,3000918 -3000919,3000919,布土,フット,FUTTO,FUTTO,布土,훗토,,,,,,30009,23,470-2401,愛知県知多郡美浜町大字布土,136.916371,34.810384,0000-00-00,0000-00-00,2,3000919 -3000920,3000920,河和口,コウワグチ,KOWAGUCHI,KOWAGUCHI,河和口,고와구치,18,,,,,30009,23,470-2401,愛知県知多郡美浜町大字布土字中平井33-1,136.918618,34.797805,0000-00-00,0000-00-00,0,3000920 -3000921,3000921,河和,コウワ,KOWA,KOWA,河和,고와,19,,,,,30009,23,470-2406,愛知県知多郡美浜町大字河和字北田面5-1,136.912528,34.777771,0000-00-00,0000-00-00,0,3000921 -3001001,3000918,富貴,フキ,FUKI,FUKI,富贵,후키,17,,,,,30010,23,470-2531,愛知県知多郡武豊町大字冨貴外前田5-5,136.917043,34.828823,0000-00-00,0000-00-00,0,3001001 -3001002,3001002,上野間,カミノマ,KAMI NOMA,KAMI NOMA,上野间,가미노마,20,,,,,30010,23,470-3231,愛知県知多郡美浜町大字上野間字小手廻間2-1,136.866854,34.807284,0000-00-00,0000-00-00,0,3001002 -3001003,3001003,美浜緑苑,ミハマリョクエン,MIHAMA-RYOKUEN,MIHAMA-RYOKUEN,美滨绿苑,미하마료쿠엔,21,,,,,30010,23,470-3233,愛知県知多郡美浜町大字奥田字笑廻間20-3,136.863063,34.80028,0000-00-00,0000-00-00,0,3001003 -3001004,3001004,知多奥田,チタオクダ,CHITA OKUDA,CHITA OKUDA,知多奥田,지타오쿠다,22,,,,,30010,23,470-3233,愛知県知多郡美浜町大字奥田字森越70-3,136.864488,34.787617,0000-00-00,0000-00-00,0,3001004 -3001005,3001005,野間,ノマ,NOMA,NOMA,野间,노마,23,,,,,30010,23,470-3235,愛知県知多郡美浜町大字野間字新大町168-2,136.860683,34.7723,0000-00-00,0000-00-00,0,3001005 -3001006,3001006,内海,ウツミ,UTSUMI,UTSUMI,内海,우쓰미,24,,,,,30010,23,470-3321,愛知県知多郡南知多町大字内海字先苅171-4,136.875544,34.744631,0000-00-00,0000-00-00,0,3001006 -3001101,3000807,大江,オオエ,OE,OE,大江,오에,,03,,,,30011,23,457-0836,愛知県名古屋市南区加福本通2-8-1,136.912758,35.093258,0000-00-00,0000-00-00,0,3001101 -3001102,3001102,東名古屋港,ヒガシナゴヤコウ,HIGASHI NAGOYAKO,HIGASHI NAGOYAKO,东名古屋港,히가시나고야코,01,,,,,30011,23,455-0024,愛知県名古屋市港区大江町9-9,136.899255,35.089091,0000-00-00,0000-00-00,0,3001102 -3001201,3001201,栄町,サカエマチ,SAKAEMACHI,SAKAEMACHI,荣町,사카에마치,01,,,,,30012,23,461-0005,愛知県名古屋市東区東桜1-12,136.908962,35.170567,0000-00-00,0000-00-00,0,3001201 -3001202,3001202,東大手,ヒガシオオテ,HIGASHI OTE,HIGASHI OTE,东大手,히가시오테,02,,,,,30012,23,460-0001,愛知県名古屋市中区三の丸4-17,136.908376,35.183727,0000-00-00,0000-00-00,0,3001202 -3001203,3001203,清水,シミズ,SHIMIZU,SHIMIZU,清水,시미즈,03,,,,,30012,23,462-0844,愛知県名古屋市北区清水2-5-1,136.913814,35.187152,0000-00-00,0000-00-00,0,3001203 -3001204,3001204,尼ヶ坂,アマガサカ,AGAMASAKA,AGAMASAKA,尼坂,아마가사카,04,,,,,30012,23,462-0837,愛知県名古屋市北区大杉1丁目20-1,136.91928,35.187957,0000-00-00,0000-00-00,0,3001204 -3001205,3001205,森下,モリシタ,MORISHITA,MORISHITA,森下,모리시타,05,,,,,30012,23,461-0025,愛知県名古屋市東区徳川2-25,136.929657,35.188299,0000-00-00,0000-00-00,0,3001205 -3001206,1141105,大曽根,オオゾネ,OZONE,OZONE,大曾根,오조네,06,,,,,30012,23,461-0022,愛知県名古屋市東区東大曽根町,136.936855,35.1916,0000-00-00,0000-00-00,0,3001206 -3001207,3001207,矢田,ヤダ,YADA,YADA,矢田,야다,07,,,,,30012,23,461-0043,愛知県名古屋市東区大幸1-10,136.947802,35.193699,0000-00-00,0000-00-00,0,3001207 -3001208,3001208,守山自衛隊前,モリヤマジエイタイマエ,MORIYAMA-JIEITAI-MAE,MORIYAMA-JIEITAI-MAE,守山自卫队前,모리야마지에이타이마에,08,,,,,30012,23,463-0065,愛知県名古屋市守山区廿軒家5-7,136.957843,35.196258,0000-00-00,0000-00-00,0,3001208 -3001209,3001209,瓢箪山,ヒョウタンヤマ,HYOTAN-YAMA,HYOTAN-YAMA,瓢箪山,효탄야마,09,,,,,30012,23,463-0062,愛知県名古屋市守山区長栄15-17,136.965048,35.197222,0000-00-00,0000-00-00,0,3001209 -3001210,3001210,小幡,オバタ,OBATA,OBATA,小幡,오바타,10,,,,,30012,23,463-0048,愛知県名古屋市守山区小幡南1-21-21,136.975769,35.200216,0000-00-00,0000-00-00,0,3001210 -3001211,3001211,喜多山,キタヤマ,KITAYAMA,KITAYAMA,喜多山,기타야마,11,,,,,30012,23,463-0011,愛知県名古屋市守山区小幡字二軒家2610-13,136.987735,35.205099,0000-00-00,0000-00-00,0,3001211 -3001212,3001212,大森・金城学院前,オオモリ・キンジョウガクインマエ,OMORI・KINJOGAKUIN-MAE,OMORI・KINJOGAKUIN-MAE,大森·金城学院前,오모리 · 긴조가쿠인마에,12,,,,,30012,23,463-0021,愛知県名古屋市守山区大森3-301,136.996465,35.206934,0000-00-00,0000-00-00,0,3001212 -3001213,3001213,印場,インバ,IMBA,IMBA,印场,인바,13,,,,,30012,23,488-0841,愛知県尾張旭市印場元町北山4409-3,137.011132,35.211085,0000-00-00,0000-00-00,0,3001213 -3001214,3001214,旭前,アサヒマエ,ASAHI-MAE,ASAHI-MAE,旭前,아사히마에,14,,,,,30012,23,488-0855,愛知県尾張旭市旭前町五丁目4-5,137.019706,35.214162,0000-00-00,0000-00-00,0,3001214 -3001215,3001215,尾張旭,オワリアサヒ,OWARI ASAHI,OWARI ASAHI,尾张旭,오와리아사히,15,,,,,30012,23,488-0801,愛知県尾張旭市東大道町原田2591-3,137.036393,35.216743,0000-00-00,0000-00-00,0,3001215 -3001216,3001216,三郷,サンゴウ,SANGO,SANGO,三乡,산고,16,,,,,30012,23,488-0015,愛知県尾張旭市三郷町栄92-1,137.052352,35.216258,0000-00-00,0000-00-00,0,3001216 -3001217,3001217,水野,ミズノ,MIZUNO,MIZUNO,水野,미즈노,17,,,,,30012,23,489-0917,愛知県瀬戸市效範町2-75,137.069659,35.224296,0000-00-00,0000-00-00,0,3001217 -3001218,3001218,新瀬戸,シンセト,SHIN SETO,SHIN SETO,新濑户,신세토,18,,,,,30012,23,489-0066,愛知県瀬戸市東横山町62,137.077639,35.225485,0000-00-00,0000-00-00,0,3001218 -3001219,3001219,瀬戸市役所前,セトシヤクショマエ,SETO-SHIYAKUSHO-MAE,SETO-SHIYAKUSHO-MAE,濑户市役所前,세토시야쿠쇼마에,19,,,,,30012,23,489-0065,愛知県瀬戸市西追分町2,137.084177,35.224986,0000-00-00,0000-00-00,0,3001219 -3001220,3001220,尾張瀬戸,オワリセト,OWARI SETO,OWARI SETO,尾张濑户,오와리세토,20,,,,,30012,23,489-0811,愛知県瀬戸市山脇町7,137.09727,35.225094,0000-00-00,0000-00-00,0,3001220 -3001301,3000142,須ヶ口,スカグチ,SUKAGUCHI,SUKAGUCHI,须口,스카구치,,42,,,,30013,23,452-0912,愛知県清須市須ヶ口駅前一丁目1,136.846229,35.198684,0000-00-00,0000-00-00,0,3001301 -3001302,3001302,甚目寺,ジモクジ,JIMOKUJI,JIMOKUJI,甚目寺,지모쿠지,01,,,,,30013,23,490-1111,愛知県あま市甚目寺郷浦,136.825492,35.195953,0000-00-00,0000-00-00,0,3001302 -3001303,3001303,七宝,シッポウ,SHIPPO,SHIPPO,七宝,싯포,02,,,,,30013,23,497-0001,愛知県あま市七宝町沖之島返上地82-1,136.806413,35.195775,0000-00-00,0000-00-00,0,3001303 -3001304,3001304,木田,キダ,KIDA,KIDA,木田,기다,03,,,,,30013,23,490-1222,愛知県あま市木田道下54-2,136.787865,35.195328,0000-00-00,0000-00-00,0,3001304 -3001305,3001305,青塚,アオツカ,AOTSUKA,AOTSUKA,青冢,아오쓰카,04,,,,,30013,23,496-0001,愛知県津島市青塚町字高畑304-4,136.76708,35.198674,0000-00-00,0000-00-00,0,3001305 -3001306,3001306,勝幡,ショバタ,SHOBATA,SHOBATA,胜幡,쇼바타,05,,,,,30013,23,496-8001,愛知県愛西市勝幡町五俵入2266-4,136.750082,35.195143,0000-00-00,0000-00-00,0,3001306 -3001307,3001307,藤浪,フジナミ,FUJINAMI,FUJINAMI,藤浪,후지나미,06,,,,,30013,23,496-8011,愛知県愛西市諏訪町中島367,136.738766,35.188911,0000-00-00,0000-00-00,0,3001307 -3001308,3001308,津島,ツシマ,TSUSHIMA,TSUSHIMA,津岛,쓰시마,07,,,,,30013,23,496-0802,愛知県津島市錦町1-1,136.730995,35.177982,0000-00-00,0000-00-00,0,3001308 -3001401,1150806,弥富,ヤトミ,YATOMI,YATOMI,弥富,야토미,11,,,,,30014,23,498-0028,愛知県弥富市鯏浦町中六,136.725664,35.114026,0000-00-00,0000-00-00,0,3001401 -3001402,3001402,弥富口,ヤトミグチ,YATOMIGUCHI,YATOMIGUCHI,弥富口,야토미구치,,,,,,30014,23,498-0023,愛知県弥富市鯏浦町,136.714064,35.120647,0000-00-00,0000-00-00,2,3001402 -3001403,3001403,五ノ三,ゴノサン,GONOSAN,GONOSAN,五之三,고노산,10,,,,,30014,23,498-0012,愛知県弥富市五之三町西本田27,136.711464,35.129838,0000-00-00,0000-00-00,0,3001403 -3001404,3001404,佐屋,サヤ,SAYA,SAYA,佐屋,사야,09,,,,,30014,23,496-0902,愛知県愛西市須依町佐原2277,136.716612,35.147552,0000-00-00,0000-00-00,0,3001404 -3001405,3001405,日比野,ヒビノ,HIBINO,HIBINO,日比野,히비노,08,,,,,30014,23,496-0904,愛知県愛西市柚木町東田面793番地3,136.728351,35.163258,0000-00-00,0000-00-00,0,3001405 -3001406,3001308,津島,ツシマ,TSUSHIMA,TSUSHIMA,津岛,쓰시마,07,,,,,30014,23,496-0802,愛知県津島市錦町1-1,136.730995,35.177982,0000-00-00,0000-00-00,0,3001406 -3001407,3001407,町方,マチカタ,MACHIKATA,MACHIKATA,町方,마치카타,01,,,,,30014,23,496-8014,愛知県愛西市町方町南堤外1,136.727551,35.18898,0000-00-00,0000-00-00,0,3001407 -3001408,3001408,六輪,ロクワ,ROKUWA,ROKUWA,六轮,로쿠와,02,,,,,30014,23,490-1323,愛知県稲沢市平和町須ケ脇426,136.729306,35.202395,0000-00-00,0000-00-00,0,3001408 -3001409,3001409,渕高,フチダカ,FUCHIDAKA,FUCHIDAKA,渕高,후치다카,03,,,,,30014,23,496-8018,愛知県愛西市渕高町五ノ割40-4,136.727256,35.213944,0000-00-00,0000-00-00,0,3001409 -3001410,3001410,丸渕,マルブチ,MARUBUCHI,MARUBUCHI,丸渕,마루부치,04,,,,,30014,23,495-0021,愛知県稲沢市祖父江町三丸渕八嶋20-3,136.728991,35.222635,0000-00-00,0000-00-00,0,3001410 -3001411,3001411,上丸渕,カミマルブチ,KAMI MARUBUCHI,KAMI MARUBUCHI,上丸渕,가미마루부치,05,,,,,30014,23,495-0021,愛知県稲沢市祖父江町三丸渕郷前48-3,136.732521,35.233809,0000-00-00,0000-00-00,0,3001411 -3001412,3001412,森上,モリカミ,MORIKAMI,MORIKAMI,森上,모리카미,06,,,,,30014,23,495-0011,愛知県稲沢市祖父江町森上本郷718-1,136.736698,35.247229,0000-00-00,0000-00-00,0,3001412 -3001413,3001413,山崎,ヤマザキ,YAMAZAKI,YAMAZAKI,山崎,야마자키,07,,,,,30014,23,495-0002,愛知県稲沢市祖父江町山崎中屋敷105-1,136.739372,35.256548,0000-00-00,0000-00-00,0,3001413 -3001414,3001414,玉野,タマノ,TAMANO,TAMANO,玉野,다마노,08,,,,,30014,23,494-0013,愛知県一宮市玉野字河瑞19,136.747982,35.266327,0000-00-00,0000-00-00,0,3001414 -3001415,3001415,萩原,ハギワラ,HAGIWARA,HAGIWARA,萩原,하기와라,09,,,,,30014,23,491-0376,愛知県一宮市萩原町串作字荒神田面1414,136.757703,35.277157,0000-00-00,0000-00-00,0,3001415 -3001416,3001416,二子,フタゴ,FUTAGO,FUTAGO,二子,후타고,10,,,,,30014,23,491-0353,愛知県一宮市萩原町萩原字大日2903-3,136.766268,35.283986,0000-00-00,0000-00-00,0,3001416 -3001417,3001417,苅安賀,カリヤスカ,KARIYASUKA,KARIYASUKA,苅安贺,가리야스카,11,,,,,30014,23,491-0934,愛知県一宮市大和町苅安賀字上西之杁130,136.778275,35.287194,0000-00-00,0000-00-00,0,3001417 -3001418,3001418,観音寺,カンノンジ,KANNONJI,KANNONJI,观音寺,간논지,12,,,,,30014,23,491-0916,愛知県一宮市観音寺2-5-2,136.786191,35.289716,0000-00-00,0000-00-00,0,3001418 -3001419,1150237,名鉄一宮,メイテツイチノミヤ,MEITETSU ICHINOMIYA,MEITETSU ICHINOMIYA,名铁一宫,메이테쓰이치노미야,,,50,,,30014,23,491-0912,愛知県一宮市新生1丁目,136.797225,35.30154,0000-00-00,0000-00-00,0,3001419 -3001420,3001420,西一宮,ニシイチノミヤ,NISHI ICHINOMIYA,NISHI ICHINOMIYA,西一宫,니시이치노미야,,21,,,,30014,23,491-0046,愛知県一宮市天王1-3-1,136.791948,35.307603,0000-00-00,0000-00-00,0,3001420 -3001421,3001421,開明,カイメイ,KAIMEI,KAIMEI,开明,가이메이,,22,,,,30014,23,494-0001,愛知県一宮市開明名古羅47-1,136.7741,35.31926,0000-00-00,0000-00-00,0,3001421 -3001422,3001422,奥町,オクチョウ,OKUCHO,OKUCHO,奥町,오쿠초,,23,,,,30014,23,491-0201,愛知県一宮市奥町字南目草30-1,136.761092,35.32434,0000-00-00,0000-00-00,0,3001422 -3001423,3001423,玉ノ井,タマノイ,TAMANOI,TAMANOI,玉之井,다마노이,,24,,,,30014,23,493-0004,愛知県一宮市木曽川町玉ノ井古井田140,136.757968,35.334887,0000-00-00,0000-00-00,0,3001423 -3001501,1141101,名鉄名古屋,メイテツナゴヤ,MEITETSU NAGOYA,MEITETSU NAGOYA,名铁名古屋,메이테쓰 나고야,,36,,,,30015,23,453-0002,愛知県名古屋市中村区名駅一丁目2-1,136.884187,35.169252,0000-00-00,0000-00-00,0,3001501 -3001502,3000137,栄生,サコウ,SAKO,SAKO,荣生,사코,,37,,,,30015,23,451-0000,愛知県名古屋市西区藤ノ宮通3丁目,136.873051,35.183687,0000-00-00,0000-00-00,0,3001502 -3001503,3000138,東枇杷島,ヒガシビワジマ,HIGASHI BIWAJIMA,HIGASHI BIWAJIMA,东枇杷岛,히가시비와지마,,38,,,,30015,23,451-0053,愛知県名古屋市西区枇杷島通3丁目,136.870168,35.189808,0000-00-00,0000-00-00,0,3001503 -3001504,3001504,下小田井,シモオタイ,SHIMO OTAI,SHIMO OTAI,下小田井,시모오타이,01,,,,,30015,23,452-0022,愛知県清須市西枇杷島町上新,136.870638,35.201878,0000-00-00,0000-00-00,0,3001504 -3001505,3001505,中小田井,ナカオタイ,NAKA OTAI,NAKA OTAI,中小田井,나카오타이,02,,,,,30015,23,452-0822,愛知県名古屋市西区中小田井,136.876772,35.214647,0000-00-00,0000-00-00,0,3001505 -3001506,3001506,上小田井,カミオタイ,KAMI OTAI,KAMI OTAI,上小田井,가미오타이,03,,,,,30015,23,452-0816,愛知県名古屋市西区貴生町,136.876941,35.223482,0000-00-00,0000-00-00,0,3001506 -3001507,3001507,西春,ニシハル,NISHIHARU,NISHIHARU,西春,니시하루,04,,,,,30015,23,481-0041,愛知県北名古屋市九之坪南町,136.871235,35.244627,0000-00-00,0000-00-00,0,3001507 -3001508,3001508,徳重・名古屋芸大,トクシゲ・ナゴヤゲイダイ,TOKUSHIGE・NAGOYAGEIDAI,TOKUSHIGE・NAGOYAGEIDAI,德重·名古屋艺大,도쿠시게 · 나고야게이다이,05,,,,,30015,23,481-0038,愛知県北名古屋市徳重大畑,136.873384,35.256045,0000-00-00,0000-00-00,0,3001508 -3001509,3001509,大山寺,タイサンジ,TAISANJI,TAISANJI,大山寺,다이산지,06,,,,,30015,23,482-0014,愛知県岩倉市大山寺町東出,136.874748,35.263508,0000-00-00,0000-00-00,0,3001509 -3001510,3001510,岩倉,イワクラ,IWAKURA,IWAKURA,岩仓,이와쿠라,07,,,,,30015,23,482-0043,愛知県岩倉市本町1丁目,136.873511,35.277972,0000-00-00,0000-00-00,0,3001510 -3001511,3001511,石仏,イシボトケ,ISHIBOTOKE,ISHIBOTOKE,石佛,이시보토케,08,,,,,30015,23,482-0034,愛知県岩倉市石仏町,136.871144,35.295545,0000-00-00,0000-00-00,0,3001511 -3001512,3001512,布袋,ホテイ,HOTEI,HOTEI,布袋,호테이,09,,,,,30015,23,483-8141,愛知県江南市布袋町西布,136.872987,35.317135,0000-00-00,0000-00-00,0,3001512 -3001513,3001513,江南,コウナン,KONAN,KONAN,江南,고난,10,,,,,30015,23,483-8213,愛知県江南市古知野町字朝日,136.872109,35.33475,0000-00-00,0000-00-00,0,3001513 -3001514,3001514,柏森,カシワモリ,KASHIWAMORI,KASHIWAMORI,柏森,가시와모리,11,,,,,30015,23,480-0103,愛知県丹羽郡扶桑町柏森天神,136.900181,35.344807,0000-00-00,0000-00-00,0,3001514 -3001515,3001515,扶桑,フソウ,FUSO,FUSO,扶桑,후소,12,,,,,30015,23,480-0102,愛知県丹羽郡扶桑町大字高雄字下山,136.91597,35.359557,0000-00-00,0000-00-00,0,3001515 -3001516,3001516,木津用水,コツヨウスイ,KOTSUYOSUI,KOTSUYOSUI,木津用水,고쓰요스이,13,,,,,30015,23,480-0102,愛知県丹羽郡扶桑町大字高雄字米の山,136.925977,35.366914,0000-00-00,0000-00-00,0,3001516 -3001517,3001517,犬山口,イヌヤマグチ,INUYAMAGUCHI,INUYAMAGUCHI,犬山口,이누야마구치,14,,,,,30015,23,484-0081,愛知県犬山市大字犬山字末友,136.939945,35.374212,0000-00-00,0000-00-00,0,3001517 -3001518,3001518,犬山,イヌヤマ,INUYAMA,INUYAMA,犬山,이누야마,15,,,,,30015,23,484-0081,愛知県犬山市大字犬山字富士見町,136.945536,35.379871,0000-00-00,0000-00-00,0,3001518 -3001519,3001519,犬山遊園,イヌヤマユウエン,INUYAMAYUEN,INUYAMAYUEN,犬山游园,이누야마유엔,16,,,,,30015,23,484-0081,愛知県犬山市大字犬山字端泉寺,136.946894,35.390331,0000-00-00,0000-00-00,0,3001519 -3001520,1141606,新鵜沼,シンウヌマ,SHIN UNUMA,SHIN UNUMA,新鹈沼,신우누마,17,,,,,30015,21,509-0125,岐阜県各務原市鵜沼南町,136.944314,35.396799,0000-00-00,0000-00-00,0,3001520 -3001601,1141606,新鵜沼,シンウヌマ,SHIN UNUMA,SHIN UNUMA,新鹈沼,신우누마,,17,,,,30016,21,509-0125,岐阜県各務原市鵜沼南町,136.944314,35.396799,0000-00-00,0000-00-00,0,3001601 -3001602,3001602,鵜沼宿,ウヌマジュク,UNUMAJUKU,UNUMAJUKU,鹈沼宿,우누마주쿠,,01,,,,30016,21,509-0132,岐阜県各務原市鵜沼西町4丁目,136.932567,35.400015,0000-00-00,0000-00-00,0,3001602 -3001603,3001603,羽場,ハバ,HABA,HABA,羽场,하바,,02,,,,30016,21,509-0135,岐阜県各務原市鵜沼羽場町6丁目,136.921535,35.40119,0000-00-00,0000-00-00,0,3001603 -3001604,3001604,苧ヶ瀬,オガセ,OGASE,OGASE,苎濑,오가세,,03,,,,30016,21,509-0141,岐阜県各務原市鵜沼各務原町五丁目250,136.912266,35.403273,0000-00-00,0000-00-00,0,3001604 -3001605,1141605,名電各務原,メイデンカカミガハラ,MEIDEN KAKAMIGAHARA,MEIDEN KAKAMIGAHARA,名电各务原,메이덴카카미가하라,,04,,,,30016,21,509-0141,岐阜県各務原市鵜沼各務原町2丁目,136.900981,35.402518,0000-00-00,0000-00-00,0,3001605 -3001606,3001606,二十軒,ニジッケン,NIJIKKEN,NIJIKKEN,二十轩,니짓켄,,05,,,,30016,21,509-0146,岐阜県各務原市鵜沼三ツ池町3丁目,136.889307,35.400098,0000-00-00,0000-00-00,0,3001606 -3001607,3001607,三柿野,ミカキノ,MIKAKINO,MIKAKINO,三柿野,미카키노,,06,,,,30016,21,504-0904,岐阜県各務原市蘇原三柿野町字往来添,136.876084,35.400156,0000-00-00,0000-00-00,0,3001607 -3001608,3001608,六軒,ロッケン,ROKKEN,ROKKEN,六轩,롯켄,,07,,,,30016,21,504-0905,岐阜県各務原市蘇原六軒町4丁目,136.861554,35.40105,0000-00-00,0000-00-00,0,3001608 -3001609,3001609,各務原市役所前,カカミガハラシヤクショマエ,KAKAMIGAHARA-SHIYAKUSHO-MAE,KAKAMIGAHARA-SHIYAKUSHO-MAE,各务原市役所前,가카미가하라시야쿠쇼마에,,08,,,,30016,21,504-0912,岐阜県各務原市那加桜町2丁目,136.847067,35.400869,0000-00-00,0000-00-00,0,3001609 -3001610,3001610,市民公園前,シミンコウエンマエ,SHIMINKOEN-MAE,SHIMINKOEN-MAE,市民公园前,시민코엔마에,,09,,,,30016,21,504-0911,岐阜県各務原市那加門前町4丁目,136.841829,35.400572,0000-00-00,0000-00-00,0,3001610 -3001611,1141603,新那加,シンナカ,SHIN NAKA,SHIN NAKA,新那加,신나카,,10,,,,30016,21,504-0961,岐阜県各務原市那加新那加町,136.83386,35.400097,0000-00-00,0000-00-00,0,3001611 -3001612,3001612,新加納,シンカノウ,SHIN KANO,SHIN KANO,新加纳,신카노,,11,,,,30016,21,504-0034,岐阜県各務原市那加浜見町1丁目,136.824414,35.39938,0000-00-00,0000-00-00,0,3001612 -3001613,3001613,高田橋,タカダバシ,TAKADA-BASHI,TAKADA-BASHI,高田桥,다카다바시,,12,,,,30016,21,500-8224,岐阜県岐阜市高田2丁目,136.811488,35.398383,0000-00-00,0000-00-00,0,3001613 -3001614,3001614,手力,テヂカラ,TEJIKARA,TEJIKARA,手力,데지카라,,13,,,,30016,21,500-8233,岐阜県岐阜市蔵前7丁目,136.804472,35.398269,0000-00-00,0000-00-00,0,3001614 -3001615,3001615,切通,キリドオシ,KIRIDOSHI,KIRIDOSHI,切通,기리도시,,14,,,,30016,21,500-0000,岐阜県岐阜市南長森切通,136.79564,35.400257,0000-00-00,0000-00-00,0,3001615 -3001616,3001616,細畑,ホソバタ,HOSOBATA,HOSOBATA,细畑,호소바타,,15,,,,30016,21,500-8247,岐阜県岐阜市長森細畑,136.785141,35.401637,0000-00-00,0000-00-00,0,3001616 -3001617,3001617,田神,タガミ,TAGAMI,TAGAMI,田神,다가미,,16,,,,30016,21,500-8152,岐阜県岐阜市入舟町1丁目,136.772189,35.411261,0000-00-00,0000-00-00,0,3001617 -3001618,3000160,名鉄岐阜,メイテツギフ,MEITETSU GIFU,MEITETSU GIFU,名铁岐阜,메이테쓰기후,,,60,,,30016,21,500-8833,岐阜県岐阜市神田町9丁目,136.760602,35.41163,0000-00-00,0000-00-00,0,3001618 -3001701,3001518,犬山,イヌヤマ,INUYAMA,INUYAMA,犬山,이누야마,,15,,,,30017,23,484-0081,愛知県犬山市大字犬山字富士見町,136.945536,35.379871,0000-00-00,0000-00-00,0,3001701 -3001702,3001702,富岡前,トミオカマエ,TOMIOKA-OMAE,TOMIOKA-OMAE,富冈前,도미오카마에,01,,,,,30017,23,484-0092,愛知県犬山市大字富岡字株池127-3,136.962112,35.379508,0000-00-00,0000-00-00,0,3001702 -3001703,3001703,善師野,ゼンジノ,ZENJINO,ZENJINO,善师野,젠지노,02,,,,,30017,23,484-0003,愛知県犬山市大字善師野字真土5-2,136.980027,35.389744,0000-00-00,0000-00-00,0,3001703 -3001704,3001704,西可児,ニシカニ,NISHI KANI,NISHI KANI,西可儿,니시카니,03,,,,,30017,21,509-0256,岐阜県可児市東帷子334-3,137.010616,35.404685,0000-00-00,0000-00-00,0,3001704 -3001705,3001705,可児川,カニガワ,KANIGAWA,KANIGAWA,可儿川,가니가와,04,,,,,30017,21,509-0206,岐阜県可児市土田字北割田1356-7,137.01847,35.41812,0000-00-00,0000-00-00,0,3001705 -3001706,3001706,日本ライン今渡,ニホンラインイマワタリ,NIHONRAIN-IMAWATARI,NIHONRAIN-IMAWATARI,日本莱茵今渡,니혼라인이마와타리,05,,,,,30017,21,509-0207,岐阜県可児市今渡字野市場406-2,137.036818,35.432302,0000-00-00,0000-00-00,0,3001706 -3001707,1150706,新可児,シンカニ,SHIN KANI,SHIN KANI,新可儿,신카니,06,,,,,30017,21,509-0203,岐阜県可児市下恵土字前田1225-1,137.055622,35.423282,0000-00-00,0000-00-00,0,3001707 -3001708,3001708,明智,アケチ,AKECHI,AKECHI,明智,아케치,07,,,,,30017,21,509-0217,岐阜県可児市平貝戸川田551,137.087295,35.433208,0000-00-00,0000-00-00,0,3001708 -3001709,3001709,顔戸,ゴウド,GODO,GODO,颜户,고도,08,,,,,30017,21,505-0122,岐阜県可児郡御嵩町大字顔戸山之神318-3,137.105154,35.434522,0000-00-00,0000-00-00,0,3001709 -3001710,3001710,御嵩口,ミタケグチ,MITAKEGUCHI,MITAKEGUCHI,御嵩口,미타케구치,09,,,,,30017,21,505-0121,岐阜県可児郡御嵩町中字茶園原473,137.121741,35.431281,0000-00-00,0000-00-00,0,3001710 -3001711,3001711,御嵩,ミタケ,MITAKE,MITAKE,御嵩,미타케,10,,,,,30017,21,505-0121,岐阜県可児郡御嵩町中字西之門2302-2,137.127527,35.429723,0000-00-00,0000-00-00,0,3001711 -3001801,3001801,上飯田,カミイイダ,KAMI IIDA,KAMI IIDA,上饭田,가미이다,13,15,,,,30018,23,462-0808,愛知県名古屋市北区上飯田通2-40,136.929642,35.203845,0000-00-00,0000-00-00,0,3001801 -3001802,3001802,味鋺,アジマ,AJIMA,AJIMA,味鋺,아지마,12,,,,,30018,23,462-0013,愛知県名古屋市北区東味鋺2-123,136.936113,35.222478,0000-00-00,0000-00-00,0,3001802 -3001803,3001803,味美,アジヨシ,AJIYOSHI,AJIYOSHI,味美,아지요시,11,,,,,30018,23,486-0958,愛知県春日井市西本町,136.937134,35.235209,0000-00-00,0000-00-00,0,3001803 -3001804,3001804,春日井,カスガイ,KASUGAI,KASUGAI,春日井,가스가이,10,,,,,30018,23,486-0963,愛知県春日井市大字春日井町字土合,136.936228,35.25035,0000-00-00,0000-00-00,0,3001804 -3001805,3001805,牛山,ウシヤマ,USHIYAMA,USHIYAMA,牛山,우시야마,09,,,,,30018,23,486-0901,愛知県春日井市牛山町字下荒井951,136.931356,35.264014,0000-00-00,0000-00-00,0,3001805 -3001806,3001806,間内,マナイ,MANAI,MANAI,间内,마나이,08,,,,,30018,23,486-0901,愛知県春日井市牛山町字間内281-3,136.9312,35.271585,0000-00-00,0000-00-00,0,3001806 -3001807,3001807,小牧口,コマキグチ,KOMAKIGUCHI,KOMAKIGUCHI,小牧口,고마키구치,07,,,,,30018,23,485-0023,愛知県小牧市北外山字大畔,136.927675,35.281717,0000-00-00,0000-00-00,0,3001807 -3001808,3001808,小牧,コマキ,KOMAKI,KOMAKI,小牧,고마키,06,,,,,30018,23,485-0029,愛知県小牧市中央1丁目,136.928461,35.28915,0000-00-00,0000-00-00,0,3001808 -3001809,3001809,小牧原,コマキハラ,KOMAKIHARA,KOMAKIHARA,小牧原,고마키하라,05,,,,,30018,23,485-0012,愛知県小牧市小牧原新田字南原,136.935836,35.300145,0000-00-00,0000-00-00,0,3001809 -3001810,3001810,味岡,アジオカ,AJIOKA,AJIOKA,味冈,아지오카,04,,,,,30018,23,485-0011,愛知県小牧市岩崎143,136.940304,35.309301,0000-00-00,0000-00-00,0,3001810 -3001811,3001811,田県神社前,タガタジンジャマエ,TAGATAJINJA-MAE,TAGATAJINJA-MAE,田县神社前,다가타진자마에,03,,,,,30018,23,485-0003,愛知県小牧市久保一色字佃1052-2,136.943675,35.317422,0000-00-00,0000-00-00,0,3001811 -3001812,3001812,楽田,ガクデン,GAKUDEN,GAKUDEN,乐田,가쿠덴,02,,,,,30018,23,484-0861,愛知県犬山市若宮126-2,136.950101,35.330548,0000-00-00,0000-00-00,0,3001812 -3001813,3001813,羽黒,ハグロ,HAGURO,HAGURO,羽黑,하구로,01,,,,,30018,23,484-0894,愛知県犬山市羽黒字古市場75-1,136.952486,35.351519,0000-00-00,0000-00-00,0,3001813 -3001814,3001518,犬山,イヌヤマ,INUYAMA,INUYAMA,犬山,이누야마,,15,,,,30018,23,484-0081,愛知県犬山市大字犬山字富士見町,136.945536,35.379871,0000-00-00,0000-00-00,0,3001814 +3000101,1141301,豊橋,トヨハシ,Toyohashi,Toyohashi,丰桥,도요하시,01,,,,,30001,23,440-0075,愛知県豊橋市花田町西宿,137.382128,34.762734,0000-00-00,0000-00-00,0,3000101 +3000102,3000102,伊奈,イナ,Ina,Ina,伊奈,이나,02,,,,,30001,23,441-0105,愛知県豊川市伊奈町南山新田292-1,137.354743,34.802857,0000-00-00,0000-00-00,0,3000102 +3000103,3000103,小田渕,オダブチ,Odabuchi,Odabuchi,小田渕,오다부치,03,,,,,30001,23,442-0844,愛知県豊川市小田渕町大字卯足,137.34559,34.814739,0000-00-00,0000-00-00,0,3000103 +3000104,3000104,国府,コウ,Ko,Ko,国府,고,04,,,,,30001,23,442-0856,愛知県豊川市久保町葉善寺,137.328101,34.83752,0000-00-00,0000-00-00,0,3000104 +3000105,3000105,御油,ゴユ,Goyu,Goyu,御油,고유,05,,,,,30001,23,441-0211,愛知県豊川市御油町西井領,137.321443,34.846113,0000-00-00,0000-00-00,0,3000105 +3000106,3000106,名電赤坂,メイデンアカサカ,Meiden Akasaka,Meiden Akasaka,名电赤坂,메이덴아카사카,06,,,,,30001,23,441-0202,愛知県豊川市赤坂町松本,137.311152,34.859331,0000-00-00,0000-00-00,0,3000106 +3000107,3000107,名電長沢,メイデンナガサワ,Meiden Nagasawa,Meiden Nagasawa,名电长泽,메이덴나가사와,07,,,,,30001,23,441-0203,愛知県豊川市長沢町音羽,137.288298,34.871623,0000-00-00,0000-00-00,0,3000107 +3000108,3000108,本宿,モトジュク,Motojuku,Motojuku,本宿,모토주쿠,08,,,,,30001,23,444-3505,愛知県岡崎市本宿町一里山,137.260014,34.893025,0000-00-00,0000-00-00,0,3000108 +3000109,3000109,名電山中,メイデンヤマナカ,Meiden Yamanaka,Meiden Yamanaka,名电山中,메이덴야마나카,09,,,,,30001,23,444-3511,愛知県岡崎市舞木町山中町,137.242829,34.899474,0000-00-00,0000-00-00,0,3000109 +3000110,3000110,藤川,フジカワ,Fujikawa,Fujikawa,藤川,후지카와,10,,,,,30001,23,444-3523,愛知県岡崎市藤川町字松本,137.218428,34.913304,0000-00-00,0000-00-00,0,3000110 +3000111,3000111,美合,ミアイ,Miai,Miai,美合,미아이,11,,,,,30001,23,444-0802,愛知県岡崎市美合町一ノ久保,137.196317,34.923763,0000-00-00,0000-00-00,0,3000111 +3000112,3000112,男川,オトガワ,Otogawa,Otogawa,男川,오토가와,12,,,,,30001,23,444-0811,愛知県岡崎市大西町揚枝,137.183296,34.937461,0000-00-00,0000-00-00,0,3000112 +3000113,3000113,東岡崎,ヒガシオカザキ,Higashi Okazaki,Higashi Okazaki,东冈崎,히가시오카자키,13,,,,,30001,23,444-0860,愛知県岡崎市明大寺本町4丁目,137.167333,34.951904,0000-00-00,0000-00-00,0,3000113 +3000114,3000114,岡崎公園前,オカザキコウエンマエ,Okazakikoen-mae,Okazakikoen-mae,冈崎公园前,오카자키코엔마에,14,,,,,30001,23,444-0921,愛知県岡崎市中岡崎町,137.153309,34.954984,0000-00-00,0000-00-00,0,3000114 +3000115,3000115,矢作橋,ヤハギバシ,Yahagibashi,Yahagibashi,矢作桥,야하기바시,15,,,,,30001,23,444-0943,愛知県岡崎市矢作町字馬乗,137.139957,34.961149,0000-00-00,0000-00-00,0,3000115 +3000116,3000116,宇頭,ウトウ,Uto,Uto,宇头,우토,16,,,,,30001,23,444-0905,愛知県岡崎市宇頭町山ノ神,137.118103,34.971367,0000-00-00,0000-00-00,0,3000116 +3000117,3000117,新安城,シンアンジョウ,Shin Anjo,Shin Anjo,新安城,신안조,17,,,,,30001,23,446-0007,愛知県安城市東栄町1丁目,137.085443,34.986885,0000-00-00,0000-00-00,0,3000117 +3000118,3000118,牛田,ウシダ,Ushida,Ushida,牛田,우시다,18,,,,,30001,23,472-0003,愛知県知立市牛田,137.060946,34.999294,0000-00-00,0000-00-00,0,3000118 +3000119,3000119,知立,チリュウ,Chiryu,Chiryu,知立,지류,19,,,,,30001,23,472-0037,愛知県知立市栄2丁目,137.039722,35.006111,0000-00-00,0000-00-00,0,3000119 +3000120,3000120,一ツ木,ヒトツギ,Hitotsugi,Hitotsugi,一木,히토쓰기,20,,,,,30001,23,448-0000,愛知県刈谷市一木本郷前,137.02551,35.01367,0000-00-00,0000-00-00,0,3000120 +3000121,3000121,富士松,フジマツ,Fujimatsu,Fujimatsu,富士松,후지마쓰,21,,,,,30001,23,448-0005,愛知県刈谷市今川町下矢戸,137.016508,35.029759,0000-00-00,0000-00-00,0,3000121 +3000122,3000122,豊明,トヨアケ,Toyoake,Toyoake,丰明,도요아케,22,,,,,30001,23,470-1141,愛知県豊明市阿野町字明定,137.008161,35.041127,0000-00-00,0000-00-00,0,3000122 +3000123,3000123,前後,ゼンゴ,Zengo,Zengo,前后,젠고,23,,,,,30001,23,470-1151,愛知県豊明市前後町字大代,136.995665,35.05227,0000-00-00,0000-00-00,0,3000123 +3000124,3000124,中京競馬場前,チュウキョウケイバジョウマエ,Chukyo-keibajo-mae,Chukyo-keibajo-mae,中京竞马场前,주쿄케이바조마에,24,,,,,30001,23,458-0801,愛知県名古屋市緑区鳴海町大字境松,136.98158,35.061302,0000-00-00,0000-00-00,0,3000124 +3000125,3000125,有松,アリマツ,Arimatsu,Arimatsu,有松,아리마쓰,25,,,,,30001,23,458-0824,愛知県名古屋市緑区鳴海町有松裏,136.971084,35.067687,0000-00-00,0000-00-00,0,3000125 +3000126,3000126,左京山,サキョウヤマ,Sakyoyama,Sakyoyama,左京山,사쿄야마,26,,,,,30001,23,458-0801,愛知県名古屋市緑区鳴海町左京山,136.960301,35.070553,0000-00-00,0000-00-00,0,3000126 +3000127,3000127,鳴海,ナルミ,Narumi,Narumi,鸣海,나루미,27,,,,,30001,23,458-0831,愛知県名古屋市緑区鳴海町向田,136.950096,35.079149,0000-00-00,0000-00-00,0,3000127 +3000128,3000128,本星崎,モトホシザキ,Moto Hoshizaki,Moto Hoshizaki,本星崎,모토호시자키,28,,,,,30001,23,457-0812,愛知県名古屋市南区星崎町東浦下,136.937378,35.087392,0000-00-00,0000-00-00,0,3000128 +3000129,3000129,本笠寺,モトカサデラ,Moto Kasadera,Moto Kasadera,本笠寺,모토카사데라,29,,,,,30001,23,457-0058,愛知県名古屋市南区前浜通7丁目,136.933409,35.099199,0000-00-00,0000-00-00,0,3000129 +3000130,3000130,桜,サクラ,Sakura,Sakura,樱,사쿠라,30,,,,,30001,23,457-0014,愛知県名古屋市南区呼続町6丁目,136.934586,35.106062,0000-00-00,0000-00-00,0,3000130 +3000131,3000131,呼続,ヨビツギ,Yobitsugi,Yobitsugi,呼续,요비쓰기,31,,,,,30001,23,457-0014,愛知県名古屋市南区呼続町1丁目,136.930387,35.114722,0000-00-00,0000-00-00,0,3000131 +3000132,3000132,堀田,ホリタ,Horita,Horita,堀田,호리타,32,,,,,30001,23,467-0856,愛知県名古屋市瑞穂区新開町28-26,136.919839,35.120251,0000-00-00,0000-00-00,0,3000132 +3000133,3000133,神宮前,ジングウマエ,Jingu-mae,Jingu-mae,神宫前,진구마에,33,,,,,30001,23,456-0032,愛知県名古屋市熱田区三本松町,136.912485,35.125857,0000-00-00,0000-00-00,0,3000133 +3000134,1141102,金山,カナヤマ,Kanayama,Kanayama,金山,가나야마,34,,,,,30001,23,456-0002,愛知県名古屋市熱田区金山町一丁目1-18,136.9013,35.142871,0000-00-00,0000-00-00,0,3000134 +3000135,3000135,山王,サンノウ,Sanno,Sanno,山王,산노,35,,,,,30001,23,454-0000,愛知県名古屋市中川区東出町2丁目,136.888461,35.15233,0000-00-00,0000-00-00,0,3000135 +3000136,1141101,名鉄名古屋,メイテツナゴヤ,Meitetsu Nagoya,Meitetsu Nagoya,名铁名古屋,메이테쓰 나고야,36,,,,,30001,23,450-0002,愛知県名古屋市中村区名駅1-2-1,136.884187,35.169252,1941-08-12,0000-00-00,0,3000136 +3000137,3000137,栄生,サコウ,Sako,Sako,荣生,사코,37,,,,,30001,23,451-0000,愛知県名古屋市西区藤ノ宮通3丁目,136.873051,35.183687,0000-00-00,0000-00-00,0,3000137 +3000138,3000138,東枇杷島,ヒガシビワジマ,Higashi Biwajima,Higashi Biwajima,东枇杷岛,히가시비와지마,38,,,,,30001,23,451-0053,愛知県名古屋市西区枇杷島通3丁目,136.870168,35.189808,0000-00-00,0000-00-00,0,3000138 +3000139,3000139,西枇杷島,ニシビワジマ,Nishi Biwajima,Nishi Biwajima,西枇杷岛,니시비와지마,39,,,,,30001,23,452-0000,愛知県清須市西枇杷島町下小田井川口,136.865685,35.195015,0000-00-00,0000-00-00,0,3000139 +3000140,3000140,二ツ杁,フタツイリ,Futatsu-iri,Futatsu-iri,二杁,후타쓰이리,40,,,,,30001,23,452-0065,愛知県清須市西枇杷島町芳野,136.859583,35.194646,0000-00-00,0000-00-00,0,3000140 +3000141,3000141,新川橋,シンカワバシ,Shinkawa-bashi,Shinkawa-bashi,新川桥,신카와바시,41,,,,,30001,23,452-0913,愛知県清須市上河原,136.851989,35.195701,0000-00-00,0000-00-00,0,3000141 +3000142,3000142,須ヶ口,スカグチ,Sukaguchi,Sukaguchi,须口,스카구치,42,,,,,30001,23,452-0912,愛知県清須市須ヶ口駅前一丁目1,136.846229,35.198684,0000-00-00,0000-00-00,0,3000142 +3000143,3000143,丸ノ内,マルノウチ,Marunouchi,Marunouchi,丸之内,마루노우치,43,,,,,30001,23,452-0942,愛知県清須市清洲,136.841927,35.204742,0000-00-00,0000-00-00,0,3000143 +3000144,3000144,新清洲,シンキヨス,Shin Kiyosu,Shin Kiyosu,新清洲,신키요스,44,,,,,30001,23,452-0943,愛知県清須市新清洲1丁目,136.835607,35.211249,0000-00-00,0000-00-00,0,3000144 +3000145,3000145,大里,オオサト,Osato,Osato,大里,오사토,45,,,,,30001,23,492-8233,愛知県稲沢市奥田町三十番神,136.818428,35.226216,0000-00-00,0000-00-00,0,3000145 +3000146,3000146,奥田,オクダ,Okuda,Okuda,奥田,오쿠다,46,,,,,30001,23,492-8233,愛知県稲沢市奥田町木之内,136.810917,35.235412,0000-00-00,0000-00-00,0,3000146 +3000147,3000147,国府宮,コウノミヤ,Konomiya,Konomiya,国府宫,고노미야,47,,,,,30001,23,492-8208,愛知県稲沢市松下1丁目,136.802963,35.254218,0000-00-00,0000-00-00,0,3000147 +3000148,3000148,島氏永,シマウジナガ,Shima-Ujinaga,Shima-Ujinaga,岛氏永,시마우지나가,48,,,,,30001,23,492-8205,愛知県稲沢市島町,136.800987,35.270777,0000-00-00,0000-00-00,0,3000148 +3000149,3000149,妙興寺,ミョウコウジ,Myokoji,Myokoji,妙兴寺,묘코지,49,,,,,30001,23,491-0922,愛知県一宮市大和町大字妙興寺徳法寺浦,136.798231,35.287178,0000-00-00,0000-00-00,0,3000149 +3000150,1150237,名鉄一宮,メイテツイチノミヤ,Meitetsu Ichinomiya,Meitetsu Ichinomiya,名铁一宫,메이테쓰이치노미야,50,,,,,30001,23,491-0912,愛知県一宮市新生1丁目,136.797225,35.30154,0000-00-00,0000-00-00,0,3000150 +3000151,3000151,今伊勢,イマイセ,Imaise,Imaise,今伊势,이마이세,51,,,,,30001,23,491-0057,愛知県一宮市今伊勢町大字宮後字一丁野,136.789273,35.31836,0000-00-00,0000-00-00,0,3000151 +3000152,3000152,石刀,イワト,Iwato,Iwato,石刀,이와토,52,,,,,30001,23,491-0051,愛知県一宮市今伊勢町大字馬寄字西切声,136.785407,35.326204,0000-00-00,0000-00-00,0,3000152 +3000153,3000153,新木曽川,シンキソガワ,Shin Kisogawa,Shin Kisogawa,新木曾川,신키소가와,53,,,,,30001,23,493-0001,愛知県一宮市木曽川町黒田下市場南121-4,136.779421,35.342047,0000-00-00,0000-00-00,0,3000153 +3000154,3000154,黒田,クロダ,Kuroda,Kuroda,黑田,구로다,54,,,,,30001,23,493-0001,愛知県一宮市木曽川町黒田字西針口北ノ切12-4,136.777502,35.350213,0000-00-00,0000-00-00,0,3000154 +3000155,3000155,木曽川堤,キソガワヅツミ,Kisogawa-zutsumi,Kisogawa-zutsumi,木曾川堤,기소가와즈쓰미,55,,,,,30001,23,493-8001,愛知県一宮市北方町大字北方字倉骨,136.770486,35.365067,0000-00-00,0000-00-00,0,3000155 +3000156,3000156,笠松,カサマツ,Kasamatsu,Kasamatsu,笠松,가사마쓰,56,,,,,30001,21,501-6037,岐阜県羽島郡笠松町西金池町,136.764664,35.37466,0000-00-00,0000-00-00,0,3000156 +3000157,3000157,岐南,ギナン,Ginan,Ginan,岐南,기난,57,,,,,30001,21,501-6018,岐阜県羽島郡岐南町下印食,136.769165,35.389716,0000-00-00,0000-00-00,0,3000157 +3000158,3000158,茶所,チャジョ,Chajo,Chajo,茶所,자조,58,,,,,30001,21,500-8431,岐阜県岐阜市加納八幡町,136.768917,35.402048,0000-00-00,0000-00-00,0,3000158 +3000159,3000159,加納,カノウ,Kano,Kano,加纳,가노,59,,,,,30001,21,500-8402,岐阜県岐阜市竜田町9丁目,136.765984,35.405209,0000-00-00,0000-00-00,0,3000159 +3000160,3000160,名鉄岐阜,メイテツギフ,Meitetsu Gifu,Meitetsu Gifu,名铁岐阜,메이테쓰기후,60,,,,,30001,21,500-8833,岐阜県岐阜市神田町9丁目,136.760066,35.411136,0000-00-00,0000-00-00,0,3000160 +3000201,3000104,国府,コウ,Ko,Ko,国府,고,,04,,,,30002,23,442-0856,愛知県豊川市久保町葉善寺,137.328101,34.83752,0000-00-00,0000-00-00,0,3000201 +3000202,3000202,八幡,ヤワタ,Yawata,Yawata,八幡,야와타,01,,,,,30002,23,442-0857,愛知県豊川市八幡町野路,137.352113,34.82916,0000-00-00,0000-00-00,0,3000202 +3000203,3000203,諏訪町,スワチョウ,Suwacho,Suwacho,诹访町,스와초,02,,,,,30002,23,442-0068,愛知県豊川市諏訪3-250,137.370479,34.823464,0000-00-00,0000-00-00,0,3000203 +3000204,3000204,稲荷口,イナリグチ,Inariguchi,Inariguchi,稻荷口,이나리구치,03,,,,,30002,23,442-0044,愛知県豊川市二見町駅前通,137.387703,34.818435,0000-00-00,0000-00-00,0,3000204 +3000205,1141306,豊川稲荷,トヨカワイナリ,Toyokawa-Inari,Toyokawa-Inari,丰川稻荷,도요카와이나리,04,,,,,30002,23,442-0033,愛知県豊川市豊川町仁保通18,137.396058,34.821755,0000-00-00,0000-00-00,0,3000205 +3000301,3000117,新安城,シンアンジョウ,Shin Anjo,Shin Anjo,新安城,신안조,,17,,,,30003,23,446-0007,愛知県安城市東栄町1丁目,137.085443,34.986885,0000-00-00,0000-00-00,0,3000301 +3000302,3000302,北安城,キタアンジョウ,Kita Anjo,Kita Anjo,北安城,기타안조,01,,,,,30003,23,446-0061,愛知県安城市新田町新栄1,137.092146,34.964677,0000-00-00,0000-00-00,0,3000302 +3000303,3000303,南安城,ミナミアンジョウ,Minami Anjo,Minami Anjo,南安城,미나미안조,02,,,,,30003,23,446-0000,愛知県安城市的場41-2,137.092457,34.951976,0000-00-00,0000-00-00,0,3000303 +3000304,3000304,碧海古井,ヘキカイフルイ,Hekikai Furui,Hekikai Furui,碧海古井,헤키카이후루이,03,,,,,30003,23,446-0025,愛知県安城市古井町字大久後4-5,137.090863,34.93723,0000-00-00,0000-00-00,0,3000304 +3000305,3000305,堀内公園,ホリウチコウエン,Horiuchikoen,Horiuchikoen,堀内公园,호리우치코엔,04,,,,,30003,23,444-1155,愛知県安城市堀内町前山92,137.089636,34.927834,0000-00-00,0000-00-00,0,3000305 +3000306,3000306,桜井,サクライ,Sakurai,Sakurai,樱井,사쿠라이,05,,,,,30003,23,444-1154,愛知県安城市桜井町新田124,137.088345,34.917477,0000-00-00,0000-00-00,0,3000306 +3000316,3000316,南桜井,ミナミサクライ,Minami Sakurai,Minami Sakurai,南樱井,미나미사쿠라이,06,,,,,30003,23,444-1162,愛知県安城市小川町水遣23,137.07721,34.906302,0000-00-00,0000-00-00,0,3000306 +3000307,3000307,米津,ヨネヅ,Yonezu,Yonezu,米津,요네즈,07,,,,,30003,23,445-0802,愛知県西尾市米津町仲之畑1-1,137.060993,34.892822,0000-00-00,0000-00-00,0,3000307 +3000308,3000308,桜町前,サクラマチマエ,Sakuramachi-mae,Sakuramachi-mae,樱町前,사쿠라마치마에,08,,,,,30003,23,445-0804,愛知県西尾市緑町4-28,137.062444,34.880107,0000-00-00,0000-00-00,0,3000308 +3000309,3000309,西尾口,ニシオグチ,Nishio-guchi,Nishio-guchi,西尾口,니시오구치,09,,,,,30003,23,445-0073,愛知県西尾市寄住町柴草7-3,137.062661,34.870647,0000-00-00,0000-00-00,0,3000309 +3000310,3000310,西尾,ニシオ,Nishio,Nishio,西尾,니시오,10,,,,,30003,23,445-0851,愛知県西尾市住吉町4-18,137.057789,34.863917,0000-00-00,0000-00-00,0,3000310 +3000311,3000311,福地,フクチ,Fukuchi,Fukuchi,福地,후쿠치,11,,,,,30003,23,445-0873,愛知県西尾市川口町松原28,137.048579,34.844663,0000-00-00,0000-00-00,0,3000311 +3000312,3000312,鎌谷,カマヤ,Kamaya,Kamaya,镰谷,가마야,,,,,,30003,23,445-0044,愛知県西尾市鎌谷町中屋敷,137.061203,34.839095,0000-00-00,0000-00-00,2,3000312 +3000313,3000313,上横須賀,カミヨコスカ,Kami Yokosuka,Kami Yokosuka,上横须贺,가미요코스카,12,,,,,30003,23,444-0521,愛知県西尾市吉良町上横須賀宮前60-2,137.071883,34.829941,0000-00-00,0000-00-00,0,3000313 +3000314,3000314,三河荻原,ミカワオギハラ,Mikawa Ogihara,Mikawa Ogihara,三河扇原,미카와오기하라,,,,,,30003,23,444-0524,愛知県西尾市吉良町荻原,137.067012,34.806111,0000-00-00,0000-00-00,2,3000314 +3000315,3000315,吉良吉田,キラヨシダ,Kira Yoshida,Kira Yoshida,吉良吉田,기라요시다,13,,,,,30003,23,444-0516,愛知県西尾市吉良町吉田船戸5,137.071017,34.794043,0000-00-00,0000-00-00,0,3000315 +3000401,3000315,吉良吉田,キラヨシダ,Kira Yoshida,Kira Yoshida,吉良吉田,기라요시다,13,,,,,30004,23,444-0516,愛知県西尾市吉良町吉田船戸5,137.071017,34.794043,0000-00-00,0000-00-00,0,3000401 +3000402,3000402,三河鳥羽,ミカワトバ,Mikawa Toba,Mikawa Toba,三河鸟羽,미카와토바,14,,,,,30004,23,444-0704,愛知県西尾市鳥羽町,137.104984,34.793214,0000-00-00,0000-00-00,0,3000402 +3000403,3000403,西幡豆,ニシハズ,Nishi Hazu,Nishi Hazu,西幡豆,니시하즈,15,,,,,30004,23,444-0703,愛知県西尾市西幡豆町中屋敷16番地4,137.121271,34.792431,0000-00-00,0000-00-00,0,3000403 +3000404,3000404,東幡豆,ヒガシハズ,Higashi Hazu,Higashi Hazu,东幡豆,히가시하즈,16,,,,,30004,23,444-0701,愛知県西尾市東幡豆町小見行田,137.145645,34.789693,0000-00-00,0000-00-00,0,3000404 +3000405,3000405,こどもの国,コドモノクニ,Kodomonokuni,Kodomonokuni,儿童之国,고도모노쿠니,17,,,,,30004,23,444-0701,愛知県西尾市東幡豆町御堂前,137.162721,34.788791,0000-00-00,0000-00-00,0,3000405 +3000406,3000406,西浦,ニシウラ,Nishiura,Nishiura,西浦,니시우라,18,,,,,30004,23,443-0105,愛知県蒲郡市西浦町馬々48-1,137.178617,34.79003,0000-00-00,0000-00-00,0,3000406 +3000407,3000407,形原,カタハラ,Katahara,Katahara,形原,가타하라,19,,,,,30004,23,443-0104,愛知県蒲郡市形原町形原御嶽62,137.184594,34.798607,0000-00-00,0000-00-00,0,3000407 +3000408,3000408,三河鹿島,ミカワカシマ,Mikawa Kashima,Mikawa Kashima,三河鹿岛,미카와카시마,20,,,,,30004,23,443-0037,愛知県蒲郡市鹿島町横砂39-1,137.189687,34.813313,0000-00-00,0000-00-00,0,3000408 +3000409,1150216,蒲郡競艇場前,ガマゴオリキョウテイジョウマエ,Gamagori-Kyoteijo-mae,Gamagori-Kyoteijo-mae,蒲郡竞艇场前,가마고리쿄테이조마에,21,,,,,30004,23,443-0046,愛知県蒲郡市竹谷町油井17-9,137.202014,34.825545,0000-00-00,0000-00-00,0,3000409 +3000410,1150215,蒲郡,ガマゴオリ,Gamagori,Gamagori,蒲郡,가마고리,22,,,,,30004,23,443-0043,愛知県蒲郡市元町,137.226115,34.822743,0000-00-00,0000-00-00,0,3000410 +3000501,3000501,碧南,ヘキナン,Hekinan,Hekinan,碧南,헤키난,,,11,,,30005,23,447-0846,愛知県碧南市中町5-48,136.985613,34.874041,0000-00-00,0000-00-00,0,3000501 +3000502,3000502,碧南中央,ヘキナンチュウオウ,Hekinan-Chuo,Hekinan-Chuo,碧南中央,헤키난추오,,,10,,,30005,23,447-0877,愛知県碧南市栄町3-59,136.989476,34.887395,0000-00-00,0000-00-00,0,3000502 +3000503,3000503,新川町,シンカワマチ,Shinkawa-machi,Shinkawa-machi,新川町,신카와마치,,,09,,,30005,23,447-0863,愛知県碧南市新川町3-113,136.990312,34.896619,0000-00-00,0000-00-00,0,3000503 +3000504,3000504,北新川,キタシンカワ,Kita Shinkawa,Kita Shinkawa,北新川,기타신카와,,,08,,,30005,23,447-0065,愛知県碧南市久沓町4-19,136.992475,34.906018,0000-00-00,0000-00-00,0,3000504 +3000505,3000505,高浜港,タカハマミナト,Takahama-minato,Takahama-minato,高滨港,다카하마미나토,,,07,,,30005,23,444-1325,愛知県高浜市青木町6-3-1,136.989391,34.921536,0000-00-00,0000-00-00,0,3000505 +3000506,3000506,三河高浜,ミカワタカハマ,Mikawa Takahama,Mikawa Takahama,三河高滨,미카와타카하마,,,06,,,30005,23,444-1334,愛知県高浜市春日町5-3-1,136.989954,34.930796,0000-00-00,0000-00-00,0,3000506 +3000507,3000507,吉浜,ヨシハマ,Yoshihama,Yoshihama,吉滨,요시하마,,,05,,,30005,23,444-1331,愛知県高浜市屋敷町1-2-30,136.98919,34.946327,0000-00-00,0000-00-00,0,3000507 +3000508,3000508,小垣江,オガキエ,Ogakie,Ogakie,小垣江,오가키에,,,04,,,30005,23,448-0813,愛知県刈谷市小垣江町字下半ノ木20-3,136.995455,34.9639,0000-00-00,0000-00-00,0,3000508 +3000509,3000509,刈谷市,カリヤシ,Kariyashi,Kariyashi,刈谷市,가리야시,,,03,,,30005,23,448-0844,愛知県刈谷市広小路3-504-1,136.993844,34.984803,0000-00-00,0000-00-00,0,3000509 +3000510,1150224,刈谷,カリヤ,Kariya,Kariya,刈谷,가리야,,,02,,,30005,23,448-0028,愛知県刈谷市桜町1丁目,137.008642,34.990884,0000-00-00,0000-00-00,0,3000510 +3000511,3000511,重原,シゲハラ,Shigehara,Shigehara,重原,시게하라,,,01,,,30005,23,472-0026,愛知県知立市上重原町本郷4-4,137.023727,34.994824,0000-00-00,0000-00-00,0,3000511 +3000512,3000119,知立,チリュウ,Chiryu,Chiryu,知立,지류,,19,,,,30005,23,472-0037,愛知県知立市栄2丁目,137.039722,35.006111,0000-00-00,0000-00-00,0,3000512 +3000513,3000513,三河知立,ミカワチリュウ,Mikawa Chiryu,Mikawa Chiryu,三河知立,미카와치류,01,,,,,30005,23,472-0006,愛知県知立市山町茶碓山8番地10,137.054972,35.005722,0000-00-00,0000-00-00,0,3000513 +3000514,3000514,三河八橋,ミカワヤツハシ,Mikawa Yatsuhashi,Mikawa Yatsuhashi,三河八桥,미카와야쓰하시,02,,,,,30005,23,473-0924,愛知県豊田市花園町五反田39,137.077147,35.010913,0000-00-00,0000-00-00,0,3000514 +3000515,3000515,若林,ワカバヤシ,Wakabayashi,Wakabayashi,若林,와카바야시,03,,,,,30005,23,473-0914,愛知県豊田市若林東町沖田37,137.095851,35.026284,0000-00-00,0000-00-00,0,3000515 +3000516,3000516,竹村,タケムラ,Takemura,Takemura,竹村,다케무라,04,,,,,30005,23,473-0906,愛知県豊田市竹町宮下16,137.11476,35.040067,0000-00-00,0000-00-00,0,3000516 +3000517,3000517,土橋,ツチハシ,Tsuchihashi,Tsuchihashi,土桥,쓰치하시,05,,,,,30005,23,471-0842,愛知県豊田市土橋町8-145,137.129572,35.058179,0000-00-00,0000-00-00,0,3000517 +3000518,3000518,上挙母,ウワゴロモ,Uwa Goromo,Uwa Goromo,上举母,우와고로모,06,,,,,30005,23,471-0876,愛知県豊田市金谷町2-96,137.154453,35.071854,0000-00-00,0000-00-00,0,3000518 +3000519,3000519,豊田市,トヨタシ,Toyotashi,Toyotashi,丰田市,도요타시,07,,,,,30005,23,471-0026,愛知県豊田市若宮町1-35,137.156227,35.087305,0000-00-00,0000-00-00,0,3000519 +3000520,3000520,梅坪,ウメツボ,Umetsubo,Umetsubo,梅坪,우메쓰보,08,,,,,30005,23,471-0064,愛知県豊田市梅坪町7-125,137.162206,35.099654,0000-00-00,0000-00-00,0,3000520 +3000521,3000521,越戸,コシド,Koshido,Koshido,越户,고시도,09,,,,,30005,23,470-0332,愛知県豊田市越戸町梅盛4,137.180178,35.10769,0000-00-00,0000-00-00,0,3000521 +3000522,3000522,平戸橋,ヒラトバシ,Hirato-bashi,Hirato-bashi,平户桥,히라토바시,10,,,,,30005,23,470-0331,愛知県豊田市平戸橋町石平43,137.184725,35.114628,0000-00-00,0000-00-00,0,3000522 +3000523,3000523,猿投,サナゲ,Sanage,Sanage,猿投,사나게,11,,,,,30005,23,470-0372,愛知県豊田市井上町5-62,137.178739,35.122613,0000-00-00,0000-00-00,0,3000523 +3000601,3000519,豊田市,トヨタシ,Toyotashi,Toyotashi,丰田市,도요타시,,07,,,,30006,23,471-0026,愛知県豊田市若宮町1-35,137.156227,35.087305,0000-00-00,0000-00-00,0,3000601 +3000602,3000520,梅坪,ウメツボ,Umetsubo,Umetsubo,梅坪,우메쓰보,,08,,,,30006,23,471-0064,愛知県豊田市梅坪町7-125,137.162206,35.099654,0000-00-00,0000-00-00,0,3000602 +3000603,3000603,上豊田,カミトヨタ,Kami Toyota,Kami Toyota,上丰田,가미토요타,01,,,,,30006,23,470-0341,愛知県豊田市上原町西山135-2,137.15535,35.116168,0000-00-00,0000-00-00,0,3000603 +3000604,3000604,浄水,ジョウスイ,Josui,Josui,净水,조스이,02,,,,,30006,23,470-0343,愛知県豊田市浄水町伊保原243,137.137186,35.121298,0000-00-00,0000-00-00,0,3000604 +3000605,3000605,三好ヶ丘,ミヨシガオカ,Miyoshigaoka,Miyoshigaoka,三好丘,미요시가오카,03,,,,,30006,23,470-0202,愛知県みよし市三好丘二丁目1-1,137.111219,35.126918,0000-00-00,0000-00-00,0,3000605 +3000606,3000606,黒笹,クロザサ,Kurozasa,Kurozasa,黑笹,구로자사,04,,,,,30006,23,470-0201,愛知県みよし市黒笹町縄手36-2,137.091365,35.127681,0000-00-00,0000-00-00,0,3000606 +3000607,3000607,米野木,コメノキ,Komenoki,Komenoki,米野木,고메노키,05,,,,,30006,23,470-0111,愛知県日進市米野木町南山185-3,137.06702,35.123728,0000-00-00,0000-00-00,0,3000607 +3000608,3000608,日進,ニッシン,Nisshin,Nisshin,日进,닛신,06,,,,,30006,23,470-0113,愛知県日進市栄2-1708,137.04878,35.118378,0000-00-00,0000-00-00,0,3000608 +3000609,3000609,赤池,アカイケ,Akaike,Akaike,赤池,아카이케,07,,,,,30006,23,470-0125,愛知県日進市赤池1-1503,137.017978,35.121097,0000-00-00,0000-00-00,0,3000609 +3000701,3000701,常滑,トコナメ,Tokoname,Tokoname,常滑,도코나메,22,,,,,30007,23,479-0838,愛知県常滑市鯉江本町5-141,136.834992,34.891167,0000-00-00,0000-00-00,0,3000701 +3000702,3000702,りんくう常滑,リンクウトコナメ,Rinku Tokoname,Rinku Tokoname,临空常滑,린쿠토코나메,23,,,,,30007,23,479-0882,愛知県常滑市りんくう町,136.828164,34.87967,0000-00-00,0000-00-00,0,3000702 +3000703,3000703,中部国際空港,チュウブコクサイクウコウ,Central Japan International Airport,Central Japan International Airport,中部国际机场,주부코쿠사이쿠코,24,,,,,30007,23,479-0881,愛知県常滑市セントレア,136.816382,34.859262,0000-00-00,0000-00-00,0,3000703 +3000801,1141101,名鉄名古屋,メイテツナゴヤ,Meitetsu Nagoya,Meitetsu Nagoya,名铁名古屋,메이테쓰 나고야,,36,,,,30008,23,453-0002,愛知県名古屋市中村区名駅一丁目2-1,136.884187,35.169252,0000-00-00,0000-00-00,0,3000801 +3000802,3000135,山王,サンノウ,Sanno,Sanno,山王,산노,,35,,,,30008,23,454-0000,愛知県名古屋市中川区東出町2丁目,136.888461,35.15233,0000-00-00,0000-00-00,0,3000802 +3000803,1141102,金山,カナヤマ,Kanayama,Kanayama,金山,가나야마,,34,,,,30008,23,456-0002,愛知県名古屋市熱田区金山町一丁目1-18,136.9013,35.142871,0000-00-00,0000-00-00,0,3000803 +3000804,3000133,神宮前,ジングウマエ,Jingu-mae,Jingu-mae,神宫前,진구마에,,33,,,,30008,23,456-0032,愛知県名古屋市熱田区三本松町,136.912485,35.125857,0000-00-00,0000-00-00,0,3000804 +3000805,3000805,豊田本町,トヨダホンマチ,Toyodahommachi,Toyodahommachi,丰田本町,도요다혼마치,01,,,,,30008,23,457-0863,愛知県名古屋市南区豊1-26-17,136.910877,35.113586,0000-00-00,0000-00-00,0,3000805 +3000806,3000806,道徳,ドウトク,Dotoku,Dotoku,道德,도토쿠,02,,,,,30008,23,457-0841,愛知県名古屋市南区豊田1-12-10,136.909409,35.105712,0000-00-00,0000-00-00,0,3000806 +3000807,3000807,大江,オオエ,Oe,Oe,大江,오에,03,,,,,30008,23,457-0836,愛知県名古屋市南区加福本通2-8-1,136.912758,35.093258,0000-00-00,0000-00-00,0,3000807 +3000808,3000808,大同町,ダイドウチョウ,Daidocho,Daidocho,大同町,다이도초,04,,,,,30008,23,457-0811,愛知県名古屋市南区大同町3-1,136.909314,35.080268,0000-00-00,0000-00-00,0,3000808 +3000809,3000809,柴田,シバタ,Shibata,Shibata,柴田,시바타,05,,,,,30008,23,457-0815,愛知県名古屋市南区柴田町5-5,136.909126,35.072774,0000-00-00,0000-00-00,0,3000809 +3000810,3000810,名和,ナワ,Nawa,Nawa,名和,나와,06,,,,,30008,23,476-0002,愛知県東海市名和町四番割81-7,136.911709,35.060914,0000-00-00,0000-00-00,0,3000810 +3000811,3000811,聚楽園,シュウラクエン,Shurakuen,Shurakuen,聚乐园,슈라쿠엔,07,,,,,30008,23,476-0003,愛知県東海市荒尾町リの割235-3,136.90304,35.042857,0000-00-00,0000-00-00,0,3000811 +3000812,3000812,新日鉄前,シンニッテツマエ,Shin Nittetsu-mae,Shin Nittetsu-mae,新日铁前,신닛테쓰마에,08,,,,,30008,23,476-0015,愛知県東海市東海町2-6-4,136.899491,35.035161,0000-00-00,0000-00-00,0,3000812 +3000813,3000813,太田川,オオタガワ,Otagawa,Otagawa,太田川,오타가와,09,,,,,30008,23,477-0031,愛知県東海市大田町後田52,136.892504,35.020221,0000-00-00,0000-00-00,0,3000813 +3000814,3000814,尾張横須賀,オワリヨコスカ,Owari Yokosuka,Owari Yokosuka,尾张横须贺,오와리요코스카,10,,,,,30008,23,477-0034,愛知県東海市養父町北反田13-2,136.885655,35.010132,0000-00-00,0000-00-00,0,3000814 +3000815,3000815,寺本,テラモト,Teramoto,Teramoto,寺本,데라모토,11,,,,,30008,23,478-0001,愛知県知多市八幡字西水代135-2,136.875498,35.000191,0000-00-00,0000-00-00,0,3000815 +3000816,3000816,朝倉,アサクラ,Asakura,Asakura,朝仓,아사쿠라,12,,,,,30008,23,478-0047,愛知県知多市緑町25-8,136.863419,34.993858,0000-00-00,0000-00-00,0,3000816 +3000817,3000817,古見,コミ,Komi,Komi,古见,고미,13,,,,,30008,23,478-0017,愛知県知多市新知字森下29-3,136.856673,34.987809,0000-00-00,0000-00-00,0,3000817 +3000818,3000818,長浦,ナガウラ,Nagaura,Nagaura,长浦,나가우라,14,,,,,30008,23,478-0042,愛知県知多市長浦1-400,136.847808,34.978432,0000-00-00,0000-00-00,0,3000818 +3000819,3000819,日長,ヒナガ,Hinaga,Hinaga,日长,히나가,15,,,,,30008,23,478-0041,愛知県知多市日長字森下108-1,136.832152,34.96162,0000-00-00,0000-00-00,0,3000819 +3000820,3000820,新舞子,シンマイコ,Shin Maiko,Shin Maiko,新舞子,신마이코,16,,,,,30008,23,478-0036,愛知県知多市新舞子字大瀬55-1,136.828669,34.949689,0000-00-00,0000-00-00,0,3000820 +3000821,3000821,大野町,オオノマチ,Onomachi,Onomachi,大野町,오노마치,17,,,,,30008,23,479-0866,愛知県常滑市大野町5-170,136.827641,34.935441,0000-00-00,0000-00-00,0,3000821 +3000822,3000822,西ノ口,ニシノクチ,Nishinokuchi,Nishinokuchi,西之口,니시노쿠치,18,,,,,30008,23,479-0864,愛知県常滑市住吉町4丁目34番地,136.82663,34.926759,0000-00-00,0000-00-00,0,3000822 +3000823,3000823,蒲池,カバイケ,Kabaike,Kabaike,蒲池,가바이케,19,,,,,30008,23,479-0856,愛知県常滑市蒲池町5-105,136.825536,34.915408,0000-00-00,0000-00-00,0,3000823 +3000824,3000824,榎戸,エノキド,Enokido,Enokido,榎户,에노키도,20,,,,,30008,23,479-0848,愛知県常滑市港町5-208,136.82822,34.90489,0000-00-00,0000-00-00,0,3000824 +3000825,3000825,多屋,タヤ,Taya,Taya,多屋,다야,21,,,,,30008,23,479-0839,愛知県常滑市多屋町5-160,136.830695,34.896983,0000-00-00,0000-00-00,0,3000825 +3000826,3000701,常滑,トコナメ,Tokoname,Tokoname,常滑,도코나메,22,,,,,30008,23,479-0838,愛知県常滑市鯉江本町5-141,136.834992,34.891167,0000-00-00,0000-00-00,0,3000826 +3000901,3000813,太田川,オオタガワ,Otagawa,Otagawa,太田川,오타가와,,09,,,,30009,23,477-0031,愛知県東海市大田町後田52,136.892504,35.020221,0000-00-00,0000-00-00,0,3000901 +3000902,3000902,高横須賀,タカヨコスカ,Takayokosuka,Takayokosuka,高横须贺,다카요코스카,01,,,,,30009,23,477-0037,愛知県東海市高横須賀町松本1-3,136.893696,35.009608,0000-00-00,0000-00-00,0,3000902 +3000922,3000922,加木屋中ノ池,カギヤナカノイケ,,,加木屋中之池,Kagiya-Nakanoike,02,,,,,30009,23,477-0032,愛知県東海市加木屋町唐畑46番地2,136.902583,35,2024-03-16,0000-00-00,0,3000902 +3000903,3000903,南加木屋,ミナミカギヤ,Minami Kagiya,Minami Kagiya,南加木屋,미나미카기야,03,,,,,30009,23,477-0032,愛知県東海市加木屋町南平井15,136.906853,34.989216,0000-00-00,0000-00-00,0,3000903 +3000904,3000904,八幡新田,ヤワタシンデン,Yawata-shinden,Yawata-shinden,八幡新田,야와타신덴,04,,,,,30009,23,477-0032,愛知県東海市加木屋町陀々法師43-1,136.912578,34.973674,0000-00-00,0000-00-00,0,3000904 +3000905,3000905,巽ヶ丘,タツミガオカ,Tatsumigaoka,Tatsumigaoka,巽丘,다쓰미가오카,05,,,,,30009,23,478-0012,愛知県知多市巽ヶ丘3丁目134,136.915556,34.962265,0000-00-00,0000-00-00,0,3000905 +3000906,3000906,白沢,シラサワ,Shirasawa,Shirasawa,白泽,시라사와,06,,,,,30009,23,470-2201,愛知県知多郡阿久比町大字白沢字豊石山17-4,136.91537,34.955219,0000-00-00,0000-00-00,0,3000906 +3000907,3000907,坂部,サカベ,Sakabe,Sakabe,坂部,사카베,07,,,,,30009,23,470-2212,愛知県知多郡阿久比町大字卯坂字上向田35-7,136.916562,34.941579,0000-00-00,0000-00-00,0,3000907 +3000908,3000908,阿久比,アグイ,Agui,Agui,阿久比,아구이,08,,,,,30009,23,470-2213,愛知県知多郡阿久比町大字阿久比字千速54-3,136.918517,34.931256,0000-00-00,0000-00-00,0,3000908 +3000909,3000909,椋岡,ムクオカ,Mukuoka,Mukuoka,椋冈,무쿠오카,,,,,,30009,23,470-2214,愛知県知多郡阿久比町椋岡,136.920387,34.926592,0000-00-00,0000-00-00,2,3000909 +3000910,3000910,植大,ウエダイ,Uedai,Uedai,植大,우에다이,09,,,,,30009,23,470-2216,愛知県知多郡阿久比町植大大前田4-3,136.923448,34.917457,0000-00-00,0000-00-00,0,3000910 +3000911,3000911,半田口,ハンダグチ,Handaguchi,Handaguchi,半田口,한다구치,10,,,,,30009,23,475-0961,愛知県半田市岩滑中町2-150,136.925462,34.909111,0000-00-00,0000-00-00,0,3000911 +3000912,3000912,住吉町,スミヨシチョウ,Sumiyoshicho,Sumiyoshicho,住吉町,스미요시초,11,,,,,30009,23,475-0902,愛知県半田市宮路町156-2,136.925684,34.902042,0000-00-00,0000-00-00,0,3000912 +3000913,3000913,知多半田,チタハンダ,Chita Handa,Chita Handa,知多半田,지타한다,12,,,,,30009,23,475-0857,愛知県半田市広小路町128-1,136.925954,34.893931,0000-00-00,0000-00-00,0,3000913 +3000914,3000914,成岩,ナラワ,Narawa,Narawa,成岩,나라와,13,,,,,30009,23,475-0846,愛知県半田市栄町3-4,136.921879,34.886209,0000-00-00,0000-00-00,0,3000914 +3000915,3000915,青山,アオヤマ,Aoyama,Aoyama,青山,아오야마,14,,,,,30009,23,475-0837,愛知県半田市有楽町4-6,136.917,34.878132,0000-00-00,0000-00-00,0,3000915 +3000916,3000916,上ゲ,アゲ,Age,Age,上个,아게,15,,,,,30009,23,470-2339,愛知県知多郡武豊町字下門23-5,136.916403,34.858389,0000-00-00,0000-00-00,0,3000916 +3000917,3000917,知多武豊,チタタケトヨ,Chita Taketoyo,Chita Taketoyo,知多武丰,지타타케토요,16,,,,,30009,23,470-2347,愛知県知多郡武豊町字道崎43-8,136.916439,34.850732,0000-00-00,0000-00-00,0,3000917 +3000918,3000918,富貴,フキ,Fuki,Fuki,富贵,후키,17,,,,,30009,23,470-2531,愛知県知多郡武豊町大字冨貴外前田5-5,136.917043,34.828823,0000-00-00,0000-00-00,0,3000918 +3000919,3000919,布土,フット,Futto,Futto,布土,훗토,,,,,,30009,23,470-2401,愛知県知多郡美浜町大字布土,136.916371,34.810384,0000-00-00,0000-00-00,2,3000919 +3000920,3000920,河和口,コウワグチ,Kowaguchi,Kowaguchi,河和口,고와구치,18,,,,,30009,23,470-2401,愛知県知多郡美浜町大字布土字中平井33-1,136.918618,34.797805,0000-00-00,0000-00-00,0,3000920 +3000921,3000921,河和,コウワ,Kowa,Kowa,河和,고와,19,,,,,30009,23,470-2406,愛知県知多郡美浜町大字河和字北田面5-1,136.912528,34.777771,0000-00-00,0000-00-00,0,3000921 +3001001,3000918,富貴,フキ,Fuki,Fuki,富贵,후키,17,,,,,30010,23,470-2531,愛知県知多郡武豊町大字冨貴外前田5-5,136.917043,34.828823,0000-00-00,0000-00-00,0,3001001 +3001002,3001002,上野間,カミノマ,Kami Noma,Kami Noma,上野间,가미노마,20,,,,,30010,23,470-3231,愛知県知多郡美浜町大字上野間字小手廻間2-1,136.866854,34.807284,0000-00-00,0000-00-00,0,3001002 +3001003,3001003,美浜緑苑,ミハマリョクエン,Mihama-Ryokuen,Mihama-Ryokuen,美滨绿苑,미하마료쿠엔,21,,,,,30010,23,470-3233,愛知県知多郡美浜町大字奥田字笑廻間20-3,136.863063,34.80028,0000-00-00,0000-00-00,0,3001003 +3001004,3001004,知多奥田,チタオクダ,Chita Okuda,Chita Okuda,知多奥田,지타오쿠다,22,,,,,30010,23,470-3233,愛知県知多郡美浜町大字奥田字森越70-3,136.864488,34.787617,0000-00-00,0000-00-00,0,3001004 +3001005,3001005,野間,ノマ,Noma,Noma,野间,노마,23,,,,,30010,23,470-3235,愛知県知多郡美浜町大字野間字新大町168-2,136.860683,34.7723,0000-00-00,0000-00-00,0,3001005 +3001006,3001006,内海,ウツミ,Utsumi,Utsumi,内海,우쓰미,24,,,,,30010,23,470-3321,愛知県知多郡南知多町大字内海字先苅171-4,136.875544,34.744631,0000-00-00,0000-00-00,0,3001006 +3001101,3000807,大江,オオエ,Oe,Oe,大江,오에,,03,,,,30011,23,457-0836,愛知県名古屋市南区加福本通2-8-1,136.912758,35.093258,0000-00-00,0000-00-00,0,3001101 +3001102,3001102,東名古屋港,ヒガシナゴヤコウ,Higashi Nagoyako,Higashi Nagoyako,东名古屋港,히가시나고야코,01,,,,,30011,23,455-0024,愛知県名古屋市港区大江町9-9,136.899255,35.089091,0000-00-00,0000-00-00,0,3001102 +3001201,3001201,栄町,サカエマチ,Sakaemachi,Sakaemachi,荣町,사카에마치,01,,,,,30012,23,461-0005,愛知県名古屋市東区東桜1-12,136.908962,35.170567,0000-00-00,0000-00-00,0,3001201 +3001202,3001202,東大手,ヒガシオオテ,Higashi Ote,Higashi Ote,东大手,히가시오테,02,,,,,30012,23,460-0001,愛知県名古屋市中区三の丸4-17,136.908376,35.183727,0000-00-00,0000-00-00,0,3001202 +3001203,3001203,清水,シミズ,Shimizu,Shimizu,清水,시미즈,03,,,,,30012,23,462-0844,愛知県名古屋市北区清水2-5-1,136.913814,35.187152,0000-00-00,0000-00-00,0,3001203 +3001204,3001204,尼ヶ坂,アマガサカ,Amagasaka,Amagasaka,尼坂,아마가사카,04,,,,,30012,23,462-0837,愛知県名古屋市北区大杉1丁目20-1,136.91928,35.187957,0000-00-00,0000-00-00,0,3001204 +3001205,3001205,森下,モリシタ,Morishita,Morishita,森下,모리시타,05,,,,,30012,23,461-0025,愛知県名古屋市東区徳川2-25,136.929657,35.188299,0000-00-00,0000-00-00,0,3001205 +3001206,1141105,大曽根,オオゾネ,Ozone,Ozone,大曾根,오조네,06,,,,,30012,23,461-0022,愛知県名古屋市東区東大曽根町,136.936855,35.1916,0000-00-00,0000-00-00,0,3001206 +3001207,3001207,矢田,ヤダ,Yada,Yada,矢田,야다,07,,,,,30012,23,461-0043,愛知県名古屋市東区大幸1-10,136.947802,35.193699,0000-00-00,0000-00-00,0,3001207 +3001208,3001208,守山自衛隊前,モリヤマジエイタイマエ,Moriyama-jieitai-mae,Moriyama-jieitai-mae,守山自卫队前,모리야마지에이타이마에,08,,,,,30012,23,463-0065,愛知県名古屋市守山区廿軒家5-7,136.957843,35.196258,0000-00-00,0000-00-00,0,3001208 +3001209,3001209,瓢箪山,ヒョウタンヤマ,Hyotan-yama,Hyotan-yama,瓢箪山,효탄야마,09,,,,,30012,23,463-0062,愛知県名古屋市守山区長栄15-17,136.965048,35.197222,0000-00-00,0000-00-00,0,3001209 +3001210,3001210,小幡,オバタ,Obata,Obata,小幡,오바타,10,,,,,30012,23,463-0048,愛知県名古屋市守山区小幡南1-21-21,136.975769,35.200216,0000-00-00,0000-00-00,0,3001210 +3001211,3001211,喜多山,キタヤマ,Kitayama,Kitayama,喜多山,기타야마,11,,,,,30012,23,463-0011,愛知県名古屋市守山区小幡字二軒家2610-13,136.987735,35.205099,0000-00-00,0000-00-00,0,3001211 +3001212,3001212,大森・金城学院前,オオモリ・キンジョウガクインマエ,Omori-Kinjogakuin-mae,Omori-Kinjogakuin-mae,大森·金城学院前,오모리 · 긴조가쿠인마에,12,,,,,30012,23,463-0021,愛知県名古屋市守山区大森3-301,136.996465,35.206934,0000-00-00,0000-00-00,0,3001212 +3001213,3001213,印場,インバ,Imba,Imba,印场,인바,13,,,,,30012,23,488-0841,愛知県尾張旭市印場元町北山4409-3,137.011132,35.211085,0000-00-00,0000-00-00,0,3001213 +3001214,3001214,旭前,アサヒマエ,Asahi-mae,Asahi-mae,旭前,아사히마에,14,,,,,30012,23,488-0855,愛知県尾張旭市旭前町五丁目4-5,137.019706,35.214162,0000-00-00,0000-00-00,0,3001214 +3001215,3001215,尾張旭,オワリアサヒ,Owari Asahi,Owari Asahi,尾张旭,오와리아사히,15,,,,,30012,23,488-0801,愛知県尾張旭市東大道町原田2591-3,137.036393,35.216743,0000-00-00,0000-00-00,0,3001215 +3001216,3001216,三郷,サンゴウ,Sango,Sango,三乡,산고,16,,,,,30012,23,488-0015,愛知県尾張旭市三郷町栄92-1,137.052352,35.216258,0000-00-00,0000-00-00,0,3001216 +3001217,3001217,水野,ミズノ,Mizuno,Mizuno,水野,미즈노,17,,,,,30012,23,489-0917,愛知県瀬戸市效範町2-75,137.069659,35.224296,0000-00-00,0000-00-00,0,3001217 +3001218,3001218,新瀬戸,シンセト,Shin Seto,Shin Seto,新濑户,신세토,18,,,,,30012,23,489-0066,愛知県瀬戸市東横山町62,137.077639,35.225485,0000-00-00,0000-00-00,0,3001218 +3001219,3001219,瀬戸市役所前,セトシヤクショマエ,Seto-shiyakusho-mae,Seto-shiyakusho-mae,濑户市役所前,세토시야쿠쇼마에,19,,,,,30012,23,489-0065,愛知県瀬戸市西追分町2,137.084177,35.224986,0000-00-00,0000-00-00,0,3001219 +3001220,3001220,尾張瀬戸,オワリセト,Owari Seto,Owari Seto,尾张濑户,오와리세토,20,,,,,30012,23,489-0811,愛知県瀬戸市山脇町7,137.09727,35.225094,0000-00-00,0000-00-00,0,3001220 +3001301,3000142,須ヶ口,スカグチ,Sukaguchi,Sukaguchi,须口,스카구치,,42,,,,30013,23,452-0912,愛知県清須市須ヶ口駅前一丁目1,136.846229,35.198684,0000-00-00,0000-00-00,0,3001301 +3001302,3001302,甚目寺,ジモクジ,Jimokuji,Jimokuji,甚目寺,지모쿠지,01,,,,,30013,23,490-1111,愛知県あま市甚目寺郷浦,136.825492,35.195953,0000-00-00,0000-00-00,0,3001302 +3001303,3001303,七宝,シッポウ,Shippo,Shippo,七宝,싯포,02,,,,,30013,23,497-0001,愛知県あま市七宝町沖之島返上地82-1,136.806413,35.195775,0000-00-00,0000-00-00,0,3001303 +3001304,3001304,木田,キダ,Kida,Kida,木田,기다,03,,,,,30013,23,490-1222,愛知県あま市木田道下54-2,136.787865,35.195328,0000-00-00,0000-00-00,0,3001304 +3001305,3001305,青塚,アオツカ,Aotsuka,Aotsuka,青冢,아오쓰카,04,,,,,30013,23,496-0001,愛知県津島市青塚町字高畑304-4,136.76708,35.198674,0000-00-00,0000-00-00,0,3001305 +3001306,3001306,勝幡,ショバタ,Shobata,Shobata,胜幡,쇼바타,05,,,,,30013,23,496-8001,愛知県愛西市勝幡町五俵入2266-4,136.750082,35.195143,0000-00-00,0000-00-00,0,3001306 +3001307,3001307,藤浪,フジナミ,Fujinami,Fujinami,藤浪,후지나미,06,,,,,30013,23,496-8011,愛知県愛西市諏訪町中島367,136.738766,35.188911,0000-00-00,0000-00-00,0,3001307 +3001308,3001308,津島,ツシマ,Tsushima,Tsushima,津岛,쓰시마,07,,,,,30013,23,496-0802,愛知県津島市錦町1-1,136.730995,35.177982,0000-00-00,0000-00-00,0,3001308 +3001401,1150806,弥富,ヤトミ,Yatomi,Yatomi,弥富,야토미,11,,,,,30014,23,498-0028,愛知県弥富市鯏浦町中六,136.725664,35.114026,0000-00-00,0000-00-00,0,3001401 +3001402,3001402,弥富口,ヤトミグチ,Yatomiguchi,Yatomiguchi,弥富口,야토미구치,,,,,,30014,23,498-0023,愛知県弥富市鯏浦町,136.714064,35.120647,0000-00-00,0000-00-00,2,3001402 +3001403,3001403,五ノ三,ゴノサン,Gonosan,Gonosan,五之三,고노산,10,,,,,30014,23,498-0012,愛知県弥富市五之三町西本田27,136.711464,35.129838,0000-00-00,0000-00-00,0,3001403 +3001404,3001404,佐屋,サヤ,Saya,Saya,佐屋,사야,09,,,,,30014,23,496-0902,愛知県愛西市須依町佐原2277,136.716612,35.147552,0000-00-00,0000-00-00,0,3001404 +3001405,3001405,日比野,ヒビノ,Hibino,Hibino,日比野,히비노,08,,,,,30014,23,496-0904,愛知県愛西市柚木町東田面793番地3,136.728351,35.163258,0000-00-00,0000-00-00,0,3001405 +3001406,3001308,津島,ツシマ,Tsushima,Tsushima,津岛,쓰시마,07,,,,,30014,23,496-0802,愛知県津島市錦町1-1,136.730995,35.177982,0000-00-00,0000-00-00,0,3001406 +3001407,3001407,町方,マチカタ,Machikata,Machikata,町方,마치카타,01,,,,,30014,23,496-8014,愛知県愛西市町方町南堤外1,136.727551,35.18898,0000-00-00,0000-00-00,0,3001407 +3001408,3001408,六輪,ロクワ,Rokuwa,Rokuwa,六轮,로쿠와,02,,,,,30014,23,490-1323,愛知県稲沢市平和町須ケ脇426,136.729306,35.202395,0000-00-00,0000-00-00,0,3001408 +3001409,3001409,渕高,フチダカ,Fuchidaka,Fuchidaka,渕高,후치다카,03,,,,,30014,23,496-8018,愛知県愛西市渕高町五ノ割40-4,136.727256,35.213944,0000-00-00,0000-00-00,0,3001409 +3001410,3001410,丸渕,マルブチ,Marubuchi,Marubuchi,丸渕,마루부치,04,,,,,30014,23,495-0021,愛知県稲沢市祖父江町三丸渕八嶋20-3,136.728991,35.222635,0000-00-00,0000-00-00,0,3001410 +3001411,3001411,上丸渕,カミマルブチ,Kami Marubuchi,Kami Marubuchi,上丸渕,가미마루부치,05,,,,,30014,23,495-0021,愛知県稲沢市祖父江町三丸渕郷前48-3,136.732521,35.233809,0000-00-00,0000-00-00,0,3001411 +3001412,3001412,森上,モリカミ,Morikami,Morikami,森上,모리카미,06,,,,,30014,23,495-0011,愛知県稲沢市祖父江町森上本郷718-1,136.736698,35.247229,0000-00-00,0000-00-00,0,3001412 +3001413,3001413,山崎,ヤマザキ,Yamazaki,Yamazaki,山崎,야마자키,07,,,,,30014,23,495-0002,愛知県稲沢市祖父江町山崎中屋敷105-1,136.739372,35.256548,0000-00-00,0000-00-00,0,3001413 +3001414,3001414,玉野,タマノ,Tamano,Tamano,玉野,다마노,08,,,,,30014,23,494-0013,愛知県一宮市玉野字河瑞19,136.747982,35.266327,0000-00-00,0000-00-00,0,3001414 +3001415,3001415,萩原,ハギワラ,Hagiwara,Hagiwara,萩原,하기와라,09,,,,,30014,23,491-0376,愛知県一宮市萩原町串作字荒神田面1414,136.757703,35.277157,0000-00-00,0000-00-00,0,3001415 +3001416,3001416,二子,フタゴ,Futago,Futago,二子,후타고,10,,,,,30014,23,491-0353,愛知県一宮市萩原町萩原字大日2903-3,136.766268,35.283986,0000-00-00,0000-00-00,0,3001416 +3001417,3001417,苅安賀,カリヤスカ,Kariyasuka,Kariyasuka,苅安贺,가리야스카,11,,,,,30014,23,491-0934,愛知県一宮市大和町苅安賀字上西之杁130,136.778275,35.287194,0000-00-00,0000-00-00,0,3001417 +3001418,3001418,観音寺,カンノンジ,Kannonji,Kannonji,观音寺,간논지,12,,,,,30014,23,491-0916,愛知県一宮市観音寺2-5-2,136.786191,35.289716,0000-00-00,0000-00-00,0,3001418 +3001419,1150237,名鉄一宮,メイテツイチノミヤ,Meitetsu Ichinomiya,Meitetsu Ichinomiya,名铁一宫,메이테쓰이치노미야,,,50,,,30014,23,491-0912,愛知県一宮市新生1丁目,136.797225,35.30154,0000-00-00,0000-00-00,0,3001419 +3001420,3001420,西一宮,ニシイチノミヤ,Nishi Ichinomiya,Nishi Ichinomiya,西一宫,니시이치노미야,,21,,,,30014,23,491-0046,愛知県一宮市天王1-3-1,136.791948,35.307603,0000-00-00,0000-00-00,0,3001420 +3001421,3001421,開明,カイメイ,Kaimei,Kaimei,开明,가이메이,,22,,,,30014,23,494-0001,愛知県一宮市開明名古羅47-1,136.7741,35.31926,0000-00-00,0000-00-00,0,3001421 +3001422,3001422,奥町,オクチョウ,Okucho,Okucho,奥町,오쿠초,,23,,,,30014,23,491-0201,愛知県一宮市奥町字南目草30-1,136.761092,35.32434,0000-00-00,0000-00-00,0,3001422 +3001423,3001423,玉ノ井,タマノイ,Tamanoi,Tamanoi,玉之井,다마노이,,24,,,,30014,23,493-0004,愛知県一宮市木曽川町玉ノ井古井田140,136.757968,35.334887,0000-00-00,0000-00-00,0,3001423 +3001501,1141101,名鉄名古屋,メイテツナゴヤ,Meitetsu Nagoya,Meitetsu Nagoya,名铁名古屋,메이테쓰 나고야,,36,,,,30015,23,453-0002,愛知県名古屋市中村区名駅一丁目2-1,136.884187,35.169252,0000-00-00,0000-00-00,0,3001501 +3001502,3000137,栄生,サコウ,Sako,Sako,荣生,사코,,37,,,,30015,23,451-0000,愛知県名古屋市西区藤ノ宮通3丁目,136.873051,35.183687,0000-00-00,0000-00-00,0,3001502 +3001503,3000138,東枇杷島,ヒガシビワジマ,Higashi Biwajima,Higashi Biwajima,东枇杷岛,히가시비와지마,,38,,,,30015,23,451-0053,愛知県名古屋市西区枇杷島通3丁目,136.870168,35.189808,0000-00-00,0000-00-00,0,3001503 +3001504,3001504,下小田井,シモオタイ,Shimo Otai,Shimo Otai,下小田井,시모오타이,01,,,,,30015,23,452-0022,愛知県清須市西枇杷島町上新,136.870638,35.201878,0000-00-00,0000-00-00,0,3001504 +3001505,3001505,中小田井,ナカオタイ,Naka Otai,Naka Otai,中小田井,나카오타이,02,,,,,30015,23,452-0822,愛知県名古屋市西区中小田井,136.876772,35.214647,0000-00-00,0000-00-00,0,3001505 +3001506,3001506,上小田井,カミオタイ,Kami Otai,Kami Otai,上小田井,가미오타이,03,,,,,30015,23,452-0816,愛知県名古屋市西区貴生町,136.876941,35.223482,0000-00-00,0000-00-00,0,3001506 +3001507,3001507,西春,ニシハル,Nishiharu,Nishiharu,西春,니시하루,04,,,,,30015,23,481-0041,愛知県北名古屋市九之坪南町,136.871235,35.244627,0000-00-00,0000-00-00,0,3001507 +3001508,3001508,徳重・名古屋芸大,トクシゲ・ナゴヤゲイダイ,Tokushige-Nagoyageidai,Tokushige-Nagoyageidai,德重·名古屋艺大,도쿠시게 · 나고야게이다이,05,,,,,30015,23,481-0038,愛知県北名古屋市徳重大畑,136.873384,35.256045,0000-00-00,0000-00-00,0,3001508 +3001509,3001509,大山寺,タイサンジ,Taisanji,Taisanji,大山寺,다이산지,06,,,,,30015,23,482-0014,愛知県岩倉市大山寺町東出,136.874748,35.263508,0000-00-00,0000-00-00,0,3001509 +3001510,3001510,岩倉,イワクラ,Iwakura,Iwakura,岩仓,이와쿠라,07,,,,,30015,23,482-0043,愛知県岩倉市本町1丁目,136.873511,35.277972,0000-00-00,0000-00-00,0,3001510 +3001511,3001511,石仏,イシボトケ,Ishibotoke,Ishibotoke,石佛,이시보토케,08,,,,,30015,23,482-0034,愛知県岩倉市石仏町,136.871144,35.295545,0000-00-00,0000-00-00,0,3001511 +3001512,3001512,布袋,ホテイ,Hotei,Hotei,布袋,호테이,09,,,,,30015,23,483-8141,愛知県江南市布袋町西布,136.872987,35.317135,0000-00-00,0000-00-00,0,3001512 +3001513,3001513,江南,コウナン,Konan,Konan,江南,고난,10,,,,,30015,23,483-8213,愛知県江南市古知野町字朝日,136.872109,35.33475,0000-00-00,0000-00-00,0,3001513 +3001514,3001514,柏森,カシワモリ,Kashiwamori,Kashiwamori,柏森,가시와모리,11,,,,,30015,23,480-0103,愛知県丹羽郡扶桑町柏森天神,136.900181,35.344807,0000-00-00,0000-00-00,0,3001514 +3001515,3001515,扶桑,フソウ,Fuso,Fuso,扶桑,후소,12,,,,,30015,23,480-0102,愛知県丹羽郡扶桑町大字高雄字下山,136.91597,35.359557,0000-00-00,0000-00-00,0,3001515 +3001516,3001516,木津用水,コツヨウスイ,Kotsuyosui,Kotsuyosui,木津用水,고쓰요스이,13,,,,,30015,23,480-0102,愛知県丹羽郡扶桑町大字高雄字米の山,136.925977,35.366914,0000-00-00,0000-00-00,0,3001516 +3001517,3001517,犬山口,イヌヤマグチ,Inuyamaguchi,Inuyamaguchi,犬山口,이누야마구치,14,,,,,30015,23,484-0081,愛知県犬山市大字犬山字末友,136.939945,35.374212,0000-00-00,0000-00-00,0,3001517 +3001518,3001518,犬山,イヌヤマ,Inuyama,Inuyama,犬山,이누야마,15,,,,,30015,23,484-0081,愛知県犬山市大字犬山字富士見町,136.945536,35.379871,0000-00-00,0000-00-00,0,3001518 +3001519,3001519,犬山遊園,イヌヤマユウエン,Inuyamayuen,Inuyamayuen,犬山游园,이누야마유엔,16,,,,,30015,23,484-0081,愛知県犬山市大字犬山字端泉寺,136.946894,35.390331,0000-00-00,0000-00-00,0,3001519 +3001520,1141606,新鵜沼,シンウヌマ,Shin Unuma,Shin Unuma,新鹈沼,신우누마,17,,,,,30015,21,509-0125,岐阜県各務原市鵜沼南町,136.944314,35.396799,0000-00-00,0000-00-00,0,3001520 +3001601,1141606,新鵜沼,シンウヌマ,Shin Unuma,Shin Unuma,新鹈沼,신우누마,,17,,,,30016,21,509-0125,岐阜県各務原市鵜沼南町,136.944314,35.396799,0000-00-00,0000-00-00,0,3001601 +3001602,3001602,鵜沼宿,ウヌマジュク,Unumajuku,Unumajuku,鹈沼宿,우누마주쿠,,01,,,,30016,21,509-0132,岐阜県各務原市鵜沼西町4丁目,136.932567,35.400015,0000-00-00,0000-00-00,0,3001602 +3001603,3001603,羽場,ハバ,Haba,Haba,羽场,하바,,02,,,,30016,21,509-0135,岐阜県各務原市鵜沼羽場町6丁目,136.921535,35.40119,0000-00-00,0000-00-00,0,3001603 +3001604,3001604,苧ヶ瀬,オガセ,Ogase,Ogase,苎濑,오가세,,03,,,,30016,21,509-0141,岐阜県各務原市鵜沼各務原町五丁目250,136.912266,35.403273,0000-00-00,0000-00-00,0,3001604 +3001605,1141605,名電各務原,メイデンカカミガハラ,Meiden Kakamigahara,Meiden Kakamigahara,名电各务原,메이덴카카미가하라,,04,,,,30016,21,509-0141,岐阜県各務原市鵜沼各務原町2丁目,136.900981,35.402518,0000-00-00,0000-00-00,0,3001605 +3001606,3001606,二十軒,ニジッケン,Nijikken,Nijikken,二十轩,니짓켄,,05,,,,30016,21,509-0146,岐阜県各務原市鵜沼三ツ池町3丁目,136.889307,35.400098,0000-00-00,0000-00-00,0,3001606 +3001607,3001607,三柿野,ミカキノ,Mikakino,Mikakino,三柿野,미카키노,,06,,,,30016,21,504-0904,岐阜県各務原市蘇原三柿野町字往来添,136.876084,35.400156,0000-00-00,0000-00-00,0,3001607 +3001608,3001608,六軒,ロッケン,Rokken,Rokken,六轩,롯켄,,07,,,,30016,21,504-0905,岐阜県各務原市蘇原六軒町4丁目,136.861554,35.40105,0000-00-00,0000-00-00,0,3001608 +3001609,3001609,各務原市役所前,カカミガハラシヤクショマエ,Kakamigahara-shiyakusho-mae,Kakamigahara-shiyakusho-mae,各务原市役所前,가카미가하라시야쿠쇼마에,,08,,,,30016,21,504-0912,岐阜県各務原市那加桜町2丁目,136.847067,35.400869,0000-00-00,0000-00-00,0,3001609 +3001610,3001610,市民公園前,シミンコウエンマエ,Shiminkoen-mae,Shiminkoen-mae,市民公园前,시민코엔마에,,09,,,,30016,21,504-0911,岐阜県各務原市那加門前町4丁目,136.841829,35.400572,0000-00-00,0000-00-00,0,3001610 +3001611,1141603,新那加,シンナカ,Shin Naka,Shin Naka,新那加,신나카,,10,,,,30016,21,504-0961,岐阜県各務原市那加新那加町,136.83386,35.400097,0000-00-00,0000-00-00,0,3001611 +3001612,3001612,新加納,シンカノウ,Shin Kano,Shin Kano,新加纳,신카노,,11,,,,30016,21,504-0034,岐阜県各務原市那加浜見町1丁目,136.824414,35.39938,0000-00-00,0000-00-00,0,3001612 +3001613,3001613,高田橋,タカダバシ,Takada-bashi,Takada-bashi,高田桥,다카다바시,,12,,,,30016,21,500-8224,岐阜県岐阜市高田2丁目,136.811488,35.398383,0000-00-00,0000-00-00,0,3001613 +3001614,3001614,手力,テヂカラ,Tejikara,Tejikara,手力,데지카라,,13,,,,30016,21,500-8233,岐阜県岐阜市蔵前7丁目,136.804472,35.398269,0000-00-00,0000-00-00,0,3001614 +3001615,3001615,切通,キリドオシ,Kiridoshi,Kiridoshi,切通,기리도시,,14,,,,30016,21,500-0000,岐阜県岐阜市南長森切通,136.79564,35.400257,0000-00-00,0000-00-00,0,3001615 +3001616,3001616,細畑,ホソバタ,Hosobata,Hosobata,细畑,호소바타,,15,,,,30016,21,500-8247,岐阜県岐阜市長森細畑,136.785141,35.401637,0000-00-00,0000-00-00,0,3001616 +3001617,3001617,田神,タガミ,Tagami,Tagami,田神,다가미,,16,,,,30016,21,500-8152,岐阜県岐阜市入舟町1丁目,136.772189,35.411261,0000-00-00,0000-00-00,0,3001617 +3001618,3000160,名鉄岐阜,メイテツギフ,Meitetsu Gifu,Meitetsu Gifu,名铁岐阜,메이테쓰기후,,,60,,,30016,21,500-8833,岐阜県岐阜市神田町9丁目,136.760602,35.41163,0000-00-00,0000-00-00,0,3001618 +3001701,3001518,犬山,イヌヤマ,Inuyama,Inuyama,犬山,이누야마,,15,,,,30017,23,484-0081,愛知県犬山市大字犬山字富士見町,136.945536,35.379871,0000-00-00,0000-00-00,0,3001701 +3001702,3001702,富岡前,トミオカマエ,Tomioka-mae,Tomioka-mae,富冈前,도미오카마에,01,,,,,30017,23,484-0092,愛知県犬山市大字富岡字株池127-3,136.962112,35.379508,0000-00-00,0000-00-00,0,3001702 +3001703,3001703,善師野,ゼンジノ,Zenjino,Zenjino,善师野,젠지노,02,,,,,30017,23,484-0003,愛知県犬山市大字善師野字真土5-2,136.980027,35.389744,0000-00-00,0000-00-00,0,3001703 +3001704,3001704,西可児,ニシカニ,Nishi Kani,Nishi Kani,西可儿,니시카니,03,,,,,30017,21,509-0256,岐阜県可児市東帷子334-3,137.010616,35.404685,0000-00-00,0000-00-00,0,3001704 +3001705,3001705,可児川,カニガワ,Kanigawa,Kanigawa,可儿川,가니가와,04,,,,,30017,21,509-0206,岐阜県可児市土田字北割田1356-7,137.01847,35.41812,0000-00-00,0000-00-00,0,3001705 +3001706,3001706,日本ライン今渡,ニホンラインイマワタリ,Nihonrain-Imawatari,Nihonrain-Imawatari,日本莱茵今渡,니혼라인이마와타리,05,,,,,30017,21,509-0207,岐阜県可児市今渡字野市場406-2,137.036818,35.432302,0000-00-00,0000-00-00,0,3001706 +3001707,1150706,新可児,シンカニ,Shin Kani,Shin Kani,新可儿,신카니,06,,,,,30017,21,509-0203,岐阜県可児市下恵土字前田1225-1,137.055622,35.423282,0000-00-00,0000-00-00,0,3001707 +3001708,3001708,明智,アケチ,Akechi,Akechi,明智,아케치,07,,,,,30017,21,509-0217,岐阜県可児市平貝戸川田551,137.087295,35.433208,0000-00-00,0000-00-00,0,3001708 +3001709,3001709,顔戸,ゴウド,Godo,Godo,颜户,고도,08,,,,,30017,21,505-0122,岐阜県可児郡御嵩町大字顔戸山之神318-3,137.105154,35.434522,0000-00-00,0000-00-00,0,3001709 +3001710,3001710,御嵩口,ミタケグチ,Mitakeguchi,Mitakeguchi,御嵩口,미타케구치,09,,,,,30017,21,505-0121,岐阜県可児郡御嵩町中字茶園原473,137.121741,35.431281,0000-00-00,0000-00-00,0,3001710 +3001711,3001711,御嵩,ミタケ,Mitake,Mitake,御嵩,미타케,10,,,,,30017,21,505-0121,岐阜県可児郡御嵩町中字西之門2302-2,137.127527,35.429723,0000-00-00,0000-00-00,0,3001711 +3001801,3001801,上飯田,カミイイダ,Kami Iida,Kami Iida,上饭田,가미이다,13,15,,,,30018,23,462-0808,愛知県名古屋市北区上飯田通2-40,136.929642,35.203845,0000-00-00,0000-00-00,0,3001801 +3001802,3001802,味鋺,アジマ,Ajima,Ajima,味鋺,아지마,12,,,,,30018,23,462-0013,愛知県名古屋市北区東味鋺2-123,136.936113,35.222478,0000-00-00,0000-00-00,0,3001802 +3001803,3001803,味美,アジヨシ,Ajiyoshi,Ajiyoshi,味美,아지요시,11,,,,,30018,23,486-0958,愛知県春日井市西本町,136.937134,35.235209,0000-00-00,0000-00-00,0,3001803 +3001804,3001804,春日井,カスガイ,Kasugai,Kasugai,春日井,가스가이,10,,,,,30018,23,486-0963,愛知県春日井市大字春日井町字土合,136.936228,35.25035,0000-00-00,0000-00-00,0,3001804 +3001805,3001805,牛山,ウシヤマ,Ushiyama,Ushiyama,牛山,우시야마,09,,,,,30018,23,486-0901,愛知県春日井市牛山町字下荒井951,136.931356,35.264014,0000-00-00,0000-00-00,0,3001805 +3001806,3001806,間内,マナイ,Manai,Manai,间内,마나이,08,,,,,30018,23,486-0901,愛知県春日井市牛山町字間内281-3,136.9312,35.271585,0000-00-00,0000-00-00,0,3001806 +3001807,3001807,小牧口,コマキグチ,Komakiguchi,Komakiguchi,小牧口,고마키구치,07,,,,,30018,23,485-0023,愛知県小牧市北外山字大畔,136.927675,35.281717,0000-00-00,0000-00-00,0,3001807 +3001808,3001808,小牧,コマキ,Komaki,Komaki,小牧,고마키,06,,,,,30018,23,485-0029,愛知県小牧市中央1丁目,136.928461,35.28915,0000-00-00,0000-00-00,0,3001808 +3001809,3001809,小牧原,コマキハラ,Komakihara,Komakihara,小牧原,고마키하라,05,,,,,30018,23,485-0012,愛知県小牧市小牧原新田字南原,136.935836,35.300145,0000-00-00,0000-00-00,0,3001809 +3001810,3001810,味岡,アジオカ,Ajioka,Ajioka,味冈,아지오카,04,,,,,30018,23,485-0011,愛知県小牧市岩崎143,136.940304,35.309301,0000-00-00,0000-00-00,0,3001810 +3001811,3001811,田県神社前,タガタジンジャマエ,Tagatajinja-mae,Tagatajinja-mae,田县神社前,다가타진자마에,03,,,,,30018,23,485-0003,愛知県小牧市久保一色字佃1052-2,136.943675,35.317422,0000-00-00,0000-00-00,0,3001811 +3001812,3001812,楽田,ガクデン,Gakuden,Gakuden,乐田,가쿠덴,02,,,,,30018,23,484-0861,愛知県犬山市若宮126-2,136.950101,35.330548,0000-00-00,0000-00-00,0,3001812 +3001813,3001813,羽黒,ハグロ,Haguro,Haguro,羽黑,하구로,01,,,,,30018,23,484-0894,愛知県犬山市羽黒字古市場75-1,136.952486,35.351519,0000-00-00,0000-00-00,0,3001813 +3001814,3001518,犬山,イヌヤマ,Inuyama,Inuyama,犬山,이누야마,,15,,,,30018,23,484-0081,愛知県犬山市大字犬山字富士見町,136.945536,35.379871,0000-00-00,0000-00-00,0,3001814 3001901,3001519,犬山遊園,イヌヤマユウエン,INUYAMAYUEN,INUYAMAYUEN,犬山游园,이누야마유엔,,,,,,30019,23,484-0081,愛知県犬山市大字犬山字端泉寺,136.946894,35.390331,0000-00-00,0000-00-00,2,3001901 3001902,3001902,成田山,ナリタサン,NARITASAN,NARITASAN,成田,나리타산,,,,,,30019,23,484-0081,愛知県犬山市大字犬山字北白山平5-7,136.949646,35.387426,0000-00-00,0000-00-00,2,3001902 3001903,3001903,動物園,ドウブツエン,DOBUTSUEN,DOBUTSUEN,动物园,도부츠엔,,,,,,30019,23,484-0081,愛知県犬山市大字犬山字官林,136.956687,35.390318,0000-00-00,0000-00-00,2,3001903 -3002001,3000156,笠松,カサマツ,KASAMATSU,KASAMATSU,笠松,가사마쓰,,56,,,,30020,21,501-6037,岐阜県羽島郡笠松町西金池町,136.764664,35.37466,0000-00-00,0000-00-00,0,3002001 -3002002,3002002,西笠松,ニシカサマツ,NISHI KASAMATSU,NISHI KASAMATSU,西笠松,니시카사마쓰,01,,,,,30020,21,501-6077,岐阜県羽島郡笠松町天王町45,136.757901,35.36906,0000-00-00,0000-00-00,0,3002002 -3002003,3002003,柳津,ヤナイヅ,YANAIZU,YANAIZU,柳津,야나이즈,02,,,,,30020,21,501-6111,岐阜県岐阜市柳津町宮東,136.737103,35.364925,0000-00-00,0000-00-00,0,3002003 -3002004,3002004,南宿,ミナミジュク,MINAMI JUKU,MINAMI JUKU,南宿,미나미주쿠,03,,,,,30020,21,501-6203,岐阜県羽島市足近町南宿字北出916-1,136.728604,35.347869,0000-00-00,0000-00-00,0,3002004 -3002005,3002005,須賀,スカ,SUKA,SUKA,须贺,스카,04,,,,,30020,21,501-6217,岐阜県羽島市正木町須賀小松219,136.726805,35.340192,0000-00-00,0000-00-00,0,3002005 -3002006,3002006,不破一色,フワイシキ,FUWA ISHIKI,FUWA ISHIKI,不破一色,후와이시키,05,,,,,30020,21,501-6216,岐阜県羽島市正木町須賀字道下2221-5,136.721897,35.332959,0000-00-00,0000-00-00,0,3002006 -3002007,3002007,竹鼻,タケハナ,TAKEHANA,TAKEHANA,竹鼻,다케하나,06,,,,,30020,21,501-6232,岐阜県羽島市竹鼻町狐穴字栄町3305,136.706399,35.326734,0000-00-00,0000-00-00,0,3002007 -3002008,3002008,羽島市役所前,ハシマシヤクショマエ,HASHIMA-SHIYAKUSHO-MAE,HASHIMA-SHIYAKUSHO-MAE,羽岛市役所前,하시마시야쿠쇼마에,07,,,,,30020,21,501-6241,岐阜県羽島市竹鼻町字宮町761,136.70003,35.321924,0000-00-00,0000-00-00,0,3002008 -3002009,3002009,江吉良,エギラ,EGIRA,EGIRA,江吉良,에기라,08,,,,,30020,21,501-6236,岐阜県羽島市江吉良町江東839,136.699686,35.31543,0000-00-00,0000-00-00,0,3002009 -3002101,3002009,江吉良,エギラ,EGIRA,EGIRA,江吉良,에기라,08,,,,,30021,21,501-6236,岐阜県羽島市江吉良町江東839,136.699686,35.31543,0000-00-00,0000-00-00,0,3002101 -3002102,3002102,新羽島,シンハシマ,SHIN HASHIMA,SHIN HASHIMA,新羽島,신하시마,09,,,,,30021,21,501-6301,岐阜県羽島市舟橋町宮北1-1-1,136.686582,35.315471,0000-00-00,0000-00-00,0,3002102 +3002001,3000156,笠松,カサマツ,Kasamatsu,Kasamatsu,笠松,가사마쓰,,56,,,,30020,21,501-6037,岐阜県羽島郡笠松町西金池町,136.764664,35.37466,0000-00-00,0000-00-00,0,3002001 +3002002,3002002,西笠松,ニシカサマツ,Nishi Kasamatsu,Nishi Kasamatsu,西笠松,니시카사마쓰,01,,,,,30020,21,501-6077,岐阜県羽島郡笠松町天王町45,136.757901,35.36906,0000-00-00,0000-00-00,0,3002002 +3002003,3002003,柳津,ヤナイヅ,Yanaizu,Yanaizu,柳津,야나이즈,02,,,,,30020,21,501-6111,岐阜県岐阜市柳津町宮東,136.737103,35.364925,0000-00-00,0000-00-00,0,3002003 +3002004,3002004,南宿,ミナミジュク,Minami Juku,Minami Juku,南宿,미나미주쿠,03,,,,,30020,21,501-6203,岐阜県羽島市足近町南宿字北出916-1,136.728604,35.347869,0000-00-00,0000-00-00,0,3002004 +3002005,3002005,須賀,スカ,Suka,Suka,须贺,스카,04,,,,,30020,21,501-6217,岐阜県羽島市正木町須賀小松219,136.726805,35.340192,0000-00-00,0000-00-00,0,3002005 +3002006,3002006,不破一色,フワイシキ,Fuwa Ishiki,Fuwa Ishiki,不破一色,후와이시키,05,,,,,30020,21,501-6216,岐阜県羽島市正木町須賀字道下2221-5,136.721897,35.332959,0000-00-00,0000-00-00,0,3002006 +3002007,3002007,竹鼻,タケハナ,Takehana,Takehana,竹鼻,다케하나,06,,,,,30020,21,501-6232,岐阜県羽島市竹鼻町狐穴字栄町3305,136.706399,35.326734,0000-00-00,0000-00-00,0,3002007 +3002008,3002008,羽島市役所前,ハシマシヤクショマエ,Hashima-shiyakusho-mae,Hashima-shiyakusho-mae,羽岛市役所前,하시마시야쿠쇼마에,07,,,,,30020,21,501-6241,岐阜県羽島市竹鼻町字宮町761,136.70003,35.321924,0000-00-00,0000-00-00,0,3002008 +3002009,3002009,江吉良,エギラ,Egira,Egira,江吉良,에기라,08,,,,,30020,21,501-6236,岐阜県羽島市江吉良町江東839,136.699686,35.31543,0000-00-00,0000-00-00,0,3002009 +3002101,3002009,江吉良,エギラ,Egira,Egira,江吉良,에기라,08,,,,,30021,21,501-6236,岐阜県羽島市江吉良町江東839,136.699686,35.31543,0000-00-00,0000-00-00,0,3002101 +3002102,3002102,新羽島,シンハシマ,Shin Hashima,Shin Hashima,新羽島,신하시마,09,,,,,30021,21,501-6301,岐阜県羽島市舟橋町宮北1-1-1,136.686582,35.315471,0000-00-00,0000-00-00,0,3002102 3100101,3100101,大阪難波,オオサカ ナンバ,Osaka-Namba,Osaka-Namba,大阪难波,오사카난바,01,,,,,31001,27,542-0076,大阪府大阪市中央区難波四丁目1-17,135.499144,34.667113,0000-00-00,0000-00-00,0,3100101 3100102,3100102,近鉄日本橋,キンテツニッポンバシ,Kintetsu-Nippombashi,Kintetsu-Nippombashi,近铁日本桥,긴테쓰닛폰바시,02,,,,,31001,27,542-0073,大阪府大阪市中央区日本橋1-18-14,135.505818,34.666949,0000-00-00,0000-00-00,0,3100102 3100103,3100103,大阪上本町,オオサカ ウエホンマチ,Osaka-Uehommachi,Osaka-Uehommachi,大阪上本町,오사카우에혼마치,03,,,,,31001,27,543-0001,大阪府大阪市天王寺区上本町六丁目1-55,135.522189,34.665513,0000-00-00,0000-00-00,0,3100103