public TileAddress GoogleTile(int tx, int ty, int zoom) { TileAddress retval = new TileAddress(); try { retval.X = tx; retval.Y = Convert.ToInt32((Math.Pow(2, zoom) - 1) - ty); return(retval); } catch (Exception ex) { throw ex; } }
public TileAddress MetersToTile(double mx, double my, int zoom) { TileAddress retval = new TileAddress(); try { var p = this.MetersToPixels(mx, my, zoom); retval = this.PixelsToTile(p.X, p.Y); return(retval); } catch (Exception ex) { throw ex; } }
public TileAddress LatLonToTile(double lat, double lon, int zoom) { TileAddress retval = new TileAddress(); try { var m = this.LatLonToMeters(lat, lon); retval = this.MetersToTile(m.X, m.Y, zoom); return(retval); } catch (Exception ex) { throw ex; } }
public TileAddress PixelsToTile(double px, double py) { TileAddress retval = new TileAddress(); try { retval.X = (int)(Math.Ceiling(Convert.ToDouble(px / this.tileSize)) - 1); retval.Y = (int)(Math.Ceiling(Convert.ToDouble(py / this.tileSize)) - 1); return(retval); } catch (Exception ex) { throw ex; } }
public TileAddress QuadTreeToTile(string quadtree, int zoom) { TileAddress retval = new TileAddress(); try { var tx = 0; var ty = 0; for (var i = zoom; i >= 1; i--) { var ch = quadtree[zoom - i]; var mask = 1 << (i - 1); var digit = ch - '0'; if (Convert.ToBoolean(digit & 1)) { tx += mask; } if (Convert.ToBoolean(digit & 2)) { ty += mask; } } ty = ((1 << zoom) - 1) - ty; retval.X = tx; retval.Y = ty; return(retval); } catch (Exception ex) { throw ex; } }