WBCE CMS – Way Better Content Editing.
You are not logged in.
Ahoi!
Funktioniert OSM Droplet noch? Ich bekomme den fehler ungültige Zip Datei. Habe es schon mit entpacken und neupacken versucht.
Offline
Ja, irgendwie funktioniert bei Droplets der Zip-Import teilweise nicht mehr.
Workaround: Zip lokal entpacken, in Editor öffnen, alles markieren, in die Zwischenablage, in WBCE neues Droplet anlegen, Code aus der Zwischenablage einfügen, unter gefälligem Namen speichern. An sich sollte es keine Probleme mit dem OSM-Droplet geben.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
cool, danke
Offline
funktioniert immer noch!
Ist es normal, dass man nur ein OSM Droplet pro Seite anzeigen kann?
Kann ich das umgehen? Ich möchte zwei verschiedene Karten einbinden.
Offline
Ja, das ist beim unveränderten Droplet normal.
Um es mehrfach einzubinden, müssen die Karten eindeutige IDs erhalten. Ich habe das jetzt mittels Zufallstrings gelöst. Hier der angepasste Dropletcode, der Aufruf erfolgt unverändert.
// usage: [[osmkarte?lon=&lat=&zoom=&height=&comment=]]
// parameters:
$lon = isset($lon)? str_replace(',', '.', $lon) : 0;
$lat = isset($lat)? str_replace(',', '.', $lat) : 0;
$zoom = isset($zoom) ? intval($zoom) : 19;
$height = isset($height) ? intval($height) : 400;
$comment = isset($comment) ? $comment : '';
if(! function_exists('generateRandomString')){
/* CC-BY-SA https://stackoverflow.com/a/4356295 */
function generateRandomString($length = 10) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
}
$id=generateRandomString();
$content ="";
$content .=' <link rel="stylesheet" href="https://unpkg.com/leaflet@1.0.3/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet@1.0.3/dist/leaflet.js"></script>
<style>
#map'.$id.' { height: '.$height.'px; }
</style>
<div id="map'.$id.'"></div>
<script language="javascript">
function init() {
var map'.$id.' = L.map(\'map'.$id.'\');
L.tileLayer(\'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\', {
attribution: \'© <a href="https://openstreetmap.org">OpenStreetMap</a> contributors\',
maxZoom: 18
}).addTo(map'.$id.');
map'.$id.'.attributionControl.setPrefix(\'Setup by <a href="https://www.best-data.at">best-data</a> | Powered by Leaflet\'); // Don\'t show the \'Powered by Leaflet\' text.
var ort = new L.LatLng('.$lat.', '.$lon.'); // geographical point (longitude and latitude)
map'.$id.'.setView(ort, '.$zoom.');
var marker'.$id.' = L.marker(['.$lat.', '.$lon.']).addTo(map'.$id.')';
if($comment != '') {
$content .= "
.bindPopup('".$comment."')
.openPopup()";
}
$content .= ';
}
window.onload = init();
</script>
';
return $content;
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
Uhhh cool. Das Probiere ich morgen mal aus! Danke
nachtrag:
richtig gut. es reicht ein Droplet anzupassen. einfach copy&paste nach der Zeile
$comment = isset($comment) ? $comment : '';
Danke Florian
Last edited by nickfake (29.03.2022 09:02:25)
Offline