@Override
	public Position getCurrentPosition() {
		WirelessMonitor wm = WirelessMontiorFactory.getInstance();
		StringBuilder sb = new StringBuilder(ENDPOINT);
		for (AccessPoint ap : wm.list()) {
			try {
				sb.append(String.format("&wifi=mac:%s|ssid:%s|ss:%d", ap.getMAC(),
					URLEncoder.encode(ap.getSSID(), "UTF-8"), ap.getStrength(), "UTF-8"));
			} catch (UnsupportedEncodingException e) {
				throw new RuntimeException(e);
			}
		}

		URL request;
		try {
			request = new URL(sb.toString());
			JSONObject result = (JSONObject) JSONValue.parse(new InputStreamReader(request.openStream()));

			if (result.get("status").equals("OK")) {
				double accuracy = Double.parseDouble(result.get("accuracy").toString());
				JSONObject location = (JSONObject) result.get("location");
				return new Position(Double.parseDouble(location.get("lat").toString()),
					Double.parseDouble(location.get("lng").toString()), accuracy, new Date().getTime());
			}

		} catch (IOException e) {
			throw new RuntimeException(e);
		}
		return null;
	}