janpieterk/gemeentekaart-rest

janpieterk/gemeentekaart-core 的 REST 接口

1.1.0 2019-06-02 19:30 UTC

This package is auto-updated.

Last update: 2024-09-29 04:43:30 UTC


README

此文档也提供荷兰语版本:Nederlands.

这是对 janpieterk/gemeentekaart-core 的 REST 服务

如何安装

  • 确保您有一个运行支持 PHP 的 Web 服务器

使用 Composer 从 github 安装

$ cd <YOUR WEBROOT>
$ composer create-project janpieterk/gemeentekaart-rest --repository='{"type":"vcs","url":"https://github.com/janpieterk/gemeentekaart-rest"}'

使用 Composer 从 packagist.org 安装

$ cd <YOUR WEBROOT>
$ composer create-project janpieterk/gemeentekaart-rest

使用 git 和 composer 安装

$ cd <YOUR WEBROOT>
$ git clone https://github.com/janpieterk/gemeentekaart-rest.git
$ cd gemeentekaart-rest
$ composer install
  • 现在访问 http://<YOUR WEBHOST>/gemeentekaart-rest 以查看文档和访问 REST 服务。

运行 gemeentekaart-rest 的 PHPUnit 测试

  • 编辑文件 testconfig.local.inc.php 并将常量 KAART_SERVER_HOSTNAME 更改为运行 gemeentekaaart-rest REST 服务的 Web 服务器的主机名。然后运行 shell 脚本 test/run_tests.sh

摘要

此服务可用于创建荷兰(默认:2007年的边界,443个市镇)、佛兰德(308个市镇)、荷兰和佛兰德结合(荷兰和佛兰德市镇)、荷兰的40个 COROP 区域(见 COROP)、荷兰的12个省份或 Daan/Blok(1969)的28个方言区域的 choropleth 地图。区域可以分配颜色,通常用于表示某种现象的相对频率。目前也有一些预定义的组合,例如:具有 COROP 区域的市镇、具有省份的市镇、具有方言区域的市镇。

1.1 版本新增

从版本 1.1 开始,历史市镇和省份边界来自 Dr. O.W.A. Boonstra 的数据集 NLGis shapefiles,已纳入项目中。1812-1997 年的边界可用,可以通过在请求中添加 year 参数来请求。请注意,没有 year 参数将导致版本 1.0 的 2007 年地图。NLGis 数据集的地图使用 Amsterdam codes 作为市镇的代码(见 Van der Meer & Boonstra 2011),而版本 1.0 的地图使用 CBS 代码。

入门

可以通过 GET 请求或 POST 请求(内容类型 application/json)请求地图。如果参数仅是键值对,它们可以放在请求字符串中(GET 请求)或请求体中的 JSON 文档中(POST 请求)。如果有结构化参数,建议使用带有 JSON 请求体的 POST 请求。请求字符串参数可以与 POST 请求中的 JSON 请求体结合使用。如果请求字符串和 JSON 文档中都有相同的参数,则请求字符串中的参数优先于请求体中的参数。

GET 请求

市镇地图,默认大小和格式:http://<RESTURL>/?type=municipalities

COROP 区域地图,默认大小和格式:http://<RESTURL>/?type=corop

市镇和 COROP 区域组合地图:http://<RESTURL>/?type=municipalities&additionaldata=corop

JSON POST 请求

将以下文档(使用CBS代码)POST到REST服务

{
  "type": "gemeentes",
  "formet": "png",
  "width": 500,
  "data": {
    "g_0432": "#FFE680",
    "g_0420": "#FFDD55",
    "g_0448": "#FFD42A",
    "g_0476": "#FFCC00",
    "g_0373": "#D4AA00",
    "g_0400": "#AA8800",
    "g_0366": "#806600",
    "g_0463": "#FFCC00",
    "g_0462": "#FFEEAA"
  }
}

返回以下内容: 地图

将以下文档(使用阿姆斯特丹代码)POST到REST服务

{
    "data": {
        "a_11150": "#990000",
        "a_10345": "#990000",
        "a_11434": "#990000",
        "a_10722": "#990000"
    },
    "year": 1821,
    "type": "gemeentes",
    "format": "svg",
    "interactive": true
}

返回以下内容: 地图

使用POST请求上传文件

内容类型应为 multipart/form-data

将数据输入地图服务的另一种方法是上传一个包含区域代码和颜色的逗号分隔文件。例如,上述市政地图也可以通过上传以下内容的文件到 http://<RESTURL>/?type=gemeentes&format=png&width=500 获取

"g_0432","#FFE680"
"g_0420","#FFDD55"
"g_0448","#FFD42A"
"g_0476","#FFCC00"
"g_0373","#D4AA00"
"g_0400","#AA8800"
"g_0366","#806600"
"g_0463","#FFCC00"
"g_0462","#FFEEAA"

可能的参数完整列表

additionaldata

字符串

用于向地图添加额外层数据。目前只有以下组合是可能的:type=municipalities&additionaldata=coroptype=municipalities&additionaldata=provincestype=municipalities&additionaldata=dialectareas

base64

布尔值

如果此参数设置为 1ontrueyes,则返回地图的base64编码字符串表示。

data

数组、对象或字符串

包含区域代码以及突出显示颜色或包含轮廓、填充和边框宽度的对象的列表。在JSON文档中使用。示例:突出显示的市政列表(CBS代码)

