как я могу выполнить обратную геолокацию, используя mysql, когда все значения находятся в одной таблице? - PullRequest
0 голосов
/ 17 июня 2020

это мой первый вопрос по stackoverflow. У меня есть таблица mysql на моем веб-сайте, в которой перечислены источники землетрясений, все они имеют широту и долготу в одной таблице.

Пример:

Date       | Time        | Latitude | Longitude | Depth | magnitude | Magnitude type
2017/04/03 | 03:08:37.20 |  -26.762 |    26.627 | 261.0 |       3.9 | WFEO 

Как я могу добавить обратное поле геолокации в той же таблице, где будет отображаться приблизительное название места? Я думал загрузить базу данных Geonames, а затем поместить ее в другую таблицу, а затем запросить вторую таблицу, но я не знаю. Сервер mysql находится на удаленном веб-сервере. Примечание: я ищу решение, которое будет обрабатывать каждую строку в таблице. Спасибо, я новичок в mysql, так что у меня мало знаний в этой области. Любая помощь будет принята с благодарностью.

То, что я сделал до сих пор. У меня есть файл csv, в котором записываются параметры землетрясения, мне удалось поместить его в базу данных mysql для отображения в виде таблицы html. Код следующий:

<?php
$db =   new mysqli('localhost:3306','user','password','database');
if ($db->connect_errno) {
  echo "Failed to connect to MySQL: " . $db->connect_error;
  exit();
}
?>

<table align="center" width="800" border="1" style="border-collapse:collapse; border:1px solid #ddd;" cellpadding="5" cellspacing="0">
    <thead>
        <tr bgcolor="#FFCC00">
            <th>Date</th>
            <th>Time</th>
            <th>Latitude</th>
            <th>Longitude</th>
            <th>Depth</th>
            <th>magnitude</th>
            <th>magnitude type</th>
        </tr>
    </thead>
    <tbody>
    <?php
if(($handle     =   fopen("norcsv.txt", "r")) !== FALSE){
    $n          =   1;
    while(($row =   fgetcsv($handle)) !== FALSE){
        $db->query('INSERT INTO `events`(`date`, `time`, `latitude`, `longitude`, `depth`, `magnitude`, `magtype`) VALUES ("'.$row[1].'","'.$row[2].'","'.$row[3].'","'.$row[4].'","'.$row[5].'","'.$row[6].'")');
        if($n>1){
                ?>
                <tr>
                    <td><?php echo $row[0];?></td>
                    <td><?php echo $row[1];?></td>
                    <td><?php echo $row[2];?></td>
                    <td><?php echo $row[3];?></td>
                    <td><?php echo $row[4];?></td>
                    <td><?php echo $row[5];?></td>
                    <td><?php echo $row[6];?></td>
                    </tr>
                <?php
            }
            $n++;
        }
        fclose($handle);
    }
    ?>
    </tbody>
</table>
<a href="index.html">View last seismic event location on a map.</a>

Итак, как видите, все работает, теперь я хочу добавить поле названия места в текущую существующую таблицу, чтобы использовать широту и долготу для вычисления географического названия места или, возможно, расстояния до Укажите имя. Надеюсь, теперь мой вопрос яснее. Всем спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...