【问题标题】:Passing values from servlet to google maps将值从 servlet 传递到谷歌地图
【发布时间】:2014-02-04 13:35:53
【问题描述】:

我想通过谷歌初始化函数一个纬度和一个经度,问题是不同的用户可能有不同的起点,这意味着不同的位置。

我现在拥有的是:

<%@ 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() {

正在使用值调用初始化函数

var lat = 51.45644, lng = -0.120850;

但这不是我想要的。我有一个在这个页面后面的 servlet。该 servlet 所做的是计算起点,我希望地图将 servlet 计算的点用作其中心。怎么可能?

【问题讨论】:

    标签: java javascript html google-maps servlets


    【解决方案1】:

    把你的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 。

    【讨论】:

    • 非常感谢,它适用于 request.getAttribute()。我花了一点时间将其标记为真实,因为我需要尝试一下。
    猜你喜欢
    • 2014-07-30
    • 2016-07-02
    • 2013-09-12
    • 1970-01-01
    • 2023-03-18
    • 2013-11-25
    • 2012-05-03
    • 1970-01-01
    相关资源
    最近更新 更多