{ 
    "g_0432" : "#FFE680", 
    "g_0420" : "#FFDD55", 
    "g_0448" : "#FFD42A", 
    "g_0476" : "#FFCC00", 
    "g_0373" : "#D4AA00", 
    "g_0400" : "#AA8800", 
    "g_0366" : "#806600", 
    "g_0463" : "#FFCC00", 
    "g_0462" : "#FFEEAA" 
 } 

绘制不填充且轮廓为红色、宽度是默认地图线宽两倍的格罗宁根省

  {"p_20" : { "fill" : "none", "outline" : "red", "strokewidth": 2} }

颜色可以是颜色名称(140种HTML颜色之一)、形式为 #RRGGBB 的十六进制表示,或形式为 AABBGGRR 的十六进制表示。'AA'(不透明度)部分只有在KML地图中才有作用。

format

字符串

svgpnggifjpegkmljsonjson 返回geoJSON对象。

height

整数

地图的像素高度。通常不建议显式设置高度,更好的做法是设置宽度,让地图自行计算高度。

imagemap

布尔值

如果此参数设置为 1ontrueyes,则返回HTML <area> 元素列表而不是地图图像。可用于创建可点击位图地图。imagemap 仅在以下情况下返回所有区域的完整 imagemap:

  1. 未设置 linkstooltips
  2. 设置了 linkstooltipsinteractive 设置为 true;
  3. link(单数)设置且未设置 linkhighlightedonly

在其他情况下,您将获得一个部分 imagemap,其中只包含在链接或提示中设置的区域。

interactive

布尔值

如果此参数设置为 1ontrueyes,则对于SVG地图,将显示区域名称的 onmouseover 和 onmouseout 事件,对于位图地图,将添加所有区域(需要使用 imagemap)的具有标题和 alt 属性的 <area> 元素。

link

字符串

添加到所有区域链接的模板。%s 占位符将被区域代码替换。对于位图格式的地图,链接将被添加到图片的 imagemap 中,对于SVG或KML格式的地图,它们将被嵌入到XML中。示例:?type=municipalities&format=svg&link=http%3A%2F%2Fwww.example.com%2F%3Fcode%3D%25s(链接 = http://www.example.com/?code=%s 的urlencoded形式)适用于所有区域,除非将参数 linkhighlightedonly 设置为 true。

linkhighlightedonly

布尔值

如果此参数设置为 1ontrueyes,则只有设置了 data 参数的高亮区域会添加与 link 参数关联的链接。

链接

对象

要添加到区域的链接列表。只能在POST的JSON文档中使用。示例

{
    "g_0462" : "http://www.example.com/something/",
    "g_0366" : "http://www.example.com/something/else/"
 }

pathsfile

字符串

如果需要使用带有路径的非标准文件,可以通过此参数提供文件名。请注意,此文件必须位于服务器上的正确位置(见配置文件),并且格式正确。请参阅 gemeentekaart-corecoords 目录中的示例。

possibleareas

布尔值

如果此参数设置为 1ontrueyes,则返回一个可能区域的列表(区域代码加名称)(以JSON格式)。请注意,还应存在 type 参数。对于市镇和省,可能存在 year 参数,请参阅 possiblemunicipalitiespossibleyears

possibleformats

布尔值

如果此参数设置为 1ontrueyes,则返回一个可能地图格式的列表(以JSON格式)。

possiblemunicipalities

布尔值

如果此参数设置为 1ontrueyes,则返回一个可能市镇的列表(市镇代码加名称)(以JSON格式)。这是 possibleareas=1&type=municipalities 的同义词。请注意,可以省略 type 参数。请注意,添加 year 参数会导致给定年份的阿姆斯特丹代码和市镇,而没有 year 参数将导致2007年的CBS代码(1.0版本行为)。

possibletypes

布尔值

如果此参数设置为 1ontrueyes,则返回一个可能地图类型的列表(以JSON格式)。

possibleyears

布尔值

如果此参数设置为 1ontrueyes,则返回一个可能年份的列表(以JSON格式),用于给定地图类型的 year 参数。

target

字符串

可选的目标(在 link 参数中给出)。href元素的 "target" 属性的值。

tooltips

对象

要添加到区域的工具提示(信息文本)列表。只能在POST的JSON文档中使用。示例

{
    "g_0462" : "informative text 1",
    "g_0366" : "informative text 2"
 }

title

字符串

可选的地图标题,将在图片上方显示。

type

字符串

choropleth 类型之一。请参阅 possibletypes

width

字符串

地图的像素宽度。覆盖默认值。

year

整数

所需地图类型的年份。

参考文献

J. Daan 和 D.P. Blok(1969)。《从边缘城市到边缘地带。地图说明:方言和地名学。荷兰皇家科学院阿姆斯特丹方言委员会的贡献和公告37》阿姆斯特丹,N.V. North Holland出版公司。

Meer, Ad van der 和 Onno Boonstra(2011)。《自1812年以来的荷兰市镇名录,附:阿姆斯特丹代码》。第2版。[海牙:DANS]。[DANS数据指南,2]。[https://dans.knaw.nl/nl/over/organisatie-beleid/publicaties/DANSrepertoriumnederlandsegemeenten2011.pdf](https://dans.knaw.nl/nl/over/organisatie-beleid/publicaties/DANSrepertoriumnederlandsegemeenten2011.pdf)

致谢