Я пытаюсь отправлять запросы в Google API с помощью приложения JavaFX. Я использую API дорог Google. Проблема в том, что я прошу пользователя импортировать документ Excel с координатами, и документ может содержать как можно больше данных о широте и долготе, но API Google допускает только менее 100 пар координат. Итак, как я могу обслуживать данные, которые находятся в списке массивов из индекса в позиции от 0 до 99, а при нажатии кнопки служат следующий набор координат от 100 до 199 или меньше. В настоящее время я могу обслуживать arraylist.sublist (0to99) и возвращать ответ json. Заранее спасибоОбслуживание URL-адресов контроллеру веб-представления в Java javafx
0
A
ответ
0
//On fx button click the following happens
@FXML public void loadURL(Event event){
co_ordinates = Excel_Exchange.value;
if(!next){
limit = (int)co_ordinates.size();
next = true;//some global boolean variable so that this is done once
}
if(co_ordinates.size()<100){
StringBuilder urlCaseOne = new StringBuilder(co_ordinates.subList(start, co_ordinates.size()).toString().replaceAll("[\\[\\]]","").replaceAll(", ",""));
url_link = "https://roads.googleapis.com/v1/snapToRoads?path="+urlCaseOne.deleteCharAt(urlCaseOne.length()-1)+"&interpolate=true&key="+API_KEY;
}else{
if(limit>100){
StringBuilder urlCaseTwo = new StringBuilder(co_ordinates.subList(start, end).toString().replaceAll("[\\[\\]]","").replaceAll(", ",""));
url_link = "https://roads.googleapis.com/v1/snapToRoads?path="+urlCaseTwo.deleteCharAt(urlCaseTwo.length()-1)+"&interpolate=true&key="+API_KEY;
//System.out.println("l"+limit+" s"+start+" e"+end);
start+=100; end+=100; limit-=100;
}else if(limit<100){
StringBuilder urlCaseThree = new StringBuilder(co_ordinates.subList(start, co_ordinates.size()).toString().replaceAll("[\\[\\]]","").replaceAll(", ",""));
url_link = "https://roads.googleapis.com/v1/snapToRoads?path="+urlCaseThree.deleteCharAt(urlCaseThree.length()-1)+"&interpolate=true&key="+API_KEY;
}
}
//System.out.println(co_ordinates.size());
//System.out.println(url_link);
//System.out.println(co_ordinates.toString().lastIndexOf("|"));
//System.out.println(co_ordinates.subList(0, 99).size());
startLoadState.apply();
this.engine.load(url_link);
}// i have another method that navigates back by to the first url
Первый 'arraylist.sublist (0.99)' сделать запрос апи и сохранить дату, а затем 'arraylist.sublist (100199)' сделать другой запрос API. – bjiang
Это помогает. Но я получаю ошибку исключения, потому что данные не обязательно распространяются на 199 пар координат. В моем случае тестовый файл excel имеет 154 пары координат. Таким образом, arraylist.sublist (0to99) действителен, но. Подсвечник (100to199) не имеет данных, и, следовательно, исключение. Итак, как я могу сделать это умным? Поскольку координаты могут быть всего двумя, и столько, сколько пользователь импортировал файл excel. –
Возможно, вам стоит попробовать что-то вроде метода '.size()', чтобы 'arraylist.sublist (100, arraylist.size())'. – bjiang