forked from Open-CT/openct-tasks
171 lines
5.6 KiB
HTML
171 lines
5.6 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Map2d - simple mode</title>
|
|
<script>
|
|
window.stringsLanguage = 'fr';
|
|
</script>
|
|
<script class="remove" type="text/javascript" src="../../../_common/modules/pemFioi/importModules-1.4-mobileFirst.js" id="import-modules"></script>
|
|
<script class="remove" type="text/javascript">
|
|
var modulesPath = '../../../_common/modules';
|
|
importModules([
|
|
'jquery-1.7.1', 'jquery-ui.touch-punch', 'raphael-2.2.1', 'JSON-js',
|
|
'beav-1.0', 'beaver-task-2.0', 'simulation-2.0', 'raphaelFactory-1.0',
|
|
'delayFactory-1.0', 'simulationFactory-1.0', 'randomGenerator-1.0',
|
|
'platform-pr', 'buttonsAndMessages', 'installationAPI.01', 'miniPlatform',
|
|
'taskStyles-0.1', 'raphaelButton-1.0',
|
|
'ace', 'ace_json',
|
|
'map2d', 'map2d_styles',
|
|
'json-text-editor', 'json-text-editor-jsonlint'
|
|
]);
|
|
</script>
|
|
|
|
<script class="remove" type="text/javascript">
|
|
var json = {
|
|
"id": "AmazonSNT/StructuredData/json-map-1",
|
|
"language": "fr",
|
|
"version": "fr.01",
|
|
"authors": "France-ioi, Mathias Hiron, Nicolas Esposito, Arnaud Le Grand",
|
|
"translators": [],
|
|
"license": "",
|
|
"taskPathPrefix": "",
|
|
"modulesPathPrefix": "",
|
|
"browserSupport": [],
|
|
"fullFeedback": true,
|
|
"acceptedAnswers": [],
|
|
"usesRandomSeed": false
|
|
};
|
|
</script>
|
|
<script type="text/javascript">
|
|
var taskStrings = {
|
|
success: "Félicitations, vous avez réussi !",
|
|
fail: "Ce n'est pas la bonne réponse.",
|
|
empty_map: "La carte est vide.",
|
|
invalid_json: 'Chaîne JSON invalide',
|
|
expecting: 'JSON parse error, expecting: ',
|
|
invalid_data: 'La réponse doit être un tableau d\'objets',
|
|
not_array: 'La propriété n\'est pas un tableau : ',
|
|
not_object: 'La propriété n\'est pas un objet :',
|
|
invalid_type: 'Type invalide : ',
|
|
missed_props: 'Propriété(s) manquante)s) : ',
|
|
extra_props: 'Propriété(s) non reconnuee : ',
|
|
points_empty: 'Le tableau de points est vide',
|
|
invalid_lat: 'La latitude est en dehors de la carte : ',
|
|
invalid_lng: 'La longitude est en dehors de la carte : '
|
|
}
|
|
</script>
|
|
<script type="text/javascript" src="task.js"></script>
|
|
<style>
|
|
#map {
|
|
margin: 1em 0;
|
|
}
|
|
.map2d {
|
|
margin: auto;
|
|
}
|
|
|
|
#json {
|
|
width: 100%;
|
|
height: 200px;
|
|
}
|
|
|
|
#json .mistake {
|
|
background: #FAA;
|
|
position: absolute;
|
|
}
|
|
|
|
#error {
|
|
color: "red";
|
|
padding-left: 1em;
|
|
}
|
|
#error h3 {
|
|
color: #808080;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.consigne {
|
|
color: #4a4a4a;
|
|
}
|
|
|
|
.enableSelect {
|
|
-webkit-user-select: text;
|
|
-moz-user-select: text;
|
|
-ms-user-select: text;
|
|
user-select: text;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="task">
|
|
<h1>Map2d - simple mode</h1>
|
|
<div id="tabsContainer"></div>
|
|
<div id="taskContent">
|
|
<div class="consigne">
|
|
<p>
|
|
Un emplacement sur la carte ci-contre peut être décrit par un objet JSON, une chaîne entre accollades contenant les propriétés type, lat et lng séparées par des virgules.
|
|
|
|
<p>
|
|
Chaque propriété est décrite par son nom entre guillemets, deux points, puis sa valeur entre guillemets.
|
|
</p>
|
|
<p>
|
|
Une liste est décrite par un ensemble d'objets séparés par des virgules, le tout entre crochets.
|
|
</p>
|
|
<p class="easy medium">
|
|
Voici un exemple avec un emplacement de la ville de Loix :
|
|
</p>
|
|
<pre class="easy medium enableSelect">[
|
|
{
|
|
"type":"point",
|
|
"lat": 46.222,
|
|
"lng": -1.445
|
|
}
|
|
]</pre>
|
|
<p class="easy">
|
|
Écrivez un fichier JSON qui place un point sur la ville de Le Bois-plage-en-Ré.
|
|
</p>
|
|
<p class="medium">
|
|
Écrivez un fichier JSON qui place deux points sur la carte. L'un sur la ville de Le Bois-plage-en-Ré, et l'autre sur la ville de la Couarde sur mer..
|
|
</p>
|
|
<p class="hard">
|
|
Écrivez un fichier JSON qui trace deux lignes brisées. La première va de Les Portes-en-Ré à Saint-Clément-des-Balaines, et la deuxième part de La Couarde-sur-Mer, passe par Saint-Martin-de-Ré puis va jusqu'à Le Bois-Plage-en-Ré.
|
|
</p>
|
|
<p class="hard">
|
|
Voici un exemple avec une partie de la deuxième route :
|
|
</p>
|
|
<pre class="hard enableSelect">[
|
|
{
|
|
"type":"line",
|
|
"points": [
|
|
{
|
|
"lat": 46.1785,
|
|
"lng": -1.375
|
|
},
|
|
{
|
|
"lat": 46.1975,
|
|
"lng": -1.371
|
|
}
|
|
]
|
|
}
|
|
]
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="map"></div>
|
|
<div id="json"></div>
|
|
<div id="error">
|
|
<h3>MESSAGE</h3>
|
|
<p><i class="fas fa-times"></i> <span id="errorMsg"></span></p>
|
|
</div>
|
|
|
|
<img src="icon.png" style="display:none">
|
|
</div>
|
|
</div>
|
|
<div id="solution">
|
|
<h2>Solution</h2>
|
|
</div>
|
|
</body>
|
|
</html>
|