	public Canvas getViewPanel() {
		VLayout layout = new VLayout();
		layout.setWidth100();
		layout.setHeight100();
		layout.setMembersMargin(10);

		// Create map with OSM layer, and add a PanController to it:
		VLayout mapLayout = new VLayout();
		mapLayout.setShowEdges(true);
		mapLayout.setHeight("60%");

		final MapWidget map = new MapWidget("osmMap", "gwt-samples");
		map.setController(new PanController(map));
		mapLayout.addMember(map);

		// Create a button layout:
		HLayout buttonLayout = new HLayout();
		buttonLayout.setHeight(25);
		buttonLayout.setMembersMargin(10);
		IButton button1 = new IButton(I18nProvider.getSampleMessages().screenWorldBTNScreen());
		button1.setWidth("50%");
		
		final Image screenImage = new Image("imageInScreenSpace");
		screenImage.setHref(Geomajas.getIsomorphicDir() + "geomajas/example/images/smile.png");
		screenImage.setBounds(new Bbox(60, 60, 48, 48)); // Pixel coordinates
		screenImage.setStyle(new PictureStyle(0.6));
		
		button1.addClickHandler(new ClickHandler() {

			// Draw an image in screen space:
			public void onClick(ClickEvent event) {
				map.render(screenImage, RenderGroup.SCREEN, RenderStatus.ALL);
			}
		});
		buttonLayout.addMember(button1);

		IButton button2 = new IButton(I18nProvider.getSampleMessages().screenWorldBTNWorld());
		button2.setWidth("50%");
		
		final Image worldImage = new Image("imageInWorldSpace");
		worldImage.setHref(Geomajas.getIsomorphicDir() + "geomajas/example/images/smile.png");
		worldImage.setBounds(new Bbox(-2000000, -2000000, 4000000, 4000000)); // Mercator coordinates
		worldImage.setStyle(new PictureStyle(0.8));
		
		button2.addClickHandler(new ClickHandler() {

			// Draw an image in world space:
			public void onClick(ClickEvent event) {
				map.registerWorldPaintable(worldImage);
			}
		});
		buttonLayout.addMember(button2);

		// Create a second button layout (delete buttons):
		HLayout buttonLayout2 = new HLayout();
		buttonLayout2.setMembersMargin(10);
		IButton button3 = new IButton(I18nProvider.getSampleMessages().screenWorldBTNScreenDelete());
		button3.setWidth("50%");
		button3.addClickHandler(new ClickHandler() {

			// Delete the image in screen space:
			public void onClick(ClickEvent event) {
				map.render(screenImage, RenderGroup.SCREEN, RenderStatus.DELETE);
			}
		});
		buttonLayout2.addMember(button3);

		IButton button4 = new IButton(I18nProvider.getSampleMessages().screenWorldBTNWorldDelete());
		button4.setWidth("50%");
		button4.addClickHandler(new ClickHandler() {

			// Delete the image in world space:
			public void onClick(ClickEvent event) {
				map.unregisterWorldPaintable(worldImage);
			}
		});
		buttonLayout2.addMember(button4);
		
		// Place both in the layout:
		layout.addMember(mapLayout);
		layout.addMember(buttonLayout);
		layout.addMember(buttonLayout2);

		return layout;
	}