Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function tile2latlon($tile, $zoom, $bound) {
- $n = pow(2, $zoom);
- function long($tile_x_coord, $n) {
- return $lon_deg_nw = $tile_x_coord / $n * 360.0 - 180.0;
- }
- function lat($tile_y_coord, $n) {
- return rad2deg(atan(sinh(pi() * (1 - 2 * $tile_y_coord / $n))));
- }
- switch ($bound) {
- case 'NW':
- $lat_deg_nw = lat($tile[1], $n);
- $lon_deg_nw = long($tile[0], $n);
- return [$lat_deg_nw, $lon_deg_nw];
- case 'SE':
- $lat_deg_se = lat($tile[1] + 1, $n);
- $lon_deg_se = long($tile[0] + 1, $n);
- return [$lat_deg_se, $lon_deg_se];
- case 'NE':
- $lat_deg_ne = lat($tile[1], $n);
- $lon_deg_ne = long($tile[0] + 1, $n);
- return [$lat_deg_ne, $lon_deg_ne];
- case 'SW':
- $lat_deg_sw = lat($tile[1] + 1, $n);
- $lon_deg_sw = long($tile[0], $n);
- return [$lat_deg_sw, $lon_deg_sw];
- }
- return [];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement