(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi |
|
Alati teme | Način prikaza |
|
25. 09. 2013. | #1 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Slozena geometrija - formula
Imam jedan veliki problem koji pokusavam da resim vec dosta dugo, pokusao sam dosta toga (arcgis i sl) ali nikako ne ide...
Radim sa google mapama i dobijem rutu izmedju dve tacke kao i tacke izmedju koje ih povezuju. CODE: Kôd:
var request = { origin: document.getElementById("from").value, destination: document.getElementById("to").value, travelMode: google.maps.DirectionsTravelMode.DRIVING } // Make the directions request directionService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsRenderer.setDirections(result); var crtamLinijuUzPut= new google.maps.Polyline({ path: result.routes[0].overview_path, strokeColor: '#000', strokeOpacity: 0.5, strokeWeight: 100 }); crtamLinijuUzPut.setMap(map); } else { alert("Directions query failed: " + status); } }); result.routes[0].overview_path - Ovde se nalaze sve tacke izmedju lokacija koje kada se povezu dobija se ruta. Ono sto bi zamolio nekog ovde ukoliko je radio ili zna kako se radi da prevede ovu formulu koju sam nasao a koja radi upravo ono sto mi treba, a to je da uzima vrednosti koordinata od tacaka pravi poligon. FORMULA: http://dev.gentoo.org/~dberkholz/tut...o/siggraph.pdf | | |_____________ _Pi_____ | |arccos(1-s*flatness/width) | | Ovo je neki Convolution algoritam ali ne znam kako da ga upotrebim nazalost ONO sto zelim da postignem: Znaci uz pomoc ovog skupa tacaka da dobijem nov skup tacaka pomocu koga moze da se nacrta poligon koji bi ustvari oznacavao podrucje na mapi , npr. 5 km od puta... Gajba piva za svakog ko pomogne |
25. 09. 2013. | #2 | |||
član
Certified
Datum učlanjenja: 23.02.2012
Poruke: 92
Hvala: 0
1.169 "Hvala" u 15 poruka
|
Tvoj problem je sto stalno trazis neka gotova resenja za sve sto ti padne napamet. Probaj malo da se poigras i napravices to sto trazis.
prvo kopiraj niz koordinata u novi array: Citat:
Citat:
Citat:
|
|||
"Hvala" Anakin14 za poruku: |
25. 09. 2013. | #3 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
I
Ja sam uradio isto to samo na malo drugaciji nacin ali opet ne radi savrseno tj. u nekim slucajevima je odlicno a u nekim dolazi do presecanja linija: Kôd:
directionService.route(request, function(result, status) { if (status == google.maps.DirectionsStatus.OK) { directionsRenderer.setDirections(result); var r = []; var z = 0.5; var bla = result.routes[0].overview_path; for(var i=0 in result.routes[0].overview_path) { r.push(new google.maps.LatLng(bla[i].lat()+z, bla[i].lng()-z)); } bla.reverse(); for(var x=0 in bla) { r.push(new google.maps.LatLng(bla[x].lat()-z, bla[x].lng()+z)); } var prva = new google.maps.Polyline({ path: result.routes[0].overview_path, strokeColor: "#00000", strokeOpacity: 1.0, strokeWeight: 2 }); prva.setMap(map); druga = new google.maps.Polygon({ paths: r, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#FF0000", fillOpacity: 0.35 }); druga.setMap(map); } else { alert("Directions query failed: " + status); } }); ali ovde na drugom primeru kada ruta ide nanize ondak izgleda ovako: Ali upravu si , sad zaista pocinje ono najteze a to je odrediti pravac prostoranja a moja znanja matematike su po tom pitanju jako slaba. Svaka pomoc dobrodosla. tu postoji jos jedan problem priliko pravca prostiranja a to je kruzna ruta... Poslednja izmena od mslavko : 25. 09. 2013. u 16:35. |
25. 09. 2013. | #4 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
|
05. 10. 2013. | #5 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
odg
Mogu reci da sam korak blize resenju: DEMO: http://jsbin.com/uTATePe/6
KOD: http://jsbin.com/uTATePe/6/edit ali opet na dole prikazanoj slici imam problema sa suzenjem paralelnih linija s obzirom da rastojanje mora da bude svda jednako KAKO TO DA RESIM? Poslednja izmena od mslavko : 05. 10. 2013. u 16:37. |
06. 10. 2013. | #6 |
Ivan Dilber
Sir Write-a-Lot
|
Nemam vremena da gledam kod, ali mi izgleda kao da je problem sto ne pravis ove "unutrasnje" petlje koje su prikazane na figure 5. iz tvog prethodnog posta.
Ocigledno treba detektovati konkavnu stranu krive (verovatno kad ugao bude manji od nekog X) pa napraviti taj trace-back da bi se kompenzovalo kasnjenje u skretanju. EDIT: krenuo sam nesto da filozofiram oko toga kako se rade ti koraci unazad, ali bolje da ne lupam, sigurno ima negde objasnjeno tacno
__________________
Leadership is the art of getting people to want to do what you know must be done. Poslednja izmena od ivanhoe : 06. 10. 2013. u 04:12. |
06. 10. 2013. | #7 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Pa ima: http://antigrain.com/research/adaptive_bezier/ ali mi je sve totalno konfuzno
|
14. 10. 2013. | #8 |
profesionalac
Professional
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
|
Na korak do resenja
Konacno posle dugo dugo lutanja sam nasao kod koji moze da mi zavrsi posaotj. kod koji pravi offset poligon na osnovu linije: http://jsbin.com/oVIcowo/1/edit
Ovde kao sto vidite pravi se poligon na osnovu niza tacaka: Kôd:
var polygons = [[{"X":72,"Y":59.45},{"X":136,"Y":66},{"X":170,"Y":99},{"X":171,"Y":114},{"X":183,"Y":125},{"X":218,"Y":144},{"X":218,"Y":165},{"X":226,"Y":193},{"X":254,"Y":195},{"X":283,"Y":195},{"X":292,"Y":202},{"X":325,"Y":213},{"X":341,"Y":234},{"X":397,"Y":245},{"X":417,"Y":248}]]; Kôd:
var polygons = response.routes[0].overview_path; Medjutim opet nemogu da iscrtam poligon oko rute U konzoli nema gresaka. |
Alati teme | |
Način prikaza | |
|
|