OpenStreetMap

   

Bitte beachten Sie, dass die nachfolgenden Angaben zur Lizenzierung von Dritt-Produkten unverbindlich und ohne Gewähr erfolgen. Informieren Sie sich direkt bei den Anbietern oder ziehen Sie ggf. eine Rechtsberatung hinzu.

 

Im Standard-Template von Immoplain wird eine Beispiel-Implementierung zur Integration von Google Maps geliefert.

Google Maps kann lizenzfrei verwendet werden wenn:

die Google Copyright Hinweise so wie in der Beispiel-Implementierung angezeigt werden
die Webseite öffentlich zugänglich ist

 

Dies sind die wichtigsten Voraussetzungen. Für detaillierte Informationen besuchen Sie bitte die Internetseite von Google Maps. Informationen zur lizenzfreien Nutzung finden Sie bei der Registrierung des API-Key.

Eine andere Alternative sind die Karten von Microsoft Bing. Allerdings dürfen diese auf Internetseiten von Unternehmen nicht lizenzfrei werden werden. Die Lizenzierung erfolgt volumenabhängig.

Auch wegen der absehbaren Integration von Google Street View in Google Maps sind deshalb die Google Maps die beliebtesten Karten.

Wenn Sie Immoplain als Makler-Portal nützen und den Zugang zu diesem Portal nicht kostenlos ermöglichen, dürfen Sie Google Maps nicht mehr lizenzfrei verwenden. Eine Alternative ist dann die Integration von OpenStreetMap. OpenStreetMap dürfen Sie auch in Internetseiten verwenden, die nur für eine bestimmte Nutzergruppe zugänglich ist.

OpenStreetMap ist ein OpenSource-Projekt, das Karten mit der unentgeltlichen Hilfe vieler Benutzer erstellt und im Internet bereit stellt (www.openstreetmap.de/karte.html).

 

Nachfolgend wird beschrieben, wie Sie Google-Maps im Standard-Template  durch OpenStreetMap ersetzen.

 

Die Kartenansicht verwendet das Layout-Template detail.ctp. Ersetzen Sie den folgenden Absatz:

 

 <?php $google = ($this->getVar('GoogleAPI')); if(!empty($google)): ?>

 <script type="text/javascript">

       function initialize() {

       if (GBrowserIsCompatible()) {

         var map = new GMap2(document.getElementById("map_canvas"), { mapTypes:[G_HYBRID_MAP] });

         var point = new GLatLng(<?php if (isset($Immobilie['Immobilien']['breitengrad'])) echo $Immobilie['Immobilien']['breitengrad']; ?>, <?php if (isset($Immobilie['Immobilien']['laengengrad'])) echo $Immobilie['Immobilien']['laengengrad']; ?>);

         map.setCenter(point, 16);

         map.addControl(new GSmallMapControl());

         var marker = new GMarker(point);

         map.addOverlay(marker);

         map.setUIToDefault();

       }

     }

 </script>

 <?php endif; ?>

 

durch diesen Code:

 <style type="text/css">

   .olControlAttribution { bottom: 3px!important; }

 </style>

 <script src="http://www.openlayers.org/api/OpenLayers.js"></script>

 <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script>

 

Im View get_map.ctp ersetzen Sie den folgenden Programmcode:

 

 <div id="map_canvas" style="width: 600px; height: 400px"></div>

 

durch den folgenden Programmcode:

<div id="map" style="width:600px;height:400px;"></div>

 

<script type="text/javascript">

 var map;

 function showMap(){

   map = new OpenLayers.Map("map", {

         maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),

         numZoomLevels: 19,

         maxResolution: 156543.0399,

         units: "m",

         projection: new OpenLayers.Projection("EPSG:900913"),

         displayProjection: new OpenLayers.Projection("EPSG:4326")

   });

   var layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik (updated weekly)");

   var layerTah = new OpenLayers.Layer.OSM.Osmarender("Tiles@Home");

   map.addLayers([layerMapnik,layerTah]);

   map.setCenter(new OpenLayers.LonLat(<?php if (isset($Immobilie['Immobilien']['laengengrad'])) echo $Immobilie['Immobilien']['laengengrad']; ?>,<?php if (isset($Immobilie['Immobilien']['breitengrad'])) echo $Immobilie['Immobilien']['breitengrad']; ?>).transform(new OpenLayers.Projection("EPSG:4326"),

   new OpenLayers.Projection("EPSG:900913")), 14);

   map.addLayer(new OpenLayers.Layer.Markers());

   var marker = new OpenLayers.Marker(map.getCenter());

   map.layers[map.layers.length-1].addMarker(marker);

   }

  showMap();

</script>

 

Anstatt Google Map wird nun OpenStreetMap verwendet. Es wird ein Marker an der Stelle gesetzt, an der sich das Objekt befindet.

openstreetmap