Files
iD/index.html
2012-10-17 16:40:15 -04:00

205 lines
6.8 KiB
HTML
Executable File

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>iD</title>
<!-- load Dojo -->
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dojox/layout/resources/FloatingPane.css">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dojox/layout/resources/ResizeHandle.css">
<link rel="stylesheet" href="css/app.css">
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js" data-dojo-config="async: true, parseOnLoad: true, baseUrl: 'js/iD/'"></script>
</head>
<body class="claro">
<div id="appLayout" class="demoLayout">
<script type="text/javascript" src="js/lib/underscore-min.js"></script>
<script type="text/javascript" src="js/lib/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="js/iD/Util.js"></script>
<script type="text/javascript" src="js/iD/Taginfo.js"></script>
<script type="text/javascript" src="js/iD/Node.js"></script>
<script type="text/javascript" src="js/iD/Relation.js"></script>
<script type="text/javascript" src="js/iD/Entity.js"></script>
<script type="text/javascript" src="js/iD/Way.js"></script>
<script type="text/javascript" src="js/iD/Connection.js"></script>
<script>
require(["dojo/_base/lang","dojo/dom-geometry","dojo/dom-class","dojo/on","dojo/dom","dojo/Evented",
"dijit/form/Button","dijit/form/ToggleButton",
"dojox/layout/FloatingPane",
"iD/actions/UndoStack",
"iD/actions/CreatePOIAction",
"iD/actions/AddNodeToWayAction",
"iD/Controller",
"iD/actions/CreateEntityAction",
"iD/controller/edit/NoSelection",
"iD/controller/shape/NoSelection",
"iD/renderer/Map","iD/styleparser/RuleSet",
"iD/ui/DragAndDrop","iD/ui/StepPane",
"dojo/domReady!"], function(lang,domGeom,domClass,on,dom,Evented){
var ruleset=new iD.styleparser.RuleSet();
var conn=new iD.Connection("http://www.overpass-api.de/api/xapi?");
// Load styles
ruleset.registerCallback(styleLoaded);
ruleset.loadFromCSS("potlatch.css",styleLoaded);
// Initialise map
var map = new iD.renderer.Map({
lat: 51.87,
lon: -1.49,
scale: 17,
div: "map",
connection: conn,
width: dom.byId('map').offsetWidth,
height: dom.byId('map').offsetHeight
});
conn.registerMap(map);
map.ruleset=ruleset;
// Initialise controller
var controller=new iD.Controller(map);
map.setController(controller);
// Initialise event listeners
controller.on("enterState", enterStateListener);
controller.on("exitState", exitStateListener);
// ----------------------------------------------------
// Data is loaded and app ready to go
function styleLoaded() {
// Initialise drag-and-drop icons
new iD.ui.DragAndDrop("map",map,"dndgrid");
// Initialise help pane
controller.setStepper(new iD.ui.StepPane("helpPane","helpSteps"));
// Set initial controllerState
controller.setState(new iD.controller.edit.NoSelection());
// Load presets
controller.setTagPresets('way','presets/ways.json');
controller.setTagPresets('node','presets/nodes.json');
// Load data
map.download();
}
// ----------------------------------------------------
// State event listeners
function enterStateListener(event) {
domClass.add(event.state[0]+"Button","currentMode");
};
function exitStateListener(event) {
domClass.remove(event.state[0]+"Button","currentMode");
};
// ----------------------------------------------------
// Mode button handlers
enterWayMode=function() {
controller.setState(new iD.controller.shape.NoSelection());
};
enterEditMode=function() {
};
finishClicked=function() {
controller.stepper.hide();
};
cancelClicked=function() {
controller.stepper.hide();
};
// ----------------------------------------------------
// Map control handlers
$('#zoomIn').click(function() {
map.zoomIn();
});
$('#zoomOut').click(function() {
map.zoomOut();
});
$('#map').dblclick(function() {
map.zoomIn();
});
var scroll = 0;
$('#map').bind('mousewheel', function(e) {
e.preventDefault();
scroll += e.originalEvent.wheelDelta;
if (scroll > 300) {
map.zoomIn();
scroll = 0;
}
if (scroll < -300) {
map.zoomOut();
scroll = 0;
}
});
});
</script>
<!-- see http://dojotoolkit.org/documentation/tutorials/1.7/themes_buttons_textboxes/
and http://dojotoolkit.org/widgets -->
<div id="modebuttons" style="position:absolute; left: 10px; top: 10px;">
<div id="addPOI" data-dojo-type="dijit.form.DropDownButton" data-dojo-props="iconClass:'dijitIconApplication', onClick:function(){}">
<span>Add point</span>
<div data-dojo-type="dijit.TooltipDialog">
<p>Drag points onto the map</p>
<table id="dndgrid">
</table>
</div>
</div><script>require(["dijit/form/DropDownButton", "dijit/TooltipDialog","dojo/dnd/Source","dojo/parser", "dojo/domReady!"]);</script>
<button id="shapeButton" data-dojo-type="dijit.form.ToggleButton" data-dojo-props="onClick:enterWayMode">
Add road or shape
</button><script>require(["dijit/form/ToggleButton", "dojo/parser", "dojo/domReady!"]);</script>
<button id="editButton" data-dojo-type="dijit.form.Button" data-dojo-props="onClick:enterEditMode">
Edit object
</button><script>require(["dijit/form/Button", "dojo/parser", "dojo/domReady!"]);</script>
</div>
<div id="zoombuttons">
<button id="zoomIn">+</button><button id="zoomOut">&ndash;</button>
</div>
<!-- Map div -->
<div id="map" style="height:600px"
style="-webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;">
</div>
<p>Work in progress: <a href='http://www.geowiki.com/'>introduction</a>, <a href='http://github.com/systemed/iD'>code</a>, <a href='http://www.geowiki.com/docs'>docs</a>. Imagery <a href="http://opengeodata.org/microsoft-imagery-details">&copy; 2012</a> Bing, GeoEye, Getmapping, Intermap, Microsoft.</p>
<!-- Floating help window -->
<div id="helpPane" data-dojo-type="dojox.layout.FloatingPane"
data-dojo-props="resizable:true, closable:false, dockable:false, title: 'Step by step'"
style="position:absolute; top:45px; left:50px; width:200px; height:200px; visibility: hidden;" >
<ol id="helpSteps">
</ol>
<button id="finishHelpButton" data-dojo-type="dijit.form.Button" data-dojo-props="onClick:finishClicked">
Finish
</button><script>require(["dijit/form/Button", "dojo/parser", "dojo/domReady!"]);</script>
<button id="cancelHelpButton" data-dojo-type="dijit.form.Button" data-dojo-props="onClick:cancelClicked" style="float:right">
Cancel
</button><script>require(["dijit/form/Button", "dojo/parser", "dojo/domReady!"]);</script>
</div>
</div><!-- applayout -->
</body>
</html>