OCAD Internet Map Scripting

Aus OCAD 11 Wiki - Deutsch
Version vom 24. Juni 2013, 09:00 Uhr von JBO (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

OCAD Internet Map can be custom scripted with addition JavaScript code.

Ebenen zeigen und verbergen

Layers can be shown or hidden with the layer command setVisibility. All Layers are expored in the order they are shown in the _poiLayers array.

Example:

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

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

The Javascript functions can be called with an external link from the same page.

Zu einem bestimmten Punkt springen

In order to go to a certain location on the map the following function can be called.

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

The variable map.numZoomLevels must always be decreased by one in order to get the maximum zoom level.

Zusätzliche Vektorpunkte für Standorte hinzufügen

In order to achieve additional vector points this can be done with

	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]);
	}

Therefore an additional layer must be introduced in the init script with the following lines:

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

The two lines must be placed between the "addControl" commands and "XMLInitPois" command.

For the vector styling the options can be seen in the OpenLayers documentation: [style options]

Standorte mit drop down list zentrieren

To center a location with a select list the following code can be introduced:

	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 the HTML file the code can look like as follows:

<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>