Маршрутизация в MS SQL Server 2012
CREATE INDEX source_idx ON road_network("source");
CREATE INDEX target_idx ON road_network("target");
ALTER TABLE road_network ADD COLUMN length double precision;
UPDATE road_network SET length = length(the_geom);
ALTER TABLE road_network ADD COLUMN reverse_cost double precision;
UPDATE road_network SET reverse_cost = length;
ALTER TABLE road_network ADD COLUMN x1 double precision;
ALTER TABLE road_network ADD COLUMN y1 double precision;
ALTER TABLE road_network ADD COLUMN x2 double precision;
ALTER TABLE road_network ADD COLUMN y2 double precision;
UPDATE road_network SET x1 = x(ST_PointN(the_geom, 1));
UPDATE road_network SET y1 = y(ST_PointN(the_geom, 1));
UPDATE road_network SET x2 = x(ST_PointN(the_geom, ST_NumPoints(the_geom)));
UPDATE road_network SET y2 = y(ST_PointN(the_geom, ST_NumPoints(the_geom)));
alter table road_network add column cost double precision default 0;
update road_network set cost=0.1 where type='NH';
update road_network set cost=0.2 where type='SH';
update road_network set cost=0.3 where type='major';
update road_network set cost=0.4 where type='minor';
update road_network set cost=1.2 where type='colony';
Этот запрос я использую для маршрутизации в pgrouting?
Мой запрос Можно ли создать маршрутизацию в MSSQL?
Если да, какие функции доступны в SQL Spatial?
1 ответ
В общем, все методы PostGIS, которые реализуют спецификацию SQL-MM (вы можете посмотреть их здесь для примера - у них есть соответствующий комментарий), имеют свои аналоги в SQL Server, потому что тип данных геометрии совместим с SQL-MM (стандарт ISO).
Все функции маршрутизации / пространственные функции из вашего кода существуют в SQL Server.