1

ここで何がうまくいかないのか誰にも教えてもらえますか。逆ジオコーディングを使用して住所を取得しようとしています..`

if (locationGPS != null) {
                    list = geocoder.getFromLocation(locationGPS.getLatitude(),
                            locationGPS.getLongitude(), 3);

                    if (list != null) {
                        if (list.size() > 0) {
                            strZipcode = list.get(0).getPostalCode();
                            strAdminArea = list.get(0).getAdminArea();
                            strLocality = list.get(0).getLocality();
                            strAddressLine = list.get(0).getAddressLine(0);

                            Log.d(TAG, "list of address: "+ list);
                            Log.d(TAG, "Data: "+ mobileDataEnabled);
                            Log.d(TAG, "Data: "+ mobile);



                            int count = 0;
                            while ((strZipcode == null || strAdminArea == null
                                    || strLocality == null || (strAddressLine == null || strAddressLine == "USA"))
                                    && count < list.size()) {
                                strZipcode = list.get(count).getPostalCode();
                                strAdminArea = list.get(count).getAdminArea();
                                strLocality = list.get(count).getLocality();
                                strAddressLine = list.get(count)
                                        .getAddressLine(count);
                                count++;
                            }`

これは正常に機能し、正しいアドレスを提供します。しかし、null値のチェックが行われているにもかかわらず、取得しようとしているすべての値に対してnullが返されることがあります..ここに何か不足していますか?

4

1 に答える 1

0

Reverse Geocoder は常に値を返すとは限りません。奇妙に聞こえますが、これがその方法です。たとえば、アドレスを 5 回ヒットした場合、すべてのヒットに対して応答を得ることができるほど幸運ではありません。代わりに 3 を取得できます。したがって、回避策として、一度に 1 つずつジオコーダーを実行するのではなく、リクエストを 2 回または 3 回以上ループしてみてください。リクエストの 1 つが機能することが期待されます。

于 2013-07-05T06:04:18.023 に答える