Javascript è solo un linguaggio, ma le popolari implementazioni all'interno dei browser web non sono realmente adatte per l'elaborazione di immagini reali, semplicemente perché mancano delle possibilità di I / O. (È possibile sostituire un'interfaccia Ajax per l'archiviazione dei dati, e si possono ispezionare i dati delle immagini a livello binario in javascript, costruendo gli URI dei dati al volo, ma questo è troppo complicato per essere fattibile, soprattutto perché non si otterrà mai il tipo di prestazioni necessarie).
Tuttavia, ciò che descrivi non è in realtà l'elaborazione delle immagini; quello che vuoi è il supporto della grafica vettoriale e le implementazioni di JavaScript nei nuovi browser lo forniscono. Hai due possibilità: SVG e canvas. Entrambi possono fare ciò che descrivi, incluso un editor di grafica vettoriale click-and-point. È un compito complesso, ma perfettamente fattibile.
Se vuoi che gli utenti siano in grado di caricare le planimetrie, piuttosto che modificarle all'interno della tua app Web, dovrai essere in grado di analizzare il formato di grafica vettoriale prescelto (l'SVG in questo caso sembra abbastanza appropriato; la toolchain di Adobe lo supporta, e per gli utenti che non possono permetterseli, Inkscape è un editor gratuito con supporto SVG nativo). Mettere un'immagine SVG sulla tua pagina e rendere i singoli elementi cliccabili non è troppo difficile. Dato che SVG è basato su XML, potresti aggiungere un po 'di semplice XSLT per aggiungere i collegamenti; oppure potresti diventare un po 'più esperto e fornire un editor di link interattivo.
Se vuoi supportare IE 8 e versioni precedenti (che non hanno il supporto per SVG, ma utilizza il proprio formato di grafica vettoriale VML), potresti voler esaminare Raphael .