Ejemplo n.º 1
0
void
set_north_east_bounds_from_ix_iy_zoom( image_tile_t * image_tile)
{
  double lat_center,lon_center;
  lat_lon_centered_from_ix_iy_zoom( &lat_center, &lon_center, image_tile->ix, image_tile->iy, image_tile->zoom_level);
 
  int num_segments = (1 << image_tile->zoom_level);
  double lat_degrees_per_segment = 360.0/num_segments;
  double lon_degrees_per_segment = 360.0/num_segments;

  double lat_min = lat_center - 0.5*lat_degrees_per_segment;
  double lat_max = lat_center + 0.5*lat_degrees_per_segment;
  double lon_min = lon_center - 0.5*lon_degrees_per_segment;
  double lon_max = lon_center + 0.5*lon_degrees_per_segment;
  
  image_tile->x_min = (lat_min - lat0)*M_PI*EARTH_RADIUS/180.0*cos(lat0*M_PI/180.0);
  image_tile->x_max = (lat_max - lat0)*M_PI*EARTH_RADIUS/180.0*cos(lat0*M_PI/180.0);
  
  
  image_tile->y_min = (lon_min - lon0)*M_PI*EARTH_RADIUS/180.0*cos(lat0*M_PI/180.0);
  image_tile->y_max = (lon_max - lon0)*M_PI*EARTH_RADIUS/180.0*cos(lat0*M_PI/180.0);

  double x_mean = 0.5*(image_tile->x_max + image_tile->x_min);
  image_tile->x_max = x_mean + 0.5*(image_tile->y_max - image_tile->y_min);
  image_tile->x_min = x_mean - 0.5*(image_tile->y_max - image_tile->y_min);
}
Ejemplo n.º 2
0
void
start_tile_download( image_tile_t * image_tile)
{
  image_tile->status = TILE_DOWNLOADING;

  double lat,lon;
  lat_lon_centered_from_ix_iy_zoom( &lat, &lon, image_tile->ix, image_tile->iy, image_tile->zoom_level);

  char filename[MAX_FILENAME_LENGTH];
  filename_of_ix_iy_zoom( filename, image_tile->ix, image_tile->iy, image_tile->zoom_level );

  printf("downloading %s\n", filename);
  
  char system_call[1024];
  sprintf(system_call, "sh shake_n_bake.sh 'http://maps.google.com/maps/api/staticmap?center=%.6f,%.6f&zoom=%d&size=256x256&maptype=satellite&format=png32&sensor=false' %s &", lat, lon, zoom_level, filename);

  system(system_call);
}