No, quella formula non è corretta. Penso che l'intenzione di quella formula sia di realizzare un'interpolazione lineare e se quello è il caso, ciò che segue è più vicino a che cosa volete…
mapWidth = 2860;
mapHeight = 1900;
mapLongW = -125; // ha lasciato il limite del programma è 125degW
mapLongE = -65; Il limite di destra di // del programma è 65degW
mapLatN = 50; Il limite della parte superiore di // del programma è 50degN
mapLatS = 25; Il limite della parte inferiore di // del programma è 25degN
locationLat = 30.52; Latitudine di // di punto di interesse
locationLong = -87.85; Longitudine di // di punto di interesse
x = (locationLong - mapLongW) * mapWidth/(mapLongE - mapLongW);
y = (locationLat - mapLatN) * mapHeight/(mapLatS - mapLatN);
TUTTAVIA, questo non è un metodo esatto di conversione del lat/lungamente a x/y. Ciò sta realizzando l'interpolazione LINEARE, che è benissimo per il valore di x poichè la scala orizzontale è lineare ma la scala verticale non è lineare, in modo da otterrete i giusti valori all'alto ed al basso del programma, ma vicino alla metà più grande l'errore che otterrà.
L'errore può essere abbastanza piccolo affinchè non sia interessato circa, ma se siete i per la matematica ottiene molto più complicato. Averlo alle equazioni a questa pagina….
http://en.wikipedia.org/wiki/Mercator_projection