電話番号の情報を取得するために、Google libphonenumberに取り組んでいます。州と国名を引っ張ることができました。しかし、CITY 名を取得できません。Google API は CITY 名も提供しますか?
事前にアドバイスをお願いします。
電話番号の情報を取得するために、Google libphonenumberに取り組んでいます。州と国名を引っ張ることができました。しかし、CITY 名を取得できません。Google API は CITY 名も提供しますか?
事前にアドバイスをお願いします。
Google の
libphonenumber
APIは市外局番に基づいて都市名を提供しますか?
はい - ただし、その内部ジオコーディング データベースにその情報が含まれている場合のみです。一部の米国の電話番号は完全に非地理的 (1-800
番号など) であり、その他の多くの電話番号については、データベースにその情報がありません。
また、libphonenumber
の geo ルックアップは単一のstring
値のみを返します。都市、州、郡、および郵便番号フィールドを持つクラスのような構造化データは返しません。また、返される文字列値の形式はかなり異なります。人間のユーザーがデータを解釈する必要があるため、自動化されたシステムでの使用は制限されます。
たとえば、現在libphonenumber
(2021 年 12 月現在、バージョン8.12.38
) を使用すると、これらの架空の有効な数値に対して次の結果が得られます。
1-800-333-4567
libphonenumber
のルックアップは文字列を返します"United States"
。1-201-200-0000
libphonenumber
のルックアップは文字列を返します"Jersey City, NJ"
。
1-425-666-9999
libphonenumber
のルックアップは、"Washington State"
都市名などのない不正確な文字列のみを返します。"WA"
省略形ではなく、完全な米国の州名が返されたのは興味深いことです。インプロセスの「オフライン」地理位置情報データベースと同様に、データは必然的に古くなり、不正確になることを忘れないでください。また、少なくとも米国では、携帯電話番号と固定電話番号を区別することは不可能であり、誰かの携帯電話番号の市外局番は、電話加入者の実際の物理的な場所から完全に切り離されています (通常、電話番号の市外局番です)。最初にサービスにサインアップした AT&T / T-Mobile / Sprint ストア (後で全国に移動した場合でも)。
とにかく、PhoneNumberOfflineGeocoder
クラスの使用方法は次のとおりです。
static string lookupNumber( string phoneNumber ) {
PhoneNumber parsed = PhoneNumberUtil.getInstance().parse( phoneNumber, /*defaultRegion:*/ "US" );
return PhoneNumberOfflineGeocoder.getInstance().getDescriptionForNumber( parsed, Locale.ENGLISH );
}
lookupNumber( "1-800-333-4567" ) // "United States"
lookupNumber( "+12012000000" ) // "Jersey City, NJ"
lookupNumber( "+14256669999" ) // "Washington State"
static String LookupNumber( string phoneNumber ) {
PhoneNumber parsed = PhoneNumberUtil.GetInstance().Parse( phoneNumber, defaultRegion: "US" );
return PhoneNumberOfflineGeocoder.GetInstance().GetDescriptionForNumber( parsed, Locale.English );
}
LookupNumber( "1-800-333-4567" ) // "United States"
LookupNumber( "+12012000000" ) // "Jersey City, NJ"
LookupNumber( "+14256669999" ) // "Washington State"