"Longitude versus pixel" increments seems to me the same at all the globe, so do not use the cosine of latitude for them (you don't need the "real" distance, just the longitude).
The latitude increment is OK if you fix the "degrees per meter at the equator" ratio (360/(2.π.6378137)).
So in my opinion it should be something like the following:
const degreesPerMeterAtEquator = 360 / (2 * Math.PI * 6378137)
const metresAtEquatorPerTilePx = 156543.03392 / (2 ** zoom)
const latIncrement = degreesPerMeterAtEquator * Math.cos(currentLat * Math.PI / 180) * metresAtEquatorPerTilePx * 700
const lonIncrement = degreesPerMeterAtEquator * metresAtEquatorPerTilePx * 700
A multiplier is required to make tiles seamless for some reason
Seen here perfectly tiling at latitudes and longitudes over 60 degrees apart. Australia and America:
const degreesPerMeterAtEquator = 360 / (2 * Math.PI * 6378137)
const metresAtEquatorPerTilePx = 156543.03392 / (2 ** zoom)
const multiplier = 0.915
const latIncrement = (degreesPerMeterAtEquator * Math.cos(currentLat * Math.PI / 180) * metresAtEquatorPerTilePx * 700) * multiplier
const lonIncrement = (degreesPerMeterAtEquator * metresAtEquatorPerTilePx * 700) * multiplier
Best Answer
The number comes from the tile resolution being set at a multiple of 256 pixels, and from the screen resolution (96dpi). Per Bing's page about their map tile system:
At the most zoomed in, that works out to ~591,658,711. That's slightly off from the 591,657,550.5 value for Google maps, but I think the error can be attributed to different decisions about how to do rounding.