private GeocoderResult findMostAccurateGeoCoderResult(GeocodeResponse geocode) { GeocoderResult geocodingResultMostAccurate = null; if (geocode != null && geocode.getStatus() == GeocoderStatus.OK) { List<GeocoderResult> geocodingResults = geocode.getResults(); if (geocodingResults.size() != 0) { geocodingResultMostAccurate = geocodingResults.get(0); GeocoderLocationType locationType = getGeometryLocationType(geocodingResultMostAccurate); // Searching all geo coding results for (GeocoderResult geocoderResult : geocodingResults) { GeocoderLocationType newLocationType = getGeometryLocationType(geocoderResult); // Comparing location types based on their ordinals if (newLocationType.compareTo(locationType) > 0) { // Found more accurate result locationType = newLocationType; geocodingResultMostAccurate = geocoderResult; } } } } return geocodingResultMostAccurate; }
geocoderResponse = geocoder.geocode(geocoderRequest); if (geocoderResponse != null) { if (geocoderResponse.getStatus() == GeocoderStatus.OK) { if (!geocoderResponse.getResults().isEmpty()) {
@Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults fr = new FilterResults(); if (constraint != null && constraint.length() > 5) { GeocoderRequest geocoderRequest = new GeocoderRequestBuilder().setAddress(constraint.toString()) .setLanguage("fr").setBounds(TransportsRennesApplication.getBounds()).getGeocoderRequest(); GeocodeResponse reponseResult = null; Log.d("YBO", geocoderRequest.toString()); try { reponseResult = TransportsRennesApplication.getGeocodeUtil().geocode(geocoderRequest); } catch (Exception ignore) { } List<String> results = new ArrayList<String>(); String upper = StringOperation.sansAccents(constraint.toString().toUpperCase()); for (Arret arret : arrets) { if (arret.nom.contains(upper)) { results.add(arret.nom); } } if (reponseResult != null && reponseResult.getStatus().equals(GeocoderStatus.OK)) { for (GeocoderResult oneResult : reponseResult.getResults()) { results.add(oneResult.getFormattedAddress()); } } fr.values = results; fr.count = results.size(); } return fr; }
if (reponseResult != null && reponseResult.getStatus().equals(GeocoderStatus.OK)) { for (GeocoderResult oneResult : reponseResult.getResults()) { results.add(oneResult.getFormattedAddress());
public static double[] getLatLngForAddr(String addr) { if (addr == null) return null; Geocoder geocoder = new Geocoder(); GeocoderRequest geocoderRequest; GeocodeResponse geocoderResponse; geocoderRequest = new GeocoderRequestBuilder() .setAddress(addr) .setLanguage("en").getGeocoderRequest(); geocoderResponse = geocoder.geocode(geocoderRequest); if (geocoderResponse != null) { if (geocoderResponse.getStatus() == GeocoderStatus.OK) { if (!geocoderResponse.getResults().isEmpty()) { GeocoderResult geocoderResult = // Get the first result geocoderResponse.getResults().iterator().next(); double[] loc = new double[2]; LatLng ll = geocoderResult.getGeometry().getLocation(); loc[0] = ll.getLat().doubleValue(); loc[1] = ll.getLng().doubleValue(); return loc; } } } return null; }
@Override public synchronized Coordinates getCoordinates(final String address) throws GeocoderException { ensureInitialized(); final GeocoderRequest request = new GeocoderRequestBuilder().setAddress(address).setLanguage("en").getGeocoderRequest(); GeocodeResponse response; try { response = m_geocoder.geocode(request); } catch (IOException e) { // Makes the assumption that IO related exceptions are temporary, which is suitable for most scenarios throw new TemporaryGeocoderException("Failed to get coordinates for " + address + " using the Google Geocoder.", e); } switch (response.getStatus()) { case OK: return new GoogleCoordinates(response.getResults().get(0)); case OVER_QUERY_LIMIT: throw new TemporaryGeocoderException("Failed to get coordinates for " + address + " using the Google Geocoder. You have exceeded the daily usage limit."); case ERROR: case INVALID_REQUEST: case REQUEST_DENIED: case UNKNOWN_ERROR: case ZERO_RESULTS: default: throw new GeocoderException("Failed to get coordinates for " + address + " using Google Geocoder. Response was: " + response.getStatus().toString()); } } }
.setBounds(TransportsRennesApplication.getBounds()).getGeocoderRequest(); reponseDepart = TransportsRennesApplication.getGeocodeUtil().geocode(geocoderRequest); if (reponseDepart != null && reponseDepart.getStatus() == GeocoderStatus.OVER_QUERY_LIMIT) { erreurQuota = true; } else if (reponseDepart == null || reponseDepart.getStatus() != GeocoderStatus.OK) { .setBounds(TransportsRennesApplication.getBounds()).getGeocoderRequest(); reponseArrivee = TransportsRennesApplication.getGeocodeUtil().geocode(geocoderRequest); if (reponseArrivee != null && reponseArrivee.getStatus() == GeocoderStatus.OVER_QUERY_LIMIT) { erreurQuota = true; } else if (reponseArrivee == null || reponseArrivee.getStatus() != GeocoderStatus.OK) { erreur = true; return null;
.setBounds(TransportsBordeauxApplication.getBounds()).getGeocoderRequest(); reponseDepart = TransportsBordeauxApplication.getGeocodeUtil().geocode(geocoderRequest); if (reponseDepart == null || reponseDepart.getStatus() != GeocoderStatus.OK) { erreur = true; return null; .setBounds(TransportsBordeauxApplication.getBounds()).getGeocoderRequest(); reponseArrivee = TransportsBordeauxApplication.getGeocodeUtil().geocode(geocoderRequest); if (reponseArrivee == null || reponseArrivee.getStatus() != GeocoderStatus.OK) { erreur = true; return null;