DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > (X)HTML, JavaScript, DHTML, XML, CSS
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi

Odgovori
 
Alati teme Način prikaza
Staro 25. 09. 2013.   #1
mslavko
profesionalac
Professional
 
Avatar mslavko
 
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
mslavko is on a distinguished road
Default 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
mslavko je offline   Odgovorite uz citat
Staro 25. 09. 2013.   #2
Anakin14
član
Certified
 
Datum učlanjenja: 23.02.2012
Poruke: 92
Hvala: 0
1.169 "Hvala" u 15 poruka
Anakin14 is on a distinguished roadAnakin14 is on a distinguished roadAnakin14 is on a distinguished roadAnakin14 is on a distinguished roadAnakin14 is on a distinguished roadAnakin14 is on a distinguished roadAnakin14 is on a distinguished roadAnakin14 is on a distinguished roadAnakin14 is on a distinguished road
Default

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:
arraygore = result.routes[0].overview_path.slice(0);
zatim mu povecaj koordinate pozelji (izracunaj koliko povecanje je 5km)

Citat:
for (var i = 0; i < arraygore.length; i++) {
arraygore[i].nb = arraygore[i].nb + 0.5;
}
zatim nacrtaj novu liniju

Citat:
var crtamLinijuUzPutGore= new google.maps.Polyline({
path: arraygore,
strokeColor: '#000',
strokeOpacity: 0.5,
strokeWeight: 100
});

crtamLinijuUzPutGore.setMap(map);
sve ovo ponovi sa smanjivanjem koordinata i dobices jos 2 linije gore i dole od tvoje linije za onoliko koliko si povecao/smanjio koordinate. Posto hoces da racunas objekte u blizini puta ne treba ti ovo sto si nacrtao da i od starta i i cilja imas ceo krug od 5km, vec ti je dovoljno da u pravcu kretanja levo i desno od puta gledas rastojanje, sto bi ovako trebao da dobijes. E ovo je samo pocetak price, moras da racunas i pravac prostiranja jer ovo vazi apsolutno tacno samo za put koji se prostire "horizontalno" na mapi, moras da napravis funkciju koja izracunava pravac prostiranja da bi znao koje koordinate da povecavas i smanjujes, jer ako koristis uvek istu funkciju u slucaja puta jug-sever dobices liniju koja svaku tacku pomera na gore umesto na levo i desno, ako me razumes.
Anakin14 je offline   Odgovorite uz citat
"Hvala" Anakin14 za poruku:
Staro 25. 09. 2013.   #3
mslavko
profesionalac
Professional
 
Avatar mslavko
 
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
mslavko is on a distinguished road
Default 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);
    }
  });
Evo ovde npr. je ekstra:



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.
mslavko je offline   Odgovorite uz citat
Staro 25. 09. 2013.   #4
mslavko
profesionalac
Professional
 
Avatar mslavko
 
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
mslavko is on a distinguished road
Default

mslavko je offline   Odgovorite uz citat
Staro 05. 10. 2013.   #5
mslavko
profesionalac
Professional
 
Avatar mslavko
 
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
mslavko is on a distinguished road
Default 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.
mslavko je offline   Odgovorite uz citat
Staro 06. 10. 2013.   #6
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default

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.
ivanhoe je offline   Odgovorite uz citat
Staro 06. 10. 2013.   #7
mslavko
profesionalac
Professional
 
Avatar mslavko
 
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
mslavko is on a distinguished road
Default

Pa ima: http://antigrain.com/research/adaptive_bezier/ ali mi je sve totalno konfuzno
mslavko je offline   Odgovorite uz citat
Staro 14. 10. 2013.   #8
mslavko
profesionalac
Professional
 
Avatar mslavko
 
Datum učlanjenja: 25.10.2012
Poruke: 278
Hvala: 16
32 "Hvala" u 9 poruka
mslavko is on a distinguished road
Default 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}]];
Ja sam u mom primeru ovo napisao ovako:

Kôd:
  var polygons = response.routes[0].overview_path;
a ostali deo koda dodao : http://jsbin.com/uTATePe/9/edit

Medjutim opet nemogu da iscrtam poligon oko rute
U konzoli nema gresaka.
mslavko je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum


Vreme je GMT +2. Trenutno vreme je 17:23.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.