Как загрузить мои постгис-баллы в буклет - PullRequest
0 голосов
/ 05 февраля 2019

Я взял удеми класс для листовки.Загрузка данных курса работала отлично, но теперь я пытаюсь дублировать код с моими данными PostGIS, и он не работает.

Я прошел курс по Udemy для Leaflet.Я смог воспроизвести то, что делал инструктор, используя предоставленные им данные.Я смог воспроизвести таблицу, используя мои данные из базы данных PostGIS, аналогично тому, как преподаватель учил в другом видео.Теперь я не смог воссоздать аналогичную карту с моими данными.Я разместил это на сайте курса Udemy, но никто не ответил.Несмотря на то, что инструктируемый порекомендовал стекопотока для помощи в одном из своих видео, вот и я.

From HTML Page
23 <script>
24 var queryLayer;
25 var mymap = L.map('mapdiv')
26 mymap.setView([33.86585, -118.08240], 15);
27        
28 var backgroundLayer = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png');
29 mymap.addLayer(backgroundLayer);
30
31 $("#filterSubmit").click(function(){
32     $.ajax({
33         url:'query_permit_ajax.php',
34         type:'POST',
35         data:{
36             date_recd: $("#date_recd").val(),
37             act_stat: $("#act_stat").val()
38            },
39         success: function(response){
40             if (queryLayer) {
41                 mymap.removeLayer(queryLayer);
42            }
43              queryLayer=L.geoJSON(JSON.parse(response)).addTo(mymap);
44              mymap.fitBounds(queryLayer.getBounds());
45             }
46         });
47     });
48 </script>

From PHP Page
1 <?php
2     $dr=$_POST['date_recd'];
3     $as=$_POST['act_stat'];
4     $db = new PDO('pgsql:host=localhost;port=5433;dbname=webmap101;','postgres','123456');
5     $sql = $db->prepare("SELECT id, item_no, permit_no, scope_work, proj_site, st_from, st_to, date_recd, rev_stat, act_stat, ret_date, draft_inv, pay_recd, ST_AsGeoJSON(geom, 5) FROM permit_loc WHERE act_stat> :as");
6 $params = ["as"=>$as];
7 $sql->execute($params);
8    
9 $features=[];
10 while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
11     $feature=['type'=>"Feature"];
12     $feature['geometry']=json_decode($row['geom']);
13     unset($row['geom']);
14     $feature['properties']=$row;
15     array_push($features,$feature);
16 }
17     $featureCollection=['type'=>'FeatureCollection','features'=>$features];
18    echo json_encode($featureCollection);
19 ?>

Точки должны появиться на моей карте листовки.

1 Ответ

0 голосов
/ 05 февраля 2019

Первое, что вы должны знать: ваша проблема на стороне вашего сервера (php) или на стороне вашего браузера (javascript)?

Проверьте свой журнал ошибок php и консоль разработчика вашего браузера (вы также можете проверитьсеть в браузере)

Вы также можете сгенерировать некоторую отладочную информацию, чтобы узнать, как выглядят данные.

console.log(JSON.parse(response)), чтобы увидеть ваши данные ответа ajax

error_log(json_encode($featureCollection)чтобы увидеть, что отправляет ваш php

В зависимости от результата вы узнаете, является ли ваша проблема на стороне вашего сервера или на стороне вашего браузера.

...