mapserver слои

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Аватара пользователя
qnx
Участник
Сообщения: 61
Зарегистрирован: 13 апр 2012, 12:10
Репутация: 0
Откуда: город-герой Киев

Re: mapserver слои

Сообщение qnx » 25 июн 2012, 19:23

а примерчек можно? там где-то наверное нужно через объект слоя добавлять?
КОЖЗГСФ

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: mapserver слои

Сообщение Denis Rykov » 26 июн 2012, 03:13

Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
qnx
Участник
Сообщения: 61
Зарегистрирован: 13 апр 2012, 12:10
Репутация: 0
Откуда: город-герой Киев

Re: mapserver слои

Сообщение qnx » 26 июн 2012, 11:57

на карте не отобразился даже вне аджакс метода добавляемый объект.
а на счет такого исполнения... возможно, что объект слоя еще не создан, при выхове для него метода, что он его не может добавить из-за порядка объявления слоя и метода обработки?

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

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<script src="http://maps.google.com/maps/api/js?v=3.6&sensor=false"></script>
    <script src="./ollib/OpenLayers-2.11/lib/OpenLayers.js"></script>
    <script type="text/javascript">
        var lon = 28.14985,
            lat = 49.89785,
            zoom = 15,
            epsg4326 = new OpenLayers.Projection('EPSG:4326'),
            epsg900913 = new OpenLayers.Projection('EPSG:900913');

        function init(){
            var map = new OpenLayers.Map('map', {
                units: 'm',
                maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
                maxResolution: 156543.0399,
                numZoomLevels: 19,
                controls: [
                    new OpenLayers.Control.Navigation(),
                    new OpenLayers.Control.ScaleLine(),
                    new OpenLayers.Control.MousePosition(),
                    new OpenLayers.Control.LayerSwitcher(),
                    new OpenLayers.Control.PanZoomBar()
                ],
                projection: epsg900913,
                displayProjection: epsg4326 //Is used for displaying coordinates in appropriate CRS by MousePosition control
            });


var StyleMap = new OpenLayers.StyleMap(OpenLayers.Util.applyDefaults(
                {fillColor: "green", fillOpacity: 1, strokeColor: "black", pointRadius: 12},
                OpenLayers.Feature.Vector.style["default"])
            );


OpenLayers.Format.shs666 = OpenLayers.Class(OpenLayers.Format.XML, {
read: function(data) {

	document.getElementById('textinfo').innerHTML=document.getElementById('textinfo').innerHTML + "1";

	var geometry = new OpenLayers.Geometry.Point(28.17242, 49.89951);

if (geometry && this.internalProjection && this.externalProjection) {
            geometry.transform(this.externalProjection, 
                               this.internalProjection);
      }

	var real_point = new OpenLayers.Feature.Vector(geometry, {
name: 'asdfasdf',
address: 'adddddres'
});

ajax_lay.addFeatures(real_point);

	var features = [];
        return features;
    }
});

 var ajax_lay = new OpenLayers.Layer.Vector("ajax_l", {
                projection: epsg4326,
                styleMap: StyleMap,
                strategies: [new OpenLayers.Strategy.Fixed(), new OpenLayers.Strategy.Refresh({interval: 5000})],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: "./dyn.xml",
                    format: new OpenLayers.Format.shs666()
                })
            });



            var lay_goo = new OpenLayers.Layer.Google('Google', {
                type: google.maps.MapTypeId.SATELLITE,
                sphericalMercator: true,
            });

            var lay_osm = new OpenLayers.Layer.Google('OSM');

            var vlayer = new OpenLayers.Layer.WMS( "Vector overlay", "http://192.168.56.193/cgi-bin/mapserv?map=/var/www/map2/fldwmsin.map",
                {
                    layers: 'fld,rd',
                    transparent: true
                },
                {
                    isBaseLayer: false
                } 
            );

            var rlayer = new OpenLayers.Layer.WMS( "Raster overlay", "http://192.168.56.193/cgi-bin/mapserv?map=/var/www/map2/fldwmsin.map",
                {
                    layers: 'rstr',
                    transparent: true
                },
                {
                    isBaseLayer: false
                } 
            );

OpenLayers.ProxyHost = "/py/proxy.php?url="; 

            var kml_layer = new OpenLayers.Layer.Vector("KML", {
                projection: epsg4326,
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: "http://ameno.control.ua/ol/wms/kml/kmlpolygon.kml",
                    format: new OpenLayers.Format.KML({
                        extractStyles: true,
                        extractAttributes: true
                    })
                })
            });

            var kml_pnt = new OpenLayers.Layer.Vector("KMLpnt", {
                projection: epsg4326,
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: "http://ameno.control.ua/ol/wms/kml/kmlpoint.kml",
                    format: new OpenLayers.Format.KML({
                        extractStyles: true,
                        extractAttributes: true
                    })
                })
            });

            var kml_ln = new OpenLayers.Layer.Vector("KMLln", {
                projection: epsg4326,
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: "http://ameno.control.ua/ol/wms/kml/kmlline.kml",
                    format: new OpenLayers.Format.KML({
                        extractStyles: true,
                        extractAttributes: true
                    })
                })
            });

            var kml_is = new OpenLayers.Layer.Vector("KMLis", {
                projection: epsg4326,
                strategies: [new OpenLayers.Strategy.Fixed()],
                protocol: new OpenLayers.Protocol.HTTP({
                    url: "http://ameno.control.ua/ol/wms/kml/intersection.kml",
                    format: new OpenLayers.Format.KML({
                        extractStyles: true,
                        extractAttributes: true
                    })
                })
            });

            vlayer.projection = "EPSG:3857"; 
            rlayer.projection = "EPSG:3857";        

