If your main requirement is custom icons per location, use the Google Maps JS API directly (not GeoChart). You’ll have full control over:
Marker icons (any image or SVG)
Info windows
Event handling
Layers and clustering
Why not GeoChart? Because it's primarily for data visualization, not adding custom UI like different marker images.