6

現在、Mapkit Frameworkを使用しているユーザーの現在の都市と場所を表示する必要があるiPhoneアプリケーションを開発しています。アプリケーションをビルドすると、正常に動作し、正確な都市の詳細が表示されます。アプリケーションが再びアプリケーションのログに次のエラーメッセージが表示されます

/SourceCache/ProtocolBuffer_Sim/ProtocolBuffer-26/Runtime/PBRequester.m:523サーバーがエラーを返しました:503

reverseGeocoder:didFailWithError:Error Domain = PBRequesterErrorDomain Code = 6001 "操作を完了できませんでした。(PBRequesterErrorDomainエラー6001)"

同じ問題に直面している団体はありますか?どうすれば解決できますか?

4

4 に答える 4

9

あなたがテスト中で、逆ジオコーダーを使いすぎて、Googleのサーバーがそれを知っているので、これが起こっていると私はかなり確信しています。だから、それは基本的にしばらくの間あなたをブロックしました。後でもう一度やり直して、機能するかどうかを確認してください。

60秒に1回以上ジオコーダーを呼び出さないようにする必要があります。

于 2010-05-31T18:48:56.633 に答える
2

私が見つけます!
さて、ここでCLGeocoderを使用する必要がありますが、それでもMKReverseGeocoderを使用する場合は、ジオコードオブジェクトが新しいオブジェクトであっても、[geocoderstart]を2回呼び出さないでください。たとえば、これを行わないでください。

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation 
{
        MKReverseGeocoder *geoCoder = [[[MKReverseGeocoder alloc] initWithCoordinate:newLocation.coordinate] autorelease];
        geoCoder.delegate = self;
        [geoCoder start];
}

または、エラーが発生します。新しい位置が検出されるとすぐに、ロケーションマネージャーの位置更新機能が呼び出されます。精度がどんどん良くなっているので、新しい新しいポスションが「didUpdateToLocation」に送信されています。
ただし、位置が見つかるたびに新しいオブジェクトMKReverseGeocoderを作成することはお勧めできません。したがって、いくつかの解決策
があります。-ジオコーダーの起動時にtrueとなるブール値を入力します。次に、didFindPlacemark(ジオコーダー)で、[ジオコーダーキャンセル]を使用してジオコーダーを停止し、ブール値をfalseに設定する必要があります。
-ジオコーダー変数をローカルではなく、[ジオコーダーキャンセル] +解放して新しい変数を作成し、didUpdateToLocationが呼び出されるたびに[ジオコーダー開始]を管理します。
-[geocoderstart]が2回呼び出されないようにするその他の方法

私は最初の解決策を使用しましたが、503エラーはもう発生しません。

于 2011-12-14T21:10:31.960 に答える
2

私にとって、MKReverseGeocoderは503で何度も失敗していました。また、60秒が経過した後でも、最初に要求されたときに失敗します。その結果、私はそれを使用することをあきらめ、代わりに、SBJSONフレームワークを使用して結果をJSON文字列として解析するサービスを介してNSURLRequestを使用してGoogleのAPIに直接アクセスすることにしました(非常に便利です)。

私のサービスから、次のURLを次のように呼び出します。

NSString *urlStr = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&sensor=true", coordinate.latitude, coordinate.longitude];

はどこにcoordinateありますかCLLocationCoordinate2D

これは問題を回避するのに長い道のりだと思いますが、このシステムに変換してから問題はありませんでした。

于 2012-01-20T15:57:49.790 に答える
0

サーバーのステータスに応じて、ランダムに発生する可能性があります。

于 2011-09-14T14:48:32.840 に答える