Google Maps API - Javascript Filter -


i utilizing google maps api in application polygons visualize locations. im trying allow user filter attribute using select , update polygons on change filtered output. filter returning correct data not updating polygons. going wrong?

filter

             $('#species_select').change(function(){               $.get(                 '/species_filter',                 $('#species_select').val(),                 function(data){                   console.log(data);                   infowindow.close();                   // map.fitbounds(bounds);                 }               );             }); 

polygons

            var map;             var infowindow;              // map display options             function initmap() {               map = new google.maps.map(document.getelementbyid('map'), {                 zoom: 9,                 center: {lat: 42.05, lng: -70.25},                 maptypeid: google.maps.maptypeid.satellite               });                // define latlng coordinates polygon.              var cc_peaked_hill =  [               {lat: 42.049803, lng: -69.970551},               {lat: 42.048273, lng: -69.978790},               {lat: 42.043684, lng: -70.046082},               {lat: 42.043684, lng: -70.058441},               {lat: 42.056940, lng: -70.085907},               {lat: 42.070194, lng: -70.118179},               {lat: 42.079369, lng: -70.156631},               {lat: 42.082426, lng: -70.177231},                {lat: 42.082936, lng: -70.195084},                {lat: 42.084974, lng: -70.210190},               {lat: 42.089561, lng: -70.210190},                {lat: 42.098732, lng: -70.210190},                {lat: 42.107902, lng: -70.212250},               {lat: 42.114524, lng: -70.215683},                {lat: 42.115033, lng: -70.188217},               {lat: 42.115033, lng: -70.162811},               {lat: 42.110958, lng: -70.127792},               {lat: 42.103827, lng: -70.090714},               {lat: 42.088541, lng: -70.046768},               {lat: 42.074782, lng: -70.011749},               {lat: 42.049803, lng: -69.970551}               ]             ;              // construct polygon.             var cc_peaked_hill_billspollygon = new google.maps.polygon({               paths: cc_peaked_hill,               strokecolor: '#f7f8ff',               strokeopacity: 0.8,               strokeweight: 1,               fillcolor: '#4562a8',               fillopacity: 0.45,               editable: false,                 map: map             });              // add listener click event.             cc_peaked_hill_billspollygon.addlistener('click',              // set info window content location report             function (event) {               console.log(location_reports);               var location_reports = cc_peaked_hill;                var contentstring =                '<table>\n                        <thead>\n                          <tr>  \n                             <th>date<\/th>\n                             <th>target species<\/th>\n                             <th>vessel name<\/th>\n                            <th>primary method<\/th>\n                             <th>catch total<\/th>\n                            <th>trip summary<\/th>\n                           <\/tr>\n                         <\/thead>\n\n                        <tbody>\n                         <b>cc - peaked hill<\/b>                        <br>\n  peaked hill bar <br> <br>\n                           <tr>\n      <td>2016-05-29<\/td>  \n                             <td>tuna<\/td>\n                             <td>endurance<\/td>\n                            <td>live bait<\/td>\n                            <td>1<\/td>\n                            <td>good bite on outgoing<\/td>\n                           <\/tr>\n                           <tr>\n                             <td>2016-06-01<\/td>  \n                             <td>tuna<\/td>\n                             <td>tradition<\/td>\n                            <td>live bait<\/td>\n                            <td>1<\/td>\n                            <td>kite bite live mack<\/td>\n                          <\/tr>\n    <tr>\n                             <td>2016-06-07<\/td>  \n                             <td>bluefish<\/td>\n                             <td>obsession<\/td>\n                            <td>live bait<\/td>\n                            <td>1<\/td>\n                            <td>top water bite @ daybreak<\/td>\n                          <\/tr>\n                         <\/tbody>\n                       <\/table>';                            // replace info window's content , position.               infowindow.setcontent(contentstring);               infowindow.setposition(event.latlng);               infowindow.open(map);               }             ); 

html

           <form id="species_form" action="/species_filter" >                 <select name="species" class="form-control m-b" id="species_select">                     <option value="tuna">tuna</option>                     <option value="haddock">haddock</option>                     <option value="bass">bass</option>                     <option value="flounder">flounder</option>                     <option value="bluefish">bluefish</option>                     <option value="striped bass">striped bass</option>                     <option value="cod & haddock">cod</option>                 </select>             </form>  

i haven't tried it, try create onmapready() onconnected(), add buildgoogleapiclient() call oncreate() onmapready()

@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_map); //buildgoogleapiclient();  // obtain supportmapfragment , notified when map ready used. supportmapfragment mapfragment = (supportmapfragment) getsupportfragmentmanager() .findfragmentbyid(r.id.map); mapfragment.getmapasync(this);  }   @override public void onmapready(googlemap googlemap) { mmap = googlemap;  mmap.setmylocationenabled(true);  //add here: buildgoogleapiclient();  //latlng loc = new latlng(lat, lng);  //mmap.movecamera(cameraupdatefactory.newlatlng(loc)); }  @override public void onconnected(bundle bundle) { mlastlocation = locationservices.fusedlocationapi.getlastlocation( mgoogleapiclient); if (mlastlocation != null) { lat = mlastlocation.getlatitude(); lng = mlastlocation.getlongitude(); mmap.movecamera(cameraupdatefactory.newlatlng(loc)); } } 

you can use requestlocationupdates(), , call removelocationupdates() when first location comes in.

here's demo app can understand how maps api works: https://github.com/googlemaps/android-samples/tree/master/apidemos


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -