Kom ihåg mig?
Home Menu

Menu


Avstånd mellan städer

Ämnesverktyg Visningsalternativ
Oläst 2008-03-31, 18:15 #1
linus1 linus1 är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 70
linus1 linus1 är inte uppkopplad
Medlem
 
Reg.datum: Jan 2004
Inlägg: 70
Hej.


Jag håller på med ett litet script och behöver räkna ut hur långt det är från Stad (a) till stad (B) fågelvägen i Sverige.

Hur löser jag detta lättast?

Dela upp sverige i ett koordinatsystem på en X & Y-axel, där sedan en ruta mellan de olika axlarna blir 10km. Då kan jag få reda på det i 10tal KM..?
linus1 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-03-31, 19:19 #2
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Kristoffer G Kristoffer G är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2007
Inlägg: 1 014
Skulle man inte kunna använda google maps för detta? Har för mig att det finns möjlighet för det... kan ha fel dock.

Edit*

http://maps.google.se/
Där kan du plocka ut en vägbeskrivning från punkt a till punkt b. Borde inte vara så krångligt att bygga upp din egen google maps funktion där du räknar ut avståndet mellan punkt a till punkt b (inte fågelvägen dock).
Kristoffer G är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 00:00 #3
totoos avatar
totoo totoo är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2006
Inlägg: 730
totoo totoo är inte uppkopplad
Mycket flitig postare
totoos avatar
 
Reg.datum: Nov 2006
Inlägg: 730
Du kan ju plocka fram en godtycklig koordinatdatabas för svenska orter, typ sådana som är anpassade för GEOIP. Sedan tar du reda på vad det är för projektion, och sedan kan du räkna om koordinaterna och få ut avstånd.

Dock kan det säkerligen ibland fela på flera mil eftersom man har en (1) koordinat per stad - och staden kan ju vara flera mil i radie, och har man otur kan koordinaten finnas i stadens utkant. Men det fungerar!
totoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 00:03 #4
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Uhm, har en gammal kod för detta, dock i vb.net, men det ska väl inte vara alltför svårt att se hur man gör?:

Kod:
Public Function nGetDistance(ByVal nLat1 As Double, ByVal nLong1 As Double, ByVal nLat2 As Double, ByVal nLong2 As Double) As Double
	'Returns the distance in kilometers between two set of coordinates. Coordinates must be converted to decimals first (use sDegreesToDecimalPos())
	Const kEarthRadiusKms As Double = 6376.5
	Dim nDistance As Double = Double.MinValue
	Dim nLat1InRad As Double = nLat1 * (Math.PI / 180)
	Dim nLong1InRad As Double = nLong1 * (Math.PI / 180)
	Dim nLat2InRad As Double = nLat2 * (Math.PI / 180)
	Dim nLong2InRad As Double = nLong2 * (Math.PI / 180)
	Dim nLongitude As Double = nLong2InRad - nLong1InRad
	Dim nLatitude As Double = nLat2InRad - nLat1InRad
	Dim a As Double = Math.Pow(Math.Sin(nLatitude / 2), 2) + Math.Cos(nLat1InRad) * Math.Cos(nLat2InRad) * Math.Pow(Math.Sin(nLongitude / 2), 2)
	Dim c As Double = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a))
	nDistance = kEarthRadiusKms * c
	Return nDistance
End Function


Public Function sConvert_DegreesToDecimalPos(ByVal nDegrees As Int32, ByVal nMinutes As Int32, ByVal nSeconds As Int32) As Decimal
	'Converts the recieved NMEA(WGS-84) location to a decimal number. (DEGREES+(MINUTES+(SECONDS)/60)/60)
	Return nDegrees + (nMinutes + (nSeconds) / 60) / 60
End Function
Robert är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 00:57 #5
totoos avatar
totoo totoo är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2006
Inlägg: 730
totoo totoo är inte uppkopplad
Mycket flitig postare
totoos avatar
 
Reg.datum: Nov 2006
Inlägg: 730
För att informationen ska vara korrekt så måste det vara samma projekton. Koordinaterna kan alltså vara framtagna enligt olika modeller, och matematiken bör anpassas därefter.
totoo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-04-01, 08:28 #6
Roberts avatar
Robert Robert är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jan 2004
Inlägg: 2 103
Robert Robert är inte uppkopplad
Klarade millennium-buggen
Roberts avatar
 
Reg.datum: Jan 2004
Inlägg: 2 103
Citat:
Originally posted by totoo@Apr 1 2008, 00:57
För att informationen ska vara korrekt så måste det vara samma projekton. Koordinaterna kan alltså vara framtagna enligt olika modeller, och matematiken bör anpassas därefter.
Jotack jag vet då denna funktion är plockad ifrån en sådan app som jag gjorde. Den som används för ovanstående är den som jag inte kommer på namnet på just nu (sitter inte hemma) men det är den i särklass vanligaste standarden i gps'er mm, den kan heta som det står i kommentaren, dvs NMEA(WGS-84)

edit: glömde säga att bilden på kartan måste givetvis vara framtagen korrekt även den + att den måste kalibreras. Det här var den del som jag upplevde gav mest kli i skallen...
Robert är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:02.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017