RESAS 도구를 만들어 보았습니다.
RESAS-API란?
RESAS는 행정이 제공하는 오픈 데이터 API입니다.
RESAS 홈페이지
RESAS-API 홈페이지
응답이 json이므로 매우 취급하기 쉽습니다.
어쨌든 보자.
RESAS 도구
와 - 내용이 꽉 찼습니다 - 도도부현을 클릭하십시오.
그러면 도도부현 일람이 나옵니다.
이것은 h tps:// Resa s-po rta l. . jp / 아피 / v1 / p 레후 c 트레 s 을 두드려 취득하고 있습니다.
그렇다면 자신이 살고있는 현을 찾아 "자세히"를 클릭하십시오.
나는 시즈오카현
그러면
이와 같이 현의 상세가 표시됩니다.
놀라운 포물선
상당히 줄어 듭니다 ...
대부분의 현을 보았습니다만, 인구 줄어 가겠네요・・・
그 밖에도 관광 자원이라든지 시구정촌 일람이라든지 표시됩니다.
관광 자원에서는 현의 관광 자원을 구글에서 검색할 수 있습니다.
시구정촌 일람에서 자신이 살고 있는 시의 「자세히」를 클릭해 주세요.
시구정촌의 데이터는 인구뿐입니다.
이것으로도 상당한 시구정촌의 인구가 줄어든다・・・
처리 흐름
어쨌든 PHP, JS 초보자이므로 상당히 비효율적인 방식이 되어 있을지도 모릅니다.
RESAS 도구
와 - 내용이 꽉 찼습니다 - 도도부현을 클릭하십시오.
그러면 도도부현 일람이 나옵니다.
이것은 h tps:// Resa s-po rta l. . jp / 아피 / v1 / p 레후 c 트레 s 을 두드려 취득하고 있습니다.
그렇다면 자신이 살고있는 현을 찾아 "자세히"를 클릭하십시오.
나는 시즈오카현
그러면
이와 같이 현의 상세가 표시됩니다.
놀라운 포물선
상당히 줄어 듭니다 ...
대부분의 현을 보았습니다만, 인구 줄어 가겠네요・・・
그 밖에도 관광 자원이라든지 시구정촌 일람이라든지 표시됩니다.
관광 자원에서는 현의 관광 자원을 구글에서 검색할 수 있습니다.
시구정촌 일람에서 자신이 살고 있는 시의 「자세히」를 클릭해 주세요.
시구정촌의 데이터는 인구뿐입니다.
이것으로도 상당한 시구정촌의 인구가 줄어든다・・・
처리 흐름
어쨌든 PHP, JS 초보자이므로 상당히 비효율적인 방식이 되어 있을지도 모릅니다.
프로그램 소개
이것도 PHP, JS 초보자이므로 (ry
PHP에서 RESAS 정보를 얻기위한 프레임 워크 (거짓)
RESAS-API를 두드리는 데도 코드가 필요하기 때문에 클래스화했습니다.
PRO.php<?php
class PRO{
public $API_KEY;
private $api;
function __construct($apikey){
$this->API_KEY = $apikey;
}
public function PrefCode2PrefName($prefCode){
$prefs = $this->request('prefectures')['result'];
for ($i=0; $i < count($prefs); $i++) {
if($prefs[$i]['prefCode'] == $prefCode) return $prefs[$i]['prefName'];
}
return false;
}
public function GetCityByCode($cityCode){
$prefs = $this->request('prefectures')['result'];
for ($i=0; $i < count($prefs); $i++) {
$cities = $this->request('cities',array("prefCode"),array($prefs[$i]['prefCode']))['result'];
for ($j=0; $j < count($cities); $j++) {
if($cities[$j]['cityCode'] == $cityCode) return $cities[$j];
}
}
return false;
}
public function request($api,$parameters = array(),$values = array()){
$parval = "?";
foreach ($parameters as $key => $value) {
$parval .= $value."=".$values[$key];
if($key < count($parameters)) $parval .= "&";
}
$headers = array('X-API-KEY:'.$this->API_KEY);
$context = stream_context_create(array(
'http'=>array(
'header' => implode("¥n",$headers),
),
));
$json = file_get_contents("https://opendata.resas-portal.go.jp/api/v1/".$api.$parval,false,$context);
$json = mb_convert_encoding($json,'UTF-8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json,true);
return $arr;
}
}
?>
이 클래스는 다음과 같이 사용할 수 있습니다.
<?php
require("PRO.php");
$pro = new PRO("ここにAPIキー");
$pref = $pro->request("https://opendata.resas-portal.go.jp/api/v1/prefectures");
foreach($pref as $key => $value): ?>
<?=$value?>
<br />
<?php endforeach;?>
Chart.js
그래프의 표시에는 Chart.js 를 사용하고 있습니다.
Chart.js에서 꺾은선형 차트를 그릴 때 주요 프로그램입니다.
$ (function ()
{
const config = {
type: 'line',
data: barChartData
}
const context = $("#chart")
const chart = new Chart(context,config)
})
const barChartData = {
bezierCurve : true,
labels : [/*x軸のラベル*/],
datasets : [
{
backgroundColor: '背景色',
borderColor: 'ボーダーの色',
borderWidth: 'ボーダーの太さ',
fill: false,
label: "y軸のラベル",
lineTension: 0,
data : [/*グラフデータ*/]
}
]
}
그리고는 라벨과 그래프 데이터를 PHP로 생성해 줍니다.
단지','단락이므로 implode()
등으로 단락해 출력하지 않으면 안됩니다.
마지막으로
이번에 소개한 RESAS 툴은 앞으로도 컨텐츠를 늘려갈 예정입니다.
고마워요.
Reference
이 문제에 관하여(RESAS 도구를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hota1024/items/a325a79d9550326d9903
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
class PRO{
public $API_KEY;
private $api;
function __construct($apikey){
$this->API_KEY = $apikey;
}
public function PrefCode2PrefName($prefCode){
$prefs = $this->request('prefectures')['result'];
for ($i=0; $i < count($prefs); $i++) {
if($prefs[$i]['prefCode'] == $prefCode) return $prefs[$i]['prefName'];
}
return false;
}
public function GetCityByCode($cityCode){
$prefs = $this->request('prefectures')['result'];
for ($i=0; $i < count($prefs); $i++) {
$cities = $this->request('cities',array("prefCode"),array($prefs[$i]['prefCode']))['result'];
for ($j=0; $j < count($cities); $j++) {
if($cities[$j]['cityCode'] == $cityCode) return $cities[$j];
}
}
return false;
}
public function request($api,$parameters = array(),$values = array()){
$parval = "?";
foreach ($parameters as $key => $value) {
$parval .= $value."=".$values[$key];
if($key < count($parameters)) $parval .= "&";
}
$headers = array('X-API-KEY:'.$this->API_KEY);
$context = stream_context_create(array(
'http'=>array(
'header' => implode("¥n",$headers),
),
));
$json = file_get_contents("https://opendata.resas-portal.go.jp/api/v1/".$api.$parval,false,$context);
$json = mb_convert_encoding($json,'UTF-8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
$arr = json_decode($json,true);
return $arr;
}
}
?>
<?php
require("PRO.php");
$pro = new PRO("ここにAPIキー");
$pref = $pro->request("https://opendata.resas-portal.go.jp/api/v1/prefectures");
foreach($pref as $key => $value): ?>
<?=$value?>
<br />
<?php endforeach;?>
$ (function ()
{
const config = {
type: 'line',
data: barChartData
}
const context = $("#chart")
const chart = new Chart(context,config)
})
const barChartData = {
bezierCurve : true,
labels : [/*x軸のラベル*/],
datasets : [
{
backgroundColor: '背景色',
borderColor: 'ボーダーの色',
borderWidth: 'ボーダーの太さ',
fill: false,
label: "y軸のラベル",
lineTension: 0,
data : [/*グラフデータ*/]
}
]
}
Reference
이 문제에 관하여(RESAS 도구를 만들어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hota1024/items/a325a79d9550326d9903텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)