WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

#1 07.09.2018 15:53:29

nickfake
Member

OSM Droplet: Download, Installation, (mehrfache) Einbindung

Ahoi!

Funktioniert OSM Droplet noch? Ich bekomme den fehler ungültige Zip Datei. Habe es schon mit entpacken und neupacken versucht.

Offline

#2 07.09.2018 15:57:21

florian
Administrator

Re: OSM Droplet: Download, Installation, (mehrfache) Einbindung

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.

Offline

#3 07.09.2018 16:16:12

nickfake
Member

Re: OSM Droplet: Download, Installation, (mehrfache) Einbindung

cool, danke

Offline

#4 23.03.2022 13:15:41

nickfake
Member

Re: OSM Droplet: Download, Installation, (mehrfache) Einbindung

funktioniert immer noch!  big_smile

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

#5 28.03.2022 11:00:10

florian
Administrator

Re: OSM Droplet: Download, Installation, (mehrfache) Einbindung

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: \'&copy; <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;

Offline

#6 28.03.2022 15:14:30

nickfake
Member

Re: OSM Droplet: Download, Installation, (mehrfache) Einbindung

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 10:02:25)

Offline

Board footer

up