function WMTS_example

%Open a new figure on monitor 2:
HWIN=figure('pos',[2073 553 560 420]);

%List WMTS layers that are available out of the box:
WMTS_services=modelit.mapviewer.TileSourceFactory.allTileSources;

disp('Available WMTS services')
disp('======================================')
disp(char(WMTS_services.displayName))
disp('======================================')

%In the example below we select 1 of the above. Feel free to experiment
%with other WMTS services
tilesource4example = modelit.mapviewer.TileSourceFactory.create(struct('displayName','Luchtfotos actueel (HR)'));
% tilesource4example = modelit.mapviewer.TileSourceFactory.create(struct('displayName','USGSTopo'));
% tilesource4example = modelit.mapviewer.TileSourceFactory.create(struct('displayName','OpenStreetMap'));

m = modelit.mapviewer.MapViewer(HWIN,'tilesource',tilesource4example);

%Center the map in the figure
set(m.handle,'units','normalized','pos',[.1 .1 .8 .8]);

%A Matlab figure with a zoomable map is now visible.
%Its content is served by (for example) http://a.tile.openstreetmap.org
%Continue by plotting some data of our own:

%load linedata for the Dutch Motorway&Trunk roads network. These data are
%reported in RD coordinates:
data=load('highways.mat','-mat');

if isa(tilesource4example,'modelit.mapviewer.WGS84TileSource')
    %tilesource4example is a WGS service. Conver RD to this coordinates
    %before plotting.
    xy=RD2WGS([data.x,data.y]);
    data.x=xy(:,1);
    data.y=xy(:,2);
end

%Plot the data
h=line(data.x,data.y,'parent',m,'color','r','linew',2);

%Select the Area to display (in this case: range of displayed line)
setVisibleRectangle(m, [ min(data.x),min(data.y),max(data.x)-min(data.x),max(data.y)-min(data.y)]);

%h is a native Matlab line object
get(h)
set(h,'color','b')
set(h,'buttondown',@(o,e)disp('Button Pressed'))