谷歌地图不承认双重

时间:2017-01-10 09:11:58

标签: javascript google-maps jsp

我想使用this tutorial从我的数据库中获取的值创建一个地图。 我确信我的jsp中的值是double,但它们没有显示在我的地图中(它显示为灰色)。

这是我的jsp:

<c:if test="${tei.getLatitudine() != null}">
 <span class="elemento">latitudine:</span> 
 <div id="latitudine">${tei.getLatitudine()}</div>  
<br/></c:if>

<c:if test="${tei.getLongitudine() != null}">
 <span class="elemento">longitudine:</span>  
 <div id="longitudine">${tei.getLongitudine()}</div>  
<br/></c:if>

我正在尝试不同的方法:

    function initMap() {
  var latitudine = $("#latitudine").val;
  var longitudine = $("#longitudine").val;
  var uluru = {lat: latitudine, lng: longitudine};
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: uluru
  });
  var marker = new google.maps.Marker({
    position: uluru,
    map: map
  });
}

或:

function initMap() {
  var latitudine = '${tei.getLatitudine()}';
  var longitudine = '${tei.getLongitudine()}';
  var uluru = {lat: latitudine, lng: longitudine};
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: uluru
  });
  var marker = new google.maps.Marker({
    position: uluru,
    map: map
  });
}

我使用它的两种或其他形式都不起作用。

提前感谢您的帮助。

EDIT1:

我的控制台中的错误是:

InvalidValueError: setCenter: not a LatLng or LatLngLiteral: in property lat: not a number _.kb @ js?key=AIzaSyCIVrSpAqIBx532NG59pY4biIuc5xQGgtA&callback=init‌​Map:37 js?key=AIzaSyCIVrSpAqIBx532NG59pY4biIuc5xQGgtA&callback=init‌​Map:37 

InvalidValueError: setPosition: not a LatLng or LatLngLiteral: in property lat: not a number _.kb @ js?key=AIzaSyCIVrSpAqIBx532NG59pY4biIuc5xQGgtA&callback=init‌​Map:37

但如果我在jsp中写道:

${tei.getLongitudine().getClass()}

它返回class double。

EDIT2:

如果我在我的js中写道:

var latitudine = ${tei.longitudine} 

我收到此错误:

message: "initMap is not a function"
name: "InvalidValueError"
stack: "Error
    at new Eb (https://maps.googleapis.com/maps/api/js?key=mykey(hidden4privacy)&callback=initMap:41:365)
    at Object._.Fb (https://maps.googleapis.com/maps/api/js?key=mykey(hidden4privacy)&callback=initMap:41:475)
    at Og (https://maps.googleapis.com/maps/api/js?key=mykey(hidden4privacy)&callback=initMap:96:420)
    at https://maps.googleapis.com/maps/api/js?key=mykey(hidden4privacy)&callback=initMap:131:58
    at Object.google.maps.Load (https://maps.googleapis.com/maps/api/js?key=mykey(hidden4privacy)&callback=initMap:21:5)
    at https://maps.googleapis.com/maps/api/js?key=mykey(hidden4privacy)&callback=initMap:130:20
    at https://maps.googleapis.com/maps/api/js?key=mykey(hidden4privacy)&callback=initMap:131:73"

1 个答案:

答案 0 :(得分:0)

如果你有这样的模特;

public class MyModel{

private double longitudine;

public double getLongitudine() {
    return longitudine;
}

public void setLongitudine(double longitudine) {
    this.longitudine = longitudine;
}
}

并将请求或会话放入您的模型

MyModel d = new MyModel();

d.setLongitudine(24);
session.setAttribute("lng",d); // or
// request.setAttribute("lng",d); 

然后你就可以在JS中使用EL来访问属性了。

function myFunction() {
var a = ${sessionScope.lng.longitudine}; /*or*/
/* var a = ${requestScope.lng.longitudine}; */
var b = a + 5;
console.log(b);
}