Как решить проблему одинакового идентификатора OSM для разных пар Lat, Long?

#postgis #openstreetmap #postgresql-9.3 #pgrouting

#postgis #openstreetmap #postgresql-9.3 #pgrouting

Вопрос:

(Я не являюсь носителем английского языка, поэтому, пожалуйста, игнорируйте мои грамматические ошибки.)

У меня есть имя базы данных PostgreSQL как Karachi, и я загрузил карту osm karachi изhttps://download.bbbike.org затем я преобразовал его в формат файла shp в GeoJSON с помощью QGIS, а затем импортировал этот Karachi.geojson в PostgreSQL с помощью этих команд:

 ogr2ogr -select name -nlt CONVERT_TO_LINEAR -lco GEOMETRY_NAME=the_geom -lco FID=id -f PostgreSQL PG:"dbname='Karachi' host='localhost' port='5432' user='postgres' password='Password'" -nln edges Karachi.geojson -where "OGR_GEOMETRY='MultiLineString'"

ALTER TABLE edges ADD source INT4;
ALTER TABLE edges ADD target INT4;
ALTER TABLE edges ALTER COLUMN the_geom TYPE geometry(linestring,4326) USING ST_GeometryN(the_geom, 1);

SELECT pgr_nodeNetwork('edges', 0.00001);
SELECT pgr_createTopology('edges_noded', 0.00001);

ALTER TABLE edges_noded ADD COLUMN name VARCHAR,ADD COLUMN type VARCHAR;

UPDATE edges_noded AS new SET name=old.name FROM edges as old WHERE new.old_id=old.id;

ALTER TABLE edges_noded ADD distance FLOAT8;

UPDATE edges_noded SET distance = ST_Length(ST_Transform(the_geom, 4326)::geography) / 1000;
  

После этого у меня есть две широты и долготы

  1. 67.112457,24.882638
  2. 67.113009,24.882293

Я хочу найти расстояние между этими двумя широтами и долготой, поэтому я использую этот запрос для получения идентификаторов osm:

 SELECT v.id, v.the_geom, string_agg(distinct(e.name),',') AS name
FROM edges_noded_vertices_pgr AS v, edges_noded AS e
WHERE v.id = (
    SELECT id
    FROM edges_noded_vertices_pgr
    ORDER BY the_geom <-> ST_SetSRID(ST_MakePoint(67.0691865,24.9065008), 4326)
    LIMIT 1
  )
  AND (e.source = v.id OR e.target = v.id)
GROUP BY v.id, v.the_geom
  

Этот запрос возвращает мне одинаковый идентификатор osm для обоих (lat, long) s
Как решить эту проблему?

Есть ли какое-либо другое решение этой проблемы с помощью Windows 10?