Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 
   * ==============================================================================
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not
   * use this file except in compliance with the License. You may obtain a copy of
   * the License at
   * 
   * http://www.apache.org/licenses/LICENSE-2.0
   * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  * License for the specific language governing permissions and limitations under
  * the License.
  */
 package wicket.contrib.gmap.util;
 
 import java.net.URL;
 
Geocoder. See: http://www.google.com/apis/maps/documentation/services.html#Geocoding_Direct

Author(s):
Thijs Vonk
 
 public class Geocoder implements Serializable
 {
 
 	private static final long serialVersionUID = 1L;
 
 	// Constants
 	public static final String OUTPUT_CSV = "csv";
 
 	public static final String OUTPUT_XML = "xml";
 
 	public static final String OUTPUT_KML = "kml";
 
 	public static final String OUTPUT_JSON = "json";
 
 	private final String gMapKey;

Parameters:
gMapKey Gmap API key
Throws:
java.lang.IllegalArgumentException If the API key is null
 
 	public Geocoder(String gMapKey)
 	{
 		if (gMapKey == null)
 		{
 			throw new IllegalArgumentException("API key cannot be null");
 		}
 
 		this. = gMapKey;
 	}
 
 	public GLatLng decode(String responsethrows GeocoderException
 	{
 
 		StringTokenizer gLatLng = new StringTokenizer(response",");
 
 		String status = gLatLng.nextToken();
 		gLatLng.nextToken(); // skip precision
 		String latitude = gLatLng.nextToken();
 		String longitude = gLatLng.nextToken();
 
 		if (Integer.parseInt(status) != .)
 		{
 			throw new GeocoderException(Integer.parseInt(status));
 		}
 
 		return new GLatLng(Double.parseDouble(latitude), Double.parseDouble(longitude));
 	}

builds the google geo-coding url

Parameters:
address
Returns:
 
 	public String encode(final String address)
 	{
 		return "http://maps.google.com/maps/geo?q=" + urlEncode(address) + "&output=" +  +
 			"&key=" + ;
 	}

Parameters:
address
Returns:
Throws:
java.io.IOException
 
	public GLatLng geocode(final String addressthrows IOException
	{
		InputStream is = invokeService(encode(address));
		if (is != null)
		{
			try
			{
				String content = org.apache.wicket.util.io.IOUtils.toString(is);
				return decode(content);
			}
			finally
			{
				is.close();
			}
		}
		return null;
	}

fetches the url content

Parameters:
address
Returns:
Throws:
java.io.IOException
	protected InputStream invokeService(final String addressthrows IOException
	{
		URL url = new URL(address);
		return url.openStream();
	}

url-encode a value

Parameters:
value
Returns:
	private String urlEncode(final String value)
	{
		try
		{
			return URLEncoder.encode(value"UTF-8");
		}
		{
			throw new RuntimeException(ex.getMessage());
		}
	}
New to GrepCode? Check out our FAQ X