Страница 1 из 1

Отображение трека в OpenLayers

Добавлено: 10 окт 2011, 04:25
ArtIntellAnd
Здравствуйте, столкнулся с задачей отображения трека. Есть массив координат в php, как отобразить трек по этим координатам на OSM? Подскажите что почитать и если можно дайте пример :) Пока только использую отображение координат в виде маркеров через OpenLayers.Layer.Text

Re: Отображение трека в OpenLayers

Добавлено: 10 окт 2011, 06:09
Denis Rykov
Либо сохраняете ваши координаты GeoJSON формате в *.js файле:

Код: Выделить всё

var points = /* представление данных в формате GeoJSON*/ 
и просто подключаете его на страницу своего проекта. Либо, пишете серверный скрипт, извлекающий данные из некоторого хранилища и отдающий клиенту в поддерживаемом формате, например в том же GeoJSON. Затем на клиенте создаете векторный слой и с помощью метода addFeatures добавляете все ваши точки. Вот пример как это делается вручную:

Код: Выделить всё

buildingLayer = new OpenLayers.Layer.Vector("Points");
buildingLayer.addFeatures([
    new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-50.126, 36.755)),
    new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-100.196, 43.215)),
    new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-150.556, 56.615)),
    new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-170.423, 35.510))
]); 

Re: Отображение трека в OpenLayers

Добавлено: 10 окт 2011, 07:57
ArtIntellAnd
А можно трек нарисовать с момощью OpenLayers.Layer.PointTrack?? Если да :) то можно примерчик :)

Re: Отображение трека в OpenLayers

Добавлено: 10 окт 2011, 09:22
Denis Rykov
Можно и так:

Код: Выделить всё

track = new OpenLayers.Layer.PointTrack("Points");
trackr.addNodes([
    new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-50.126, 36.755)),
    new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-100.196, 43.215)),
    new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-150.556, 56.615)),
    new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(-170.423, 35.510))
]);  
Уже поднималась тема.
Немного поподробнее написал тут.