2016-04-01 9 views
0

Ich versuche, in der Reihenfolge des Staates> Bezirk> Dorf durch dynamischen Auswahlfeld zu Ort nach Namen zu vergrößern.Zoomen Sie nach dem Namen des Standorts in Openlayer 3

In diesem habe ich zwei Funktionen namens zoomToExtDist(name) und zoomToExtVil(distname,vilname) erstellt. Aber ich weiß nicht, dass sie nicht arbeiten. Welche Funktion sollten wir in openlayers 3 verwenden? Kann mir jemand sagen, wo ich falsch liege? Hier ist der Plunker, den ich erstellt habe zoom to location updated link

Bitte sagen Sie mir, welche Funktion wir verwenden sollten, um die Ansicht durch Lat Long in openlayers 3 zu setzen. Vielen Dank im Voraus :)

+0

welche Fehler haben Sie? – madalinivascu

+0

@madalinivascu es zeigt keinen Fehler, aber wenn ich es durch die Verwendung von Alarm-Box überprüfen geht es nicht, wenn Bedingung – ads

+0

http://plnkr.co/edit/Rja2b1dLsJm7FDFtlUJ0?p=preview – madalinivascu

Antwort

1

Versuchen Sie, diese

$(function() { 
    var records = jsonList.listval; 
    // console.log(records); 
    insert($('#state_id'), plucker(records, 'state')); 
    //------------------------^ grabs unique states 
    //--^ populate state list on DOM ready 
    $('select').on('change', function() { 
     var category = this.id.split('_id')[0]; 
     var value = $(this).find('option:selected').text(); 
     switch (category) { 
     case 'state': 
      { 
      insert($('#district_id'), plucker(filter(records, 'state', value), 'district')); 

      break; 
      } 
     case 'district': 
      { 
      insert($('#village_id'), plucker(filter(records, 'district', value), 'village')); 
      break; 
      } 
      case 'village': 
      { 

      zoomToExtDist($(this).val()); 
      break; 
      } 
     } 

    }); 


     function zoomToExtDist(name) 
     { console.log(name); 
      for (var i = 0; i < jsonList.listval.length; i++) 
      { 
       if(name==jsonList.listval[i].village) 
       { 
        var tlon = parseFloat(jsonList.listval[i].longitude); 
        var tlat = parseFloat(jsonList.listval[i].latitude); 
        //var lonlat = new OpenLayers.LonLat(tlat,tlon); 
        map.getView().setCenter(ol.proj.fromLonLat([tlat, tlon])); 
        map.getView().setZoom(5); 

       } 
      } 

     } 
.... 

http://plnkr.co/edit/Rja2b1dLsJm7FDFtlUJ0?p=preview

+0

es findet den falschen Ort. – ads

+0

dort sind deine Koordinaten, überprüfe sie – madalinivascu

+0

okay !! Ich werde es überprüfen danke – ads

0

Ich kann nicht kommentieren, weil ich nicht genug Ruf habe, aber in Ihrem Plunkr sehe ich nicht die Zoomtodist und Zoomtovil Funktionen? In welcher Datei sind sie? Haben Sie auch versucht, die view.centerOn() [http://openlayers.org/en/v3.14.2/apidoc/ol.View.html#centerOn]? Oder die view.setCenter() und view.setZoom() separat zum Zentrieren und Zoomen?