3

Google マップで特定の地点 (Long/lat) に基づいて最寄りの場所を見つける方法はありますか?次に近いものも???

4

3 に答える 3

3

Google Places API Web サービスを使用すると、 Places Search リクエストを実行できますlocation。ユーザーの緯度、経度は次のとおりです。

https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&rankby=distance&types=food&sensor=false&key=AddYourOwnKeyHere

指定した半径内で最も目立つ場所ではなく、時系列で最も近い場所を取得する場合rankby=distanceは、パラメータではなくパラメータを指定してください。radius

types=foodまた、上記のリクエストでパラメーターを指定して、レスポンスで食品タイプの場所のみを返すようにしました。サポートされているその他のタイプについては、こちらを参照してください。

Google Places API Web サービスを使用するには、こちらの手順に従って、サービスを使用するための API キーを取得する必要があります。このキーは、リクエストとともにkey=AddYourKeyHereパラメータで送信する必要があります。

このサービスを JavaScript アプリケーションで使用する場合は、Google Maps API v3のPlaces Libraryを確認してください。

于 2012-05-28T02:21:13.430 に答える
2

これがあなたがそれを達成できる方法です

LocationManager locationManager = (LocationManager) context
                    .getSystemService(Context.LOCATION_SERVICE);
        LocationListener locationListener = new LocationListener() {
            @Override
        public void onStatusChanged(String provider, int status,
                Bundle extras) {
        }

        @Override
        public void onProviderEnabled(String provider) {
        }

        @Override
        public void onProviderDisabled(String provider) {
        }

        @Override
        public void onLocationChanged(Location location) {
            Double l1 = location.getLatitude();
            Double l2 = location.getLongitude();
            address = GetAddress(l1, l2);               
        }
    };
    locationManager.requestLocationUpdates(
            LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);  

private String GetAddress(Double lat, Double lon) {
    Geocoder geocoder = new Geocoder(context, Locale.ENGLISH);
    String ret = "";
    List<Address> addresses = null;
    try {
        addresses = geocoder.getFromLocation(lat, lon, 1);
        if (!addresses.equals(null)) {
            Address returnedAddress = addresses.get(0);
            StringBuilder strReturnedAddress = new StringBuilder("\n");
            for (int i = 0; i < returnedAddress.getMaxAddressLineIndex(); i++) {
                strReturnedAddress
                        .append(returnedAddress.getAddressLine(i)).append(
                                "\n");
            }
            ret = "Around: " + strReturnedAddress.toString();
        } else {
            ret = "No Address returned!";
        }
    } catch (IOException e) {
        e.printStackTrace();
        ret = "Location: https://maps.google.co.in/maps?hl=en&q=" + lat
                + "," + lon;
    } catch (NullPointerException e) {
        e.printStackTrace();
        ret = lat + "," + lon;
    }
    return ret;
}

また、AndroidManifest に次のアクセス許可を追加します。

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
于 2013-05-09T04:26:58.460 に答える
-1

Google プレイス API .

URL::

https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AddYourOwnKeyHere

緯度、経度、半径、タイプ、名前、キーを変更する必要があります。

注::開発者プレビューにサインアップする必要があります。

于 2012-05-27T09:14:09.610 に答える