Encuentre N LineString más cercano desde un punto usando las extensiones espaciales de MySQL

Estoy usandoExtensiones espaciales de MySQL Almacenar datos sobre carreteras y hoteles. Almaceno los datos del hotel como un punto mientras almaceno los datos de la carretera como LineString. Las mesas se ven así.

CREATE TABLE IF NOT EXISTS `Hotels` (
    `id` int unsigned NOT NULL AUTO_INCREMENT,
    `name` text,
    `coordinate` point NOT NULL,
    PRIMARY KEY (`id`),
    SPATIAL KEY `coordinate` (`coordinate`),
)

CREATE TABLE IF NOT EXISTS `Roads` (
    `id` int unsigned NOT NULL AUTO_INCREMENT,
    `name` text,
    `route` linestring NOT NULL,
    PRIMARY KEY (`id`),
    SPATIAL KEY `coordinate` (`route`),
)

La visualización de una instancia sería así.

A mi problema se le asigna un número N y un punto P, ¿cuál es la consulta SQL para encontrar N carreteras más cercanas desde el punto P? La distancia se define por la distancia perpendicular más pequeña entre un segmento en la carretera al punto como se muestra arriba. (aunque en la realidad, la distancia más cercana debe ser entre la puerta de la autopista y un hotel, pero en este caso, podemos ingresar a la autopista desde cualquier punto: P)

Si no hay una solución de sentencia SQL única para este problema, una consulta SQL intermedia y un procesamiento posterior son aceptables para mí. Pero, ¿qué sería una consulta SQL eficiente y cómo postprocesar los datos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta