Não, essa fórmula não está correta. Eu penso que a intenção dessa fórmula é executar uma interpolação linear, e se aquele é o caso, o seguinte é mais perto do que você quer…
mapWidth = 2860;
mapHeight = 1900;
mapLongW = -125; // deixou o limite do mapa é 125degW
mapLongE = -65; O limite da direita de // do mapa é 65degW
mapLatN = 50; O limite da parte superior de // do mapa é 50degN
mapLatS = 25; O limite da parte inferior de // do mapa é 25degN
locationLat = 30.52; Latitude de // do ponto do interesse
locationLong = -87.85; Longitude de // do ponto do interesse
x = (locationLong - mapLongW) * mapWidth/(mapLongE - mapLongW);
y = (locationLat - mapLatN) * mapHeight/(mapLatS - mapLatN);
ENTRETANTO, este não é um método exato de converter o lat/por muito tempo a x/y. Isto está executando a interpolação LINEAR, que é muito bem para o valor de x porque a escala horizontal é linear mas a escala vertical não é linear, assim que você começ os valores direitos na parte superior e na parte inferior do mapa, mas perto do meio mais grande o erro que você começ.
O erro pode ser pequeno bastante para que você não seja referido aproximadamente, mas se você é as matemáticas começ completamente um pouco mais complicado. Tê-lo nas equações nesta página….
http://en.wikipedia.org/wiki/Mercator_projection