LoginSignup
1
1

More than 1 year has passed since last update.

Mapbox for Unity で住所を整形する

Last updated at Posted at 2021-10-03

Mapbox for Unityはとても便利で控えめに言って最の高なんですが、

_resFromLatLon = new ReverseGeocodeResource(latLon);
MapboxAccess.Instance.Geocoder.Geocode(_resFromLatLon, HandleGeocoderResponse);

と緯度経度から住所を検索したときに

image.png
のような形で微妙に要らないものがついてきます。おしい。
便利でかゆいところに手の届くMapbox for Unityがこれを整形する、または同じ言語だけのアドレスを返してくれる機能を持っていないはずはないと思うのですが、残念ながら見つけることができなかったので、返ってくる情報の規則性を元に整形するものを作成しました。

static public string GetPlaceNameFromFeatures(List<Feature> _features)
{
    string placeName = "";
    for (int i = 0; i < _features.Count; ++i)
    {
        int cnt = _features.Count - 1 - i;
        if (_features[cnt].Id.StartsWith("country"))
            continue;
        if (_features[cnt].Id.StartsWith("region"))
            continue;
        if (_features[cnt].Id.StartsWith("postcode"))
            continue;
        placeName += _features[cnt].Text;
        if (_features[cnt].Address != null)
            placeName += _features[cnt].Address;
    }
    return placeName;
}

これで以下のような住所が返ってくるようになりました。
以下は新宿近辺のランダムなWorldPositionの住所を検索したものです。
image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1