(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi |
|
Alati teme | Način prikaza |
|
08. 11. 2013. | #1 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Poligon formula - algoritam
Da li postoji neka matematicka formula da se odredi da li odredjena tacka pripada poligonu?
Npr. Imamo sve tacke koje kada se spoje dobije se poligon i ostale tacke kojima je potrebno odrediti da li su unutar poligona? Verovatno postoji neka matematicka formula ili algortiam??? Najblize sto sam nasao je ovo: http://sr.wikipedia.org/sr/%D0%A1%D0...82%D0%B0%D0%BC |
08. 11. 2013. | #2 |
banned
Professional
Datum učlanjenja: 04.06.2005
Poruke: 371
Hvala: 0
738 "Hvala" u 83 poruka
|
Ukoliko ti je potebno za Google Maps Javascript API, u istom imaš metod containsLocation u okviru google.maps.geometry.poly
https://developers.google.com/maps/d...reference#poly
__________________
Don't look at me; I'm lost too. “If you can't dazzle them with brilliance, baffle them with bul*s**t.” |
08. 11. 2013. | #3 | |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Citat:
|
|
08. 11. 2013. | #4 |
mV
Certified
Datum učlanjenja: 22.08.2009
Lokacija: Novi Sad
Poruke: 67
Hvala: 0
16 "Hvala" u 13 poruka
|
Onako iz glave:
Tačka je u poligonu ako se nalazi unutar svih njegovih uglova. Nađi kako odrediti da li je unutar ugla i eto rešenja.
__________________
Quis custodiet ipsos custodies ? |
08. 11. 2013. | #5 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
teorijski da, takodje
odredi se tacka koja je u poligonu i tacka ciju pripdnost treba ispitati, pa ako linija koja spaja te dve tacke preseca poligon znaci da tacka ciju vrednost treba ispitati nije u poligonu, obrnuto jste u poligonu... sa neta sam naso ovo: Kôd:
function insidePoly(poly, pointx, pointy) { var i, j; var inside = false; for (i = 0, j = poly.length - 1; i < poly.length; j = i++) { if(((poly[i].y > pointy) != (poly[j].y > pointy)) && (pointx < (poly[j].x-poly[i].x) * (pointy-poly[i].y) / (poly[j].y-poly[i].y) + poly[i].x) ) inside = !inside; } return inside; } Poslednja izmena od mslavko : 08. 11. 2013. u 18:53. |
08. 11. 2013. | #6 |
Ivan Dilber
Sir Write-a-Lot
|
__________________
Leadership is the art of getting people to want to do what you know must be done. |
08. 11. 2013. | #7 |
Ivan Dilber
Sir Write-a-Lot
|
Jos lakse ti je da odredis tacku koja je sigurno van poligona (nju lako nadjes), spojis je linijom sa ovom drugom tackom i onda prebrojis koliko puta preseca ivice poligona. Ako je broj preseka neparan u poligonu je. Obrati paznju da moze da bude i paran broj preseka, u kom slucaju tacka nije u poligonu.
To se zove raycasting, ima detaljnije u onom Wiki clanku sto sam gore linkovao..
__________________
Leadership is the art of getting people to want to do what you know must be done. |
27. 11. 2013. | #8 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
A moze i ovako:
Kôd:
SELECT * from locations where GISWithin(location, GeomFromText('Polygon(( 1 1, 1 100,100 1, 1 1))')); |
30. 11. 2013. | #9 |
Ivan Dilber
Sir Write-a-Lot
|
To je za PostgreSQL ili je i mySQL dobio GIS funkcije?
__________________
Leadership is the art of getting people to want to do what you know must be done. |
30. 11. 2013. | #10 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Klasican mysql ali s obzirom da kolega radi backend deo (roadvoyage.com) nisam detaljno bas upoznat sa tim, ali mysql baza je upitanju...
|
|
|