001 package org.openstreetmap.gui.jmapviewer.tilesources; 002 003 import java.awt.Image; 004 import java.io.ByteArrayInputStream; 005 import java.io.IOException; 006 007 import javax.imageio.ImageIO; 008 import javax.xml.bind.DatatypeConverter; 009 010 public class AbstractMapQuestTileSource extends AbstractOsmTileSource { 011 012 // MapQuest logo in base64: http://developer.mapquest.com/content/osm/mq_logo.png 013 private static final String LOGO_BASE64 = 014 "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJl"+ 015 "YWR5ccllPAAAAZtJREFUeNpi/P//P0PPcYf/DGSAEssDjIzdx+zJ0gwDLMQqVBWyZVAStGRgBMK33x8wnH62"+ 016 "kngD+DmkGBwUshn42SXA/P8M/xg+/3rDcOPNPuIMMJeKAmv+8OMpw7ffHxikeLUZXBTzgez3DEzEGMDGzAmm"+ 017 "jz5ewLDqWiHE6UwcDHxsYhAXsLPwMFhKxzIIccozPP18ieHhx3MMGsKOYP7td4fBzgUBN+ViBkeFLDD7zbf7"+ 018 "DK++3WFgAMXC448X/uMDV17t+H/r7UEM8VNPl/8Hu0CGTx9s6tXXOxhEuJQYxLnVgK44w/Dzz1cGNWF7BlGg"+ 019 "2KJLqQzCQBcxMbEw/P77g0FTxBkYJs8gXgCFKiMwOLbf6WDQF/djcFUqAvv33fdHYAM4WPjAFrz9/hAeLsef"+ 020 "LALT4EBkhIYlMxMrAxerIJjNCdTExy4OZv/59xNnAKPEAh+bBNAQSMwKcsgAQ5odzBbilGNghcYE1pS4+14f"+ 021 "MKq4GP79/w1OHCC/v/x6Exzv+x9MhbiOEeh3LAZQnBeYGCgEjJRmZ4AAAwCE6rplT3Ba/gAAAABJRU5ErkJg"+ 022 "gg=="; 023 024 protected static final String MAPQUEST_ATTRIBUTION = "Tiles Courtesy of MapQuest "; 025 026 protected static final String MAPQUEST_WEBSITE = "http://www.mapquest.com"; 027 028 private static final int NUMBER_OF_SERVERS = 4; 029 030 private int SERVER_NUM = 1; 031 032 public AbstractMapQuestTileSource(String name, String base_url) { 033 super(name, base_url); 034 } 035 036 @Override 037 public String getBaseUrl() { 038 String url = String.format(this.baseUrl, SERVER_NUM); 039 SERVER_NUM = (SERVER_NUM % NUMBER_OF_SERVERS) + 1; 040 return url; 041 } 042 043 @Override 044 public TileUpdate getTileUpdate() { 045 return TileUpdate.IfModifiedSince; 046 } 047 048 @Override 049 public Image getAttributionImage() { 050 try { 051 return ImageIO.read(new ByteArrayInputStream(DatatypeConverter.parseBase64Binary(LOGO_BASE64))); 052 } catch (IOException e) { 053 e.printStackTrace(); 054 return null; 055 } 056 } 057 058 @Override 059 public String getAttributionImageURL() { 060 return MAPQUEST_WEBSITE; 061 } 062 063 /* (non-Javadoc) 064 * @see org.openstreetmap.gui.jmapviewer.tilesources.AbstractOsmTileSource#getTermsOfUseURL() 065 */ 066 @Override 067 public String getTermsOfUseURL() { 068 return "http://developer.mapquest.com/web/products/open/map#terms"; 069 } 070 }