X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Ffunction%2Fbrowser%2FUrlGenerator.java;h=8d264beb4f5e4098a7e5fd3caf3cb1de3995881c;hp=14d15776a8be3d19213cf0419ea240349146b9d6;hb=1ee49ae3c8ef3aa2e63eadd458531e5f8bd4f92c;hpb=112bb0c9b46894adca9a33ed8c99ea712b253185 diff --git a/tim/prune/function/browser/UrlGenerator.java b/tim/prune/function/browser/UrlGenerator.java index 14d1577..8d264be 100644 --- a/tim/prune/function/browser/UrlGenerator.java +++ b/tim/prune/function/browser/UrlGenerator.java @@ -30,8 +30,8 @@ public abstract class UrlGenerator public static final int MAP_SOURCE_MAPQUEST = 2; /** Constant for Yahoo */ public static final int MAP_SOURCE_YAHOO = 3; - - // TODO: Add other map sources, eg MSN, search.ch ? + /** Constant for Bing */ + public static final int MAP_SOURCE_BING = 4; /** * Generate a URL for the given source and track info @@ -50,6 +50,9 @@ public abstract class UrlGenerator else if (inSource == MAP_SOURCE_YAHOO) { return generateYahooUrl(inTrackInfo); } + else if (inSource == MAP_SOURCE_BING) { + return generateBingUrl(inTrackInfo); + } return generateOpenStreetMapUrl(inTrackInfo); } @@ -82,7 +85,6 @@ public abstract class UrlGenerator url = url + "(" + currPoint.getWaypointName() + ")"; } } - //System.out.println(url); return url; } @@ -154,7 +156,30 @@ public abstract class UrlGenerator return url; } -/** + /** + * Generate a url for Bing maps + * @param inTrackInfo track information + * @return URL + */ + private static String generateBingUrl(TrackInfo inTrackInfo) + { + // Check if any data to display + if (inTrackInfo == null || inTrackInfo.getTrack() == null || inTrackInfo.getTrack().getNumPoints() < 1) + { + return null; + } + double medianLat = getMedianValue(inTrackInfo.getTrack().getLatRange()); + double medianLon = getMedianValue(inTrackInfo.getTrack().getLonRange()); + // Build basic url with centre position + String latStr = FIVE_DP.format(medianLat); + String lonStr = FIVE_DP.format(medianLon); + String url = "http://bing.com/maps/default.aspx?cp=" + latStr + "~" + lonStr + + "&where1=" + latStr + "%2C%20" + lonStr; + return url; + } + + + /** * Get the median value from the given lat/long range * @param inRange range of values * @return median value