Javascript: TypeError: un est indéfini - quel est le problème?
J'ai un tableau contenant plusieurs marqueurs pour mon googlemap.
Lorsque j'essaie d'ajouter cette pile de ma carte, j'obtiens cette erreur. Des idées pourquoi?
Voici mon code:
markers = [];
function create_station_marker(position){
if(position != null){
eval(position);
var latitude = parseFloat(position.latitude);
var longitude = parseFloat(position.longitude);
var new_icon = new GIcon();
new_icon.image = "marker.png";
new_icon.size = new GSize(25,17);
var opt;
opt = {};
opt.icon = new_icon;
var marker = new GMarker(new GLatLng(latitude, longitude),opt);
markers.push(marker);
}
}
Et c'est là que j'ai ajouter mon Tableau à la carte:
function load_googlemap() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(48.092757,11.645508), 4);
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
for (var i=0; i< markers.length; i++ ) {
try{
map.addOverlay(markers[i]);
alert(markers[i].toSource());
}catch(ex){
//here I get this error!!!
alert(ex);
}
}
}
}
Toutes les idées à ce sujet?
- Pourquoi
eval(position);
? - Passé exemple complet avec des exemples de données s'il vous plaît.
- Dans mon code html, je n': <pre class="prettyprint"> <script type="text/javascript">create_station_marker($position );</script> </pre> pour chaque point (foreach). sur le document.prêt, je l'appelle mon load_googlemap() fonction.
- est-ce que votre html ont un élément avec l'id "map" ?
- Peut-être que vous voulez changer de version de l'API à 3..
- Où en êtes-vous la définition de "ex"?
- Il n'y a aucune raison d'utiliser la fonction eval. Utiliser une librairie JSON.
Vous devez vous connecter pour publier un commentaire.
Si
position
est une chaîne de caractères contenant une représentation JSON de données, vous devez affecter le résultat deeval()
à une autre variable, par exemple:Vous convient, toutefois, de l'analyser correctement:
je voudrais contrôler que la "position" paramètre de contenu une fois que vous avez un eval-dessus d'elle, il pourrait être la source de l'erreur