1

ここで何か間違ったことをしているに違いありませんが、何を見つけることができません... 私は会社の Web サイトのページを作成しています。特に、ユーザーの現在の場所に基づいて求人サイトへの道順を提供しています。彼らの位置を取得するために、Firefox に実装されているGeolocation APIを使用しています(以前は FF9 でテストしていましたが、現在は FF10 でテストしています)。今のところ、ウィキペディアの記事にあるサンプル コードでテストしています。

<html>
<head>
<title>Geolocation Test</title>
<script type='text/javascript'>
var gl;

function displayPosition(position) {
  var p = document.getElementById("p");
  p.innerHTML = "<table border='1'><tr><th>Timestamp</th><td>" + position.timestamp +
    "<tr><th>Latitude (WGS84)</th><td>" + position.coords.latitude + " deg</td></tr>" +
    "<tr><th>Longitude (WGS84)</th><td>" + position.coords.longitude + " deg</td></tr></table>";
}

function displayError(positionError) {
  alert("error " + positionError.code);
}

try {
  if (typeof navigator.geolocation === 'undefined'){
    gl = google.gears.factory.create('beta.geolocation');
  } else {
    gl = navigator.geolocation;
  }
} catch(e) {}

if (gl) {
  gl.getCurrentPosition(displayPosition, displayError);
} else {
  alert("Geolocation services are not supported by your web browser.");
}
</script>

<body>
<p id='p'></p>
</body>
</html>

(これをコピーしてテキスト エディターに貼り付け、"whatever.html" として保存し、ファイルをブラウザーにドラッグして開きます)

非常に単純なコードで、2012 年 1 月 26 日の木曜日には実際に問題なく動作しました。(私は知っています、人々は実際に何かをだましていたときに「昨日はうまくいきました!」と言いますが、本当にそうであったことを誓います。)しかし、それ以来、エラーコード2「POSITION_UNAVAILABLE」が表示されています. 仕事用ネットワーク上の仕事用コンピューター、自宅のインターネット接続上の仕事用コンピューターと自宅用コンピューター、および電話からの Wi-Fi ホットスポット上の仕事用コンピューターで試してみましたが、毎回エラー コード 2 が表示されます。

ブラウザやネットワーク設定などで何かおかしくなったのではないかと思ったので (何が何だか想像できませんでしたが)、次のテストを試してみました。

  1. maps.google.com にアクセスします。
  2. 「シアトル」(または他の場所など)を検索します。
  3. 「道順を取得」ボタンをクリックします。
  4. 左側のルート ボックスで、「A」は「現在地」、「B」は「シアトル」と表示されます。(A に「現在地」と表示されていない場合は、ボックスに「m」と入力すると、通常、自動入力ドロップダウンの最初のオプションとして「現在地」が表示されます。)
  5. 「行き方を調べる」ボタンをクリックします。
  6. maps.google.com が現在地を知りたがっているというメッセージが Firefox に表示されます。「位置情報を共有」をクリックします。
  7. 数秒後、どこか (サーバーがあると思われる場所) からシアトルへの道順が表示されるか、「A」ボックスが空白になり、上部に「あなたの場所が見つかりませんでした」などと表示されます。マップの。

そして、これが奇妙なことです。これをどのコンピューターでも動作させることはまだありません。私の職場のコンピューター (FF10 と Chrome の両方)、同僚のコンピューター、自宅のコンピューター、GF の職場のコンピューターはすべて同じことを行います。誰も場所を見つけることができません。

だから私の質問は: ロケーション API がダウンしているか、何かを台無しにしていますか? オンラインで API の停止の兆候を見つけることができませんでした。停止する可能性は非常に低いようですが、もしそうなら、私が試したどのコンピューターでも機能しないのはなぜですか? 他の誰かがこれらの調査結果を複製したり、私が間違っていることを知ったりできますか?

ありがとう!

4

2 に答える 2

1

あなたのスクリプトは正常に動作し、Google マップの位置機能も同様です (FF9.0.1)

どこにいるの?(つまり、物理的に) 離れた場所にいる場合、Google がまだあなたの位置を計算できない可能性があります。多分どこかの大都市で試してみてください...

もう 1 つの可能性は、ISP がブロックしたかのように、Google のロケーション サーバーにアクセスできないことです...

于 2012-02-02T00:24:27.213 に答える
0

あなたのスクリプトは Chrome では動作しているようですが、FF では動作していません。FF で表示されるエラーは位置を利用できません。おそらく、FF の位置情報サービスが Wi-Fi ネットワークにアクセスできないことを意味します。発生しているエラーは、アラートのエラー 2 だと思いますか?

Firebug を使用している場合は、15 行目に停止点を設定できます。停止したら、右側のウォッチ パネルで positionError をクリックし、コードの内容を確認します。私の読み取り: Unavailable に変換されるコード 2。

このインスタンスを処理する別のコードを用意することをお勧めします。

于 2012-02-02T00:52:32.937 に答える