Perl, 7277, 75, 72 70
Standard 2d regex matching tricks.
#!perl -p0
/
/;$x="(.{@-})?";1while";y/0/./while s/$.$x\K$"|$"(?=$x$.)/-/s||($"=$.++)<9;y/0/./<9
Example:
$ perl heat.pl <in.txt
---------..1........
----------..........
---8-------......--.
----------......--2-
---------......-----
--------......------
-------......-------
.-----......-----6--
..---.......--------
...-.......-2-------
Try it here