agentscript
Version:
AgentScript Model in Model/View architecture
61 lines (45 loc) • 1.56 kB
HTML
<html>
<head>
<title>Model0 Hello</title>
</head>
<body>
<script type="module">
import * as mltools from './mltools.js'
import Animator from '../src/Animator.js'
import TwoDraw from '../src/TwoDraw.js'
import Model from '../models/HelloModel.js'
const bbox = mltools.santaFeBBox
const worldOptions = { bbox, patchesWidth: 100 }
const model = new Model(worldOptions)
model.setup()
const view = new TwoDraw(model, {
div: mltools.newCanvas(),
patchSize: 5,
drawOptions: {
patchesColor: 'transparent', // default in MapDraw
turtlesSize: 4,
linksWidth: 0.2,
},
})
// ===== Start of map & layers
// const terrain = mltools.terrain('usgs')
const terrain = mltools.terrain('osm')
const elevation = mltools.elevation('mapzen')
const map = await mltools.newMap(bbox, 10)
mltools.addRasterLayer(map, 'terrain', terrain)
// mltools.addRasterLayer(map, 'elevation', elevation, 0.2)
mltools.addGeojsonLayer(map, 'santaFe', bbox, 'rgba(255, 0, 0, 0.2)', 'red', 3)
mltools.addCanvasLayer(map, 'model', view.canvas, bbox)
// ===== End of map & layers
const anim = new Animator(
() => {
model.step()
view.draw()
},
500, // run 500 steps
30 // 30 fps
)
</script>
<div id="map"></div>
</body>
</html>