语义地图。






4.55/5 (5投票s)
一个MediaWiki扩展,允许您插入、编辑、查看和聚合坐标数据
介绍
Semantic Maps 是一个为 Maps 扩展添加语义功能的扩展,因此提供了通过 Semantic MediaWiki 扩展存储的坐标数据,并能使用多种地图服务进行添加、查看和编辑。这些服务包括 Google Maps、OpenLayers 和 Yahoo Maps。Semantic Maps 和 Maps 基于 Semantic Google Maps 和 Semantic Layers,并旨在取代这些扩展。要使此扩展正常工作,您需要同时安装 Semantic MediaWiki 和 Maps。有关如何使用 Semantic Maps 的示例,请访问 此处。
Maps 是一个提供使用多种地图服务(包括 Google Maps、OpenLayers 和 Yahoo Maps)显示坐标数据,并允许用户对地址进行地理编码的扩展。它可以与 Semantic Maps 一起使用,后者为地图服务增加了语义功能,但也可以在非语义 wiki 上单独使用。Maps 和 Semantic Maps 都基于 Semantic Google Maps 和 Semantic Layers,旨在取代这些扩展。Maps 包含 Google Geocoder 的所有功能,因此也取代了该扩展。有关如何使用 Maps 的示例,请访问 此处。
背景
这些扩展是我今年谷歌夏令营项目开发的。这意味着谷歌支付报酬让我为 Wikimedia Foundation 开发它们。我定期在我的博客上发布关于我开发这些扩展的经历,点击此处查看相关帖子。
下载
- Maps0.2.zip 281.03 KB
- Maps0.2.7z 188.08 KB
您也可以通过 SVN 直接从 MediaWiki 源代码存储库下载代码,地址为 http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/Maps/。从命令行,您可以执行以下操作
svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/Maps/
Maps and Semantic Maps
- MapsAndSemanticMaps0.2.zip 307.28 KB
- MapsAndSemanticMaps0.2.7z 198.3 KB
Semantic Bundle
Semantic Bundle 目前包含 Maps 和 Semantic Maps 0.2,以及一些其他非常有趣的 Semantic MediaWiki 相关扩展。在此处获取。此处。
安装说明
下载代码后,将“Maps”目录放在 MediaWiki 的“extensions”目录下。然后,在安装 Semantic MediaWiki 的那一行之后,将以下代码添加到您的 LocalSettings.php 文件中
# Maps require_once( "$IP/extensions/Maps/Maps.php" );
要使用 Google Maps 或 Yahoo! Maps,您必须输入它们的 API 密钥。您需要在 LocalSettings.php 中,在包含 Maps **之后** 添加它们。
# API keys configuration $egGoogleMapsKey # Your Google Maps API key. Required for displaying Google Maps, and using the Google Geocoder services. $egYahooMapsKey # Your Yahoo! Maps API key. Required for displaying Yahoo! Maps.
如果您还没有,您可以在 Google Maps API 页面 和 Yahoo Maps API 页面 获取。请注意,Google Maps API 密钥对于显示地图和地理编码(因此在使用 Yahoo! Map 显示地址时也是必需的)都是必需的。另请注意,Google Maps API 仅在您的网站对公众开放时免费使用;否则需要付费——请阅读 Google Maps 服务条款 以了解更多详情。
成功安装 Maps 后,您可以将您的网站链接添加到“谁在使用 Maps?”部分。
用法
显示单个点

