Map generated from custom address fields
You could use the Geofield and the Geocoder modules. The fist module allows to store geographic data in a field; the second one to extract the geographic data from another field, including an image field.
When you add a new field to an entity (for example, a node), you need to select Geofield as field type, and leave Geocode from another field as widget.



Clicking on the Save button, you will be then asked to change the field settings (which just allow to change the storage backend). After clicking on the Save field settings button, you can choose from which field the geographic data are extracted, including an image field.



The Geocoder module once allowed to select multiple fields from which the geographic data would be extracted, but that was a bug, reported in
Geocode from field allows multiple selections and fixed. If you are reading blog articles or tutorials that suggests you can select multiple fields from which the geographic data are extracted, they are all referring to older module versions.