3 votos

Obteniendo error Node.appendChild con leaflet

Estoy intentando añadir una función emergente a algunos polígonos. He estado consultando algunos tutoriales diferentes tratando de resolverlo y me preocupa que estoy recibiendo instrucciones contradictorias.

El mapa que tengo ahora se muestra perfectamente. El siguiente paso para mí es añadir la ventana emergente cuando se hace clic en el polígono. Me sigue apareciendo el error "Argument 1 of Node.appendChild is not an object". No tengo ni idea de lo que esto significa. Mi única conjetura es que tiene algo que ver con el uso de un var dentro de landscape.js para crear el landscape.geojson, ya que podría no estar creándolo de la manera correcta para usarlo en la ventana emergente.

<html>
<head>
<link rel="stylesheet" href="./leaflet/leaflet.css" />
<script type="text/javascript" src="./leaflet/leaflet.js"></script>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="landscape.js" type="text/javascript"></script>
</head>
<body>

<div id=map></div>

<script type="text/javascript">
var map = L.map('map').setView([42.505, -100], 3);

L.tileLayer('http://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> &copy; <a href="http://cartodb.com/attributions">CartoDB</a>',
subdomains: 'abcd',
maxZoom: 19
}).addTo(map);

function toAddPopup (feature, layer) {
        layer.bindPopup(feature.properties.metro_severePct);
        }

L.geoJson(landscape,{
        onEachFeature: toAddPopup
}).addTo(map);

</script>
</body>

</html>

2voto

En layer.bindPopup espera una cadena, pero tú le pasas una propiedad numérica. Puede evitar el error utilizando .toString() :

function toAddPopup (feature, layer) {
        layer.bindPopup(feature.properties.metro_severePct.toString());
        }

o añadiendo su propiedad a otra cadena utilizando el método + que también convertirá el valor numérico en una cadena:

function toAddPopup (feature, layer) {
        layer.bindPopup('Percent severe:' + feature.properties.metro_severePct);
        }

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X