検索

ホームページ  >  に質問  >  本文

API からの値を使用して変更をトリガーします。

<p>現在の座標を取得して変数として保存し、これらのパラメータを GeoNames に送信して国コードを取得する必要があるプロジェクトに取り組んでいます。この国コードは、(geoJSON を使用して) 国の国境を表示するドロップダウン メニュー (事前に値として国コードが入力されている) で変更イベントをトリガーするために使用されます。実際にメニュー上のいずれかの国をクリックすると正常に動作しますが、GeoNames からコードを取得した後、変更イベントを起動できません。国コードを取得した後にこのコード行を追加するたびに問題が発生します。 </p> <pre class="brush:php;toolbar:false;">$('#countrySelect').val('currCode').change();</pre> <p>動作しないことに加えて、次のエラーも発生します: Map.js:291 Uncaught Error: Bounds are not valid.</p><p>私が何を間違っているか知っている人はいますか? (デコードにphpを使用しており、リーフレットから地図を取得しています)。 </p><p>詳細は次のとおりです:</p><p>このコードは、ドロップダウン メニューを設定するために使用されます:</p><p><br /> </p> <pre class="brush:php;toolbar:false;">$.ajax({ URL: "libs/php/geoJson.php", タイプ:「POST」、 データ型: "json"、 成功: 関数(結果) { //console.log(結果); for (var i=0; i (a.properties.iso_a3 === 名前)); border = L.geoJSON(filterData[0]).addTo(map); map.fitBounds(border.getBounds()); }、 }); });</pre> <p>コードのこの部分は、座標を取得しようとし (これは正常に動作しているようです)、それを GeoNames に渡して国コードを取得し (これも正常に動作しているようです)、その後、上記の変更イベントを発生させます (ただし、この部分は機能しません)。</p> <pre class="brush:php;toolbar:false;">navigator.geolocation.getCurrentPosition(success); 関数成功(位置) { 緯度 = 位置.座標.緯度; とします。 lng = 位置.座標.経度; let coords = {"lat": lat, "lng": lng}; //国コードを取得するための geoNames への座標を含む AJAX リクエスト $.ajax({ URL: "libs/php/getCurrentCode.php", タイプ:「POST」、 データ型: "json"、 データ: 座標、 成功: 関数(結果) { console.log(JSON.stringify(結果)); if (result.status.name == "ok") { $(結果["データ"]["国コード"]); currCode = result.data; とします。 console.log(currCode); //取得したコードで変更をトリガーする $('#countrySelect').val('currCode').change(); }; }; }); };</pre> <p>私たちのphp:</p> <pre class="brush:php;toolbar:false;">ini_set('display_errors', 'On'); エラー報告(E_ALL); $executionStartTime = マイクロタイム(true); $url='http://api.geonames.org/countryCodeJSON?&lat=' 。 $_REQUEST['lat'] 。 '&lng=' 。 $_REQUEST['lng'] 。 '&ユーザー名=&スタイル=フル'; $ch =curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL,$url); $result=curl_exec($ch); カール_クローズ($ch); $decode = json_decode($result,true); $output['ステータス']['コード'] = '200'; $output['ステータス']['名前'] = 'ok'; $output['ステータス']['説明'] = '成功'; $output['status']['returnedIn'] = intval((microtime(true) - $executionStartTime) * 1000) 。 ' MS'; $output['data'] = $decode['countryCode']; //var_dump($decode); header('Content-Type: application/json; charset=UTF-8'); echo json_encode($output);</pre> <p><br /></p>
P粉633309801P粉633309801487日前454

全員に返信(1)返信します

  • P粉010967136

    P粉0109671362023-07-31 11:05:53

    リーリー

    これにより、値がリテラル文字列 currCode に設定されます。これを変数 currCode の値に設定したいとします。これを行うには、引用符を削除します:

    リーリー

    返事
    0
  • キャンセル返事