我正在尝试使用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创建此数组,然后将其传递给UI。我不确定如何使用Java创建这样的数组结构。
答案 0 :(得分:3)
该数组包含不同数据类型的项。这会在诸如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
),并且可以使用许多Jason库之一来将Java对象映射到Json对象。
答案 1 :(得分:1)
在数组中返回纬度/经度的设计看起来不太好,但这是应该起作用的解决方案。
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;