Till att börja med så behöver vi som använder Linux som server sätta rättigheter på mappen ../workspaces/styles/ så att vi kan föra över filer dit via FTP. Motsvarande katalog finns även på Windows system och det är här alla filer som beskrivs här skall hamna.
sudo chmod -R 777 /usr/share/opengeo-suite-data/geoserver_data/styles/
Jag skall försöka skapa egna symboler för ett lager med punkter med ”geocacher” i Jönköpings län. Vill du veta mer om ”geocaching” så kan du besöka www.geocaching.se. Jag har tidigare använt detta lager för att skapa pop-up rutor i Google Earth.
Jag skapar en symbol och sparar den i PNG format, så att transparens följer med symbolen. Det skall gå att använda flera olika format men just nu skall jag prova PNG.
Sedan skapar jag en enkel SLD fil som hänvisar till den bildfil jag skapat. Så länge SLD fil och bild ligger i samma katalog så behövs inte fullständiga sökvägar. Detaljer om hur man skapar SLD filer går att hitta i exempelvis dokumentationen för GeoServer, så jag går inte in på detaljer här och nu utan sparar detta till kommande inlägg, men så här ser skriptet ut:
<?xml version="1.0" encoding="ISO-8859-1"?> <StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <NamedLayer> <Name>Geocache punkt</Name> <UserStyle> <Title>Geocacheing i Jönköpings län</Title> <FeatureTypeStyle> <Rule> <PointSymbolizer> <Graphic> <ExternalGraphic> <OnlineResource xlink:type="simple" xlink:href="SLD-geocache.png" /> <Format>image/png</Format> </ExternalGraphic> <size>16</size> </Graphic> </PointSymbolizer> <TextSymbolizer> <Label> <ogc:PropertyName>name</ogc:PropertyName> </Label> <Font> <CssParameter name="font-family">Arial</CssParameter> <CssParameter name="font-size">10</CssParameter> <CssParameter name="font-style">normal</CssParameter> <CssParameter name="font-weight">bold</CssParameter> </Font> <LabelPlacement> <PointPlacement> <AnchorPoint> <AnchorPointX>0.0</AnchorPointX> <AnchorPointY>0.5</AnchorPointY> </AnchorPoint> <Displacement> <DisplacementX>10</DisplacementX> <DisplacementY>0</DisplacementY> </Displacement> </PointPlacement> </LabelPlacement> <Fill> <CssParameter name="fill">#000000</CssParameter> </Fill> <Halo> <Radius>1</Radius> <Fill> <CssParameter name="fill">#FFFFFF</CssParameter> </Fill> </Halo> </TextSymbolizer> </Rule> </FeatureTypeStyle> </UserStyle> </NamedLayer> </StyledLayerDescriptor>
Jag överför bildfilen till styles mappen på servern med FTP och öppnar GeoServern i webläsaren. Under ”Styles” så väljer jag att skapa en ny stil och importerar den SLD fil jag nyss skapat. Använd ”Validate” och ”Submit” för att spara stilmallen.
Sedan är det bara att välja stilen för det avsedda lagret och voila!
Ovan: Quantum GIS med Google Maps som bakgrund. Nedan: Google Earth.
Presentationen i Google Earth ändras när antalet objekt blir tillräckligt hanterbart, exempelvis så ändras etiketterna och halon försvinner, vi får se om jag hittar en lösning på detta senare.
Om du jobbar mycket med bilder och framför allt ändrar och uppdaterar bilderna på servern så kommer du att märka att ändringen inte slår igenom direkt. Servern ”cachar” bilderna och det dröjer ett bra tag för dem att uppdateras. Det går dock att manuellt nollställa cachen genom att klicka på ”Clear” vid ”Resource Cache” på ”Server Status” sidan:
Riktigt bra site, så här långt. Men snälla, sätt ALDRIG rättigheten 777 på något utan att man vet exakt vad man gör, vilket kort är att om man sätter 777 så vet man inte vad man gör (när det gäller säkerhet och rättigheter i Linux).
Den sista oktala siffran skall aldrig vara något med w-rättigheten, så 6 skulle vara ok.
Tja, vill man ge alla fullständiga rättigheter så är det 777 som gäller. Men du har helt rätt att man inte skall ge ut mer rättigheter än vad som krävs och det är sällan alla behöver kunna allt. Att låta vem som helst köra kod på en server är minst sagt dumt, men säkerhet kan läggas på flera nivåer. Jag skall läsa på lite mer och försöka att komma ihåg att testa vad som krävs som minimum i mina exempel, men det enklaste är tyvärr att vara lat och sätta 777 när man håller på att experimentera. Mitt fokus är framför allt användarvänlighet och verksamhetsnytta. Skall det in i en produktionsmiljö? Då skulle jag ta hjälp av experter för att säkerställa att inte för många dumheter begås när det gäller exempelvis IT-säkerhet. Bra kommentar dock och skicka gärna in ett gästinlägg som förklarar principer och risker med olika rättigheter. Är förresten inte ”6” just r+w ;-P