您可以使用 #display_point 解析函数显示带标记的地图。以下代码将在默认地图类型(Google Maps)上,在提供的坐标处显示一个标记。示例。
{{#display_point:coordinates=55.7557860, 37.6176330}}
请注意,coordinates 参数是 #display_point 的默认参数。这意味着可以省略参数名,如下所示。
{{#display_point:55.7557860, 37.6176330}}
地理编码
为了更轻松地在地址上显示标记,Maps 中包含了 地理编码 功能。此功能基于 Google Geocoder 扩展,在使用 Maps 之前需要卸载它。您可以使用 #geocode 解析函数对地址进行地理编码。下面的代码将返回莫斯科的坐标。
{{#geocode:Moscow, Russia}}
这可以轻松地嵌套在 #display_point 解析函数中,如下所示。示例。
{{ #display_point:coordinates={{#geocode:Moscow, Russia}} }}
为了避免这种嵌套,还可以使用另一个解析函数 #display_address。此解析函数与 #display_point 完全相同,除了参数 address 取代了 coordinates,并自动为您进行地理编码。此代码与前面的示例完全等效。示例。
{{#display_address:address=Moscow, Russia}}
请注意,address 参数是 #display_address 的默认参数。这意味着可以省略参数名,如下所示。
{{#display_address:Moscow, Russia}}
地理编码服务
Maps 允许您使用多种地理编码服务。可用的 地理编码服务 和 默认地理编码服务 都是设置,并且可以修改。如果您不想使用默认服务,可以在解析函数中指定。
#geocode 解析函数接受第二个参数,如下所示
{{#geocode:Moscow, Russia|yahoo}}
display_address 也接受此参数,但与 #geocode 中的参数不同,它被命名为:geoservice。
{{#display_address:Moscow, Russia|geoservice=yahoo}}
在某些情况下,默认地理编码服务将被另一个值覆盖。
- 在 display_address Google Maps 地图中:google 将用作默认值
- 在 display_address Yahoo! Maps 地图中:yahoo 将用作默认值
这仅覆盖了在解析函数中未提供服务时使用的默认地理编码服务。
法律警告
Google 和 Yahoo! 的地理编码服务都有一个许可证,该许可证*禁止将其用于与各自的地图服务无关的任何目的*,除非您获得书面许可。鼓励您在使用它们之前阅读服务条款(Google、Yahoo!)。
以下示例在大多数情况下都违反了相关许可证
{{ #display_address: Moscow, Russia |service=google |geoservice=yahoo }}
{{ #display_point: {{geocode:Moscow, Russia|google}} |service=yahoo }}
显示多个点

您可以通过设置“format=mapservice”来显示 Semantic MediaWiki #ask 查询的结果,其中“mapservice”是您想使用的地图服务。您可以使用 Maps 的所有 可用地图服务。有关格式的确切名称,请参阅 地图格式列表。查询并显示的属性之一必须是“地理坐标”类型,查询才能工作;此属性将决定地图上每个点的位置。单击每个点将显示一个标签,其中包含页面名称以及任何其他查询到的信息;单击页面名称会将用户带到该页面。地图的缩放级别将是显示所有点的最接近的级别。
由以下代码生成的两个地图将在相同位置有标记,但会使用不同的地图服务。要重现此结果,只需创建一个名为 Locations 的类别,该类别具有“Has coordinates”属性,类型为“Geographic coordinate”。演示示例。
{{#ask:[[Category:Locations]]|?Has coordinates|format=map}}
地图服务
Maps 提供多种地图服务。特定地图的服务可以通过 service
参数设置。如果省略服务,将使用 默认服务。下面的列表包含可用的地图服务。
service=googlemaps
或service=google
- 单击此处可查看 Google Maps 功能概述。示例。service=yahoomaps
或service=yahoo
- 单击此处可查看 Yahoo Maps 功能概述。示例。service=openlayers
或service=layers
- 单击此处可查看 OpenLayers 功能概述。示例。
如果不提供服务,将使用 默认服务。
每种服务都有其独特的功能。单击上面的服务名称可查看这些功能的概述。有关通用参数,请参阅下面的列表。
Maps 地图属性
#display_point 和 #display_address 解析函数都接受以下地图属性列表,这些属性可以被修改以更改结果地图的外观和用法。此列表仅包含通用参数,换句话说,是可用于所有地图服务的参数。有关特定参数,请参阅 地图服务。
coordinates=
- (仅限 display_point) 显示标记和地图中心的坐标 - 您可以 设置默认值address=
- (仅限 display_address) 显示标记和地图中心的地址width=
- 地图的宽度,单位为像素 - 您可以 设置默认值height=
- 地图的高度,单位为像素 - 您可以 设置默认值zoom=
- 地图的缩放级别 - 您可以 设置默认值centre=
或center=
- 地图中心的坐标。如果未提供,地图将自行以提供的(或默认)坐标/地址为中心。title=
- 当单击表示位置的标记时,将在弹出窗口中显示文本。与label
一起使用时,标题将为粗体并带有下划线。label=
- 当单击表示位置的标记时,将在弹出窗口中显示文本。
Yahoo! Map 示例
{{ #display_address: service=yahoomaps |address=Moscow, Russia |zoom=7 |width=800 |height=500 }}
Semantic Maps 地图属性
您可以添加七个附加参数来查询,以更改结果地图的外观和用法。
为了让您更容易,Semantic Maps 在可能的情况下使用与 Maps 相同的名称(请参阅 Maps 的 地图属性)。但存在一些差异。
结果格式
coordinates=
- (仅限 display_point) 显示标记和地图中心的坐标 - 您可以 设置默认值address=
- (仅限 display_address) 显示标记和地图中心的地址width=
- 地图的宽度,单位为像素 - 您可以 设置默认值height=
- 地图的高度,单位为像素 - 您可以 设置默认值centre=
或center=
- 地图中心的坐标。当未在查询中提供时,地图将自行调整中心以显示所有点。zoom=
- 地图的缩放级别。当未在查询中提供时,将默认使用允许显示所有点的最大缩放级别。
这是使用“googlemaps”格式的 #ask 查询示例(查看演示)
{{ #ask: [[Category:Locations]] |?Has coordinates |format=googlemaps |width=800 |height=500 |zoom=8 |autozoom=off }}
表单输入
width=
- 地图的宽度,单位为像素 - 您可以 设置默认值height=
- 地图的高度,单位为像素 - 您可以 设置默认值zoom=
- 地图的缩放级别。如果未提供,则默认显示整个地球 - 您可以 设置默认值centre=
或center=
- 地图中心的坐标。如果未提供,地图将以当前位置为中心(如果尚未设置位置,则以 0,0 坐标为中心)。
查询非坐标数据
Semantic Maps 支持显示查询到的非坐标数据。所有不是坐标的查询属性都将显示在弹出气球中,当您单击表示其相应坐标位置的标记时会显示。如果与某个非坐标值关联了一个页面,该值将链接到该页面。
表单输入
Semantic Forms 显示 Google Maps 地图和由 Semantic Maps 的 hook 提供的地理编码功能。
Semantic Maps 提供多种表单输入。表单输入是 Semantic Forms 的 hook。每种地图服务都有其自己的表单输入。通过 input type
参数确定表单输入类型。
input type=map
- 将使用 默认地图服务。input type=googlemaps
- Google Maps 服务。input type=yahoomaps
- Yahoo Maps 服务。input type=openlayers
- OpenLayers 服务。
每种服务都有其独特的功能。单击上面的服务名称可查看这些功能的概述。有关通用参数,请参阅下面的 地图属性。
表单输入中的地理编码位置
此功能仅适用于使用 Google Maps 或 Yahoo! Maps 地图服务的地图。OpenLayers 表单输入不具备此功能。
设置
Maps 允许您配置各种设置,从而影响扩展的工作方式。所有设置都位于扩展根目录的 Maps_Settings.php 文件中。您可以通过复制其代码并将其与修改后的值一起放在 Maps 包含 **之后** 的 LocalSettings.php 文件中来修改设置。此处列出了常用设置(影响所有地图服务的设置)。有关特定设置,请参阅 地图服务。请注意,设置文件已记录,应为您提供足够的信息来理解所有设置的工作原理。
可用的地图服务
包含将提供给用户的所有服务的数组。目前 Maps 提供以下服务: googlemaps、yahoomaps、openlayers。
默认值:$egMapsAvailableServices = array('googlemaps', 'yahoomaps', 'openlayers');
默认地图服务
当用户未提供服务时将使用的默认地图服务。此服务需要启用,否则将采用 可用服务 中的第一个。
默认值:$egMapsDefaultService = 'googlemaps';
可用的地理编码服务
包含将提供给用户的所有地理编码服务的数组。Maps 0.2 支持 2 种地理编码服务:google 和 yahoo。
默认值:$egMapsAvailableGeoServices = array('google', 'yahoo');
默认地理编码服务
当用户未提供服务时将使用的默认地理编码服务。此服务需要启用,否则将采用 可用地理编码服务 中的第一个。
默认值:$egMapsDefaultGeoService = 'google';
默认地图坐标
标记的默认坐标。仅当用户未提供时才使用此值。
默认值:$egMapsMapCoordinates = '1,1';
默认地图宽度
地图的默认宽度。仅当用户未提供时才使用这些值。
默认值:$egMapsMapWidth = 600;
默认地图高度
地图的默认高度。仅当用户未提供时才使用这些值。
默认值:$egMapsMapHeight = 350;
默认地图缩放
地图的默认缩放。仅当用户未提供时才使用此值。每种服务都有其自己的缩放设置。有关更多信息,请参阅 地图服务。
版本
Maps 目前版本为 0.2。它仍被认为是 Beta 版,因为可能存在一些问题。但是,它已经经过了相当彻底的测试,应该不会引起任何大的问题。预计在几周内会发布此版本的更新,增加更多功能,修复 bug 并改进整体扩展结构。
计划中的功能
想了解下一版本即将推出的功能吗?未来工作页面 概述了 计划中的功能 以及已 被拒绝的提案。
更改日志
此列表仅包含版本及其发布日期。有关所有更改的列表,请查看 遗留页面 的 更改日志 部分。
版本 0.2 (2009-07-29)
版本 0.1 (2009-07-20)
为项目做贡献
Bug 和补丁
如果您发现并修复了一个 bug,请通过转到“Maps”目录并键入以下命令来创建一个补丁:
svn diff >descriptivename.patch
然后将补丁添加到 未来工作页面 的 Bug 部分。Bug 报告也应在此处添加。您也可以将它们发送给 Jeroen De Dauw,jeroendedauw -at- gmail.com,以及 Yaron Koren,yaron57 -at- gmail.com。
功能请求
翻译
Maps 的翻译通过 translatewiki.net 进行。此扩展的翻译可以在此处找到。要添加语言值或更改现有值,您应该在 translatewiki.net 上创建一个帐户,然后在此页面上向管理员申请翻译某种语言或多种语言的权限(这是一个非常简单的过程)。此页面。一旦您获得了某种语言的权限,您就可以登录并添加或编辑您想要的该语言的任何消息。