0

こんばんは Stackoverflow

仕事で使用するレイヤーレイヤーを開発しようとしていますが、すぐに問題が発生します。これがシナリオです

Layar がチュートリアル用に提供するサンプル コードをダウンロードしまし た。リンクは次のとおりです。

今、私はこのコードを一切変更していません。

joejoz_layar という名前のデータベースをセットアップしました。そのデータベースに含まれている .SQL ファイルをインポートすると、Layer と POI という 2 つのテーブルが作成されます。

これがどのように接続され、出力がどのように見えるかを確認したいので、含まれているすべてのファイルをサーバーにアップロードし、ボックスの firstTutorial_simplified.php に移動します。

これは私が得るエラーです:

メッセージ: GetPOI 要求で layerName パラメーターが渡されません。警告: ヘッダー情報を変更できません - firstTutorial_simplified.php の 225 行目のヘッダー (出力は firstTutorial_simplified.php:64 で開始) {"layer":null,"hotspots":[],"errorCode":20,"errorString ":"POI が見つかりません。範囲を調整してください。"}

SQLインポートには1つのPOIが含まれているため、ここで何が間違っているのか本当に混乱しています。変更した config.inc.php は次のとおりです。

  define('DBHOST', 'localhost');
  define('DBDATA', 'joejoz_layar');
  define('DBUSER', 'joejo_layar01');
  define('DBPASS', 'XXXXXXXXX');

私は他の場所で答えを見つけようとしましたが、スウェーデン語のものに出くわしました... 私は話せません. スウェーデンのシェフと関係のない人が私を助けてくれますか?

4

2 に答える 2

2

必要なすべての値を渡していないように見えます$_GET

例: $_GET['layerName']$_GET['lat']$_GET['lon']および$_GET['radius']

getRequestParams($keys);キーは、 191 行目に送信するキー/値配列と一致する必要があります。

行 56 はfirstTutorial_simplified.php一致$keysするisset($_GET[$key])ため、行 59 で例外が呼び出されます。

これはjson文字列を返すAPIですが、パラメータを渡す必要があります

./firstTutorial_simplified.php?layerName=somelayer&lat=12345&lon=12345&radius=12345

スクリプトに直接アクセスすると、チェックがないためエラーが発生します

したがって、実際にはいくつかの isset() チェックを実行する必要があります。それ以外の場合は、コードを実行しないでください。

于 2012-02-29T23:53:37.627 に答える
0

「範囲を調整してください」と表示されること。「POIが見つかりません」は、機能していることを意味します。レイヤーへのクエリで、範囲の半径内に関心のあるポイントが見つからなかっただけです。データベース内のサンプル POI は、アムステルダムの Layar オフィスです。LAYAR テスト サイトでは、Google マップにアムステルダムが表示されますが、デフォルトでは範囲は LAYAR オフィスの場所をカバーしていません。テスト ページのスライダーを使用して範囲を大きくすると、おそらく POI を見つけることができます。

これについては間違っているかもしれませんが、範囲を変更したり、テストレイヤー上で人を動かしたりした場合にPOIを見つけるfirstTutorial_simplified.phpの[レイヤーテストサイトで表示した場合]のセットアップから得られる応答を次に示します。エラー メッセージには、「POI が見つかりません。範囲を調整してください」というメッセージよりも深刻な問題があると思います。そして、あなたは「応答が検証されました」とは言っていないと思います

Loading layer "ttguyhellowld1"...
found layer = ttguyhellowld1
Loading POIs
Loading POIs for page #1
oauth disabled
POI fwd url = http://home.exetel.com.au/ttguy/layar/firstTutorial_simplified.php?lang=en&countryCode=AU&lon=4.887339&userId=6f85d06929d160a7c8a3cc1ab4b54b87db99f74b&version=6.2&radius=1500&lat=52.377544&layerName=ttguyhellowld1&accuracy=100
Response received from provider, validating...
response code : 200
Response validated, sending it back...
oauth disabled
POI fwd url = http://home.exetel.com.au/ttguy/layar/firstTutorial_simplified.php?lang=en&countryCode=AU&lon=4.887339&userId=6f85d06929d160a7c8a3cc1ab4b54b87db99f74b&version=6.2&radius=1500&lat=52.377544&layerName=ttguyhellowld1&accuracy=100
Response received from provider, validating...
response code : 200
Response validated, sending it back...
Error: No POI found. Please adjust the range.
Loaded 0 POIs

一方、ブラウザで直接 firstTutorial_simplified.php を指定すると、次のメッセージが表示されます。

Message: layerName parameter is not passed in GetPOI request.{"layer":null,"hotspots":[],"errorCode":20,"errorString":"No POI found. Please adjust the range."}

ただし、レイヤー テスト サイトからテストすると、レイヤーは引き続き機能します。したがって、「GetPOI リクエストで layerName パラメータが渡されていません」は致命的ではありません。

于 2012-04-25T06:32:36.380 に答える