我有一个问题,我想知道有人可以帮助我。结果我想制作一些带有不同 GPS 轨迹的小 map 。但我在获取数据时遇到问题。我需要从服务器获取 GPS 轨迹。然后提取属于该轨迹的所有点的坐标并将该数据放入js(在 map 上)中。我会展示出来: 这里我有一个 Controller :
@Controller
public class TracksGeopointsController {
@Autowired
private IndexGeopointsService indexGeopointsService;
@Autowired
private TracksGeopointsService tracksGeopointsService;
@Autowired
private FileService fileService;
@Autowired
private MySaxParser mySaxParser;
@RequestMapping(value = TracksGeopointsRoutes.TRACKS, method = RequestMethod.GET)
public String tracks(Model model){
List<TracksGeopointsDoc> tracks = tracksGeopointsService.findAllTracks();
Map<ObjectId, List<DotGeopointsDoc>> dotsMap = new HashMap<ObjectId, List<DotGeopointsDoc>>();
for (TracksGeopointsDoc track : tracks){
try {
List<DotGeopointsDoc> dots = tracksGeopointsService.getAllTrackDots(track.getId());
dotsMap.put(track.getId(), dots);
model.addAttribute("dotsMap", dotsMap); //here I put data to a model to transport it to JSP
model.addAttribute("tracks", tracks); //here I put data to a model to transport it to JSP
} catch (TrackNotExistException e) {
e.printStackTrace();
}
}
Breadcrumbs breadcrumbs = indexGeopointsService.breadcrumbs();
breadcrumbs.setCurrentPageTitle("GPS треки");
model.addAttribute("breadcrumbs", breadcrumbs);
return "com.ub.geopoints_test.tracks";
}
}
我的 JSP 看起来像这样:
<div class="row">
<div class="col-md-12">
<c:forEach var="track" items="${tracks}" varStatus="count"> //I know how to extract data from model above - ${tracks}
<script>
var map = L.map('map');
// create the tile layer with correct attribution
var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmAttrib='Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors';
var osm = new L.TileLayer(osmUrl, {minZoom: 1, maxZoom: 12, attribution: osmAttrib});
map.addLayer(osm);
L.Routing.control({
waypoints: [
L.latLng(57.74, 11.94), // here I want to put data that I gave to model. If it was not js, I'll do this: L.latLng(${dotsMap.get(track.id).lat}, ${dotsMap.get(track.id).lat}) But I don't know how can I do it with js
L.latLng(57.6792, 11.949),
L.latLng(57.65, 11.888)
]
}).addTo(map);
</script>
</c:forEach>
</div>
</div>
拜托,谁能帮帮我。我真的不知道该怎么办。
最佳答案
在同一个jsp页面中,如果您编写js代码,您可以将模型值存储在java脚本变量中。 例如:
var varName = ${modelName.variableName}
因此您可以在同一个 jsp 中的 javascript 代码块中呈现任何模型值。
关于javascript - 如何从JSP获取数据到js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35721584/