public static Map<String, String> getAddress(String address)
			throws InsightException {
		StringBuilder url = new StringBuilder(BASEURL.GOOGLE_GEOCODE);
		url.append("address=");
		for(int i = 0; i < address.length(); i++){
			if(address.charAt(i) == ' '){
				address = address.substring(0,i) +"%20"+ address.substring(i+1, address.length()); 
			}
		}
		url.append(address);
		url.append(BASEURL.GOOGLE_SENSOR);
		Map<String, String> rt = new HashMap<String, String>();
		String xml = null;
		Document dom;
		NodeList formattedAddress;
		try {
			logger.info("Getting info from: " + url.toString());
			xml = HttpBase.httpGet(url.toString());
			dom = ParseHelper.loadXMLFromString(xml);
			String status = ParseHelper.ParseString(dom, BASEURL.GSTATUS);
			formattedAddress = ParseHelper.ParseNode(dom,
					BASEURL.GFORMATTEDADDRESS);
			String country = ParseHelper.ParseString(dom, BASEURL.GCOUNTRY);
			if (!status.equals("OK")) {
				throw new InsightException("IOException");
			}
			if (formattedAddress.getLength() != 1) {
				throw new InsightException(
						"Please be more specific about your search term.");
			}
			if(!country.equals("US")){
				throw new InsightException(
						"Addresses outside US are not supported now");
			}
			rt.put("formattedAddress",formattedAddress.item(0).getTextContent());
			rt.put("route", ParseHelper.ParseString(dom, BASEURL.GROUTE));
			rt.put("locality", ParseHelper.ParseString(dom,BASEURL.GLOCALITY));
			rt.put("state", ParseHelper.ParseString(dom, BASEURL.GSTATE));
			rt.put("county", ParseHelper.ParseString(dom, BASEURL.GCOUNTY));
			rt.put("country", country);
			logger.info("formattedAddress: route:" + rt.get("route")+" locality:"+rt.get("locality")+" county:"+rt.get("county")+" state:"+rt.get("state")+" country:"+rt.get("country"));
		} catch (IOException e) {
			throw new InsightException("IOException", e);
		} catch (ParserConfigurationException e) {
			throw new InsightException("ParsingException", e);
		} catch (SAXException e) {
			throw new InsightException("ParsingException", e);
		} catch (XPathExpressionException e) {
			throw new InsightException("ParsingException", e);
		}
		return rt;
	}