แม่แบบ:Graph:Street map with marks
การใช้งาน
[แก้]![]() | ส่วนนี้รอเพิ่มเติมข้อมูล คุณสามารถช่วยเพิ่มข้อมูลส่วนนี้ได้ |
ดูเพิ่ม
[แก้]![]() | ส่วนนี้รอเพิ่มเติมข้อมูล คุณสามารถช่วยเพิ่มข้อมูลส่วนนี้ได้ |
มาร์กอัป | ผลลัพธ์ |
---|---|
Simple map with a single marker, custom size, and no minimap{{Graph:Street map with marks | width=400 | height=150 | lat=37.8 | lon=-122.4 | zoom=5 | minimap=false |
{ "lat": 37.8, "lon": -122.4 }
}}
|
|
Two markers with labels - one as diamond shape, one uses an image from Commons Text label can be customized with all of Vega text mark parameters by prepending "text" to their name {{Graph:Street map with marks | lat=40.816667 | lon=14.433333 | zoom=6 |
{"lat": 40.816667, "lon": 14.433333, "img": "wikirawupload:{{filepath:Volcano red 32x32.svg|32}}", "width": 16, "height": 16, "offsetY": -10, "text": "Mount Vesuvius", "textFontWeight": "bold", "textFontSize": 16, "textColor": "#2A4B8D"},
{"lat": 40.948333, "lon": 15.635556, "img": "wikirawupload:{{filepath:Volcano red 32x32.svg|32}}", "width": 16, "height": 16, "offsetY": -20, "text": "Mount Vulture", "textFontWeight": "bold", "textFontSize": 16, "textColor": "#2A4B8D"}
}}
|
|
Show all Armenian heritage sites, by querying it from Wikidata The query result should have the same columns (fields) as in the other examples (text, img, ...), except coordinates should be returned as coord column {{Graph:Street map with marks | lat=40.347 | lon=47.260 | zoom=6 | colorScaleField=type | wdqs=
# Each location should show only once. This query may output all the same values as in the other examples, such as "text", "img", and others.
SELECT (SAMPLE(?coord) as ?coord) (SAMPLE(?type) as ?type)
WHERE {
?item wdt:P3170 ?heritageId .
?item wdt:P625 ?coord .
?item wdt:P31 ?type .
}
GROUP BY ?item
}}
|
See Wikidata query. |
{{Graph:Street map with marks | lat=-33.8688 | lon=151.2093 | zoom=10 |
{
"lat": -33.8688,
"lon": 151.2093,
"img": "wikirawupload:{{filepath:Opera_House_and_ferry._Sydney.jpg|48}}",
"width": 48,
"height": 36,
"text": "Sydney",
"textFontWeight": "bold",
"textFontSize": 20,
"textColor": "#00f",
"textAlign": "right",
"textDx": -30
}
}}
|
ตัวแปรเสริมแม่แบบข้อมูลจะต้องเป็นรายการของอ็อบเจกต์ "JSON" ที่คั่นด้วยจุลภาค อ็อบเจกต์แต่ละรายการเริ่มต้นด้วย "{" มีคู่รายการคีย์-ค่า ที่คั่นด้วยจุลภาค และลงท้ายด้วย "}" คีย์อาจเป็นค่าใดค่าหนึ่งต่อไปนี้ (ใช้ไม่เกินหนึ่งครั้งต่ออ็อบเจกต์แต่ละรายการ):
รูปร่างเครื่องหมายในตัว | |
---|---|
shape | "circle" (default), "square", "cross", "diamond", "triangle-up", "triangle-down" (docs) |
color | shape fill color, e.g. "#ff0000" (red - default) |
strokeColor | shape outline color |
size | shape size (number) |
ป้ายข้อความ (ดูข้อมูลเพิ่มเติม) | |
text | Label text |
textAlign | Label's horizontal alignment relative to the marker - "left", "right", "center". By default, left for LTR, right for RTL languages. |
textBaseline | Vertical alignment: "middle" (default), "top", "bottom" |
textColor | Label text color, e.g. "#ff0000" (red) |
textDx, textDy | Horizontal and vertical distance from the marker |
angle | Draw text at an angle |
radius/theta | Radial positioning of the label relative to the marker |
font, fontSize, fontWeight, fontStyle | Font name, size, boldness, and style |
เครื่องหมายรูปภาพ | |
img | URL of an image, e.g. wikirawupload:{{filepath:Volcano red 32x32.svg|32}} |
height, width | Size of the image |
offsetX, offsetY | Shift the center of the image on the map |
แสดงภาพแผนที่และวาดรูปภาพ/ไอคอนที่ผู้ใช้กำหนดไว้ลงบนแผนที่นั้นโดยใช้พิกัดละติจูด/ลองจิจูด
พารามิเตอร์ | คำอธิบาย | ชนิด | สถานะ | |
---|---|---|---|---|
data | 1 | Comma separated list of JSON objects that describing what data to draw on the map | สตริง | แนะนำ |
width | width | Total width of the graph | จำนวน | เลือกได้ |
height | height | Total height of the graph
| จำนวน | เลือกได้ |
padding | padding | ไม่มีคำอธิบาย | จำนวน | เลือกได้ |
lat | lat | Latitude of the map's center | จำนวน | เลือกได้ |
lon | lon | Longitude of the map's center | จำนวน | เลือกได้ |
zoom | zoom | Map zoom level (0..18) | จำนวน | เลือกได้ |
wdqs | wdqs | An optional Wikidata query to use instead of the data - the query would generate a list of items just like data, but it must contain a "coord" field with the location | สตริง | เลือกได้ |
colorScaleField | colorScaleField | If given, this data field will be used to make dots of different color, one color per unique value of this field | สตริง | เลือกได้ |
minimap | minimap | If set, 0 or false will always hide the map, and 1 or true will always show it. Make sure the map is big enough include the minimap. By default, the map will be shown for zoom levels 5+ if the map is sufficiently large | ตรรกะ | เลือกได้ |
{{sandbox other||
<graph>
{
//
// ATTENTION: This code is maintained at https://www.mediawiki.org/wiki/Template:Graph:Street_map_with_marks
// Please do not modify it anywhere else, as it may get copied and override your changes.
// Suggestions can be made at https://www.mediawiki.org/wiki/Template_talk:Graph:Street_map_with_marks
//
// Template translation is in https://commons.wikimedia.org/wiki/Data:Original/Template:Graphs.tab
//
"version": 2, "width":400, "height": 300, "padding": 0,
"signals":[
// These signals allow us to quickly move the map within the image, e.g. to leave space for the legend
{"name":"legendWidth", "init": {"expr": "0"} },
{"name":"legendHeight", "init": {"expr": "height"} },
{"name":"imgWidth", "init": {"expr": "width-legendWidth"} },
{"name":"imgHeight", "init": {"expr": "height"} },
{"name":"imgXC", "init": {"expr": "imgWidth/2"} },
{"name":"imgYC", "init": {"expr": "imgHeight/2"} },
{"name":"imgTileSize", "init": {"expr": "256"} },
{"name":"imgLat", "init": {"expr": "40.347"} },
{"name":"imgLon", "init": {"expr": "47.260"} },
{"name":"imgZoom", "init": {"expr": "6"} },
{"name":"picWidth", "init": {"expr": "180"} },
{"name":"picHeight", "init": {"expr": "picWidth/2"} },
{"name":"picXC", "init": {"expr": "imgWidth-(picWidth/2)"} },
{"name":"picYC", "init": {"expr": "imgHeight-(picHeight/2)"} },
{"name":"showMiniMap", "init": {"expr": "imgZoom>4 && imgWidth>200 && imgHeight>110"} }
],
"data": [
{
"name": "data",
// Otherwise use the first unnamed argument for source values
"values": [
{"lat":65.6, "lon":-168.1, "color":"#f00", "size": 10},
{"lat":90, "lon":-180, "shape":"cross", "color":"#f00", "size": 500},
{"lat":-90, "lon":180, "shape":"cross", "color":"#f00", "size": 500},
{"lat":0, "lon":-180, "shape":"cross", "color":"#f00", "size": 500},
{"lat":0, "lon":180, "shape":"cross", "color":"#f00", "size": 500},
{"lat":20, "lon":-120, "color":"#0f0"},
{"lat":40, "lon":-120, "shape":"diamond", "color":"#0f0", "size": 80, "text": "Some cool text", "textColor": "#0ff", "textFontSize": 20, "textBaseline": "middle"},
{"lat":-10, "lon":20, "img":"Volcano red 32x32.svg", "offsetY":-10},
{"lat":0, "lon":0, "img":"Volcano red 32x32.svg", "width":25, "height": 25, "offsetY":-10, "text": "Big volcano", "textFontWeight": "bold", "textFontSize": 20, "textColor": "#fff"},
{"lat":37.774755, "lon":-122.454688, "color":"#f00", "size": 10},
],
"transform": [
{
"type": "geo",
"projection": "mercator",
"scale": {"expr": "imgTileSize/PI/2*pow(2,imgZoom)"},
"translate": [{"expr": "imgXC"}, {"expr": "imgYC"}],
"center": [{"expr": "imgLon"}, {"expr": "imgLat"}],
"lon": "lon", "lat": "lat"
},
{ "type": "formula", "field":"layout_x", "expr": "datum.layout_x + (datum.offsetX || 0)" },
{ "type": "formula", "field":"layout_y", "expr": "datum.layout_y + (datum.offsetY || 0)" },
{ "type": "formula", "field":"color", "expr": "datum.color || '#c33'" },
{ "type": "formula", "field":"textColor", "expr": "datum.textColor || datum.color" },
{ "type": "formula", "field":"strokeColor", "expr": "datum.strokeColor || '#ffe7e6'" }
]
},
{
// Hack: single value data source for drawing/hiding images and other non-series elements
"name": "dummyData",
"values": [{}]
}
],
// Legend only works if showLegend and colorScaleField are set
"marks": [
{
"type": "image",
"from": {
"data": "dummyData",
"transform": [
{ "type": "formula", "field":"url", "expr": "'mapsnapshot:///?width='+imgWidth+'&height='+imgHeight+'&zoom='+imgZoom+'&lat='+imgLat+'&lon='+imgLon" }
]
},
"properties": {
"enter": {
"url": {"field": "url"},
"xc": {"signal": "imgXC"}, "yc": {"signal": "imgYC"},
"width": {"signal": "imgWidth"}, "height": {"signal": "imgHeight"}
}
}
},
{
// Places an image of a given name and size at the [lan,lon] location
"type": "image",
"from": {
"data": "data",
"transform": [
{ "type": "filter", "test": "datum.img" },
{ "type": "formula", "field":"iconWidth", "expr": "datum.width || 0" },
{ "type": "formula", "field":"iconHeight", "expr": "datum.height || 0" },
{ "type": "formula", "field":"img",
"expr": "if(!test(/^[a-z]+:\\/\\//, datum.img), 'wikifile:///'+datum.img, datum.img)" },
// Ensure that either width or height parameter is passed to wikifile:// request
{ "type": "formula", "field":"img",
"expr": "if((datum.iconWidth || datum.iconHeight) && !test(/[?&](width|height)=\\d/, datum.img),if(datum.iconWidth,datum.img+'?width='+datum.iconWidth,datum.img+'?height='+datum.iconHeight), datum.img)" }
]},
"properties": {
"enter": {
"url": {"field": "img"},
"xc": {"field": "layout_x"}, "yc": {"field": "layout_y"},
"width": {"field": "iconWidth"}, "height": {"field": "iconHeight"}
}
}
},
{
// Draw marks of a given color, shape, and size at the [lan,lon] location
"type": "symbol",
"from": {
"data": "data",
"transform": [{ "type": "filter", "test": "!datum.img" }]
},
"properties": {
"enter": {
"x": {"field": "layout_x"},
"y": {"field": "layout_y"},
// If colorScaleField is set, use color scaling, otherwise use the preset color value
"fill": { "field": "color" },
"size": {"field": "size"},
"shape": {"field": "shape"},
"stroke": {"field": "strokeColor"}
}
}
},
{
// Draw text with the given color and size at the [lan,lon] location
// See https://github.com/vega/vega/wiki/Marks#text for all parameter description (prepend "text" and capitalize them)
"type": "text",
"from": {
"data": "data",
"transform": [
{ "type": "filter", "test": "datum.text" },
// Figure out if this is an LTR or RTL page. For LTR, show label to the right of the icon, left-aligned. For RTL, reverse.
{ "type": "formula", "field":"isLTR", "expr": "'' == '\\u200E'" },
// If these values are not defined ("undefined" is not allowed, so test for truthiness and not 0)
{ "type": "formula", "field":"textDx", "expr": "if(!datum.textDx && datum.textDx != 0, if(datum.isLTR,8,-8), datum.textDx)" },
{ "type": "formula", "field":"textAlign", "expr": "if(!datum.textAlign, if(datum.isLTR,'left','right'), datum.textAlign)" },
{ "type": "formula", "field":"textBaseline", "expr": "datum.textBaseline || 'middle'" }
]},
"properties": {
"enter": {
"text": {"field": "text"},
"x": {"field": "layout_x" },
"y": {"field": "layout_y"},
"dx": {"field": "textDx" },
"dy": {"field": "textDy"},
"fill": {"field": "textColor"},
"align": {"field": "textAlign"},
"baseline": {"field": "textBaseline"},
"radius": {"field": "textRadius"},
"theta": {"field": "textTheta"},
"angle": {"field": "textAngle"},
"font": {"field": "textFont"},
"fontSize": {"field": "textFontSize"},
"fontWeight": {"field": "textFontWeight"},
"fontStyle": {"field": "textFontStyle"}
}
}
},
{
// Draw a low-zoom locator map frame
"type": "rect",
"from": {
"data": "dummyData",
"transform": [
{ "type": "filter", "test": "showMiniMap" }
]
},
"properties": {
"enter": {
"xc": {"signal": "picXC"}, "yc": {"signal": "picYC"},
"width": {"signal": "picWidth", "offset":2}, "height": {"signal": "picHeight"},
"stroke": {"value":"#fff"},"strokeWidth": {"value":6}
}
}
},
{
// Draw a low-zoom locator map by using a premade world map image
"type": "image",
"from": {
"data": "dummyData",
"transform": [
{ "type": "filter", "test": "showMiniMap" },
{ "type": "formula", "field":"url", "expr": "1" }
]
},
"properties": {
"enter": {
"url": {"value": "wikirawupload:"},
"xc": {"signal": "picXC"}, "yc": {"signal": "picYC"},
"width": {"signal": "picWidth"}, "height": {"signal": "picHeight"}
}
}
},
{
// Draw a zoom-out mark at the [lan,lon] location
"type": "symbol",
"from": {
"data": "dummyData",
"transform": [
{ "type": "filter", "test": "showMiniMap" },
{ "type": "formula", "field":"lat", "expr": "imgLat" },
{ "type": "formula", "field":"lon", "expr": "imgLon" },
{
"type": "geo",
"projection": "equirectangular",
"scale": {"expr": "180/2/PI"},
"translate": [{"expr": "picXC"}, {"expr": "picYC"}],
"center": [{"expr": "0"}, {"expr": "0"}],
"lon": "lon", "lat": "lat"
}
]
},
"properties": {
"enter": {
"x": {"field": "layout_x"}, "y": {"field": "layout_y"},
"fill": {"value": "#c33"},
"stroke": {"value": "#ffe7e6"},
"size": {"value": 40}
}
}
}
]
}
</graph>