Может просто наименований нет? У первых попавшихся трех. Выведите еще колонку osm_id, посмотрю у себя, у меня local развернут.
Чтобы потом обновления накатывать.
Может просто наименований нет? У первых попавшихся трех. Выведите еще колонку osm_id, посмотрю у себя, у меня local развернут.
Чтобы потом обновления накатывать.
Это нормально, просто сообщение об ошибке сформулировано неудачно. На самом деле таблица, которая не существует – создаётся.
Причём, это поведение описано в документе http://switch2osm.org/serving-tiles/manually-building-a-tile-server-12-04/ , раздел “Importing data into the database”:
Понял, спасибо огромное!
Вопрос - есть вариант sql-запросом рассчитать:
Конечно.
ST_Azimuth — Returns the angle in radians from the horizontal of the vector defined by pointA and pointB
ST_Distance — For geometry type Returns the 2-dimensional cartesian minimum distance (based on spatial ref) between two geometries in projected units. For geography type defaults to return spheroidal minimum distance between two geographies in meters.
Спасибо!
При расчете дистанции, нужно указывать (как я понял) район, в котором проводятся расчеты, чтобы учесть искривление поверхности Земли. Т.е. вот это:
units in planar degrees 4326 is WGS 84 long lat unit=degrees
где их можно посмотреть?
Чего то я плыву совсем…
Делаю запрос:
SELECT 'point' AS type,ST_X(way) AS lon,ST_Y(way) AS lat,aeroway,name FROM planet_osm_point
WHERE aeroway IN ('airport','aerodrome')
UNION
SELECT 'polygon' AS type,ST_X(ST_Centroid(way)) AS lon,ST_Y(ST_Centroid(way)) AS lat,aeroway,name FROM planet_osm_polygon
WHERE aeroway IN ('airport','aerodrome') LIMIT 50;
Получил я координаты:
"polygon";4359829.4534671;5627019.51677918;"aerodrome";"Международный аэропорт Краснодар"
А что мне показывает этот запрос? О_о
Координаты “Международный аэропорт Краснодар” - 45°02′04″ с. ш. 39°09′00″ в. д.
Вот страничка Вики - Аэропорт Краснодар
Мягко говоря, я не понимаю…
Добрый человек подсказал:
Это EPSG:3857 тебе нужна EPSG:4326.
Таким образом нужно получить данные в EPSG:4326. Ищу пример запроса.
Собственно вместо way надо использовать ST_Transform(way,4326) и получим геометрию в 4326.
Все работает! Спасибо огромное!
Вот такой запрос нужен для получения координат в “правильном” виде. (вдруг кому пригодится)
SELECT 'point' AS type,ST_X(ST_Transform(way,4326)) AS lon,ST_Y(ST_Transform(way,4326)) AS lat,aeroway,name FROM planet_osm_point
WHERE aeroway IN ('airport','aerodrome')
UNION
SELECT 'polygon' AS type,ST_X(ST_Centroid(ST_Transform(way,4326))) AS lon,ST_Y(ST_Centroid(ST_Transform(way,4326))) AS lat,aeroway,name FROM planet_osm_polygon
WHERE aeroway IN ('airport','aerodrome') LIMIT 3;
Мне кажется, более естественно сразу загружать в 4326 (--proj 4326
). Оно и запросы проще будут.
select name from planet_osm_polygon where st_dwithin(way, st_transform(setsrid(makepoint(39.0900,45.0204),4326),900913)::geometry,1);
или
select name from planet_osm_polygon where st_dwithin(way, setsrid(makepoint(39.09,45.02),4326)::geometry,1);
Вообще удобнее работать с типом geography
, для него всякие там ST_Distance, ST_DWithin, пользуют метры.
ST_Distance(ST_Transform(way,4326)::geography, SetSRID(MakePoint(lon,lat),4326)::geography)
Спасибо. Попробую.
Только если можно - объясняйте чуть проще, я не специалист вообще, тяжеловато разобраться. Через пару недель будет проще, а сейчас тяжело еще.
Я попробовал скомпилировать свежий osm2pgsql на Visual Studio.
Пришлось поправлять исходники, pbf поддержать не получилось (кто-нибудь видел живой protobuf-c для Windows?).
Кому интересно, можете потестировать: https://dl.dropboxusercontent.com/u/63393258/osm2pgsql_win_unstable.zip
Исходный код (переписал под cmake): https://github.com/alex85k/osm2pgsql. (нужен VS2013, он более совместим c C99).
(может затребовать runtime: http://www.microsoft.com/ru-ru/download/details.aspx?id=40784)
Может подскажет кто. Почему osm2pgsql может не загрузить точку из данных? Смотрю загрузку osmosis-ом точка есть, osm2pgsql - нет. Соответственно и дорога поличилась обрезана. например node - 2246232221, way - 215216040
64-битные ID в некоторых сборках по умолчанию выключены, особенно если под Windows
Кто-нибудь знает рабочую сборку, кроме моей экспериментальной из предыдущего поста?
А там случаем не составная дорога? один и тот же osm_id могут иметь несколько рядов в таблицах
Да нет, обычная дорога. В JOSM немного её обновил, теперь нормально. а было так:
поторопился с нормально
vs