Witam,
otóż mam pewien problem z dynamicznym dodawaniem punktów z bazy danych do mapy google na JSP w frameworku Spring. Poniżej zamieszczam mój kod :
<%@page import="java.util.Iterator"%>
<%@page import="pl.eventoo.mongodb.dao.WydarzenieDaoImpl"%>
<%@page import="pl.eventoo.domain.Koordynaty"%>
<%@page import="java.util.List"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
#map {
<!-- width: 300px;
height: 300px; -->
}
#map_wrap {
position:relative;
width: 100%;
height:280px;
padding-top:0px;
border: 1px solid #aaa;
}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
var map;
var markers = [];
function initialize() {
var options = {
mapTypeControlOptions: {
mapTypeIds: [google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.TERRAIN],
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
}
}
<%
String id_wydarzenia_session = null;
List<Koordynaty> koordynaty = null;
Double szer = null;
Double wys = null;
try {
id_wydarzenia_session = session.getAttribute("id_wydarzenia").toString();
WydarzenieDaoImpl wydarzeniedao = new WydarzenieDaoImpl();
koordynaty = wydarzeniedao.pobierzKoordynatyWydarzenia(id_wydarzenia_session);
szer = koordynaty.get(0).getSzerokosc();
wys = koordynaty.get(0).getWysokosc();
} catch (Exception e) {
System.out.println(e.getMessage());
}
%>
var wysokoscCenter = "<%=wys%>";
var szerokoscCenter = "<%=szer%>";
map = new google.maps.Map(document.getElementById('map'));
map.setCenter(new google.maps.LatLng(wysokoscCenter, szerokoscCenter));
map.setZoom(17);
map.setMapTypeId(google.maps.MapTypeId.ROADMAP);
<%
Iterator<Koordynaty> iteratorKoordynaty = koordynaty.iterator();
while (iteratorKoordynaty.hasNext()) {
Koordynaty koordynatyDetails = iteratorKoordynaty.next();
%>
addMarker(new google.maps.LatLng(<%=koordynatyDetails.getWysokosc()%>, <%=koordynatyDetails.getSzerokosc()%>), "Marker");
<%
}
%>
}
function addMarker(latlng, myTitle) {
markers.push(new google.maps.Marker({
position: latlng,
map: map,
title: myTitle,
icon: "http://maps.google.com/mapfiles/marker" + String.fromCharCode(markers.length + 65) + ".png"
}));
}
</script>
</head>
<body>
<div id="map_wrap" align="center">
<div id="map"></div>
</div>
<script type="text/javascript">
initialize();
</script>
</body>
</html>
Podstawienie zamiast dynamicznie dodawane wartości z bazy danych koordynatów punktów np :. addMarker(new google.maps.LatLng(52.4354545,23.234343)) oczywiście skutkuje pokazaniem mapy. Natomiast w przypadku dodania zmiennych javascriptowych, którym zostałe przypisane wartości od zmiennych jstl lub w przypadku kodu jsp w <%=%> niestety skutkuje szarą mapą.
Bardzo prosiłbym o pomoc, gdyż kompletnie nie wiem jak obejść ten problem.