Un usuario preguntó 👇
Primero, gracias por su gran plugin, hace que los mapas de hojas sean muy fáciles de incrustar.
Muestro un mapa cargando características de GeoJSON y ahora quiero abrir ventanas emergentes en los marcadores. Todo funciona perfectamente con una propiedad como esta:
[leaflet-geojson src="https://xrcb.exo.cat/radios-geojson/" popup_property="title"][/leaflet-geojson]
¿Alguna posibilidad de mostrar más de una característica de propiedades en la ventana emergente, idealmente con marcado HTML para crear enlaces al contenido? Imagino algo así (donde la URL y el título son características de las propiedades):
[leaflet-geojson]<a href="popup_property=url">popup_property=title</a>[/leaflet-geojson]
Pensé en piratear el plugin, ¿cuál crees que es la mejor marca para ese escenario?
Este tema fue modificado hace 2 años, 11 meses por. Razón: agregar código
(@bozdoz)
Hace 2 años, 11 meses
Eso puede ser difícil (pero puede que no lo sea).
Me gusta la idea de formatear cables como sugieres; tal vez algo como:
[leaflet-geojson]{título}
[/leaflet-geojson]
Podrías hacer algo así en hoja-mapa / shortcodes / class.geojson-shortcode.php
La función dice lo siguiente:
function onEachFeature (feature, layer) {
var props = feature.properties || {},
text = popup_property && props[ popup_property ] || popup_text;
if (text) {
layer.bindPopup( text );
}
}
En realidad, una hoja sirve para intersecar cadenas, llamadas L.Util.template
. Entonces debería poder cambiar la función de esta manera:
function onEachFeature (feature, layer) {
var props = feature.properties || {},
text = popup_property && props[ popup_property ] || popup_text;
if (text) {
text = L.Util.template(text, props);
layer.bindPopup( text );
}
}
¡Eso podría ser fácil de piratear! Pruébalo si quieres ser el primero. Eso debería ser compatible con versiones anteriores, así que consideraré agregarlo a la próxima versión. ¡Gracias!
(@bozdoz)
Hace 2 años, 11 meses
Vaya, esa marca hizo un desastre con mi comentario. Aquí está la marca que sugerí:
[leaflet-geojson]
<a href={url}>{title}</a>
[/leaflet-geojson]
(@bozdoz)
Hace 2 años, 11 meses
En realidad, no quería usar L.Util.template. Lanza un error, que creo que es innecesario. Aquí está mi función sugerida:
var templateRe = /{ *([w_-]+) *}/g;
function template(str, data) {
return str.replace(templateRe, function (match, key) {
var value = data[key];
if (value === undefined) {
return match;
}
return value;
});
}
Esta respuesta fue modificada hace 2 años, 11 meses por.
(@gerital)
Hace 2 años, 11 meses
Buen tiro @bozdoz, tu propuesta funciona perfectamente aplicando las plantillas y cambiando la línea 109 de la misma hoja-mapa / shortcodes / class.geojson-shortcode.php a:
text = popup_property && props[ popup_property ] || template(popup_text, feature.properties);
¡Gracias!
ps: recién probado solicitud de remolque
(@gerital)
Hace 2 años, 11 meses
Hay un detalle final en el marcado emergente generado. Probablemente un problema con layer.bindPopup (texto). Estoy agregando más marcado HTML al acceso directo de geojson, así:
[leaflet-geojson]<h3><a href="https://xrcb.exo.cat/?p={id}">{title}</a></h3>{barrio}<br>Radio {categoria}[/leaflet-geojson]
Se convierte en algo así, con mucho más
y
:
<div class="leaflet-popup-content"><p></p><br><h3><a href="https://xrcb.exo.cat/?p=22">scannerfm.com</a></h3><br><p>el Poble Sec<br>Radio libre</p></div>
(@bozdoz)
Hace 2 años, 11 meses
WordPress probablemente esté leyendo las nuevas líneas:
[leaflet-geojson]
*new line*
*new line
[/leaflet-geojson]
WordPress crea elementos para cada nueva línea. ¿Intenta ponerlo solo en línea? ¿O prueba el editor de texto en lugar del editor visual? De lo contrario, ¿está funcionando?
Algo como esto:
[leaflet-geojson]Todo el texto aquí[leaflet-geojson]Esta respuesta fue modificada hace 2 años, 11 meses por.
(@gerital)
Hace 2 años, 11 meses
De hecho, lo tengo en una línea en la pestaña de texto, tal como lo publiqué en el último mensaje. WordPress parece estar haciendo una limpieza de HTML antes de guardarlo en la base de datos.
Esta respuesta fue modificada hace 2 años, 11 meses por.
(@bozdoz)
Hace 2 años, 11 meses
Hmmm. ¡Lo intenté y funciona muy bien! No vea etiquetas adicionales en absoluto. No estoy seguro de lo que podría estar pasando.
(@manasek)
Hace 2 años, 8 meses
Esto está detrás de mi conocimiento de codificación. Solo quiero mostrar más propiedades en una ventana emergente. ¿Cómo sería el atajo? ¿Necesito modificar algún código php del plugin? Si es así, ¿puedo lograr esto usando un plugin de fragmentos de código que generalmente uso? Gracias, Roman.
(@manasek)
Hace 2 años, 8 meses
Lo he resuelto, lamento responder a un asunto resuelto.
¿Solucionó tu problema??
0 / 0