2017-05-12 3 views
0

s'il vous plaît je travaille dans le projet et je veux afficher de nombreux marqueurs sur la carte, je veux afficher arr [] [] de jsp à javascrpit comme ce code, s'il vous plaît je travaille dans le projet et je veux afficher de nombreux marqueurs sur la carte, je veux afficher arr [] [] de jsp à javascrpit comme ce code ex: je veux remplacer ce code:comment peut convertir tableau de jsp en javascript

for (var i = 0; i < 3; i++) { 

     var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(17.088291,78.442383), 
      map: map, 
     }); 

à:

for (var i = 0; i < 3; i++) { 

     var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(arr[i][0],arr[i][1]), 
      map: map, 
      }); 

<!DOCTYPE html> 

<html> 
<head> 
<script  src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD4DvaNOnpTRUFASvy6lyY0DDVcfXytvnY&libraries=places&&callback=initMap"> 
</script> 
<script> 
<%! 
double arr[][]= new double[3][2]; 
%> 
    <% 
arr[0][0]=19.088291; 
arr[0][1]= 78.442383; 
arr[1][0]=18.088291; 
arr[1][1]=78.442383; 
arr[2][0]=17.088291; 
arr[2][1]=78.442383; 


    %> 
function loadMap() { 
var mapOptions = { 
center:new google.maps.LatLng(19.373341, 78.662109), 
zoom:7 
} 

var map=new google.maps.Map(document.getElementById("sample"),mapOptions); 

//animation:google.maps.Animation.BOUNCE 
for (var i = 0; i < 3; i++) { 

     var marker = new google.maps.Marker({ 
position: new google.maps.LatLng(17.088291,78.442383), 
map: map, 
}); 

     } 
} 
</script> 
</head> 
<body onload="loadMap()"> 
<div id="sample" style="width:580px;height:400px;"></div> 
</body> 
</html> 
+0

cet affichage de code un marqueur –

+0

oui je sais, mais quand je remplacerai la boucle imbriquée à for (var i = 0; i <3; i ++) { marqueur var = new google.maps.Marker ({ position: nouveau google.maps.LatLng (arr [i] [0], arr [i] [1]), carte: carte, }); } ne fonctionne pas ... –

+0

je pense que ... arr défini au code jsp mais le code javascript ne peut pas le lire –

Répondre

0

Je pense que vous avez deux options:

A. Utilisez out.print dans la boucle, il je pense que vous avez déjà essayé cela, mais oublié quelque chose très important - <% et %>

Ainsi, la dernière ligne de code doit ressembler à:

new google.maps.LatLng(<% out.print(arr[i][0]); %>, <% out.print(arr[i][1]); %> 

B. Convertir l'ensemble de la matrice JSP en JSON et décoder en arrière. Bien que n'étant pas la solution la plus simple, mais peut être utile dans de nombreux endroits comme les services externes, etc. Vous pouvez utiliser une bibliothèque comme Gson.

+0

les premières options ne fonctionnent pas parce que dans cette partie <% out.print (arr [ i] [0]); %> javascript ne peut pas définir i secondes options effectuées –

+0

Utilisez simplement une boucle JSP et intégrez la partie JavaScript dans le bloc de la boucle JSP. – user3544134

0

la réponse simple ajouter cette ligne dans le code jsp Chaîne json = new Gson(). ToJson (tableau);

et en javascript ajouter cette ligne var arr = <% = json%>; Code travaillera