国家/地区特定的Google地方自动填充功能

时间:2015-07-21 15:26:12

标签: android google-maps autocomplete

我正在关注http://examples.javacodegeeks.com/android/android-google-places-autocomplete-api-example/本教程,以便在我的应用中获取Google地方自动填充功能, 现在它工作正常,但我需要保持地方建议国家具体,我已经尝试给像印度,中国这样的国家,但它没有显示任何结果。 你能帮我解决一下,告诉我应该在哪里修改代码来完成它。

谢谢, PRASHANT

2 个答案:

答案 0 :(得分:0)

来自Places API的文档

  

要获取预测的地名和/或地址列表,请致电   GeoDataApi.getAutocompletePredictions(),传递以下内容   参数:

     

必需:包含用户键入的文本的查询字符串。

     

必需: LatLngBounds 对象,将结果限制为特定对象   由纬度和经度界限指定的区域。

提出要求时

  

您可以为印度指定边界。

答案 1 :(得分:0)

这可以为您服务

tups = [(14, 2), (14, 2), (16, 2), (14, 2)]
threshold = 50
result = [[]]
for tup in tups:
    tupSum = sum(tup)
    # Start a new sublist if adding this tuple's sum would exceed the threshold
    if tupSum + sum(result[-1]) > threshold:
        result.append([])
    result[-1].append(tupSum)

  

// PlaceFields-这里

    String apiKey = getString(R.string.places_api_key);
        if (!Places.isInitialized()) {
            Places.initialize(getApplicationContext(), apiKey);
            PlacesClient placesClient = Places.createClient(this);
        }else{
            Toast.makeText(PlaceAutocompleteActivity.this, "-----initialize-----", Toast.LENGTH_LONG).show();
        }

        // Initialize the AutocompleteSupportFragment.
        AutocompleteSupportFragment autocompleteFragment = (AutocompleteSupportFragment)
                getSupportFragmentManager().findFragmentById(R.id.autocomplete_fragment);

        // PlaceFields
        autocompleteFragment.setPlaceFields(Arrays.asList(Place.Field.ID, Place.Field.NAME, Place.Field.LAT_LNG));

        // autocompleteFragment.setOnPlaceSelectedListener(MapsActivity.this);

        try {

            autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
                @Override
                public void onPlaceSelected(@NonNull Place place) {
                    displayLocation(place.getLatLng().latitude,place.getLatLng().longitude,place.getName());
                    Toast.makeText(getApplicationContext(), "getName: " + place.getName() + " getLatLng: "+ place.getLatLng(), Toast.LENGTH_LONG).show();

//                    Intent i = Intent(this, idnow.se MainActivity.class);
//                    i.putExtra("getLatLng",place.getLatLng());
//                    startActivity(i);
//                    finish();
                }

                @Override
                public void onError(@NonNull Status status) {
                    Toast.makeText(getApplicationContext(), "" + status.toString(), Toast.LENGTH_LONG).show();

                }

            });
        } catch (Exception e) {
            Toast.makeText(PlaceAutocompleteActivity.this, e.toString(), Toast.LENGTH_LONG).show();
        }

https://github.com/EddyEU/GooglePlaceAutocomplete