Mapbox for Unityはとても便利で控えめに言って最の高なんですが、
_resFromLatLon = new ReverseGeocodeResource(latLon);
MapboxAccess.Instance.Geocoder.Geocode(_resFromLatLon, HandleGeocoderResponse);
と緯度経度から住所を検索したときに
のような形で微妙に要らないものがついてきます。おしい。
便利でかゆいところに手の届く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の住所を検索したものです。