OCAD Internet Map Scripting

Aus OCAD 11 Wiki - Deutsch
Zur Navigation springen Zur Suche springen
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Eine OCAD Internet Map kann benutzerdefiniert mit JavaScript gescriptet werden.

Zoomen auf die hälfte

Um die Webkarte nicht im kleinsten Zoomlevel zu laden, kann man folgende Zeile in die html-Datei nach dem Befehl:

    zoomChanged(); 

einfügen:

	map.zoomTo(map.numZoomLevels- Math.floor(map.numZoomLevels/2));

Damit wir die Karte auf die hälfte der verfügbaren Zoom-level bereits beim laden gesetzt und nicht auf den Zoom-Level 0.

Ebenen zeigen und verbergen

Ebenen können mit dem Ebenenbefehl setVisibility angezeigt oder verborgen werden. Alle Ebenen werden in der Reihenfolge, in der sie im Array _poiLayers aufgelistet sind, exportiert.

Beispiel:

	function ShowLayer() {
		_poiLayers[0].setVisibility(true);
	}

	function HideLayer() {
		_poiLayers[0].setVisibility(false);
	}

Die Javascript-Funktionen können mit einem externen Link von der gleichen Seite aufgerufen werden.

Zu einem bestimmten Punkt springen

Um zu einem bestimmten Standort auf der Karte zu springen, kann die folgende Funktion aufgerufen werden.

	
        function JupToPointOfInterest() {
		var point = new OpenLayers.LonLat(136733, 6667650);
		map.zoomTo(map.numZoomLevels-1);
		map.panTo(point);
	}

Die Variable map.numZoomLevels muss immer um eins verringert werden, um das maximale Zoomlevel zu erreichen.

Zusätzliche Vektorpunkte für Standorte hinzufügen

Um zusätzliche Vektorpunkte für Standorte hinzuzufügen, können Sie folgende Funktion aufrufen:

	function ShowPointOfInterest() {
		var point1 = new OpenLayers.Geometry.Point(149667,6680327);
		var point2 = new OpenLayers.Geometry.Point(150386,6678682);
			
		var feature_point = new OpenLayers.Feature.Vector(point1, {},{fillOpacity : 0.4, pointRadius: 45, fillColor: "#ff0000" });
		var feature_point2 = new OpenLayers.Feature.Vector(point2, {},{pointRadius: 15, fillColor: "#ff0000"});
		
		highlight_layer.addFeatures([feature_point, feature_point2]);
	}

Dafür muss eine zusätzliche Ebene im init script mit den folgenden Linien erstellt werden:

    highlight_layer = new OpenLayers.Layer.Vector('Highlight Layer');
    map.addLayer(highlight_layer);

Die zwei Zeilen müssen zwischen den Befehlen "addControl" und "XMLInitPois" platziert werden.

Für die Handhabung mit Vektoren, können die Optionen in der Dokumentation für OpenLayers aufgerufen werden: [style options]

Standorte mit drop down list zentrieren

Um einen Standort mit einer select-Liste zu zentrieren, können Sie den folgenden Code ausführen:

	function JupToPoint(coords) {
		if (value = null) {
			exit;
		}
		var cord = coords.split(",");
		var point1 = new OpenLayers.LonLat(cord[0],cord[1]);
		map.zoomTo(map.numZoomLevels-1);
		map.panTo(point1);
  }

In der HTML-Datei kann der Code folgendermassen aussehen:

<select id= "dropdown-select" onchange="JupToPoint(this.value);">
	<option value="null">Select</option>
	<option value="134314,6668774">Location 1</option>
	<option value="149659,6679976">Location 2</option>
	<option value="140800,6668437">Location 3</option>
</select>