joomla / openstreetmap
Joomla OpenStreetMap 包
Requires
- php: ^5.3.10|~7.0
- joomla/application: ~1.0
- joomla/http: ~1.0
- joomla/input: ~1.0
- joomla/oauth1: ^1.1.1
Requires (Dev)
- joomla/coding-standards: ~2.0@alpha
- joomla/test: ~1.0
- phpunit/phpunit: ^4.8.35|^5.4.3|~6.0
This package is auto-updated.
Last update: 2024-09-18 17:50:31 UTC
README
已弃用
joomla/openstreetmap
包已弃用,没有进一步更新的计划。
使用 OpenStreetMap 包
OpenStreetMap 包的目的是提供一个简单直接的接口来与 OpenStreetMap 交互。这是基于 OpenStreetMap API 的第 0.6 版。您可以在 https://wiki.openstreetmap.org/wiki/API_v0.6 找到有关 OpenStreetMap API 的更多信息。OpenStreetMap 包是在 Joomla\OAuth1
包的基础上构建的,该包为通信提供了 OAuth 1.0 安全基础设施。同时,也使用了 Joomla\Http
包,作为非安全信息交换的简单方式。
初始化 OpenStreetMap 类
初始化 OpenStreetMap 只需要几行代码
use Joomla\OpenStreetMap\OpenStreetMap; $osm = new OpenStreetMap;
这会创建一个基本的 OpenStreetMap 对象,可以访问公开的 GET 方法。但是,当您想要发送数据或获取私有数据时,您还需要使用 Joomla\OpenStreetMap\OAuth
对象。
要初始化 Joomla\OpenStreetMap\OAuth
对象,您必须提供一个选项数组,一个 Joomla\Http\Http
实例用于 HTTP 请求,一个 Joomla\Input\Input
实例用于处理 OAuth 请求的数据,以及一个 Joomla\Application\AbstractWebApplication
实例用于处理 OAuth 请求。
use Joomla\Http\Http; use Joomla\OpenStreetMap\OAuth; use Joomla\OpenStreetMap\OpenStreetMap; $key = 'your_key'; $secret = 'your_secret'; $options = array('consumer_key' => $key, 'consumer_secret' => $secret, 'sendheaders' => true); $client = new Http; $application = $this->getApplication(); $oauth = new OAuth($options, $client, $application->input, $application); $oauth->authenticate(); $osm = new OpenStreetMap($oauth);
为了获取密钥和密钥,您必须在 OpenStreetMap 上获得一个账户。通过您的账户,您需要 注册 您的应用程序以及一个回调 URL。
访问 OpenStreetMap API
此 API 将与 OpenStreetMap API 进行所有类型的交互。这已被分为 5 个主要部分:更改集、元素、GPS、信息和用户。所有这些都继承自 Joomla\OpenStreetMap\OpenStreetMapObject
,可以通过 OpenStreetMap 类的魔法 __get
方法进行初始化。每种类型对象中的方法都与 OpenStreetMap API 调用密切相关。
一般用法
例如,要获取具有已知标识符的元素,您只需要在创建 $osm
后添加以下两行即可。
$element = $osm->elements; $result = $element->readElement('node', 123); // To view the \SimpleXMLElement object print_r($result);
要向服务器发送信息,您必须使用 OAuth 认证。以下是一个创建新更改集的完整示例应用程序。稍后,您可以使用自己的更改集添加您想要的元素。
use Joomla\Http\Http; use Joomla\OpenStreetMap\OAuth; use Joomla\OpenStreetMap\OpenStreetMap; $key = 'your_key'; $secret = 'your_secret'; $options = array('consumer_key' => $key, 'consumer_secret' => $secret, 'sendheaders' => true); $client = new Http; $application = $this->getApplication(); $oauth = new OAuth($options, $client, $application->input, $application); $oauth->authenticate(); $osm = new OpenStreetMap($oauth); $changeset = $osm->changesets; $changesets = array( 'comment' => 'My First Changeset', 'created_by' => 'JoomlaOpenStreetMap' ); $result = $changeset->createChangeset($changesets); // Returned value contains the identifier of new changeset print_r($result);
更多信息
以下资源包含更多信息: OpenStreetMap API
通过 Composer 安装
将 "joomla/openstreetmap": "2.0.*@dev"
添加到 composer.json 中的 require 块,然后运行 composer install
。
{ "require": { "joomla/openstreetmap": "2.0.*@dev" } }
或者,您可以直接在命令行中运行以下操作
composer require joomla/openstreetmap "2.0.*@dev"