import QtQuick 2.0 ... import "mymap.js" as MyMap Rectangle { ... Canvas { id: canvas ... onPaint: { var ctx = getContext("2d"); MyMap.drawBackground(ctx); MyMap.drawAreas(ctx); } MouseArea { anchors.fill: parent onClicked: function(mouse) { var ctx = canvas.getContext("2d"); for (var i = 0; i < MyMap.areaIDs.length; i++) { MyMap.drawArea(ctx, ..., MyMap.areaIDs[i]); if (ctx.isPointInPath(mouse.x, mouse.y)) { console.log("Mouse click at ("+mouse.x+", "+mouse.y+") hit area "+MyMap.areaIDs[i]); return; } } console.log("Mouse click at ("+mouse.x+", "+mouse.y+") hit no area"); mouse.accepted = false; } } } }