var searchCiudadModApp = angular.module('searchCiudadModApp', ['ngSanitize', 'ui.bootstrap','searchSrv']); searchCiudadModApp.controller('searchCiudadModController', [ '$scope', '$location', '$http', '$sce', '$q','searchSrv', function searchCiudadModController($scope, $location, $http, $sce, $q,searchSrv) { $scope.principalesCiudades = principalesCiudades; $scope.lugar=vLugar; $scope.lugarTem=vLugar; $scope.txtCiudad=vLugar.ciudad; $scope.query=""; console.log($scope.principalesCiudades); $scope.dirty = {}; $scope.showmenu=false; $scope.typeahead=false; $scope.focus=function(){ $scope.showmenu=true; } $scope.blur=function(){ $scope.showmenu=false; } $scope.getLocation = function(val) { return $http.get(CI.site_url+'/search/api/buscar/', { params: { cadena: val, lat: false, lon: false, ciudad: vLugar.ciudad } }).then(function(response){ console.log(response.data); return response.data.map(function(item){ return item; }); }); }; $scope.onTextClick = function ($event) { $event.target.select(); }; $scope.ubicarme=function(){ var error =function(err) { }; if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position){ $scope.$apply(function(){ $scope.position = position; $http({ method: "post", url: CI.site_url+'/home/pos/', data: { lat:$scope.position.coords.latitude, lon:$scope.position.coords.longitude } }).then(function successCallback(response) { console.log(response); if(response.status=="200"){ $scope.miLugar=response.data.lugar; $scope.principales=response.data.principales; $scope.cerca=response.data.cerca; $('#dlgChgPos').modal({ keyboard: true }) for(i=3;i<$scope.cerca.length;i++){ if(i>18) break; $scope.principalesCiudades.push($scope.cerca[i]); } for(i=3;i < response.data.principales.length;i++){ $scope.principalesCiudades.push(response.data.principales[i]); } if($scope.miLugar.sub!=$scope.lugar.sub){ if(vnoLugar){ $scope.lugar=$scope.miLugar; $scope.lugar.ciudad=$scope.lugar.ciudad+" (Mi UbicaciĆ³n)"; $scope.txtCiudad=$scope.lugar.ciudad; }else{ } } } }, function errorCallback(response) { console.log("error"); });; }); }, error, {enableHighAccuracy: false, timeout: 10000, maximumAge: 0}); }else{ } }; $scope.ubicarme(); $scope.autocompleteLugar=function(vQ){ return searchSrv.autocompleteLugar(vQ, $scope.lugar.lat, $scope.lugar.lon).then(function (res) { return res.hits.hits.map(function(item){ return item; }); }); } $scope.autocomplete=function(vQ){ return searchSrv.autocomplete(vQ, $scope.lugar.lat, $scope.lugar.lon).then(function (res) { $scope.th11=false; var r = res.responses[1].hits.hits.concat(res.responses[0].hits.hits); return r.map(function(item){ return item; }); }); } $scope.buscar=function(q){ window.location.replace(CI.site_url+"explore/ciu/"+$scope.lugar.sub+"/#!/?&q&query="+q+"&qtype=q"); } $scope.autocompleteSelect=function($item, $model, $label){ $model.latLng = $scope.strToLatLng($model._source.location); switch($model._type){ case "info": $scope.query=$model._source.nombre; window.location.replace(CI.site_url+"explore/ciu/"+$scope.lugar.sub+"/#!/?&query="+$scope.query+"&qtype=info&qid="+$model._id); break; case "direccion": $scope.query=$model._source.dir; window.location.replace(CI.site_url+"explore/ciu/"+$scope.lugar.sub+"/#!/?reflat="+$model.latLng.lat+"&reflng="+$model.latLng.lng+"&ref="+$model._source.dir+"&query="); break; case "osmp": $scope.query=$model._source.name; window.location.replace(CI.site_url+"explore/ciu/"+$scope.lugar.sub+"/#!/?reflat="+$model.latLng.lat+"&reflng="+$model.latLng.lng+"&ref="+$model._source.name+"&query="); break; case "osmy": $scope.query=""; window.location.replace(CI.site_url+"explore/ciu/"+$scope.lugar.sub+"/#!/?reflat="+$model.latLng.lat+"&reflng="+$model.latLng.lng+"&ref="+$model._source.name+"&query="); break; case "categoria": $scope.query=$model._source.sub_des; //$scope.doQuery(cat._source.sub_des, "cat", cat._id, cat ); window.location.replace(CI.site_url+"explore/ciu/"+$scope.lugar.sub+"/#!/?query="+$model._source.sub_des+"&qtype=cat&qid="+$model._id); break; } } $scope.strToLatLng=function(loc){ if(loc){ var vlat= Math.round(loc.lat*100000)/100000 var vlng= Math.round(loc.lon*100000)/100000; var ll = {"lat":vlat, "lng":vlng}; //var ll = L.latLng(vlat, vlng ); return ll; }else{ return null; } } }]);