...On the Mega, the SPI is on a different set of pins (D50-D53 on Mega rather than D10-13 on the Uno). The itead GPS shield doesn't reach the D50-D53 SPI pins on the Mega so I had to run jumper wires from D50-52 on the Mega to D11-13 on the itead GPS sheild, I configured D11-13 as inputs in software but still used pin D10 as chip select (CS). After that the Mega was able to access the SD card.
Used the following wiring:G D10 - D53 MP D11 - D50 ES D12 - D51 G D13 - D52 A
const int chipSelect = 53; ....pinMode(53, OUTPUT); // change this to 53 on a mega