[OpenLayers-Users] Showing points from a database

Arnd Wippermann arnd.wippermann at web.de
Mon Sep 22 11:25:41 PDT 2014


Hi Niccolò,
 
if your vector data is in EPSG:4326, then you have to declare the projection
of the data in the options of your vector layer:
 
        map.addLayer(new OpenLayers.Layer.Vector("Continents (GML)", {
            protocol: new OpenLayers.Protocol.HTTP({
                url:
"../OL210/MapServer_WFS_Demo/MapServer_SHP/simple_continents.gml",
                format: new OpenLayers.Format.GML()
            }),
            projection:new OpenLayers.Projection("EPSG:4326"),   //<--
projection of the data, if not the same as the map
            attribution:'<a href="/OLClient/extension/OLClient Object
Browser.asp" target="OLCOB">Object Browser</a>',
            strategies: [new OpenLayers.Strategy.Fixed()]
        }));

see
http://gis.ibbeck.de/ginfo/apps/OLExamples/OLdev/prova_gml_dev.asp
 
Good Luck, Arnd

  _____  

Von: Niccolò Dal Santo [mailto:ncl.dalsanto at gmail.com] 
Gesendet: Sonntag, 21. September 2014 19:50
An: arnd.wippermann at web.de
Cc: openlayers-users
Betreff: Re: [OpenLayers-Users] Showing points from a database


At first ,thanks a lot for the help. 

Secondly, I don't know since this is an example downloaded by the internet.
However I have tried by inserting this line in my code

    map.setCenter(
        new OpenLayers.LonLat(0,0).transform(
            new OpenLayers.Projection("EPSG:4326"),
            map.getProjectionObject()
        ), 1
    );



So, this is my final code:

<html>
<head>
  <title>Prova GML</title>
    <script src="http://openlayers.org/api/OpenLayers.js"></script>
</head>
    <body>

<div id="ch3_cluster" style="width: 100%; height: 100%;"></div>


    <script type="text/javascript">


    var map = new OpenLayers.Map("ch3_cluster");    
    
    var layer = new OpenLayers.Layer.OSM("OpenStreetMap");
    map.addLayer(layer);
    
    map.addControl(new OpenLayers.Control.LayerSwitcher());
//    map.setCenter(new OpenLayers.LonLat(0,0), 2);

    map.setCenter(
        new OpenLayers.LonLat(0,0).transform(
            new OpenLayers.Projection("EPSG:4326"),
            map.getProjectionObject()
        ), 1
    );
            
    // World Cities
    var citiesLayer = new OpenLayers.Layer.Vector("World Cities (GeoJSON)", 
        {   protocol: new OpenLayers.Protocol.HTTP({
            url: "http://localhost/world_cities.json",
            format: new OpenLayers.Format.GeoJSON()
        }),
        strategies: [
            new OpenLayers.Strategy.Fixed(), 
            new OpenLayers.Strategy.Cluster({distance: 15})
        ]
    });
    map.addLayer(citiesLayer);



</script>
</body>
</html>

Now I have also tried with another and easier example found in the web but
it doesn't work as well, so I was wondering whether I am missing something
like a basic requirement or a Java updating or whatever in order to use
these features. What I have done is to download the library ( but the source
in this code should be the web as the first script states). Do you have any
idea on that?

Thank you very much!

Niccolò


2014-09-21 19:19 GMT+02:00 Arnd Wippermann <arnd.wippermann at web.de>:



Hi,
 
your map is in projection EPSG:900913 (OSM). 
Are your data also in this projection or perhaps in EPSG:4326 (lonlat)?
 
If so, it could be that your data are shown (at x=0,y=0), but you only can't
see them.
 
Regards,
Arnd

  _____  

Von: openlayers-users-bounces at lists.osgeo.org
[mailto:openlayers-users-bounces at lists.osgeo.org] Im Auftrag von Niccolò Dal
Santo
Gesendet: Freitag, 19. September 2014 23:11
An: Mark Prins
Cc: openlayers-users
Betreff: Re: [OpenLayers-Users] Showing points from a database


