h-geo: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
No edit summary
m (s/<source>/<syntaxhighlight>/)
 
(12 intermediate revisions by 6 users not shown)
Line 1: Line 1:
HOW THING THROUGH
<dfn style="font-style:normal;font-weight:bold">h-geo</dfn> is a simple, open format for publishing [http://en.wikipedia.org/wiki/WGS84 WGS84] geographic coordinates. h-geo is one of several open [[microformats|microformat]] draft standards suitable for embedding data in HTML.
HOW MAKE THING THROUGH
 
HOW THING BE THROUGH
h-geo is the [[microformats2]] update to [[geo]]. It is most commonly used as part of an [[h-card]] or [[h-event]].
HOW MAKE THING BE THROUGH
 
HOW ANYTHING THROUGH
;<span id="Status">Status</span>
HOW MAKE ANYTHING THROUGH
:This is a '''Draft Specification'''
HOW ANYTHING BE THROUGH
;Participate
HOW MAKE ANYTHING BE THROUGH
:[[IRC]]: [irc://irc.libera.chat/microformats #microformats on Libera]
HOW EVERYTHING THROUGH
;Editor
HOW MAKE EVERYTHING THROUGH
:<span class="h-card vcard"><span class="p-name fn">[[User:Tantek|Tantek Çelik]]</span> (<span class="p-role role">Editor</span>)</span>
HOW EVERYTHING BE THROUGH
;License
HOW MAKE EVERYTHING BE THROUGH
:{{cc0-owfa-license}}
HOW UNIVERSE THROUGH
__TOC__
HOW MAKE UNIVERSE THROUGH
 
HOW UNIVERSE BE THROUGH
== Example ==
HOW MAKE UNIVERSE BE THROUGH
Here is a simple h-geo example:
HOW THING OUT
 
HOW MAKE THING OUT
<syntaxhighlight lang="html">
HOW THING BE OUT
<p class="h-geo">
HOW MAKE THING BE OUT
  <span class="p-latitude">-27.116667</span>,
HOW ANYTHING OUT
  <span class="p-longitude">-109.366667</span>
HOW MAKE ANYTHING OUT
</p>
HOW ANYTHING BE OUT
</syntaxhighlight>
HOW MAKE ANYTHING BE OUT
 
HOW EVERYTHING OUT
Parsed JSON:
HOW MAKE EVERYTHING OUT
<syntaxhighlight lang="json">
HOW EVERYTHING BE OUT
{
HOW MAKE EVERYTHING BE OUT
  "items": [
HOW UNIVERSE OUT
    {
HOW MAKE UNIVERSE OUT
      "type": [
HOW UNIVERSE BE OUT
        "h-geo"
HOW MAKE UNIVERSE BE OUT
      ],
HOW THING THROUGH
      "properties": {
HOW MAKE THING THROUGH
        "latitude": [
HOW THING BE THROUGH
          "-27.116667"
HOW MAKE THING BE THROUGH
        ],
HOW ANYTHING THROUGH
        "longitude": [
HOW MAKE ANYTHING THROUGH
          "-109.366667"
HOW ANYTHING BE THROUGH
        ],
HOW MAKE ANYTHING BE THROUGH
        "name": [
HOW EVERYTHING THROUGH
          "-27.116667, -109.366667"
HOW MAKE EVERYTHING THROUGH
        ]
HOW EVERYTHING BE THROUGH
      }
HOW MAKE EVERYTHING BE THROUGH
    }
HOW UNIVERSE THROUGH
  ]
HOW MAKE UNIVERSE THROUGH
}
HOW UNIVERSE BE THROUGH
</syntaxhighlight>
HOW MAKE UNIVERSE BE THROUGH
 
HOW THING OUT
=== Get started ===
HOW MAKE THING OUT
The class '''<code>h-geo</code>''' is a ''root class name'' that indicates the presence of an h-geo.
HOW THING BE OUT
 
HOW MAKE THING BE OUT
'''p-latitude''', '''p-longitude''' and '''p-altitude''' classnames define an element as a ''property'' of the h-geo.
HOW ANYTHING OUT
 
HOW MAKE ANYTHING OUT
See [[microformats2-parsing]] to learn more about property classnames.
HOW ANYTHING BE OUT
 
HOW MAKE ANYTHING BE OUT
== Properties ==
HOW EVERYTHING OUT
h-geo properties, inside an element with class '''h-geo''':
HOW MAKE EVERYTHING OUT
* '''<code>p-latitude</code>''' - decimal latitude
HOW EVERYTHING BE OUT
* '''<code>p-longitude</code>''' - decimal longitude
HOW MAKE EVERYTHING BE OUT
* '''<code>p-altitude</code>''' - decimal altitude
HOW UNIVERSE OUT
 
HOW MAKE UNIVERSE OUT
All properties are optional.
HOW UNIVERSE BE OUT
 
HOW MAKE UNIVERSE BE OUT
== Status ==
 
'''h-geo''' is a microformats.org draft specification. Public discussion on h-geo takes place on [[h-geo-feedback]] and the #microformats [[irc]] channel on libera.chat.
 
h-geo is ready to use and implemented in the wild, but for backwards compatibility you should also mark h-geos up with classic [[geo]] classnames.
 
== Property Details ==
 
'''p-altitude''' refers to the distance in metres from the nominal sea level along the tangent of the earth’s curve, i.e. the geoid height. For more information refer to the [http://en.wikipedia.org/wiki/WGS84 WGS84] specification and the [https://en.wikipedia.org/wiki/Geo_URI_scheme geo URI scheme].
 
== FAQ ==
 
'''How should I mark up lat/long coordinates without them looking messy and confusing?'''
 
Unless your content is targeted at an audience with a high leg authoring '''p-latitude''' and '''p-longitude''' as plain numbers on a webpage may not be the best approach. In addition to this there may be accessibility issues due to the potentially long strings of numbers being read out.
 
You could present the coordinates in a more human-readable form, retaining the decimal coordinates inside data value attributes:
 
<syntaxhighlight lang="html">
<p class="h-geo">
  <data class="p-longitude" value="-27.116667">27° 7′ 0″ S</data>,
  <data class="p-latitude" value="-109.366667">109° 22′ 0″ W</data>
</p>
</syntaxhighlight>
 
Alternatively you could not show coordinates at all and simply show a human-readable representation of the location, with the lat/long in value attributes of empty data elements.
 
== Examples in the Wild ==
* … add any h-geo examples you find in the wild
 
== Validating ==
{{h-spec-section-validating}}
 
== Backward Compatibility ==
=== Publisher Compatibility ===
For backward compatibility, you may wish to use classic [[geo]] classnames in addition to the more future-proof h-geo properties, for example:
 
<syntaxhighlight lang="html">
<p class="h-geo geo">
  <span class="p-latitude latitude">-27.116667</span>,
  <span class="p-longitude longitude">-109.366667</span>
</p>
</syntaxhighlight>
 
=== Parser Compatibility ===
Microformats parsers {{should}} detect classic properties only if a classic root class name is found and parse them as microformats2 properties.
 
If an "h-geo" is found, don't look for an "geo" on the same element.
 
Compatibility root class name: geo
 
Properties: (parsed as p- plain text unless otherwise specified)
 
* latitude
* longitude
 
== Background ==
 
h-geo is based on the [http://en.wikipedia.org/wiki/WGS84 WGS84] standard, as well as existing [[geo]] specification, which was extracted from [[hCard]] in order to allow it to be used for applications other than contact information.
 
== See Also ==
* [[microformats2]]
* [[h-card]] and [[h-event]] often contain h-geo
* [[h-adr]] is used to mark up human-readable structured addresses
 
[[Category:Draft Specifications]]

Latest revision as of 21:21, 26 July 2023

h-geo is a simple, open format for publishing WGS84 geographic coordinates. h-geo is one of several open microformat draft standards suitable for embedding data in HTML.

h-geo is the microformats2 update to geo. It is most commonly used as part of an h-card or h-event.

Status
This is a Draft Specification
Participate
IRC: #microformats on Libera
Editor
Tantek Çelik (Editor)
License
Per CC0, to the extent possible under law, the editors have waived all copyright and related or neighboring rights to this work. In addition, as of 2024-04-25, the editors have made this specification available under the Open Web Foundation Agreement Version 1.0.

Example

Here is a simple h-geo example:

<p class="h-geo">
  <span class="p-latitude">-27.116667</span>,
  <span class="p-longitude">-109.366667</span>
</p>

Parsed JSON:

{
  "items": [
    {
      "type": [
        "h-geo"
      ],
      "properties": {
        "latitude": [
          "-27.116667"
        ],
        "longitude": [
          "-109.366667"
        ],
        "name": [
          "-27.116667, -109.366667"
        ]
      }
    }
  ]
}

Get started

The class h-geo is a root class name that indicates the presence of an h-geo.

p-latitude, p-longitude and p-altitude classnames define an element as a property of the h-geo.

See microformats2-parsing to learn more about property classnames.

Properties

h-geo properties, inside an element with class h-geo:

  • p-latitude - decimal latitude
  • p-longitude - decimal longitude
  • p-altitude - decimal altitude

All properties are optional.

Status

h-geo is a microformats.org draft specification. Public discussion on h-geo takes place on h-geo-feedback and the #microformats irc channel on libera.chat.

h-geo is ready to use and implemented in the wild, but for backwards compatibility you should also mark h-geos up with classic geo classnames.

Property Details

p-altitude refers to the distance in metres from the nominal sea level along the tangent of the earth’s curve, i.e. the geoid height. For more information refer to the WGS84 specification and the geo URI scheme.

FAQ

How should I mark up lat/long coordinates without them looking messy and confusing?

Unless your content is targeted at an audience with a high leg authoring p-latitude and p-longitude as plain numbers on a webpage may not be the best approach. In addition to this there may be accessibility issues due to the potentially long strings of numbers being read out.

You could present the coordinates in a more human-readable form, retaining the decimal coordinates inside data value attributes:

<p class="h-geo">
  <data class="p-longitude" value="-27.116667">27° 7′ 0″ S</data>,
  <data class="p-latitude" value="-109.366667">109° 22′ 0″ W</data>
</p>

Alternatively you could not show coordinates at all and simply show a human-readable representation of the location, with the lat/long in value attributes of empty data elements.

Examples in the Wild

  • … add any h-geo examples you find in the wild

Validating

Main article: validators

Test and validate microformats2 markup in general with:

Backward Compatibility

Publisher Compatibility

For backward compatibility, you may wish to use classic geo classnames in addition to the more future-proof h-geo properties, for example:

<p class="h-geo geo">
  <span class="p-latitude latitude">-27.116667</span>,
  <span class="p-longitude longitude">-109.366667</span>
</p>

Parser Compatibility

Microformats parsers SHOULD detect classic properties only if a classic root class name is found and parse them as microformats2 properties.

If an "h-geo" is found, don't look for an "geo" on the same element.

Compatibility root class name: geo

Properties: (parsed as p- plain text unless otherwise specified)

  • latitude
  • longitude

Background

h-geo is based on the WGS84 standard, as well as existing geo specification, which was extracted from hCard in order to allow it to be used for applications other than contact information.

See Also