Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

je développe un système de geolocalisation des objets en ligne.
lorsque je fait un test avec mon pc tout fonctionne bien (je veux dire la geolocalisation)
mais lorsque je me connecte sur lesmartphone, la geolocalisation ne fonctionne pas or je l'ai bien activé dans les paramètres de mon téléphone.

voici mon code pour géolocaliser:

 $scope.erreur =  function( error ) {
    switch( error.code ) {
        case error.PERMISSION_DENIED:
            console.log( 'L\'utilisateur a refusé la demande' );
            break;     
        case error.POSITION_UNAVAILABLE:
            console.log( 'Position indéterminée' );
            break;
        case error.TIMEOUT:
            console.log( 'Réponse trop lente' );
            break;
    }

};

        $scope.callback = function ( position ) {
          $scope.lat = position.coords.latitude;
          $scope.lng = position.coords.longitude;
          navigator.geolocation.clearWatch($scope.coord);
          //alert( $scope.lat );

      };

        $scope.localiser = function(){
           if(navigator.geolocation)
              {
                  $scope.coord = navigator.geolocation.watchPosition($scope.callback, $scope.erreur );

              }
              else
              {
                  alert("Votre navigateur ne supporte pas la géolocalisation bien vouloir changer de navigateur");
              }
        }

S'il vous plait quelqu'un a une idée?

2 réponses


romses
Auteur

je viens de faire un constat ;lorsque je me connecte avec un smartphone samsung galaxy tous ce passe bien mais avec d'autres smartphone rien je ne comprends pas pourtant voici mon code coté vew

<div class="row" ng-controller="geolocalisationsCtrl" ng-init="localiser()">
<div class="large-4 medium-4 columns">

</div>

<nav class="large-4 medium-4 columns" id="actions-sidebar">
    <ul class="side-nav">
        <li class="heading"><?= __('ENREGISTREMENT') ?></li>
        <?=$this->Form->create($geomap,["type"=>"file","class"=>"form","context"=>['validator'=>'default']]) ?>
        <li>
         <?= $this->Form->input('ville_id',['type' => 'select','class' => 'form-control','options' =>$villes,'div'=>false,'label'=>false,'ng-change'=>'listearrondissement()','data-ng-model' => 'form.choixville','empty'=>'Choisir une ville',"required"=>true]);?>

        </li>

                <li>

        <select  class="form-control" required="required" data-ng-model="form.arrondis" data-ng-change="listequartiers()"  name="arrondissement.id">
            <option value='' disabled selected> Choisir un arrondissement</option>
             <option ng-repeat="option in listarondissement" value="{{option.id}}">{{option.nom_arrondissement}}</option>
        </select>

        </li>
         <li>

            <select  class="form-control" required="required" data-ng-model="form.quartier" data-ng-click="localiser()" data-ng-change="Support()"  name="quartier_id" >
                 <option value='' disabled selected>Choisir un Quartier</option>
                  <option ng-repeat="option in listequartier" value="{{option.id}}">{{option.nom_quartier}}</option>
            </select>

        </li>

         <li>
            <input  data-ng-model="form.localisation" class="form-control" type="text" required="required" placeholder="Repère/rue ..." name="rue"  />

        </li>

        <li>

            <select  class="form-control" required="required" data-ng-model="form.support" data-ng-change="Annonceur()"  name="support_id">
                 <option value='' disabled selected>Choisir un support</option>
                 <option ng-repeat="option in listesupport" value="{{option.id}}">{{option.nom_support}}</option>
            </select>

        </li>

         <li>

            <select  class="form-control" required="required" data-ng-model="form.annonceur" data-ng-change="detail()" name="annonceur_id" >
                 <option value='' disabled selected>Choisir un annonceur</option>
                  <option ng-repeat="option in listeannonceur" value="{{option.id}}">{{option.entreprise}}</option>
            </select>

        </li>

        <li>
         <?= $this->Form->input('image1_file',['type'=>'file','label'=>'Image rapprochée',"required"=>true]); ?>

        <?= $this->Form->input('image2_file',["data-ng-model"=>"form.file2",'type'=>'file','label'=>'Image éloignée',"ng-click"=>"localiser()","required"=>true]); ?>

        </li>
        <li>
        <strong>Etat du support</strong>
        <?= $this->Form->radio('etat_support',[['value'=>'Neuf','text'=>'Neuf'],['value'=>'Moyen','text'=>'Moyen'],['value'=>'Dégradé','text'=>'Dégradé']],['label'=>'Etat du support','required'=>true]); ?>
        </li>
        <li>
         <?= $this->Form->input('commentaire',['type'=>'textarea']); ?>

        </li>

        <li>
            <input  ng-model="lng" class="form-control" type="hidden"  value="{{lng}}" name="longitude"  />
            <input  ng-model="lat" class="form-control" type="hidden"  value="{{lat}}" name="latitude" />
            <span>Longitude: </span><strong>{{lng}}</strong>
             <span>Latitude: </span><strong>{{lat}}</strong>

        </li>
        <li>
           <button class="btn btn-primary">Enregistrer</button>
        </li>
       <?= $this->Form->end() ?>
    </ul>

</nav>
<div class="large-4 medium-4 columns">

</div>
</div>

Pour les autorisations, regarde du côté de cordova.plugins.diagnostic