21-02-2012, 09:45,
(Ten post był ostatnio modyfikowany: 21-02-2012, 09:46 {2} przez BIMSON.)
|
|
BIMSON
geofon
|
Liczba postów: 29
6
Dołączył: 13-04-2011
Reputacja:
0
|
|
GEOJSON Podmiana domyślnego markera + rotation
Witam
W openlayers dodałem warstwę wektorową na której wyświetlam plik geojson generowany z bazy MySQL.
KOD:
Kod: var vectorlayer = new OpenLayers.Layer.Vector("geojson", {
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "new.php",
format: new OpenLayers.Format.GeoJSON()
}),
// parametry opcjonalne
displayInLayerSwitcher: true,
});
Chce zamienić istniejący marker(domyślną kropkę) na własny i obracać go o kąt podany w parametrze feature.attributes['GPSImgDirection'].
Prosze o jakieś wskazówki.
Projekt do obejrzenia pod adresem: http://www.lukaszbimek.pl/gis/geojsongis.html
|
|
21-02-2012, 12:33,
|
|
BIMSON
geofon
|
Liczba postów: 29
6
Dołączył: 13-04-2011
Reputacja:
0
|
|
RE: GEOJSON Podmiana domyślnego markera + rotation
(21-02-2012, 10:10)Odoakr napisał(a): Wszystko jest tu:
http://docs.openlayers.org/library/feature_styling.html Zgodnie z przykładem i example'm który znalazłem chciałem zacząć od zmiany markera. Ale nadal wyświetla mi się domyślna kropka. Mój kod wygląda tak:
Kod: vectorlayer = new OpenLayers.Layer.Vector("geojson",{
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "new.php",
format: new OpenLayers.Format.GeoJSON()
}),
// parametry opcjonalne
displayInLayerSwitcher: true,
},{
styleMap: new OpenLayers.StyleMap({
"default": {
externalGraphic: "icon.png"
//graphicWidth: 17,
//graphicHeight: 20,
//graphicYOffset: -19,
// rotation: "${angle}",
// fillOpacity: "${opacity}"
},
"select": {
cursor: "crosshair",
//externalGraphic: "foto/icon/icon.png"
}
})
});
map.addLayers([gphy, gmap, ghyb, gsat, vectorlayer]);
|
|
21-02-2012, 13:15,
|
|
Odoakr
geoboss
|
Liczba postów: 264
36
Dołączył: 13-11-2009
Reputacja:
1
|
|
RE: GEOJSON Podmiana domyślnego markera + rotation
Z przykładów wynika, że wielkość tej grafiki jest określana przez pointradius.
Kod PHP: var s = new OpenLayers.Style({ 'pointRadius': 10, 'externalGraphic': '${thumbnail}' });
|
|
21-02-2012, 13:30,
|
|
BIMSON
geofon
|
Liczba postów: 29
6
Dołączył: 13-04-2011
Reputacja:
0
|
|
RE: GEOJSON Podmiana domyślnego markera + rotation
To nic nie dało.
Teraz mam tak :
Kod: var s = new OpenLayers.Style({
pointRadius: 10,
externalGraphic: "icon.png"
});
vectorlayer = new OpenLayers.Layer.Vector("geojson",{styleMap:s},
{
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "new.php",
format: new OpenLayers.Format.GeoJSON()
}),
// parametry opcjonalne
displayInLayerSwitcher: true
});
I wogóle nie wyświetla markerów, nawet tego domyślnego. Consola bez błędów
|
|
21-02-2012, 13:48,
|
|
Odoakr
geoboss
|
Liczba postów: 264
36
Dołączył: 13-11-2009
Reputacja:
1
|
|
RE: GEOJSON Podmiana domyślnego markera + rotation
Zdefiniowałeś obiekt klasy style, a w parametrach dodałeś nieistniejący obiekt klasy Stylemap
http://docs.openlayers.org/library/featu...le-objects
|
|
21-02-2012, 14:04,
|
|
BIMSON
geofon
|
Liczba postów: 29
6
Dołączył: 13-04-2011
Reputacja:
0
|
|
RE: GEOJSON Podmiana domyślnego markera + rotation
Ehh, no tak moje niedopatrzenie, zbyt często kopiuje kod
Zamieniłem tez pointRadius na konkretne wymiary markera.
Ale cały czas bez zmian, nie widać żadnego markera. Po modyfikacjach wygląda to tak:
Kod: var s = new OpenLayers.StyleMap({
fillOpacity: 1,
//pointRadius: 10,
graphicWidth:70,
graphicHeight:70,
externalGraphic: "icon.png",
rotation:'$(GPSImgDirection)'
});
vectorlayer = new OpenLayers.Layer.Vector("geojson",{styleMap:s},
{
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "new.php",
format: new OpenLayers.Format.GeoJSON()
}),
// parametry opcjonalne
displayInLayerSwitcher: true
});
|
|
21-02-2012, 14:55,
|
|
Odoakr
geoboss
|
Liczba postów: 264
36
Dołączył: 13-11-2009
Reputacja:
1
|
|
RE: GEOJSON Podmiana domyślnego markera + rotation
zmieniłeś, ale nie odkomentowałeś
|
|
21-02-2012, 15:07,
(Ten post był ostatnio modyfikowany: 21-02-2012, 15:07 {2} przez BIMSON.)
|
|
BIMSON
geofon
|
Liczba postów: 29
6
Dołączył: 13-04-2011
Reputacja:
0
|
|
RE: GEOJSON Podmiana domyślnego markera + rotation
(21-02-2012, 14:55)Odoakr napisał(a): zmieniłeś, ale nie odkomentowałeś Odkomentowanie nic nie dało.
Poza tym czytałem że albo używa się pointRadius albo dokładnych wymiarów graphicWidth i graphicHeight dlatego zakomentowałem.
|
|
21-02-2012, 15:17,
|
|
Odoakr
geoboss
|
Liczba postów: 264
36
Dołączył: 13-11-2009
Reputacja:
1
|
|
RE: GEOJSON Podmiana domyślnego markera + rotation
Jejku! Własnie zauważyłem, że w Twoim przykładzie jest więcej kodu. W złym miejscu masz styleMap. Wrzuć to tam gdzie masz strategies, albo displayInLayerSwither.
|
|
|