PHP は地理座標に基づいて国、地方、都市、および周囲のデータを取得します
機能: アプリがユーザーの地理座標を取得すると、その座標に基づいてユーザーの国、州、都市、および周囲のデータを知ることができます。
原則: Baidu Geocoding API 実装に基づいて、まず Baidu 開発者として登録し、次に Baidu AK (キー) を申請する必要があります
Geocoding.class.php
<code><span><span><span><?php</span> /** * 根据地理坐标获取国家、省份、城市,及周边数据类(利用百度Geocoding API实现) * 百度密钥获取方法:http://lbsyun.baidu.com/apiconsole/key?application=key(需要先注册百度开发者账号) * Date: 2015-07-30 * Author: fdipzone * Ver: 1.0 * * Func: * Public getAddressComponent 根据地址获取国家、省份、城市及周边数据 * Private toCurl 使用curl调用百度Geocoding API */</span><span><span>class</span><span>Geocoding</span> {</span><span>// 百度Geocoding API</span><span>const</span> API = <span>'http://api.map.baidu.com/geocoder/v2/'</span>; <span>// 不显示周边数据</span><span>const</span> NO_POIS = <span>0</span>; <span>// 显示周边数据</span><span>const</span> POIS = <span>1</span>; <span>/** * 根据地址获取国家、省份、城市及周边数据 *<span> @param</span> String $ak 百度ak(密钥) *<span> @param</span> Decimal $longitude 经度 *<span> @param</span> Decimal $latitude 纬度 *<span> @param</span> Int $pois 是否显示周边数据 *<span> @return</span> Array */</span><span>public</span><span>static</span><span><span>function</span><span>getAddressComponent</span><span>(<span>$ak</span>, <span>$longitude</span>, <span>$latitude</span>, <span>$pois</span>=self::NO_POIS)</span>{</span><span>$param</span> = <span>array</span>( <span>'ak'</span> => <span>$ak</span>, <span>'location'</span> => implode(<span>','</span>, <span>array</span>(<span>$latitude</span>, <span>$longitude</span>)), <span>'pois'</span> => <span>$pois</span>, <span>'output'</span> => <span>'json'</span> ); <span>// 请求百度api</span><span>$response</span> = <span>self</span>::toCurl(<span>self</span>::API, <span>$param</span>); <span>$result</span> = <span>array</span>(); <span>if</span>(<span>$response</span>){ <span>$result</span> = json_decode(<span>$response</span>, <span>true</span>); } <span>return</span><span>$result</span>; } <span>/** * 使用curl调用百度Geocoding API *<span> @param</span> String $url 请求的地址 *<span> @param</span> Array $param 请求的参数 *<span> @return</span> JSON */</span><span>private</span><span>static</span><span><span>function</span><span>toCurl</span><span>(<span>$url</span>, <span>$param</span>=array<span>()</span>)</span>{</span><span>$ch</span> = curl_init(); <span>if</span>(substr(<span>$url</span>,<span>0</span>,<span>5</span>)==<span>'https'</span>){ curl_setopt(<span>$ch</span>, CURLOPT_SSL_VERIFYPEER, <span>false</span>); <span>// 跳过证书检查</span> curl_setopt(<span>$ch</span>, CURLOPT_SSL_VERIFYHOST, <span>true</span>); <span>// 从证书中检查SSL加密算法是否存在</span> } curl_setopt(<span>$ch</span>, CURLOPT_RETURNTRANSFER, <span>true</span>); curl_setopt(<span>$ch</span>, CURLOPT_URL, <span>$url</span>); curl_setopt(<span>$ch</span>, CURLOPT_POST, <span>true</span>); curl_setopt(<span>$ch</span>, CURLOPT_POSTFIELDS, http_build_query(<span>$param</span>)); <span>$response</span> = curl_exec(<span>$ch</span>); <span>if</span>(<span>$error</span>=curl_error(<span>$ch</span>)){ <span>return</span><span>false</span>; } curl_close(<span>$ch</span>); <span>return</span><span>$response</span>; } } <span>?></span></span></span></span></code>
demo.php
<code><span><?php</span><span>require</span><span>"Geocoding.class.php"</span>; <span>$ak</span> = <span>'这里填写你的百度AK'</span>; <span>$longitude</span> = <span>113.327782</span>; <span>$latitude</span> = <span>23.137202</span>; <span>$result</span> = Geocoding::getAddressComponent(<span>$ak</span>, <span>$longitude</span>, <span>$latitude</span>, Geocoding::NO_POIS); <span>echo</span><span>'<pre class="brush:php;toolbar:false">'</span>; print_r(<span>$result</span>); <span>echo</span><span>''; ?>
戻り値の例:
<code><span>Array</span> ( [status] => <span>0</span> [result] => <span>Array</span> ( [location] => <span>Array</span> ( [lng] => <span>113.32778195925</span> [lat] => <span>23.137201991056</span> ) [formatted_address] => 广东省广州市天河区体育西横街<span>35</span>号 [business] => 天河城,体育中心,沙河 [addressComponent] => <span>Array</span> ( [city] => 广州市 [country] => 中国 [direction] => 附近 [distance] => <span>14</span> [district] => 天河区 [province] => 广东省 [street] => 体育西横街 [street_number] => <span>35</span>号 [country_code] => <span>0</span> ) [poiRegions] => <span>Array</span> ( ) [sematic_description] => 红盾大厦北<span>58</span>米 [cityCode] => <span>257</span> ) )</code>
ソースコードのダウンロードアドレス:クリックして表示
著作権声明:この記事はブロガーによるオリジナル記事であり、許可なく複製することはできません。ブロガーの許可。
上記では、PHP が地理座標に基づいて国、州、都市、および周囲のデータを取得する方法を、関連する内容も含めて紹介しました。PHP チュートリアルに興味のある友人の役に立つことを願っています。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

curl と Pythonrequests は両方とも、HTTP リクエストを送信するための強力なツールです。 curl はターミナルから直接リクエストを送信できるコマンドライン ツールですが、Python のリクエスト ライブラリは、Python コードからリクエストを送信するためのよりプログラム的な方法を提供します。 curl を Pythonrequestscurl コマンドに変換するための基本的な構文は次のとおりです。curl[OPTIONS]URLcurl コマンドを Python リクエストに変換する場合、オプションと URL を Python コードに変換する必要があります。これは、curlPOST コマンドの例です:curl-XPOST https://example.com/api

Linux でカールのバージョンを更新するには、以下の手順に従います。 現在のカールのバージョンを確認します。 まず、現在のシステムにインストールされているカールのバージョンを確認する必要があります。ターミナルを開き、次のコマンドを実行します。curl --version このコマンドは、現在のcurlバージョン情報を表示します。利用可能なcurlのバージョンを確認する:curlを更新する前に、利用可能な最新バージョンを確認する必要があります。 Curl の公式 Web サイト (curl.haxx.se) または関連ソフトウェア ソースにアクセスして、curl の最新バージョンを見つけることができます。 Curl ソース コードをダウンロードする:curl またはブラウザを使用して、選択した CURL バージョンのソース コード ファイル (通常は .tar.gz または .tar.bz2) をダウンロードします。

PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 最近、PHPは最新バージョンのPHP8.1を正式にリリースし、重要な機能である複数リクエストの同時処理のためのcurlを導入しました。この新機能により、開発者は複数の HTTP リクエストをより効率的かつ柔軟に処理できるようになり、パフォーマンスとユーザー エクスペリエンスが大幅に向上します。以前のバージョンでは、複数のリクエストを処理するには、多くの場合、複数の CURL リソースを作成し、ループを使用してデータをそれぞれ送受信する必要がありました。この方法でも目的は達成できますが、

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

最初から最後まで: HTTP リクエストに php 拡張機能 cURL を使用する方法 はじめに: Web 開発では、多くの場合、サードパーティ API または他のリモート サーバーと通信する必要があります。 cURL を使用して HTTP リクエストを行うのは、一般的で強力な方法です。この記事では、PHP を使用して cURL を拡張して HTTP リクエストを実行する方法を紹介し、いくつかの実用的なコード例を示します。 1. 準備 まず、php に cURL 拡張機能がインストールされていることを確認します。コマンドラインで php-m|grepcurl を実行して確認できます。

Linux では、curl はサーバーとの間でデータを転送するための非常に実用的なツールです。これは、コマンド ラインで動作する URL ルールを使用するファイル転送ツールです。ファイルのアップロードとダウンロードをサポートし、包括的な転送ツールです。 Curl は、プロキシ アクセス、ユーザー認証、ftp アップロードとダウンロード、HTTP POST、SSL 接続、Cookie サポート、ブレークポイント再開などの非常に便利な機能を多数提供します。

PHPCurl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? PHPCurl を使用してネットワーク リクエストを送信すると、Web ページから返される 301 ステータス コードが頻繁に発生します。これは、ページが永続的にリダイレクトされたことを示します。この状況を正しく処理するには、いくつかの特定のオプションと処理ロジックを Curl リクエストに追加する必要があります。以下では、PHPCurl で Web ページの 301 リダイレクトを処理する方法を詳しく紹介し、具体的なコード例を示します。 301 リダイレクトの処理原則 301 リダイレクトとは、サーバーが 30 を返すことを意味します。
