将值从servlet传递到谷歌地图

时间:2014-02-04 13:35:54

标签: java javascript html google-maps servlets

我想将谷歌初始化函数传递给纬度和经度,问题是不同的用户可能会有不同的起点,这意味着不同的位置。

我现在拥有的是:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Reminiscence Therapy</title>
<script
    src="http://maps.googleapis.com/maps/api/js?key=AIzaSyDY0kkJiTPVd2U7aTOAwhc9ySH6oHxOIYM&sensor=false">

</script>
<link rel=stylesheet
    href="http://jquery.malsup.com/cycle2/demo/demo-slideshow.css">
<link rel=stylesheet href="http://fonts.googleapis.com/css?family=Acme">
<link rel=stylesheet href="http://jquery.malsup.com/cycle2/site.css">

<script>
    var map;
    function initialize(lat, lng) {
        var mapProp = {
            center : new google.maps.LatLng(lat, lng),
            zoom : 18,
            mapTypeId : google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
    }

    google.maps.event.addDomListener(window, 'load', function() {
        var lat = 51.45644, lng = -0.120850;
        initialize(lat, lng);
    });
</script>
</head>
<body>
    <h2>My day in map</h2>
    <div style='float: left'>
        <form name='form1' action='FriendsListServlet' method='get'>
            <input type='submit' name='btnsalvar' value='Photos of the day'>
        </form>
    </div>
    <div>
        <form name='form2' action='MapServlet' method='get'>
            <input type='submit' name='btnsalvar' value='My day in map'>
        </form>
    </div>
    <br />
    <div id="googleMap"></div>
    <div id="myWorkContent" class="myWorkContent">
        <!-- Your images over here -->
        <c:forEach items="${photosName}" var="photo">
            <img src='images/<c:out value="${photo}" />' style="height: 80px;" />
        </c:forEach>
    </div>
    <script src="http://www.google-analytics.com/urchin.js"></script>
    <script>
        _uacct = "UA-850242-2";
        urchinTracker();
    </script>
</body>
</html>

问题在于功能

google.maps.event.addDomListener(window, 'load', function() {

使用值

调用initialize函数
var lat = 51.45644, lng = -0.120850;

但这不是我想要的。我有一个位于此页面后面的servlet。 servlet做的是计算起点,我希望地图用作servlet计算点的中心。怎么办?

1 个答案:

答案 0 :(得分:3)

将您的jsp代码更改为

var lat = <%= request.getAttribute("lat") %>, lng = <%= request.getAttribute("lng") %>;

在servlet中,在转发到jsp之前,需要添加

request.setAttribute("lat",<Value which you calculated>);   
request.setAttribute("lng",<Value which you calculated>);   

或者,如果您使用重定向到页面而不是转发,您可能希望从request.getParameter读取lat,lng。