Tänkte påbörja ett litet projekt jag gått och funderat på en tid. Innan jag sätter igång tänkte jag först höra mig för här på wF vilka metoder som kan vara lämpliga för olika delar i denna applikation.
Jag hade tänkt försöka ta fram ett webbaserat färdplaneringsprogram för flygnavigering. Följande funktioner hade jag tänkt få med till att börja med:
- Grafisk karta av Sverige med möjlighet att utifrån kartan med musen välja geografiska brytpunkter för en flygning från punkt A till B.
- Utifrån kartan scannar en funktion av koordinaterna för var och en av brytpunkterna som anges.
- Med dessa koordinater som utgångspunkt beräknas kurs, vinduppehållningsvinklar (kompensation för vind), bränsleförbrukning och distans i en annan funktion.
- Jag håller på att försöka få tag på en fil från Luftfartsverket som innehåller alla navigationsfyrar, "no-fly-zones" osv som jag hade tänkt lagra i en databas och som sedan plottas på kartan.
Att rita upp kartan och få ut koordinater på den på rätt ställen har jag rätt bra koll på. Att beräkna sträcka och kurs torde gå att lösa med pytagoras sats mellan två punkter.
Det jag funderar över är hur jag på kartan (den genererade bilden) skall kunna plotta en lager med flygfyrar som ska vara klickbara, dvs man skall kunna ange en fyr som en brytpunkt och få den tillagd i en lista över brytpunkter. Vilken teknik kan man använda sig av här? Java? Övriga tankar och idéer är varmt välkomna! :)
För själva kartfunktionen, dvs där avändaren har möjlighet att scrolla i kartan tycker jag en lösning som den på http://www.hitta.se verkar lämplig.
Nu har jag inte någon vidare koll på hur de har programmerat denna funktion. När jag förde musen över de pilar som anger riktning såg jag att det var programmerat med (delvis iaf) hjälp av javascript. Någon som har erfarenhet av en sådan här implementation?
Skulle bli glad om någon kunde med lite tips i rättning iaf så får jag fortsätta forska i vad som är den smidigaste lösningen!
idag stödjer mysql spatial data, fyll den och använd
mapserver el. geoserver för att rendera upp din karta.
du kan läsa på Spatial databaser hos Oracle, de ha mycket utlagt
på sin site - otn.
har testat båda.
Geoserver är byggt i Java, så har du erfarenhet av Java och tänker
göra ditt program där du har möjlighet att köra tex tomcat så är det
en god idé ... de flesta web-hotell har dock inte tomcat som tillval.
Mapserver använder sig av php ... de flesta webhotell stödjer det.
båda är väldokumenterade och det finns god hjälp online
om du kör fast, om du läser lite på spatiala databaser så är
du i luften ganska snart ... flyger fram liksom ;)
Du menade alltså att jag gör själva kartan med hjälp av dessa?! Nu har jag kollat runt på lantmäteriverkets hemsida och de har en översiktskarta 1:500 000 i rasterformat som man kan bygga på med olika lager. Är det ett alternativ att utgår ifrån (om vi säger att man är beredd att betala några kronor för kartmaterialet)?
Sedan är avsikten att lägga in alla flygrelaterade objekt i en databas som man sedan ritar på den redan betfintliga rasterkartan. Hur låter detta tänk?
Hur ska jag konvertera värdena högst upp så att de stämmer in på dessa värden jag har i min kod nu? Jag är osäker på exakt i vilket format deras koordinater är angivna i?
Koordinaterna är i RT90. Det är relativt komplicerat att konvertera mellan dessa system. I ett tidigare sammanhang hjälpte jag någon annan medlem genom att posta lite c-kod som utför transformeringen. Den koden finns fortfarande kvar bland mina filer: http://member.webforum.nu/2030/CoordTransformation.cpp
Konverteringen börjar i följande funktion:
int CCoordTransformation::RT2WGS84(double x, double y, double *lat, double *lon)
Den funktionen går vidare i en kedja till en mängd andra funktioner för att beräkna mellan olika ellipsoider. Eftersom du förmodligen inte kan använda c-koden direkt i din tillämpning, får du se det som att du i och med detta, får tillgång till de nödvändiga formler du måste räkna enligt.
Observera att när du väl har kommit in till wgs84-koordinater, är det inte bara att använda Pythagoras sats för några avståndsberäkningar. Den satsen skulle faktiskt fungera bättre för RT90-koordinater, vilka helt enkelt beskriver ett koordinatsystem i meter. Gradernas längd varierar ju med latituden och riktningen.
Puhh...känns inte helt lätt men jag ger mig inte :) Jag ska undersöka c-koden så får jag återkomma. Vad gäller avståndsberäkningar så har jag hunnit läsa lite mer om det nu. Om jag har fattat det rätt finns det avståndsfunktioner (bland många andra) i databaser som har stöd för spatial data. Då sköter ju databasen om räknandet för att få fram avstånd mellan två koordinater!
Äntligen har jag gått min GIS-bok som jag beställt. Ska begrava huvudet i den de närmaste dagarna. Här ska det produceras kartor! Återkommer när jag kommit en bit på väg och förstår hur saker och ting hänger ihop :)
265 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25