openstreetmap-api

Joomla Framework OpenStreetMap Package

Github星跟蹤圖

The OpenStreetMap Package Build Status

Deprecated

The joomla/openstreetmap package is deprecated with no further updates planned.

Using the OpenStreetMap Package

The intention of the OpenStreetMap package is to provide an easy straightforward interface to work with OpenStreetMap. This is based on version 0.6 of the OpenStreetMap API. You can find more information about the OpenStreetMap API at https://wiki.openstreetmap.org/wiki/API_v0.6.
The OpenStreetMap package is built upon the Joomla\OAuth1 package which provides OAuth 1.0 security infrastructure for the communications. The Joomla\Http package is also used as an easy way for the non-secure information exchanges.

Initiating the OpenStreetMap class

Initiating OpenStreetMap is just a couple lines of code:

use Joomla\OpenStreetMap\OpenStreetMap;

$osm = new OpenStreetMap;

This creates basic OpenStreetMap object which can access publically available GET methods.
But when you want to send data or get private data, you need to use the Joomla\OpenStreetMap\OAuth object too.

To initialise the Joomla\OpenStreetMap\OAuth object, you must supply an options array, a Joomla\Http\Http instance for HTTP requests, a Joomla\Input\Input instance to process request data from OAuth requests, and a Joomla\Application\AbstractWebApplication instance to handle OAuth requests.

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);

To obtain a key and secret, you have to obtain an account at OpenStreetMap. Through your account you need to register your application along with a callback URL.

Accessing OpenStreetMap API

This API will do all types of interactions with OpenStreetMap API. This has been categorized in to 5 main sections: Changeset, Element, GPS, Info and User. All those inherit from Joomla\OpenStreetMap\OpenStreetMapObject and can be initiated through the magic __get method of the OpenStreetMap class. Methods contained in each type of object are closely related to the OpenStreetMap API calls.

General Usage

For an example, to get an element with a known identifier you need to just add following two lines additionally after creating $osm .

$element = $osm->elements;
$result = $element->readElement('node', 123);

// To view the \SimpleXMLElement object
print_r($result);

For sending information to server you must use OAuth authentication. Following is a complete sample application of creating a new changeset. Later you can use your own changeset to add elements you want.

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);

More Information

Following resources contain more information: OpenStreetMap API

Installation via Composer

Add "joomla/openstreetmap": "~1.0" to the require block in your composer.json and then run composer install.

{
	"require": {
		"joomla/openstreetmap": "~1.0"
	}
}

Alternatively, you can simply run the following from the command line:

composer require joomla/openstreetmap "~1.0"

主要指標

概覽
名稱與所有者joomla-framework/openstreetmap-api
主編程語言PHP
編程語言PHP (語言數: 2)
平台
許可證GNU General Public License v2.0
所有者活动
創建於2014-05-21 21:41:27
推送於2021-09-18 11:11:10
最后一次提交
發布數2
最新版本名稱1.1.0 (發布於 )
第一版名稱1.0.0 (發布於 2014-05-21 16:52:54)
用户参与
星數4
關注者數17
派生數7
提交數48
已啟用問題?
問題數1
打開的問題數0
拉請求數3
打開的拉請求數0
關閉的拉請求數2
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?