I would recommend strongly against png, unless you can save to png8. You don't need an alpha channel (transparency), and the color palette is probably not that huge. Go with jpg. Trust me. Also, 300dpi is not a magic number. It comes from the print industry and has nothing to do with screen resolution. In fact, it's an entirely meaningless number for screen display.
Your image is 2208 x 1710 pixels. If you have it in a higher resolution (i.e. more pixels), great. If you don't you are going to suffer loss. You can't create detail and clarity that isn't there to begin with.
If your original image source is higher resolution, try outputting a jpg with a quality of about 50 (this number may be different depending on you software, go with a median value, or "medium" quality. Somewhere in the middle. You really don't need high quality for this sort of image and the tradeoff in performance that might come. You can try raising or lowering the compression(quality) of the jpg until you are happy with the appearance/dimensions.
Also, if this makes your map really, really huge in pixel dimensions, export it in 2 or 4 slices and import those into Roll20 separately. The rendering engine will only have to deal with what's visible on screen at the moment, and you will see better performance at high magnification.