package org.androad.sys.ors.lus.google;
import android.net.Uri;
import junit.framework.Assert;
import org.osmdroid.util.GeoPoint;
import org.androad.sys.ors.adt.lus.Country;
import org.androad.sys.ors.adt.lus.ICountrySubdivision;
import org.androad.sys.ors.util.constants.ORSXMLConstants;
public class GoogleLUSRequestComposer implements ORSXMLConstants {
public static String reverseGeocode(final GeoPoint aGeoPoint){
Assert.assertNotNull(aGeoPoint);
final StringBuilder sb = new StringBuilder();
sb.append("output=xml");
sb.append("&q=");
sb.append(Uri.encode(aGeoPoint.toDoubleString()));
return sb.toString();
}
public static String createStreetaddressCityRequest(final Country nat, final ICountrySubdivision pCountrySubdivision, final String pCity, String pStreetName, final String pStreetNumber){
if(pStreetName == null) {
pStreetName = ""; // empty streetname is like searching for the town only.
}
Assert.assertNotNull(nat);
Assert.assertTrue(pStreetNumber == null || (pStreetNumber != null && pStreetNumber.length() > 0)); // null or at least 1 char
final StringBuilder sb = new StringBuilder();
sb.append("output=xml");
sb.append("&q=");
if(pStreetNumber != null){
sb.append(Uri.encode(pStreetNumber)).append("%2C");
}
sb.append(Uri.encode(pStreetName));
if(pCountrySubdivision != null){
sb.append("%2C").append(pCountrySubdivision.getAbbreviation());
}
sb.append("%2C").append(Uri.encode(pCity));
if(nat != null) {
sb.append("%2C").append(nat.COUNTRYCODE);
}
return sb.toString();
}
public static String createStreetaddressPostalcodeRequest(final Country nat, final ICountrySubdivision pCountrySubdivision, final String pPostalCode, String pStreetName, final String pStreetNumber){
if(pStreetName == null) {
pStreetName = ""; // empty streetname is like searching for the town only.
}
Assert.assertNotNull(nat);
Assert.assertTrue(pStreetNumber == null || (pStreetNumber != null && pStreetNumber.length() > 0)); // null or at least 1 char
final StringBuilder sb = new StringBuilder();
sb.append("output=xml");
sb.append("&q=");
if(pStreetNumber != null){
sb.append(Uri.encode(pStreetNumber)).append("%2C");
}
sb.append(Uri.encode(pStreetName));
if(pCountrySubdivision != null){
sb.append("%2C").append(pCountrySubdivision);
}
sb.append("%2C").append(Uri.encode(pPostalCode));
if(nat != null) {
sb.append("%2C").append(nat.COUNTRYCODE);
}
return sb.toString();
}
public static String createFreeformAddressRequest(final Country nat, final String freeFormAddress){
Assert.assertNotNull(freeFormAddress);
Assert.assertTrue(freeFormAddress.length() > 0);
final StringBuilder sb = new StringBuilder();
sb.append("output=xml");
sb.append("&q=").append(Uri.encode(freeFormAddress));
if(nat != null) {
sb.append("%2C").append(nat.COUNTRYCODE);
}
return sb.toString();
}
}