func (bb *BBox) Crosses(coord gopnik.TileCoord) bool { if coord.Zoom < bb.MinZoom || coord.Zoom > bb.MaxZoom { return false } lat1, lon1, _ := gproj.FromCoordToLL(coord) lat2, lon2, _ := gproj.FromCoordToLL(gopnik.TileCoord{ X: coord.X + coord.Size, Y: coord.Y + coord.Size, Zoom: coord.Zoom, }) latMin, latMax := minMax(lat1, lat2) lonMin, lonMax := minMax(lon1, lon2) if !crosses(bb.MinLat, bb.MaxLat, latMin, latMax) { return false } if !crosses(bb.MinLon, bb.MaxLon, lonMin, lonMax) { return false } return true }
func convertCoordByZoom(coord gopnik.TileCoord, zoom uint64) gopnik.TileCoord { lat, lon, _ := gproj.FromCoordToLL(coord) return gproj.FromLLToCoord(lat, lon, zoom) }