8 releases
Uses new Rust 2024
| 0.2.1 | Dec 6, 2025 |
|---|---|
| 0.2.0 | Dec 6, 2025 |
| 0.1.5 | Oct 12, 2025 |
| 0.1.1 | May 1, 2025 |
| 0.1.0 | Mar 10, 2025 |
#292 in Geospatial
1MB
302 lines
Japan Geo Reverse Lookup
A Rust library for reverse geocoding in Japan. Given a longitude and latitude, this library returns information about the region(s) the coordinates are located in, including code, name, and English name.
Installation
Rust 
cargo add reversejp
// reversejp-rust/examples/demo.rs
use reversejp::ReverseJp;
let reverse_jp = ReverseJp::with_embedded_data().unwrap();
let props = reverse_jp.find_properties(139.7670, 35.6812);
for prop in props {
println!("Code: {}, Name: {}, English Name: {}", prop.code, prop.name, prop.en_name);
}
Example output:
Code: 130010, Name: 東京都, English Name: Tokyo
Code: 1310100, Name: 千代田区, English Name: Chiyoda City
Performance benchmark(Under MacBook Pro with Apple M3 Max):
Python 
pip install reversejp
# reversejp-python/examples/demo.py
import reversejp
props = reversejp.find_properties(139.7670, 35.6812)
for prop in props:
print(prop.code, prop.name, prop.en_name)
Example output:
130010 東京都 Tokyo
1310100 千代田区 Chiyoda City
Performance benchmark(Under MacBook Pro with Apple M3 Max):
-------------------------------------------------- benchmark: 1 tests --------------------------------------------------
Name (time in us) Min Max Mean StdDev Median IQR Outliers OPS (Kops/s) Rounds Iterations
------------------------------------------------------------------------------------------------------------------------
test_city_benchmark 11.2909 623.2501 13.9494 20.8232 12.5421 0.5411 91;3468 71.6877 21090 1
------------------------------------------------------------------------------------------------------------------------
JavaScript&TypeScript via WebAssembly 
# Install via bun or any other package manager
bun add reversejp-wasm
The command above produces a pkg/ directory containing the WebAssembly module
and TypeScript bindings that can be published to npm or consumed directly.
// reversejp-wasm/example/index.ts
import init, { initialize, find_properties } from "../pkg/reversejp_wasm.js";
await init();
initialize();
// `find_properties` returns an array of objects with the same shape as the
// `Properties` struct in the Rust crate: `{ code, name, enName }`.
const results = find_properties(139.767, 35.6812);
console.log(JSON.stringify(results, null, 2));
Run via
bun run reversejp-wasm/example/index.ts
Output:
[
{
"code": "130010",
"name": "東京都",
"enName": "Tokyo"
},
{
"code": "1310100",
"name": "千代田区",
"enName": "Chiyoda City"
}
]
For basic JavaScript usage, see
reversejp-wasm/preview/index.html which
online previewed at
https://ringsaturn.github.io/reversejp/.
License
MIT
Data is sourced from the Japan Meteorological Agency website.
Dependencies
~7.5MB
~137K SLoC