Я пытаюсь использовать google maps API
для перечисления нескольких местоположений на веб-странице, используя мой Java Spring MVC Web Application
. Места хранятся в моей базе данных.
Теперь я пытаюсь вернуть список местоположений в следующем формате:
['ABC', -33.890542, 151.274856],
['Coogee Beach', -33.923036, 151.259052],
['Cronulla Beach', -34.028249, 151.157507],
['Manly Beach', -33.80010128657071, 151.28747820854187],
['Maroubra Beach', -33.950198, 151.259302]
Мне нужен этот формат, так как местоположения в скрипте называются следующим образом:
var locations = [
['ABC', -33.890542, 151.274856],
['Coogee Beach', -33.923036, 151.259052],
['Cronulla Beach', -34.028249, 151.157507],
['Manly Beach', -33.80010128657071, 151.28747820854187],
['Maroubra Beach', -33.950198, 151.259302]
];
Я пытаюсь создать эти массивы с помощью Java, а затем передать их в пользовательский интерфейс. Я не уверен, как создать такую структуру массива с помощью Java.
Я бы рекомендовал использовать библиотеку json, чтобы она могла генерировать для вас эту строку json. Я не уверен, что весна уже поставляет его или есть предпочтение, но наиболее часто используемым будет Джексон или Гсон.
массив содержит элементы разных типов данных. это создает проблему в статически типизированных языках, таких как Java. массив должен быть определен Object[]
, что проблематично, поскольку компилятор не сможет помочь вам правильно заполнить массив.
Вы должны разработать API между сервером и клиентом для использования массива объектов Json. что-то типа
[
{"Name": "Coogee Beach", "longitude":-33.923036, "latitude":151.259052},
{"Name": "Cronulla Beach", "longitude":-34.028249, "latitude":151.157507},
...
]
это лучше всего представлено в Java путем создания класса со свойствами, соответствующими объекту JSON:
public class Place {
public String name;
public double longitude;
public double latitude;
}
вы должны создать массив (или List
) из PLace
s, и вы можете использовать одну из многих библиотек Jason, которые сопоставляют объекты Java с объектами Json.
Я также планировал то же самое, создав POJO, а затем вернув список. Но как я могу получить эту долину в сценарии следующим образом: <script type = "text/javascript"> varlocations = [ ['<strong>Chipotle on Sheridan</strong><br>\r\ 6600 N Sheridan Rd< br> Чикаго, Иллинойс 60626<br>', -33.890542, 151.274856], ['Coogee Beach', -33.923036, 151.259052], ['Cronulla Beach', -34.028249, 151.157507], ['Manly Beach', -33.800710121,65700 151.28747820854187], ['Пляж Марубра', -33.950198, 151.259302]];
это должно быть так? потому что это просто плохой дизайн
Все, что я пытаюсь сделать, это загрузить карту с несколькими маркерами, где данные взяты из базы данных, которая должна быть возвращена контроллером Spring MVC.
вам нужно понимать, что API сервер-клиент и API карт Google — это две разные вещи с разными требованиями и функциями. клиент JavaScript может принимать массив объектов json и переводить его в структуру данных, которую ожидают карты Google.
Дизайн возврата широты/долготы в массиве выглядит не очень хорошо, но вот решение, которое должно работать.
Object[][] result = new Object[list.size()][3];
for (int i = 0; i < list.size; i++) {
result[i][0] = list[i].locName;
result[i][1] = list[i].latitude;
result[i][2] = list[i].longitude;
}
return result;
что такое list
??
list — это список местоположений, возвращаемый из базы данных.
google: "двумерный массив Java"