Android: геокодирование Реверса - getFromLocation

Вам нужно переустановить NPM, чтобы использовать его без sudo.

Сначала проверьте, что нужно переустанавливать позже:

npm list -g --depth=0

Скажите npm, чтобы установить пакеты для дома:

npm config set prefix ~/npm

Измените ваши пути:

Откройте ваш. bashrc (Linux):

nano ~/.bashrc

для Mac

nano ~/.bash_profile

добавьте эти строки в конце:

export PATH="$PATH:$HOME/npm/bin"
export NODE_PATH="$NODE_PATH:$HOME/npm/lib/node_modules"

сохраните файл и затем введите эту команду в чтобы изменения вступили в силу:

. ~/.bashrc

или

. ~/.bash_profile

Возьмите на себя ответственность за все, что находится в вашем каталоге ~ / .npm (должно выполняться с помощью sudo):

sudo chown -R $USER:`id -g -n $USER` ~/.npm

В конце концов, вы можете установить глобально без sudo. Например:

npm install -g live-server

Или создайте приложение реакции с:

npm init react-app <your reactapp>
50
задан Matt 31 March 2013 в 05:42
поделиться

4 ответа

Следующий фрагмент кода делает его для меня (lat, и СПГ, удваивается объявленный выше этого бита):

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
68
ответ дан Wilfred Knievel 7 November 2019 в 10:29
поделиться

Похоже, что существует две вещи, происходящие здесь.

1) Вы отсутствовали new ключевое слово до вызова конструктора.

2) параметр, в котором Вы являетесь передающими конструктору Геокодера, является неправильным. Вы являетесь передающими в Locale, где это ожидает Context.

существуют два Geocoder конструкторы, оба из которых требуют Context, и одно также взятие Locale:

Geocoder(Context context, Locale locale)
Geocoder(Context context)

Решение

Изменяет Ваш код, чтобы передать в допустимом Контексте и включать new, и необходимо быть хорошими для движения.

Geocoder myLocation = new Geocoder(getApplicationContext(), Locale.getDefault());   
List<Address> myList = myLocation.getFromLocation(latPoint, lngPoint, 1);

Примечание

, Если у Вас все еще есть проблемы, это может быть проблема управления правами. Геокодирование неявно использует Интернет для выполнения поисков, таким образом, приложение потребует INTERNET тег разрешения использования в декларации.

Добавляют следующий узел разрешения использования в manifest узел Вашей декларации.

<uses-permission android:name="android.permission.INTERNET" />
37
ответ дан Reto Meier 7 November 2019 в 10:29
поделиться

Ну, я все еще озадачен. Таким образом, вот больше кода.

, Прежде чем я оставлю свою карту, я звоню SaveLocation(myMapView,myMapController);, Это - то, что заканчивает тем, что назвало мою информацию о геокодировании.

, Но с тех пор getFromLocation может бросить IOException, я должен был сделать следующее для вызова SaveLocation

try
{
    SaveLocation(myMapView,myMapController);
}
catch (IOException e) 
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Тогда, я должен изменить SaveLocation путем высказывания, что это бросает IOExceptions:

 public void SaveLocation(MapView mv, MapController mc) throws IOException{
    //I do this : 
    Geocoder myLocation = new Geocoder(getApplicationContext(), Locale.getDefault());   
    List myList = myLocation.getFromLocation(latPoint, lngPoint, 1);
//...
    }

И это отказывает каждый раз.

2
ответ дан Adil Soomro 7 November 2019 в 10:29
поделиться

I've heard that Geocoder is on the buggy side. I recently put together an example application that uses Google's http geocoding service to lookup location from lat/long. Feel free to check it out here

http://www.smnirven.com/?p=39

0
ответ дан 7 November 2019 в 10:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: