Skip to content

Commit faedb96

Browse files
committed
Expand JS Tools list
Integrate suggestions, fill out placeholder sections, & cross-link to discussion issues on Github.
1 parent a95957b commit faedb96

File tree

1 file changed

+96
-20
lines changed

1 file changed

+96
-20
lines changed

index.html

+96-20
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,15 @@
5353
a[href]:hover .tag-span, a[href]:focus .tag-span {
5454
text-decoration: underline;
5555
}
56+
/* hack because respec is pulling in too much content */
57+
.issue > :not(.issue-title) {
58+
display: none;
59+
}
60+
/* doesn't currently work (repsec drops the second class when processing the issue) */
61+
.issue.discussion {
62+
border-color: hsl(180, 90%, 45%);
63+
background: hsl(180, 80%, 90%);
64+
}
5665
</style>
5766
<script class='remove'>
5867
var respecConfig = {
@@ -275,9 +284,17 @@ <h3>The Maps for HTML Community Group</h3>
275284
<em>why</em> native HTML web maps would be beneficial,
276285
and <em>how</em> they should best be defined.
277286
</p>
278-
<p class="ednote">
287+
<div class="ednote">
288+
<p>
279289
This report is a work in progress!
280290
Feedback and contributions are welcome.
291+
Most sections of the report include links to a discussion issue on GitHub.
292+
Use those issues to suggest corrections, additions,
293+
or changes to the conclusions.
294+
To suggest a new section (e.g., a new use case),
295+
please start a new issue.
296+
</p>
297+
<p>
281298
To make substantive contributions
282299
(that is, anything that is bigger than typo corrections or formatting fixes),
283300
you will need to first
@@ -948,10 +965,7 @@ <h2>Reviewed JavaScript Tools</h2>
948965
In addition, multiple open source JavaScript libraries
949966
have developed to make it easier for website authors to build on other map data services.
950967
</p>
951-
<p class="issue">
952-
Need data on the frequency of use of the different JS tools.
953-
<a href="https://trends.builtwith.com/mapping/"></a> has numbers, but no methodology.
954-
</p>
968+
<p class="issue" data-number="25"></p>
955969
<p>
956970
The reviewed implementations come in three forms:
957971
</p>
@@ -967,7 +981,7 @@ <h2>Reviewed JavaScript Tools</h2>
967981
<li>
968982
HTML custom elements,
969983
with configuration through attributes and child elements.
970-
<p class="issue">Need to identify reasonably popular web maps tools based on custom elements.</p>
984+
<p class="issue" data-number="23"></p>
971985
</li>
972986
</ul>
973987
<p>
@@ -1017,7 +1031,7 @@ <h2>Reviewed JavaScript Tools</h2>
10171031
we don't strictly exclude paid features from our assessment of support.
10181032
</p>
10191033

1020-
<section>
1034+
<section id="google-maps">
10211035
<h3>Google Maps embeds and Google Maps Platform API</h3>
10221036
<p>
10231037
By far the most frequently used map widget on the web,<sup>[citation needed]</sup>
@@ -1033,52 +1047,112 @@ <h3>Google Maps embeds and Google Maps Platform API</h3>
10331047
The Google Maps Platform includes a JavaScript API
10341048
for generating map viewers and adding custom features and data layers.
10351049
It also includes methods to access more complex search functions, local images, and other data.
1036-
Most features require an API key and usage is billed per page view.
1050+
Most features require an API key and is billed by usage (page views or API requests).
10371051
</p>
1052+
<p class="issue discussion" data-number="9"></p>
10381053
</section>
10391054

1040-
<section>
1055+
<section id="openstreetmap">
10411056
<h3>OpenStreetMap embeds</h3>
10421057
<p>
1043-
1058+
<a href="https://openstreetmap.org/">OpenStreetMap</a> is a project to compile free-to-use wayfinding maps of the entire Earth,
1059+
from crowdsourced contributions.
1060+
</p>
1061+
<p>
1062+
The interactive map on the group's website can be used to generate embeddable map widgets.
1063+
Various options can also be specified
1064+
<a href="https://wiki.openstreetmap.org/wiki/Browsing#Other_URL_tricks">in the URL</a> for the embed source.
10441065
</p>
1066+
<p>
1067+
The image tiles created by the project can also be accessed directly by URL recipes,
1068+
and these are used in other map viewer widgets and APIs.
1069+
The raw data is also re-processed and used by other map data services.
1070+
</p>
1071+
<p class="issue discussion" data-number="26"></p>
10451072
</section>
10461073

1047-
<section>
1048-
<h3>Bing Maps embeds</h3>
1074+
<section id="bing-maps">
1075+
<h3>Bing Maps embeds and Bing Maps Control API</h3>
10491076
<p>
1050-
1077+
<a href="https://www.bing.com/maps#">Bing maps</a> provides embeds that can be generated from their website.
1078+
For more complex options, the <a href="https://www.microsoft.com/en-us/maps/v8-control">API</a>
1079+
can be used to generate widgets with minimal configuration,
1080+
but also provides client-side APIs for manipulating the map,
1081+
as well as an interface to Bing's search services.
1082+
API tokens are required; free and paid plans are available, with usage caps.
10511083
</p>
1084+
<p class="issue discussion" data-number="27"></p>
10521085
</section>
10531086

1054-
<section>
1087+
<section id="mapkit-js">
10551088
<h3>MapKit JS (Apple Maps) API</h3>
10561089
<p>
1090+
<a href="https://developer.apple.com/maps/mapkitjs/">MapKit JS</a> provides
1091+
a JS framework for integrating Apple Maps in a website,
1092+
with a client-side API for customizing interactions,
1093+
and integrations with Apple search services.
1094+
</p>
1095+
<p>
1096+
A developer account is required,
1097+
along with a method of generating encrypted API tokens on demand on the webserver.
1098+
</p>
1099+
<p class="issue discussion" data-number="28"></p>
1100+
</section>
10571101

1102+
<section id="mapbox">
1103+
<h3>Mapbox GL JS API</h3>
1104+
<p>
1105+
<a href="https://docs.mapbox.com/">Mapbox</a> provides
1106+
map data as a service, as well as frameworks for multiple platforms.
1107+
The GL JS framework generates map viewer widgets from client-side JavaScript calls,
1108+
using WebGL for the actual rendering.
1109+
Alternatively, the Mapbox <a href="https://docs.mapbox.com/api/maps/#maps">Maps API</a>
1110+
returns complete HTML slippy maps based on URL configuration,
1111+
and so can be used as an iframe source.
1112+
</p>
1113+
<p>
1114+
An API key is required, with cost based on usage.
10581115
</p>
1116+
<p class="issue discussion" data-number="12"></p>
10591117
</section>
10601118

1061-
<section>
1119+
<section id="leaflet-js">
10621120
<h3>Leaflet.js API</h3>
10631121
<p>
1064-
Leaflet is a popular JavaScript framework for building customized map views.
1122+
<a href="https://leafletjs.com/">Leaflet</a> is a popular open-source JavaScript framework
1123+
for building customized map views.
10651124
It doesn't currently have a declarative API,
10661125
but widgets similar to map embeds can be generated with a few calls to the library methods.
10671126
</p>
10681127
<p>
10691128
Leaflet isn't associated with any particular map data source.
10701129
It can use image tiles from most web map (tile) services.
10711130
</p>
1072-
<p>
1073-
This review is based on the <a href="https://leafletjs.com/reference-1.4.0.html">version 1.4.0 API docs</a>.
1074-
</p>
1131+
<p class="issue discussion" data-number="29"></p>
10751132
</section>
10761133

1077-
<section>
1134+
<section id="openlayers">
10781135
<h3>OpenLayers API</h3>
10791136
<p>
1137+
OpenLayers is one of the most established open-source libraries
1138+
for creating dynamic web maps from map data in standard formats.
1139+
As with Leaflet, it isn't associated with any particular map service.
1140+
A basic slippy map can be created with a few lines of custom JavaScript.
1141+
</p>
1142+
<p class="issue discussion" data-number="30"></p>
1143+
</section>
10801144

1145+
<section id="d3-geo">
1146+
<h3>D3 Geographies APIs</h3>
1147+
<p>
1148+
The data visualization library D3 includes the <a href="https://github.com/d3/d3-geo">d3-geo module</a>
1149+
which defines methods for manipulating vector map data
1150+
(which the website author must provide).
1151+
Unlike the other JS tools being reviewed here,
1152+
D3 does not include code for a ready-made map viewer widget,
1153+
but it is used for custom client-side mapping applications.
10811154
</p>
1155+
<p class="issue discussion" data-number="13"></p>
10821156
</section>
10831157
</section>
10841158

@@ -1874,6 +1948,7 @@ <h4><!-- Goal that user/author is trying to achieve --></h4>
18741948
See <a href="examples/#(add a new file for each use case)" target="examples">examples of <!-- description --></a>
18751949
as implemented by the reference JavaScript tools.
18761950
</p>
1951+
<p class="issue discussion" data-number="(GH issue number for discussion)"></p>
18771952

18781953
<h5>Required capabilities</h5>
18791954
<ul data-ucr-role="required-capabilities">
@@ -1889,6 +1964,7 @@ <h4><!-- Action that is/should be possible --></h4>
18891964
<p>
18901965
<!-- Description of how it should work & why it is useful to users/authors of maps. -->
18911966
</p>
1967+
<p class="issue discussion" data-number="(GH issue number for discussion)"></p>
18921968

18931969
<h5>Existing implementations</h5>
18941970
<p>

0 commit comments

Comments
 (0)