亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Google Places API:使用 Java 刷新地點 ID

Google Places API:使用 Java 刷新地點 ID

哆啦的時光機 2023-04-26 17:08:56
Google警告我們有關 PlaceID 的更改并提出建議;由于 Google 地圖數據庫的大規模更新,地點 ID 可能會發生變化。在這種情況下,地點可能會收到新的地點 ID,而舊 ID 會返回 NOT_FOUND 響應。您可以免費刷新地點 ID,方法是發出地點詳細信息請求,僅在字段參數中指定 ID 字段。不幸的是,他們的網站上沒有 Java/Kotlin 的示例代碼,除了指向他們的Web 服務的鏈接String placeID ="Some place ID";    List<Place.Field> placeFields = Arrays.asList(            Place.Field.ID,    );    // Construct a request object, passing the place ID and fields array.    FetchPlaceRequest request = FetchPlaceRequest.builder(placeID, placeFields).build();    placesClient.fetchPlace(request).addOnSuccessListener((response) -> {        Place place = response.getPlace();        if (!placeID.equals(place.getId())) {            //update your old placeID        }   }).addOnFailureListener((exception) -> {        if (exception instanceof ApiException) {            //Place removed.        }   });這是用 Java 更新 placeID 的正確方法嗎?
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

我測試了我的數據庫并發現了發生更新的情況。下面的代碼包含更新的 placeID、刪除的 placeID 和仍然有效的 palceID,以便進行測試。


ArrayList<String> placeIDsList = new ArrayList<>();

placeIDsList.add("ChIJTaKjynxesBQREvi1CU5QUFg");

placeIDsList.add("EjhDdW1odXJpeWV0IE1haGFsbGVzaSwgVXp1biBTay4sIEV6aW5lL8OHYW5ha2thbGUsIFR1cmtleSIuKiwKFAoSCakQkmN8XrAUEVkLpNK_F4IJEhQKEgmFzKyYe16wFBGSjU7F2ooIIg");

placeIDsList.add("hIJy9YVxdxpsBQRq0-xUVJdZQ8");


// Specify the fields to return (in this example all fields are returned).

List<Place.Field> placeFields = Arrays.asList(Place.Field.ID);


for (String plc : placeIDsList ) {

    // Construct a request object, passing the place ID and fields array.

    FetchPlaceRequest request = FetchPlaceRequest.builder(plc, placeFields).build();


    Log.e(TAG,"request for place with ID = " + plc);


    placesClient.fetchPlace(request).addOnSuccessListener((response) -> {

        Place place = response.getPlace();



        if (!plc.equals(place.getId())) {

            Log.e(TAG,"placeID renewed");

            Log.e(TAG,"placeID old = " + plc);

            Log.e(TAG,"placeID new = " + place.getId());


        } else {

            Log.e(TAG, "Place found: " + place.getId());

        }



    }).addOnFailureListener((exception) -> {

        if (exception instanceof ApiException) {

            ApiException apiException = (ApiException) exception;

            int statusCode = apiException.getStatusCode();

            // Handle error with given status code.

            Log.e(TAG, "Place with ID "+plc+" not found");

            Log.e(TAG, "Exception message is :" + exception.getMessage());

            Log.e(TAG, "Status code = " + statusCode);

        }

    });

}

輸出是


E/MapsActivity: request for place with ID = ChIJTaKjynxesBQREvi1CU5QUFg

E/MapsActivity: request for place with ID = jhDdW1odXJpeWV0IE1haGFsbGVzaSwgVXp1biBTay4sIEV6aW5lL8OHYW5ha2thbGUsIFR1cmtleSIuKiwKFAoSCakQkmN8XrAUEVkLpNK_F4IJEhQKEgmFzKyYe16wFBGSjU7F2ooIIg

E/MapsActivity: request for place with ID = hIJy9YVxdxpsBQRq0-xUVJdZQ8

E/MapsActivity: placeID renewed

E/MapsActivity: placeID old = EjhDdW1odXJpeWV0IE1haGFsbGVzaSwgVXp1biBTay4sIEV6aW5lL8OHYW5ha2thbGUsIFR1cmtleSIuKiwKFAoSCakQkmN8XrAUEVkLpNK_F4IJEhQKEgmFzKyYe16wFBGSjU7F2ooIIg

E/MapsActivity: placeID new = Ei5DdW1odXJpeWV0LCBVenVuIFNrLiwgRXppbmUvw4dhbmFra2FsZSwgVHVya2V5Ii4qLAoUChIJqRCSY3xesBQRWQuk0r8XggkSFAoSCYXMrJh7XrAUEZKNTsXaiggi

E/MapsActivity: Place with ID hIJy9YVxdxpsBQRq0-xUVJdZQ8 not found

E/MapsActivity: Exception message is :9012: INVALID_REQUEST

E/MapsActivity: Status code = 9012

E/MapsActivity: Place found: ChIJTaKjynxesBQREvi1CU5QUFg

似乎是status code 9102找不到地方。


查看完整回答
反對 回復 2023-04-26
  • 1 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號