Javascript 从web服务接收的数据在现有地图上添加标记
我想根据我的web服务接收到的数据,在现有的google地图中添加一个标记。我得到的纬度和经度没有问题。但我不知道该怎么做。下面是我的代码,以及我尝试执行的操作:Javascript 从web服务接收的数据在现有地图上添加标记,javascript,jquery,html,ajax,google-maps-api-3,Javascript,Jquery,Html,Ajax,Google Maps Api 3,我想根据我的web服务接收到的数据,在现有的google地图中添加一个标记。我得到的纬度和经度没有问题。但我不知道该怎么做。下面是我的代码,以及我尝试执行的操作: <html> <head> ... <script> function initialize(){ var mapProp = { center:new google.maps.LatLng(25,-30), z
<html>
<head>
...
<script>
function initialize(){
var mapProp = {
center:new google.maps.LatLng(25,-30),
zoom:2,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
var map=new google.maps.Map(document.getElementById("googleMap") ,mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
...
<div class="col-md-8">
<div id="googleMap" style="width:700px;height:350px; border-radius:20px;"></div>
</div>
...
<script src="../front-end/js/main.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#jogadoresList").click(function () {
$("#index").hide();
$("#selecoes").hide();
$("#jogador").show();
initialize();
});
});
</body>
这里的问题是贴图对象在RenderListLocalizao中不可见。。。作用请注意地图是如何在初始化范围内创建的
尝试将映射设置为全局变量。如果在运行该函数时转储/查看其值,我猜您将看到映射未定义。请按如下方式设置全局映射对象
<script>
var globalMap=null;
function initialize(){
var mapProp = {
center:new google.maps.LatLng(25,-30),
zoom:2,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
globalMap=new google.maps.Map(document.getElementById("googleMap") ,mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
<script>
var globalMap=null;
function initialize(){
var mapProp = {
center:new google.maps.LatLng(25,-30),
zoom:2,
mapTypeId:google.maps.MapTypeId.ROADMAP
};
globalMap=new google.maps.Map(document.getElementById("googleMap") ,mapProp);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
function renderListLocalizacao(data) {
// JAX-RS serializes an empty list as null, and a 'collection of one' as an object (not an 'array of one')
var list = data == null ? [] : (data.dados instanceof Array ? data.dados : [data.jogo]);
$.each(list, function(index, jogo) {
var myLatlng = new google.maps.LatLng(jogo.latitude,jogo.longitude);
var marker = new google.maps.Marker({
position: myLatlng,
map: globalMap,
title:"Former About.com Headquarters"
});
});