コード例 #1
0
ファイル: CustomOSMap.php プロジェクト: barricade86/raui
    public static function createMap($isAppartment = false)
    {
        $baseUrl = Yii::app()->request->baseUrl;
        //Yii::app()->clientScript->registerScriptFile('http://cdn.leafletjs.com/leaflet-0.7/leaflet.js', CClientScript::POS_END);
        //Yii::app()->clientScript->registerCssFile('http://cdn.leafletjs.com/leaflet-0.7/leaflet.css');
        Yii::app()->clientScript->registerScriptFile($baseUrl . '/common/js/leaflet/leaflet-0.7.2/leaflet.js', CClientScript::POS_HEAD);
        Yii::app()->clientScript->registerCssFile($baseUrl . '/common/js/leaflet/leaflet-0.7.2/leaflet.css');
        Yii::app()->clientScript->registerScriptFile($baseUrl . '/common/js/leaflet/leaflet-0.7.2/dist/leaflet.markercluster-src.js', CClientScript::POS_HEAD);
        Yii::app()->clientScript->registerCssFile($baseUrl . '/common/js/leaflet/leaflet-0.7.2/dist/MarkerCluster.css');
        Yii::app()->clientScript->registerCssFile($baseUrl . '/common/js/leaflet/leaflet-0.7.2/dist/MarkerCluster.Default.css');
        self::$jsVars = '

		var mapOSMap;
		var markerClusterOSMap;

		var markersOSMap = [];
		var markersForClasterOSMap = [];
		var latLngList = [];

		';
        self::$jsCode = '

		var zoomOSMap = ' . ($isAppartment ? param('module_apartments_osmapsZoomApartment', 15) : param('module_apartments_osmapsZoomCity', 11)) . ';
		mapOSMap = L.map("osmap").setView([' . param('module_apartments_osmapsCenterY', 55.75411314653655) . ', ' . param('module_apartments_osmapsCenterX', 37.620717508911184) . '], zoomOSMap);

		L.tileLayer("http://{s}.tile.osm.org/{z}/{x}/{y}.png", {
		attribution: "&copy; <a href=\'http://osm.org/copyright\'>OpenStreetMap</a> contributors"
		}).addTo(mapOSMap);

		';
    }
コード例 #2
0
ファイル: CustomOSMap.php プロジェクト: alexjkitty/estate
    public static function createMap($isAppartment = false)
    {
        self::$jsVars = '

		var mapOSMap;
		var markerClusterOSMap;

		var markersOSMap = [];
		var markersForClasterOSMap = [];
		var latLngList = [];

		';
        self::$jsCode = '

		var zoomOSMap = ' . ($isAppartment ? param('module_apartments_osmapsZoomApartment', 15) : param('module_apartments_osmapsZoomCity', 11)) . ';
		mapOSMap = L.map("osmap").setView([' . param('module_apartments_osmapsCenterY', 55.75411314653655) . ', ' . param('module_apartments_osmapsCenterX', 37.620717508911184) . '], zoomOSMap);

		L.tileLayer("http://{s}.tile.osm.org/{z}/{x}/{y}.png", {
		attribution: "&copy; <a href=\'http://osm.org/copyright\'>OpenStreetMap</a> contributors"
		}).addTo(mapOSMap);

		';
    }
コード例 #3
0
ファイル: MainController.php プロジェクト: barricade86/raui
 public function actionOSmap($id, $model = null)
 {
     if ($model === null) {
         $model = $this->loadModel($id);
     }
     $result = CustomOSMap::actionOSmap($id, $model, $this->renderPartial('_marker', array('model' => $model), true));
     if ($result) {
         return $this->renderPartial('_osmap', $result, true);
     }
     return '';
 }
コード例 #4
0
ファイル: MainController.php プロジェクト: barricade86/raui
 public function actionOSmap($id)
 {
     $model = $this->loadModelUserAd($id);
     $result = CustomOSMap::actionOsmap($id, $model, $this->renderPartial('//../modules/apartments/views/backend/_marker', array('model' => $model), true));
     if ($result) {
         return $this->renderPartial('//../modules/apartments/views/backend/_osmap', $result, true);
     }
 }
コード例 #5
0
 public function run()
 {
     Yii::app()->getModule('apartments');
     $criteria = $this->criteria ? $this->criteria : new CDbCriteria();
     if ($this->filterOn) {
         Yii::app()->controller->aData['searchOnMap'] = true;
         $this->renderFilter($criteria);
     }
     if (param('useYandexMap', 1)) {
         echo $this->render('application.modules.apartments.views.backend._ymap', '', true);
         CustomYMap::init()->createMap();
     } elseif (param('useGoogleMap', 1)) {
         CustomGMap::createMap();
     } else {
         echo '<div id="osmap"></div>';
         CustomOSMap::createMap();
     }
     $lang = Yii::app()->language;
     $criteria->select = 'lat, lng, id, type, address_' . $lang . ', title_' . $lang . ', address_' . $lang;
     $ownerActiveCond = '';
     if (param('useUserads')) {
         $ownerActiveCond = ' AND owner_active = ' . Apartment::STATUS_ACTIVE . ' ';
     }
     $criteria->addCondition('lat <> "" AND lat <> "0" AND active=' . Apartment::STATUS_ACTIVE . ' AND (owner_id=1 OR owner_id>1 ' . $ownerActiveCond . ')');
     $apartments = Apartment::findAllWithCache($criteria);
     if (param('useYandexMap', 1)) {
         $lats = array();
         $lngs = array();
         foreach ($apartments as $apartment) {
             $lats[] = $apartment->lat;
             $lngs[] = $apartment->lng;
             CustomYMap::init()->addMarker($apartment->lat, $apartment->lng, $this->render('application.modules.apartments.views.backend._marker', array('model' => $apartment), true), true, $apartment);
         }
         if ($lats && $lngs) {
             CustomYMap::init()->setBounds(min($lats), max($lats), min($lngs), max($lngs));
             if ($this->withCluster) {
                 CustomYMap::init()->setClusterer();
             } else {
                 CustomYMap::init()->withoutClusterer();
             }
         } else {
             $minLat = param('module_apartments_ymapsCenterX') - param('module_apartments_ymapsSpanX') / 2;
             $maxLat = param('module_apartments_ymapsCenterX') + param('module_apartments_ymapsSpanX') / 2;
             $minLng = param('module_apartments_ymapsCenterY') - param('module_apartments_ymapsSpanY') / 2;
             $maxLng = param('module_apartments_ymapsCenterY') + param('module_apartments_ymapsSpanY') / 2;
             CustomYMap::init()->setBounds($minLng, $maxLng, $minLat, $maxLat);
         }
         CustomYMap::init()->changeZoom(0, '+');
         CustomYMap::init()->processScripts(true);
     } elseif (param('useGoogleMap', 1)) {
         foreach ($apartments as $apartment) {
             CustomGMap::addMarker($apartment, $this->render('application.modules.apartments.views.backend._marker', array('model' => $apartment), true));
         }
         if ($this->withCluster) {
             CustomGMap::clusterMarkers();
         }
         CustomGMap::setCenter();
         CustomGMap::render();
     } elseif (param('useOSMMap', 1)) {
         foreach ($apartments as $apartment) {
             CustomOSMap::addMarker($apartment, $this->render('application.modules.apartments.views.backend._marker', array('model' => $apartment), true));
         }
         if ($this->withCluster) {
             CustomOSMap::clusterMarkers();
         }
         CustomOSMap::setCenter();
         CustomOSMap::render();
     }
 }