Přejít na obsah


Fotka

Vincenty SQL

geoget

  • Pokud chcete vložit odpověď, přihlašte se
45 odpovědí na toto téma

#41 tarmara

tarmara

    Air-cooled

  • Members
  • PipPipPip
  • 974 příspěvků(y)

Publikováno 01 listopad 2017 - 21:47

jak by řekl Mistr Yoda: "hřebíček na hlavičku tys trefil!" :) Ale furt lepší, než kdyby jsme prolévali hrdla levnou lihovinou,nebo si nedej bůh píchaly tyhlety joiny...

 

...až se bude hledat případ nezměrného úsilí vynaloženého za zcela nicotným cílem, tohle hraní s SQL musí skončit na předních místech.


  • 4

#42 tarmara

tarmara

    Air-cooled

  • Members
  • PipPipPip
  • 974 příspěvků(y)

Publikováno 03 listopad 2017 - 11:16

Testování výkonu - vypadá to skvěle - pokud použiju testovací dotaz z blogu (před dvěma lety jsem si poznamenal dobu běhu a velikost databáze)

  • v db cca. 66000 keší (1530 nálezů) - dotaz běží cca 70s - funkce definované v SQLite studiu - SQL Great Circle
  • v db 87418 keší (2571 nálezů) - dotaz běží cca 100s - funkce definované v SQLite studiu - SQL Great Circle
  • v db 87418 keší (2571 nálezů) - dotaz běží cca 240s - funkce definované v SQLite studiu - SQL Vincenty
  • v db 87418 keší (2571 nálezů) - dotaz běží cca 90s - funkce definované v geo_vincenty.dll

Výkonově o maličko lepší oproti použití Great Circle metoda (jednoduchý vzoreček) z funkce SQLite studia - ale využívá se iterační VM, včetně složitějších výpočtů.

 

Extension tedy rapidně zrychlí výpočet VM.


  • 1

#43 kiReGPS

kiReGPS

    Advanced Member

  • Members
  • PipPipPip
  • 2 345 příspěvků(y)

Publikováno 03 listopad 2017 - 11:25

Hlavně "malinko" zjednoduší dotaz... :)

 

EDIT: Jinak výkonově je to až překvapivě blízko. Ta iterace v SQL funguje opravdu slušně rychle. Na to, že se ten příkaz nedá ani přečíst....


Tento příspěvek byl upraven od kiReGPS: 03 listopad 2017 - 11:29

  • 0

#44 tarmara

tarmara

    Air-cooled

  • Members
  • PipPipPip
  • 974 příspěvků(y)

Publikováno 03 listopad 2017 - 15:20

Kontrola "nearly antipodal" provedena na dvojici N50E10 S50.5W170.5 a úspěšně. úplně protilehlé body jsem taky zkoušel, ale to mi přijde jako goniometrická zvrhlost, která by měla být ošetřena. Každopádně na 99,99% použití to nemá vliv. V GG je použit následující check:

...
{  //check for antipodal points
  if IsAntipodal(gs.latitude1, gs.latitude2,
                gs.longitude1, gs.longitude2)  then
    begin
      result := WICANTIPODAL;
      exit;
    end;
}
...

Sice nevím s jakou přesností to bere (HaLuMa asi může dodat zdroják IsAntipodal), ale každopádně to je už pouhé "Nice to have"

 

Každopádně má Pe_Bo aspoň u mě spoustu nehynoucích díků za rychlou a kvalitně odvedenou práci a pokud bychom se někde potkali osobně bude mi ctí mu koupit pivo. Totéž se týká i dalších, kteří pomohli tohle mentální cvičení dotáhnout ke zdárnému konci....


Tento příspěvek byl upraven od tarmara: 03 listopad 2017 - 15:21

  • 0

#45 tarmara

tarmara

    Air-cooled

  • Members
  • PipPipPip
  • 974 příspěvků(y)

Publikováno 10 leden 2018 - 13:32

http://www.geocachin...centyho-metoda/


  • 1

#46 DrakMrak

DrakMrak

    Advanced Member

  • Members
  • PipPipPip
  • 3 346 příspěvků(y)

Publikováno 11 leden 2018 - 10:16

Taky dík možná překopu ten plugin na kontrolu 360° co mám udělaný :) nemusel by mít temp tabulku - zamyslím se nad tím a Pe_Bovi taky dík


  • 0

GPS: Oregon 550t + Nexus S
www pages: Dračí stránka Czech Geocaching on Facebook | GeoTřebíč
Pluginy GeoGet: Stator, Parking Cleaner, Logator, Degree360, GetMyFP a dalších...






Také označené jedním nebo více z těchto klíčových slov:geoget

2 uživatel(ů) prochází toto téma

0 uživatelů, 2 návštěvníků 0 anonymních uživatelů

Reklama