1

フィーチャをテーブルに一括挿入しようとしています。これが私のjsonです

{"features":[{"type":"Feature","geometry":{"type":"Point","coordinates":["-80.358681","27.643045"]},"properties":{"gx_id":"84","address":"9037 Somerset Bay Lane, Vero Beach Port St. Lucie FL 32963","name":"x","phone":"x","email":"x","vehicle":"Cadillac ATS"}},{"type":"Feature","geometry":{"type":"Point","coordinates":["-81.819611","26.380350"]},"properties":{"gx_id":"85","address":"3951 Lakemont Drive, Bonita Springs Fort Meyers FL 34134","name":"x","phone":"x","email":"x","vehicle":"Toyota  Highlander"}},{"type":"Feature","geometry":{"type":"Point","coordinates":["-82.677773","27.427950"]},"properties":{"gx_id":"86","address":"6809 Gulf Of Mexico Dr Longboat Key Sarasota FL 34228","name":"x","phone":"x","email":"x","vehicle":"Cadillac  SRX"}},{"type":"Feature","geometry":{"type":"Point","coordinates":["-82.677773","27.427950"]},"properties":{"gx_id":"87","address":"6809 Gulf Of Mexico Dr Longboat Key, Sarasota FL 34228","name":"x","phone":"x","email":"x","vehicle":"Cadillac SRX"}},{"type":"Feature","geometry":{"type":"Point","coordinates":["-81.818977","26.590782"]},"properties":{"gx_id":"88","address":"10381 McArthur Palm Lane, Fort Myers Fort Meyers FL 33950","name":"x","phone":"x","email":"x","vehicle":"Infinity M35"}},{"type":"Feature","geometry":{"type":"Point","coordinates":["-81.972443","28.908287"]},"properties":{"gx_id":"89","address":"The Villages, Lake Sumter Landing, Lady Lake Orlando FL 32162","name":"x","phone":"x","email":"x","vehicle":"VW Bettle"}}]}

これが私のAjaxです

    function sendBatch(tableID, data){
        dataString = data;
        console.log(dataString);
        var url = "https://www.googleapis.com/mapsengine/v1/tables/"+tableID+"/features/batchInsert";

        jQuery.ajax({
            type: "POST",
            url: url,
            data: dataString,
            contentType: 'application/json',
            headers: {
              'Authorization': 'Bearer ' + authResult.access_token
            },
            success: function(response) {
              // Log the details of the Map.
              console.log(response);
            },
            error: function(response) {
              response = JSON.parse(response.responseText);
              console.log("Error: ", response);
            }
        });
    }

ここに私が得ているエラーがあります

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "The value is invalid.",
    "locationType": "parameter",
    "location": "id"
   }
  ],
  "code": 400,
  "message": "The value is invalid."
 }
}

機能を渡しているので、なぜ問題が発生しているのかわかりません。誰にも考えやアイデアはありますか?

4

1 に答える 1

1

APIに送信しているデータ/データ文字列を知らずに伝えるのは難しいですが、エラーは場所「id」で「値が無効です」と言っています。「id」列に指定した値がスキーマに対して正しくない可能性があります。つまり、id という文字列型の列を設定しており、(たとえば) double を送信している場合、そのエラーが発生します。

注意すべきことの 1 つは、精度の低下を避けるために、API では整数を引用符付き文字列として送信する必要があることです。詳細はドキュメントにあります。


EDIT : テーブルをセットアップし、問題なく JSON を挿入することができました。エラーは「id」の場所を指しています。これは、URL で指定したテーブル IDに対応していると思われます。機能プロパティである可能性があると言いましたが、その場所は "features[0].properties.id" のようになります。このエラーは、"parameter" の "locationType" も指定しています。tableIDパラメータをチェックして、それが有効であることを確認できますか?

于 2014-02-17T10:14:14.517 に答える