Je suis en train de rechercher des lieux à proximité tels que des banques, des restaurants, des Guichets automatiques à l'intérieur de la zone dessinée sur une carte google maps sur android

Je suis en train de rechercher des lieux à proximité tels que des banques, des restaurants, des Guichets automatiques à l'intérieur de la zone dessinée sur une carte google maps sur android. Je reçois des coordonnées (Latitude et Longitude) dans un tableau, mais je ne suis pas en mesure de trouver des endroits à proximité par ce tableau.
Quelqu'un peut-il m'aider? J'ai essayé de chercher mais pas trouvé de résultats.
Grande aide sera appréciée!

C'est ma zone dessinée code:

public class MainActivity extends FragmentActivity implements OnTouchListener {
private static final String TAG = "polygon";
private GoogleMap mGoogleMap;
private View mMapShelterView;
private GestureDetector mGestureDetector;
private ArrayList<LatLng> mLatlngs = new ArrayList<LatLng>();
private PolylineOptions mPolylineOptions;
private PolygonOptions mPolygonOptions;
//flag to differentiate whether user is touching to draw or not
private boolean mDrawFinished = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapShelterView = (View) findViewById(R.id.drawer_view);
mGestureDetector = new GestureDetector(this, new GestureListener());
mMapShelterView.setOnTouchListener(this);
initilizeMap();
//Contains(null);
}
private final class GestureListener extends SimpleOnGestureListener {
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
return false;
}
}
/**
* Ontouch event will draw poly line along the touch points
* 
*/
@Override
public boolean onTouch(View v, MotionEvent event) {
int X1 = (int) event.getX();
int Y1 = (int) event.getY();
Point point = new Point();
point.x = X1;
point.y = Y1;
LatLng firstGeoPoint = mGoogleMap.getProjection().fromScreenLocation(
point);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
if (mDrawFinished) {
X1 = (int) event.getX();
Y1 = (int) event.getY();
point = new Point();
point.x = X1;
point.y = Y1;
LatLng geoPoint = mGoogleMap.getProjection()
.fromScreenLocation(point);
mLatlngs.add(geoPoint);
mPolylineOptions = new PolylineOptions();
mPolylineOptions.color(Color.RED);
mPolylineOptions.width(3);
mPolylineOptions.addAll(mLatlngs);
mGoogleMap.addPolyline(mPolylineOptions);
**Log.d(TAG, "Latitude and longitude: " + mLatlngs);**
}
break;
case MotionEvent.ACTION_UP:
Log.d(TAG, "Poinnts array size " + mLatlngs.size());
mLatlngs.add(firstGeoPoint);
mGoogleMap.clear();
mPolylineOptions = null;
mMapShelterView.setVisibility(View.GONE);
mGoogleMap.getUiSettings().setZoomGesturesEnabled(true);
mGoogleMap.getUiSettings().setAllGesturesEnabled(true);
mPolygonOptions = new PolygonOptions();
mPolygonOptions.fillColor(0x5500ff00);
//mPolygonOptions.fillColor(Color.LTGRAY);
mPolygonOptions.strokeColor(Color.RED);
mPolygonOptions.strokeWidth(5);
mPolygonOptions.addAll(mLatlngs);
mGoogleMap.addPolygon(mPolygonOptions);
mDrawFinished = false;
break;
}
return mGestureDetector.onTouchEvent(event);
}
/**
* Setting up map
* 
*/
private void initilizeMap() {
int status = GooglePlayServicesUtil
.isGooglePlayServicesAvailable(getApplicationContext());
if (status == ConnectionResult.SUCCESS) {
if (mGoogleMap == null) {
mGoogleMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
mGoogleMap.setMyLocationEnabled(true);
}
} else if (GooglePlayServicesUtil.isUserRecoverableError(status)) {
//showErrorDialog(status);
} else {
Toast.makeText(this, "No Support for Google Play Service",
Toast.LENGTH_LONG).show();
}
}
/**
* Method gets called on tap of draw button, It prepares the screen to draw
* the polygon
* 
* @param view
*/
public void drawZone(View view) {
mGoogleMap.clear();
mLatlngs.clear();
mPolylineOptions = null;
mPolygonOptions = null;
mDrawFinished = true;
mMapShelterView.setVisibility(View.VISIBLE);
mGoogleMap.getUiSettings().setScrollGesturesEnabled(false);
}
public synchronized boolean Contains(Location location) {
boolean isInside = false;
if (mLatlngs.size() > 0) {
LatLng lastPoint = mLatlngs.get(mLatlngs.size() - 1);
double x = location.getLongitude();
for (LatLng point : mLatlngs) {
double x1 = lastPoint.longitude;
double x2 = point.longitude;
double dx = x2 - x1;
if (Math.abs(dx) > 180.0) {
if (x > 0) {
while (x1 < 0)
x1 += 360;
while (x2 < 0)
x2 += 360;
} else {
while (x1 > 0)
x1 -= 360;
while (x2 > 0)
x2 -= 360;
}
dx = x2 - x1;
}
if ((x1 <= x && x2 > x) || (x1 >= x && x2 < x)) {
double grad = (point.latitude - lastPoint.latitude) / dx;
double intersectAtLat = lastPoint.latitude
+ ((x - x1) * grad);
if (intersectAtLat > location.getLatitude())
isInside = !isInside;
}
lastPoint = point;
}
}
return isInside;
}

J'ai eu de tableau sur mLatlang ,maintenant, je veux près de par endroits selon que les coordonnées ne sont pas par ma position actuelle

essayez les lieux de google api. developers.google.com/places les plus proches de recherche, utilisez le lien suivant. developers.google.com/places/webservice/search

OriginalL'auteur shivani bajpai | 2015-05-11