var oosm = new OpenLayers.Layer.OSM("ooosm");
map.addLayers([oosm, lay_goo, lay_osm, rlayer, kml_layer, kml_pnt, kml_ln, kml_is, vlayer, ajax_lay]);

            map.setCenter(new OpenLayers.LonLat(lon, lat).transform(epsg4326, epsg900913), zoom);
        }
    </script>
  </head>
  <body onload="init()">
    <div id="map" style="width: 700px; height: 470px"></div>
 <div id="textinfo" style="width: 100%; height: *">asdfadfasd</div>
  </body>
</html>

КОЖЗГСФ

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: mapserver слои

Сообщение Denis Rykov » 26 июн 2012, 12:43

И зачем вы запихнули addFeatures внутрь определения формата? Конкретно при таком способе определения слоя в использовании addFeatures нет необходимости, объекты должны добавиться автоматически. Для начала напишите свой класс формата, если вы используете не стандартный, затем отладьте его, убедившись в том, что метод read возвращает то что нужно и потом уже используйте его при описании слоя.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
qnx
Участник
Сообщения: 61
Зарегистрирован: 13 апр 2012, 12:10
Репутация: 0
Откуда: город-герой Киев

Re: mapserver слои

Сообщение qnx » 27 июн 2012, 17:47

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

OpenLayers.Format.shs666 = OpenLayers.Class(OpenLayers.Format.XML, {
read: function(data) {

var split_data = data.split("<br>");

document.getElementById('textinfo').innerHTML="";

for (var i = 0; i < split_data.length - 1; ++i)
{
	//document.getElementById('textinfo').innerHTML=document.getElementById('textinfo').innerHTML + split_data[i] + "<br>";

	var part_of_machine = split_data[i].split("prm");

	var part_imei_of_machine = part_of_machine[0].split(";");

// id, imei, lon, lat, height, speed, direction, satellites, gps_u_time, diff_time

	var current_imei = part_imei_of_machine[0];
	var current_lon = part_imei_of_machine[1];
	var current_lat = part_imei_of_machine[2];
	var current_height = part_imei_of_machine[3];
	var current_speed = part_imei_of_machine[4];
	var current_direction = part_imei_of_machine[5];
	var current_stl = part_imei_of_machine[6];
	var current_u_tm = part_imei_of_machine[7];
	var current_diff = part_imei_of_machine[8];

	document.getElementById('textinfo').innerHTML=document.getElementById('textinfo').innerHTML + current_imei + " " + current_diff + " ";

	var real_prm = part_of_machine[1].split(";");
	for (var count_prm = 0; count_prm < real_prm.length - 1; ++ count_prm)
	{
		var current_prrm = real_prm[count_prm];
		var part_of_prrm = current_prrm.split(">");
		document.getElementById('textinfo').innerHTML=document.getElementById('textinfo').innerHTML + "[" + part_of_prrm[0] + "]" + part_of_prrm[1] + " ";
	}

	document.getElementById('textinfo').innerHTML=document.getElementById('textinfo').innerHTML + "<br>";
}

	var geometry = new OpenLayers.Geometry.Point(28.17242, 49.89951);

if (geometry && this.internalProjection && this.externalProjection) {
            geometry.transform(this.externalProjection, 
                               this.internalProjection);
      }

	var real_point = new OpenLayers.Feature.Vector(geometry, {
name: 'asdfasdf',
address: 'adddddres'
});

ajax_lay.addFeatures(real_point);

	var features = [];
        return features;
    }
});

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

357247011666167;28.8119729;50.1460498;231;9;125;7;1340808362;14prm25>51;94>0;95>0;96>0;97>0;98>0;99>0;100>0;101>0;102>0;103>191;105>0;106>1;107>0;110>250;111>-10653;235>0;<br>356895037112334;28.0937533;49.9087766;0;0;0;4;1340808354;23prm0>3;1>0;2>0;9>0;21>4;28>604;29>26;32>-1;33>0;66>11360;67>4305;70>35;78>0;90>0;91>1;92>649;93>25503;111>-1180;229>0;235>0;255>0;<br>356895039473866;28.0927533;49.9089483;0;7;98;4;1340807924;454prm0>3;1>1;2>0;9>0;21>19;28>575;29>39;66>12760;67>3165;70>33;78>0;90>0;91>0;92>0;93>25503;111>-13356;229>0;235>1;255>0;<br>
[imei] ; [lon] ; [lat] ; [height] ; [speed] ; [direction] ; [satellites] ; [gps_u_time] ; [diff_time] prm [номер параметра]>[значение параметра] ; [номер параметра]>[значение параметра] ; [номер параметра]>[значение параметра] <br>

вот ссылка на формат http://ameno.control.ua/ol/old/imai_1.php
код пока работает только в локалке на работе, потому показать как ссылку не получится(

парсер в коде.
и такой не читабильный формат получился. но благополучно распознаю координаты и необходимые мне параметры.

полный список всех параметров думаю выводить в divе, а необходимые в инфе объекта, и подгружать картинки в зависимости от некоторых свойств, а так-же перекрашивать в разные цвета маркеры от значения некоторых значений... и соответственно передвигать на нужные координаты.

Изображение

и вот так оно все на текущий момент смотрится.
КОЖЗГСФ

Daulet
Новоприбывший
Сообщения: 1
Зарегистрирован: 20 июл 2012, 10:44
Репутация: 0

Re: mapserver слои

Сообщение Daulet » 20 июл 2012, 11:02

msLoadMap(): Unknown identifier. Parsing error near ( FONTSET ):(line 7)!
Кто нибудь может объяснить что это означает?????

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: mapserver слои

Сообщение Denis Rykov » 20 июл 2012, 11:31

Ошибка парсинга, что-то не так написали.
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость