getFromLocationName () возвращает ноль на планшете Android - PullRequest
0 голосов
/ 05 апреля 2011
cmap.setOnClickListener(new OnClickListener()
        {
            public void onClick(View v)
            {   System.out.println("Cmap initial:=lat:-"+lat+" lang:-"+lon);
            Toast t=Toast.makeText(getBaseContext(),"Location"+lat+"lang:-"+lon,Toast.LENGTH_LONG);
            t.show();
            tlname=elname.getText().toString();
            tladdr=eladdr.getText().toString();
            addressInput=tlname+" "+tladdr;
            System.out.println("address:-"+addressInput);
            Toast t3=Toast.makeText(getBaseContext(),"Address"+addressInput,Toast.LENGTH_LONG);
            t3.show();
            try
            {
                Geocoder gc1 = new Geocoder(
                        getBaseContext(), Locale.getDefault());

                foundAdresses = gc1.getFromLocationName(addressInput, 5);
                showAdressResults.sendEmptyMessage(0);
                Toast t1=Toast.makeText(getBaseContext(),"Location...."+foundAdresses,Toast.LENGTH_LONG);
                t1.show();
                System.out.println("faddress:-"+foundAdresses);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            if (foundAdresses.size() == 0)
            { // if no address found,
                // display an error
                Dialog locationError = new AlertDialog.Builder(
                        Gotask.this).setIcon(0).setTitle(
                        "Error").setPositiveButton(R.string.ok, null)
                        .setMessage(
                        "Sorry, your address doesn't exist.")
                        .create();
                locationError.show();

            } else 
            { // else display address on map
                for (int i = 0; i < foundAdresses.size(); ++i)
                {

                    Address x = foundAdresses.get(i);
                    lat =  (x.getLatitude() *100);
                    lon = (float) x.getLongitude();
                    System.out.println("Cmap:=lat:-"+lat+" lang:-"+lon);


                }
                navigateToLocation((lat * 1000000), (lon * 1000000),myMap);
            }


        }

    });

Ответы [ 2 ]

1 голос
/ 26 января 2012

Я также столкнулся с такого рода проблемами в обратном гео-кодировании, поэтому я использую Google API для этого.Для использования в обратном геокодировании этой ссылки для google api.

0 голосов
/ 05 апреля 2011

Я столкнулся с той же проблемой, когда разрабатывал приложение на основе карт Google. Проблема была в devcie, которое я использую, не поддерживало бэкэнд-сервис (такой сервис поставляется с устройством), который отвечает задля работы с API, относящимися к геокодированию. Поэтому я решил использовать сервисы, предоставляемые Google, для запроса широты и долготы для требуемого адреса. Просто попробуйте.

Перейдите по этой ссылке, чтобы узнать больше

http://code.google.com/apis/maps/documentation/geocoding/

Пожалуйста, перейдите по следующим ссылкам:

Как узнать, когда на устройстве Android есть серверная служба Geocoder?

Android;Геокодер, почему я получаю «служба недоступна»?

Вот пример запроса геокодирования для получения широты и долготы из ответа после анализа вывода XML.

http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false

В приведенной выше ссылке есть четкий пример.

...