Places API 客户端库

本页介绍了如何开始使用 Places API 的客户端库。

如需详细了解客户端库,请参阅客户端库说明

安装客户端库

Java

如需了解详情,请参阅设置 Java 开发环境

如需了解安装说明,请参阅 Java 版 Google 地图 API 客户端

Go

go get cloud.google.com/go/maps

如需了解详情,请参阅设置 Go 开发环境

如需了解完整的安装说明,请参阅 适用于 Go 的 Google 地图 API 客户端

NodeJS

npm install @googlemaps/places

如需了解详情,请参阅设置 Node.js 开发环境

如需查看完整的安装说明,请参阅 Google Places API Client for NodeJS

Python

pip install --upgrade google-maps-places

如需了解详情,请参阅设置 Python 开发环境

如需查看完整的安装说明,请参阅 Google 地图的 Python 客户端

.Net

如需了解详情,请参阅设置 .Net 开发环境

Install-Package Google.Maps.Places.V1 -Pre

请参阅 适用于 Google 地点的 .Net

设置身份验证

使用客户端库时,您可以使用应用默认凭据 (ADC) 进行身份验证。如需了解如何设置 ADC,请参阅为应用默认凭据提供凭据。如需了解如何将 ADC 与客户端库搭配使用,请参阅使用客户端库进行身份验证

使用客户端库

Java

import com.google.api.core.ApiFuture;
import com.google.maps.places.v1.GetPlaceRequest;
import com.google.maps.places.v1.Place;
import com.google.maps.places.v1.PlaceName;
import com.google.maps.places.v1.PlacesClient;

public class AsyncGetPlace {

  public static void main(String[] args) throws Exception {
    asyncGetPlace();
  }

  public static void asyncGetPlace() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (PlacesClient placesClient = PlacesClient.create()) {
      GetPlaceRequest request =
          GetPlaceRequest.newBuilder()
              .setName(PlaceName.of("[PLACE_ID]").toString())
              .setLanguageCode("languageCode-2092349083")
              .setRegionCode("regionCode-1991004415")
              .setSessionToken("sessionToken-696552189")
              .build();
      ApiFuture<Place> future = placesClient.getPlaceCallable().futureCall(request);
      // Do something.
      Place response = future.get();
    }
  }
}

Go

// Copyright 2024 Google LLC
//
// 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
//
//     https://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.

// Code generated by protoc-gen-go_gapic. DO NOT EDIT.

package places_test

import (
	"context"

	places "cloud.google.com/go/maps/places/apiv1"
	placespb "cloud.google.com/go/maps/places/apiv1/placespb"
)

func ExampleNewClient() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := places.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	// TODO: Use client.
	_ = c
}

func ExampleNewRESTClient() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := places.NewRESTClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	// TODO: Use client.
	_ = c
}

func ExampleClient_AutocompletePlaces() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := places.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &placespb.AutocompletePlacesRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/maps/places/apiv1/placespb#AutocompletePlacesRequest.
	}
	resp, err := c.AutocompletePlaces(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

func ExampleClient_GetPhotoMedia() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := places.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &placespb.GetPhotoMediaRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/maps/places/apiv1/placespb#GetPhotoMediaRequest.
	}
	resp, err := c.GetPhotoMedia(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

func ExampleClient_GetPlace() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := places.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &placespb.GetPlaceRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/maps/places/apiv1/placespb#GetPlaceRequest.
	}
	resp, err := c.GetPlace(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

func ExampleClient_SearchNearby() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := places.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &placespb.SearchNearbyRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/maps/places/apiv1/placespb#SearchNearbyRequest.
	}
	resp, err := c.SearchNearby(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

func ExampleClient_SearchText() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := places.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &placespb.SearchTextRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/maps/places/apiv1/placespb#SearchTextRequest.
	}
	resp, err := c.SearchText(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}

NodeJS

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The resource name of a place, in the `places/{place_id}` format.
 */
// const name = 'abc123'
/**
 *  Optional. Place details will be displayed with the preferred language if
 *  available.
 *  Current list of supported languages:
 *  https://developers.google.com/maps/faq#languagesupport.
 */
// const languageCode = 'abc123'
/**
 *  Optional. The Unicode country/region code (CLDR) of the location where the
 *  request is coming from. This parameter is used to display the place
 *  details, like region-specific place name, if available. The parameter can
 *  affect results based on applicable law.
 *  For more information, see
 *  https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html.
 *  Note that 3-digit region codes are not currently supported.
 */
// const regionCode = 'abc123'
/**
 *  Optional. A string which identifies an Autocomplete session for billing
 *  purposes. Must be a URL and filename safe base64 string with at most 36
 *  ASCII characters in length. Otherwise an INVALID_ARGUMENT error is
 *  returned.
 *  The session begins when the user starts typing a query, and concludes when
 *  they select a place and a call to Place Details or Address Validation is
 *  made. Each session can have multiple queries, followed by one Place Details
 *  or Address Validation request. The credentials used for each request within
 *  a session must belong to the same Google Cloud Console project. Once a
 *  session has concluded, the token is no longer valid; your app must generate
 *  a fresh token for each session. If the `session_token` parameter is
 *  omitted, or if you reuse a session token, the session is charged as if no
 *  session token was provided (each request is billed separately).
 *  We recommend the following guidelines:
 *  * Use session tokens for all Place Autocomplete calls.
 *  * Generate a fresh token for each session. Using a version 4 UUID is
 *    recommended.
 *  * Ensure that the credentials used for all Place Autocomplete, Place
 *    Details, and Address Validation requests within a session belong to the
 *    same Cloud Console project.
 *  * Be sure to pass a unique session token for each new session. Using the
 *    same token for more than one session will result in each request being
 *    billed individually.
 */
// const sessionToken = 'abc123'

// Imports the Places library
const {PlacesClient} = require('@googlemaps/places').v1;

// Instantiates a client
const placesClient = new PlacesClient();

async function callGetPlace() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await placesClient.getPlace(request);
  console.log(response);
}

callGetPlace();

Python

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.maps import places_v1


async def sample_get_place():
    # Create a client
    client = places_v1.PlacesAsyncClient()

    # Initialize request argument(s)
    request = places_v1.GetPlaceRequest(
        name="name_value",
    )

    # Make the request
    response = await client.get_place(request=request)

    # Handle the response
    print(response)

.Net

// Copyright 2023 Google LLC
//
// 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
//
// https://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.

using Google.Api.Gax.Grpc;
using Google.Cloud.ClientTesting;
using System;
using Xunit;

namespace Google.Maps.Places.V1.Snippets;

[SnippetOutputCollector]
public class PlacesClientSnippets
{
    [Fact]
    public void GettingStarted()
    {
        // Sample: GettingStarted
        PlacesClient client = PlacesClient.Create();
        CallSettings callSettings = CallSettings.FromHeader("X-Goog-FieldMask", "*");
        SearchTextRequest request = new SearchTextRequest
        {
            TextQuery = "Google, 1600 Amphitheatre Parkway, CA"
        };
        SearchTextResponse response = client.SearchText(request, callSettings);
        Console.WriteLine(response);
        // End sample
    }
}

其他资源