PHP GeoJSON FeatureCollection PHP для MapBox - PullRequest
0 голосов
/ 01 декабря 2018

Привет, у меня проблемы с выводом FeatureCollection в PHP.

Справочная информация:

У меня есть сервер MySQL, который состоит из таблицы геолокации, в которой есть имя пользователя, долгота и широта пользователей.В настоящее время есть 3 записи с уникальным именем пользователя, которые я намерен использовать в качестве MapID.Так что моя таблица выглядит примерно так

username |долгота |широта

sy456 |45.78888 |5822,35

s744 |85,6632 |47,52366

S69995 |456789.23 |4572.332

Вот мой код

<?php 
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token');
header("Content-Type: application/json; charset=UTF-8");

error_reporting(E_ALL);
include('global.php');




$connection = new mysqli(dbhost, dbuser, dbpassword, dbname); 

$query = "SELECT longitude, latitude from geolocation";
$result = $connection -> query($query);

while($rs1 = $result->fetch_array(MYSQLI_ASSOC)) {
    $long = $rs1['longitude'];
    $latitude = $rs1['latitude'];
    $geometry_array = array(
        "type" => "Point",
        "coordinates" => array ($long,$latitude)
      );
    
    $data =  (array(
        'geometry'=>$geometry_array,
        'type' =>"Feature",
        "properties" =>"{}"
    
    ));
    
$output = (array(
     'type' => "FeatureCollection",
     'features' => array($data)));   



}

    echo json_encode($output);
    
	$connection->close(); //Closing SQL connection
	
?>
Приведенный выше скрипт PHP извлекает записи долготы и широты, но я не знаю, как правильно вывести его в формате FeatureCollection, отображающем все записи геолокации (3).Я попытался использовать цикл For в WHILE (FETCH_ASSOC), но он не работает (он показывает только последнюю запись ...), как показано на следующем рисунке. вывод JSON
...