Thank you very much for your answer. I have therefore started to investigate
the possiblity to use the GeoJSON format, and now I am trying to train with
this format with this example but it doesn't work 

    <script type="text/javascript">

    var map = new OpenLayers.Map("my_map");

    
    var layer = new OpenLayers.Layer.OSM("OpenStreetMap");
    map.addLayer(layer);
    
    map.addControl(new OpenLayers.Control.LayerSwitcher());
    map.setCenter(new OpenLayers.LonLat(0,0), 2);
            
    var citiesLayer = new OpenLayers.Layer.Vector("World Cities (GeoJSON)", 

        {   protocol: new OpenLayers.Protocol.HTTP({
            url: "http://localhost/openlayers/world_cities.json",
            format: new OpenLayers.Format.GeoJSON()
        }),
        strategies: [
            new OpenLayers.Strategy.Fixed(), 
            new OpenLayers.Strategy.Cluster({distance: 15})
        ]
    });
    map.addLayer(citiesLayer);
</script>

In order to make the protocol work I have installed nginx on my laptop and
the url correctly points to the file world_cities.json in my browser. Anyway
this example doesn't work, any idea why?

Thanks! 
Niccolò

2014-09-19 15:54 GMT+02:00 Mark Prins <mc.prins at gmail.com>:


using plain text or (geo) json is much less error prone than using
GML, and probably gives better performance


2014-09-19 15:45 GMT+02:00 Niccolò Dal Santo <ncl.dalsanto at gmail.com>:
> Hi there,
>
> I am new of Openlayers and I need to show some points that come from a
> database on a map centred in Turin (Italy), with some information related
to
> this point (for instance an image). Searching on line I have found that
> Openlayers supports many formats of data like GML, KML, GeoJSON and many
> others. Could you suggest a format useful fror my problem and maybe some
> examples of how to use it?
>
> I have tried with this code generating a map of europe, but it doesn't
work
>
> <html>
> <head>
>   <title>Prova GML</title>
>     <script src="http://openlayers.org/api/OpenLayers.js"></script>
> </head>
>     <body>
>     <div id="ch3_gml" style="width: 100%; height: 100%;"></div>
>
>     <script type="text/javascript">
>
>         // Create the map using the specified DOM element
>         var map = new OpenLayers.Map("ch3_gml");
>
>         var layer = new OpenLayers.Layer.OSM("OpenStreetMap");
>         map.addLayer(layer);
>
>         map.addControl(new OpenLayers.Control.LayerSwitcher());
>         map.setCenter(new OpenLayers.LonLat(0,0), 2);
>
>         map.addLayer(new OpenLayers.Layer.Vector("Europe (GML)", {
>             protocol: new OpenLayers.Protocol.HTTP({
>                 url: "./europe.gml",
>                 format: new OpenLayers.Format.GML()
>             }),
>             strategies: [new OpenLayers.Strategy.Fixed()]
>         }));
>     </script>
> </body>
> </html>
>
> where europe.gml is a gml file in the same folder of this script, but
> nothing happens.
>
> Thank you very much for your help!
>
> Regards
>
> Niccolò
>
> --
> Niccolò Dal Santo
> +39 342 15 70 842 <tel:%2B39%20342%2015%2070%20842> 
> ncl.dalsanto at gmail.com
>

> _______________________________________________
> Users mailing list
> Users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-users



--
Disclaimer;
This message is just a reflection of what I thought at the time of
sending. The message may contain information that is not intended for
you or that you don't understand.
_______________________________________________
Users mailing list
Users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/openlayers-users




-- 
Niccolò Dal Santo 
+39 342 15 70 842
ncl.dalsanto at gmail.com


  _____  

 <http://www.avast.com/>  	
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus
<http://www.avast.com/>  Schutz ist aktiv. 





-- 
Niccolò Dal Santo 
+39 342 15 70 842
ncl.dalsanto at gmail.com


---
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
http://www.avast.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-users/attachments/20140922/68a86ff0/attachment-0001.html>


More information about the Users mailing list