Mám databázi souřadnic všech českých keší a potřeboval bych je rozdělit do krajů. K waypointu bych chtěl v databázi přiřadit zkratku nebo název kraje. A ideálně nedělat to ručně, ale nějak automaticky.
např (nezkoušeno, jen pokus o nápad): sehnat hranice krajů, vytvořit v gsak filtry v gsak po krajích přes arc/poly filtr, makro, které aktivuje příslušné filtry a nastaví vyfiltrovaným keškám příznak kraje. Pokud nechceš použít gsak, tak by to asi šlo využít gpsbabel + nějaká obsluha kolem
Možná by to takhle šlo
Přiložený soubor je texťák kde co řádek, to cache. První je waypoint (GCxxx), druhý je název kraje a třetí je název města. Jako oddělovač je použit tabelátor. Je to z mojí databáze českých keší. Nejsou tam PM. Abych nebyl kamenován, tak tam nejsou souřadnice. Případně můžu takhle nějak přiřadit názvy k tvojí databázi. Nejlépe GPX
FHonza: to je přesně to, co bych potřeboval. Ještě nemám kompletně staženou ČR, tak počkám a za pár dnů bych se ozval. Docela by se mi hodilo, abych to potom dostal jako User note do GSAKu, zkusim vymyslet vhodny format. Díky. Jak to vlastně děláš?
Pavel1tu: je to dvanáct dotazů Pocket Query, viz zdejší wiki. Premium členství na měsíc stojí tři dolary, dnes tedy méně než šedesát korun. A můžeš si za tu dobu vygenerovat sto padesát dotazů s pěti sty položkami. Takže ano, někdo tady má účet, ale nic ti nevygeneruje; už proto, že to je proti pravidlům.
Ten seznam je moc pekny, ma jednu vadu, ze v nem nejsou archivovane cache. Premyslel jsem o statistice svych nalezu po krajich, na to by byly sikovnejsi ty mnohouhelniky + My Finds PQ + GPS Babel.
Nějaké archivované tam jsou, ale určitě nemám všechny. Ale když budu mít souřadnice, tak to není problém doplnit. Jinak mezi svátkama nástroj dodělám a dám k dispozici.
Chceš algoritmus na určení, zda je bod v mnohoúhelníku ? Pochopil jsem že GG děláš v pascalu, tak tady je (jediné co nerozlišuje je within a touches, ale to pro tyto případy nehraje roli):
function vpPointInRing(const C: TGeoPoint; const R: TGeoPoints; nPol: integer): boolean;
// je bod v polygonu ?
var i: integer;
begin
Result := false;
for i := 0 to nPol - 2 do
begin
if ((((R[i].Y <= C.Y) and (C.Y < R[i + 1].Y)) or
((R[i + 1].Y <= C.Y) and (C.Y < R[i].Y))) and
(C.X < (R[i + 1].X - R[i].X) * (C.Y - R[i].Y) / (R[i + 1].Y - R[i].Y) + R[i].X))
then Result := not Result;
end;
end;
Jo a nechtěj ho po mě vysvětlit, je už to dlouho Ale funguje a myslim že patří k těm nejrychlejším
A ještě mě napadlo, kdyby někdo chtěl hranice krajů, měst a pod, tak je mám v *.mp formátu (a legálně). Jsou to vlastně ty, ze kterých pepa.z.pocernic vycházel při generování mapy nálezů.
Diky za data, ted jsem si s tim chvili v GSAKu hral a je to moc pekne
Zajimave je, ze mi zbylo 12 kesi, ktere "nepatri" k zadnemu kraji, i kdyz jsou v Czech Republic (vetsinou jsou tesne na hranicich):
[cache]GC16ZXW[/cache] [cache]GCJQVY[/cache]
[cache]GC1591V[/cache] [cache]GC13QWY[/cache]
[cache]GC10445[/cache] [cache]GC101BQ[/cache]
[cache]GCX791[/cache] [cache]GCX1AB[/cache]
[cache]GCWPPN[/cache] [cache]GCRM3N[/cache]
[cache]GCPVDW[/cache] [cache]GCGKBG[/cache]
Je to dané přesností dat, zrovna kraje jsou tuším vektorizované z mapy 1:200 000. Zrovna hned ta první [cache]GC16ZXW[/cache] je špatně i na Yahoo i Google Map. Obávám že s tim nic udělat nelze (nebo v mapě udělat ručně malý "hraniční nádor" )