Keresés

Új hozzászólás Aktív témák

  • papa019
    senior tag

    Rájöttem, hogy végül is az a böngésző (!) normális viselkedése, hogy megjegyzi a kitöltött formelemeket, mert tulajdonképpen alapból a dialógust csak eltünteted akkor, amikor bezárod, nem pedig törlöd, és létrehozod újra a következő megnyitáskor.
    Ez korábban nem jutott eszembe, pedig a jQuery UI Dialog modal form példájában is látható, hogy a formelemeket "üríti" a bezáráskor:

    close: function() {
    allFields.val( "" ).removeClass( "ui-state-error" );
    }

    Az allFields-ben meg benne van a name, email, password mező is.
    Ezt a kódot tehát felhasználhatod hasonló célokra. :)

    Köszönöm. :R
    A fent említett sorra hibaüzenetet kapok:

    ReferenceError: allFields is not defined
    [Break On This Error]

    allFields.val( "" ).removeClass( "ui-state-error" );},

    Természetesen a dialog close paraméteréhez írtam, ahogy nálad is szerepel.
    De ez alapján a gondolatmenet alapján majd próbálkozom. :R

  • papa019
    senior tag

    Ja értem, tehát akkor egy jQuery UI Dialogot dobálsz fel, és ott maradnak meg a formelemek.
    Akkor ezek szerint PHP-hoz nincs köze, azt hittem, arról van szó, de ezek szerint ÚJ kategória hozzáadására szolgáló formon jön elő a gond.

    Ha jól értem, akkor a kérdésed igazából már csak arra irányul, hogy miért mentődnek el a mezők, a többi megoldódott akkor, nem? :D Ezt az elmentés-problémát minden böngészőben tapasztalod? Mert amúgy látszólag teljesen jól működik a kódod, amit belinkeltél. Vannak olyan extensionök/pluginek böngészőkhöz, amik elmentik az űrlap tartalmát, akár még az is beleszólhat... vagy ha van valami scripted az oldalon, ami ezért az elmentésért, visszaállításért felelős.
    Nálad itt, a jsFiddle-ön is "elmenti" az értékeket? (Ezt a böngésző-kiegészítő esetleges megléte miatt kérdezem.)

    Igen, minden más probléma megoldódott. :C
    Fiddle-ön nekem nem jegyzi meg a szöveg mező tartalmát... :(
    Akkor a kódom sajátossága lehet ez, ott nézelődjek, miért lehet?

  • papa019
    senior tag

    "Arra gondolok, hogy amikor betöltöm az oldalam és elmentek egy formot, akkor amikor a következő alkalommal megnyitom ismét, akkor a korábban elmentett adatok megjelennek az input fieldekben, a megjelölt select elemek is ugyanazok."
    Gondolom szerveroldalon kitölteted ismét. Akkor a szerveroldali kódot kellene módosítanod első körben, hogy üresen kapd meg a formot... vagy nem tudom, mire gondolsz, de alapvetően egy formnak teljesen üresnek kell lennie, hacsak ebbe valami nem szól bele, pl. az, hogy PHP-val kitöltöd előre. Bár egy elmentett formnál még jó, hogy szerkesztéskor így viselkedik...ahogy kell.

    Amiről beszéltél, arról tudsz feltenni valami példakódot jsFiddle-re szemléletetésként?
    Főleg ezt a vörös színezetet nem vágom.....feltételezem, ez valami validációs kód miatt kerül köré, mivel üres lett a form adott fieldje....

    clear_form_elements(document.getElementById('add_category_form'));
    Miért ragaszkodsz még mindig a plain JavaScripthez, ha jQuery-t használsz? :)

    clear_form_elements($('#add_category_form'));
    Ha már...

    Magára a chosen plugin használatára is mutathatnál példát szintén jsFiddle-ön keresztül, hogy ne nekünk kerüljön időbe, hogy összeállítsunk egy demót.

    A lényeg, hogy nem PHP-vel töltöm ki a formot, hanem olyan, mintha a böngészőm megjegyezné a field tartalmát és az ismét megjelenne a következő kitöltéskor. Ha abban tudsz segíteni, hogy ezt hogyan tudom megakadályozni, nekem az is jó a form "kiürítése" helyett. :B
    A piros "szegély": [link]
    Oh most esett le, hogy a required paraméter be van állítva erre a field-re. :B

    jsFiddle-ön egy nagyon alap kód ehhez: [link]

    A chosen meghívása gyakorlatilag ennyi:
    $('.category').load('category_load.php', function() {
    $('.category').chosen();});

    Ez nem ehhez a formhoz kell, ezért nincs "category" class a példakódban.

  • papa019
    senior tag

    Pontosan ez volt a gond. :D
    De most már tiszta a kép. :B

    Tud valaki valami tuti biztos megoldást egy form elemeinek kiürítésére?
    Arra gondolok, hogy amikor betöltöm az oldalam és elmentek egy formot, akkor amikor a következő alkalommal megnyitom ismét, akkor a korábban elmentett adatok megjelennek az input fieldekben, a megjelölt select elemek is ugyanazok. Ezeket szeretném eltüntetni.
    Én az alábbi kódot találtam erre, ami egyszerűnek tűnik számomra:

    function clear_form_elements(ele) {
    $(ele).find(':input').each(function() {
    switch(this.type) {
    case 'password':
    case 'select-multiple':
    case 'select-one':
    case 'text':
    case 'textarea':
    $(this).val('');
    break;
    case 'checkbox':
    case 'radio':
    this.checked = false;
    }
    });
    }

    Viszont ezzel több problémám is van. A jQuery chosen pluginja nem működik, ha használom. Egyszerűen nem jelenít meg semmit a select listában a plugin.
    Emellett az input fieldek körül megjelenik egy halvány vörös színezet.
    Nem jövök rá, hogy ez miért lehet... :(((

    A függvényt egyébként az alábbi módon hívom meg, mielőtt megjelenne maga a form egy jquery dialogban.

    clear_form_elements(document.getElementById('add_category_form'));

    Illetve a jQuery chosen plugin meghívása előtt töltök adatokat a megfelelő select mezőkbe, szóval nem az a gond, hogy üresek a mezők.

  • papa019
    senior tag

    Szívesen! :) Amúgy nem kérdeztél marhaságot, csak úgy tűnt, nem teljesen tiszta a kép.

    Pontosan ez volt a gond. :D
    De most már tiszta a kép. :B

  • papa019
    senior tag

    "És például valahogy úgy hívnám meg a függvényeket, hogy szam_fv.osszeadas(), stb.
    Tudom, hogy ha létrehoznék egy class-t, akkor abba tudnék függvényeket tenni, de én csak szimpán a függvényeket szeretném csoportokba rendezni..."

    Most megválaszoltad magadnak, akkor mi a kérdés? :DDD
    Miért nem jó neked az osztály? Pont az kell neked.

    Egyszerű példa:

    function Valami(){

    this.elso = function(){
    // ...........
    }

    this.masodik = function(arg){
    // ...........
    }

    // ...........
    }

    var valami = new Valami();
    valami.elso();
    valami.masodik(1234);

    Egy kicsit belekeveredtem a dologba... :B
    Köszönöm a segítséget. :R
    Valahogy éreztem, hogy nagy marhaságot fogok kérdezni... :(

  • papa019
    senior tag

    Most lehet, hogy óriási butaságot fogok kérdezni, de tudom valahogy csoportosítani a függvényeimet JS-ben?

    Egy példával illusztrálom, hogy mit szeretnék:

    Vannak mondjuk számok és szövegek, amiket kezelni szeretnék.
    Létrehozok két "könyvtárat", az egyikben a számokat kezelő függvények vannak, míg a másikban a szövegeket kezelők.
    És például valahogy úgy hívnám meg a függvényeket, hogy szam_fv.osszeadas(), stb.

    Tudom, hogy ha létrehoznék egy class-t, akkor abba tudnék függvényeket tenni, de én csak szimpán a függvényeket szeretném csoportokba rendezni...

  • papa019
    senior tag

    Így már igen működik, bár az kicsit fura, hogy az obj-nak az area property-je a polygon, majd az egész obj-ot beleteszed a polygonba. :) De hát így fog működni ezzel a módszerrel az igaz. Viszont itt egy példa ami szemlélteti, hogy különböző ciklusfajták hogy kezelik a handler függvényt. Ez alapján így is írhatnád:

    data = items;
    data.forEach(function(x) {
    ...
    var obj = {
    'name': x[i-4],
    ...
    'area': polygon
    };

    google.maps.event.addListener(polygon, 'click', function(event){
    showArrays(event, obj, this.getPath());
    });

    google.maps.event.addListener(polygon, 'rightclick', function(event){
    showContextMenu(event.latLng, obj);
    });

    ...
    })

    Köszönöm a példát. :R
    Tudom, hogy a pop() függvény az utolsó elemtől megy végig az obj-on és ráadásul ki is veszi belőle az elemeket, míg a for és a foreach gondolom nem. :)
    Szerintem át is írom ilyen alakra, amit írtál. :R

  • papa019
    senior tag

    Például egy új embernek, vagy neked később nehezebb lesz egyből megértened, mi is történik és szerintem egy .forEach() gyorsabb is mint így (bár ez csak nagy adatmennyiségnél lenne feltűnő).
    Másrészt nem az volt kezdetben a gondod, hogy csak az utoljára kiszedett tömb elemei kerülnek bele? A pop-os módszerrel ez így is van, de ha forEach-el csinálod, akkor az eventListener-ek handler függvényében, mindig az aktuális elemet tudod felhasználni és akkor így nem szükséges id. Remélem jól értelmeztem a problémát. :)

    Az volt a gondom, hogy nem tudtam beletenni az összes adatot a korábbi módszeremmel az obj változóba, igazából nem értettem, hogy hogy kellene megvalósítanom a dolgot.
    Nekem az adatok sorrendje teljesen mindegy, csak kirajzolom a polygonokat. :)
    Jelenleg az alábbi módon valósítottam meg a dolgot, remélem nem csináltam benne programozói hibát (végülis működik :DDD ).

    function process_data(items){
    var x;
    var data = new Array();
    data = items;
    while ( x = data.pop())
    {
    var i = 5;
    var y = x[i];
    var obj = {};

    var polygon = new google.maps.Polygon({
    paths: google.maps.geometry.encoding.decodePath(String(y)),
    strokeColor: "#0000ff",
    strokeOpacity: 1,
    strokeWeight: 1,
    fillColor: "#00ffba",
    fillOpacity: 0.4,
    editable: false
    });

    polygon.setMap(map);
    var obj = {
    'name':x[i-4],
    'description':x[i-3],
    'address':x[i-2],
    'wikipedia':x[i-1],
    'points':x[i],
    'category':x[i+1],
    'parent_area':x[i+2],
    'area':polygon
    };

    polygon.objInfo = obj;

    google.maps.event.addListener(polygon, 'click', function(event){
    showArrays(event,this.objInfo,this.getPath());
    }); //kattintásra megnyílik az infowindow
    google.maps.event.addListener(polygon, 'rightclick', function(event){
    //this.setMap();
    showContextMenu(event.latLng,this.objInfo);
    });

    infowindow = new google.maps.InfoWindow();
    }
    }

    function showArrays(event,obj,vertices) {

    var contentString = "<b>" + obj.name + "</b><br />";
    contentString += "Leírás: " + obj.description + "<br />";
    contentString += "Cím: " + obj.address + "<br />";
    contentString += "Wikipedia: <a href='http://hu.wikipedia.org/wiki/" + obj.wikipedia + "'>hehe</a><br />";
    contentString += "Kategória: " + obj.category + "<br />";
    contentString += "Szülõ terület: " + obj.parent_area + "<br />";
    contentString += "Clicked Location: <br />" + event.latLng.lat() + "," + event.latLng.lng() + "<br />";


    infowindow.setContent(contentString);
    infowindow.setPosition(event.latLng);

    infowindow.open(map);
    }

    A ShowContextmenu függvényt azért nem másoltam be, mert az még nincs kész. :B

  • papa019
    senior tag

    Nyilván nem is kell plusz lekérdezés, annyi adatot pakolhatsz bele objektumba, amennyit nem szégyellsz. :D
    De mire jó ez, hogy fordítva íratod ki?? :F Miért nem eleve az elvárt sorrendben érkezik szerveroldalról? Az ilyen nyakatekert kódoknak csak a kárát fogod látni a későbbiekben (ha még nem tapasztaltad, majd úgyis rájössz, tényleg).
    A kódodban sehol nem látom, hogy kigyűjtenéd azokat az adatokat, amelyekre neked tényleg szükséged van majd a térkép megjelenítéséhez, és az sem volt világos, hogy végül is milyen adatot szeretnél, hogy elérjen a Google Maps API pluszban.

    A térkép már inicializálva van ezelőtt a kód előtt. Ezzel annyit csinálok, hogy az adatbázisból lekért adatokból kirajzolom először a polygonokat és ennek az adatait akartam átvinni a másik függvénynek. Mindegyik polygon rendelkezik egy click és egy rightclick listenerrel, előbbire egy buborék jön fel, amiben csak szimplán kiírom az adatait, míg utóbbi esetben egy menü, amiben lehet választani, hogy törlöm vagy szerkesztem a polygont. Mindkét esetben szükségem van az adataira. A kódban csak a neve szerepelt, egyébként azóta már belekerült a leírása, címe, kategóriája, stb.
    A data tömbben a területek adatai sorban vannak (abban a sorrendben, ahogy az adatbázisban), viszont azt nem értem, hogy miért baj, hogy a pop() függvénnyel veszem ki belőle az adatokat, mert szerintem ebben az esetben teljesen irreleváns az, hogy milyen sorrendben rajzolom fel a térképre a területeket. Bár mindketten írtátok, hogy érdemes lenne sorban. Az én megoldásomnak (fordított sorrend) milyen hátulütője lehet a későbbiekben? :R

  • papa019
    senior tag

    Az adatokon való végigmenetellel nincs gondom, nekem jó ez így a pop() fügvénnyel.
    A problémám sokkal inkább az, hogy a kirajzolt polygonokra kattintva a kódom hogyan fogja tudni, hogy melyik adatok kellenek neki.

    Pédául tegyük fel van két poligonom.

    Ezeket úgy teszem be az obj-be, hogy: {2.name,2.data,1.name,1.data}
    Ugye pont fordítva lesznek az obj-ben, mint ahogy kivettem őket az adatbázisból.

    De ott van a gond, hogy a polygonra kattintva nem tudom megmondani, hogy az adott poligonhoz melyik tartozik, kellene adni egy id-t, vagy valamit a poligonnak kirajzoláskor, mert így csak a pontok alapján tudom beazonosítani, de azt akkor megint enkódolni kellene, ajax-al átvinni szerver oldalra és csinálni egy lekérdezést az adatbázisból és úgy már megkapnám az adatait.
    Viszont én szeretném a JS-ben valahogy átvinni ezeket az adatokat, hogy ne kelljen plusz lekérdezés.

    Sikerült megoldani ez alapján: [link]

  • papa019
    senior tag

    Próbálj meg így végigmenni a data tömbön:

    data.reverse().forEach(function(x){ ... })

    És az obj-t lokálisan hozd létre.

    Az adatokon való végigmenetellel nincs gondom, nekem jó ez így a pop() fügvénnyel.
    A problémám sokkal inkább az, hogy a kirajzolt polygonokra kattintva a kódom hogyan fogja tudni, hogy melyik adatok kellenek neki.

    Pédául tegyük fel van két poligonom.

    Ezeket úgy teszem be az obj-be, hogy: {2.name,2.data,1.name,1.data}
    Ugye pont fordítva lesznek az obj-ben, mint ahogy kivettem őket az adatbázisból.

    De ott van a gond, hogy a polygonra kattintva nem tudom megmondani, hogy az adott poligonhoz melyik tartozik, kellene adni egy id-t, vagy valamit a poligonnak kirajzoláskor, mert így csak a pontok alapján tudom beazonosítani, de azt akkor megint enkódolni kellene, ajax-al átvinni szerver oldalra és csinálni egy lekérdezést az adatbázisból és úgy már megkapnám az adatait.
    Viszont én szeretném a JS-ben valahogy átvinni ezeket az adatokat, hogy ne kelljen plusz lekérdezés.

  • papa019
    senior tag

    Elakadtam a munkában, az adatbázisból betöltött adatokat szeretném egy tömbben tárolni úgy, hogy a kirajzolt polygonokra jobb gombbal kattintva fel tudjam használni azok adatait. A kód:

    function process_data(items){
    var x;
    var data = new Array();
    data = items;
    while ( x = data.pop())
    {
    var i = 5; //egy elemnek az ötödik paramétere hordozza a koordinátáit
    var y = x[i];
    var obj = {};
    /*$('<ul/>', { // a kapott elem kiírása ellenõrzésképpen
    'class': 'my-new-list',
    html: y
    }).appendTo('#get_informations');*/

    var polygon = new google.maps.Polygon({
    paths: google.maps.geometry.encoding.decodePath(String(y)),
    strokeColor: "#0000ff",
    strokeOpacity: 1,
    strokeWeight: 1,
    fillColor: "#00ffba",
    fillOpacity: 0.4,
    editable: false
    });

    polygon.setMap(map);
    var zyx = x[i-4];
    obj = {
    'name':zyx,
    'area':polygon
    };

    google.maps.event.addListener(polygon, 'click', showArrays); //kattintásra megnyílik az infowindow
    google.maps.event.addListener(polygon, 'rightclick', function(event){
    showContextMenu(event.latLng,obj);
    });

    infowindow = new google.maps.InfoWindow();
    }
    }

    function showContextMenu(caurrentLatLng,obj) {
    var projection;
    var contextmenuDir;
    projection = map.getProjection() ;
    $('.contextmenu').remove();
    var a = "<a id='menu1'><div class='context'>Adatok szerkesztése</div></a>" +
    "<a id='menu2'><div class='context'>Körvonal szerkesztése</div></a>" +
    "<a id='menu3'><div class='context'>Törlés</div></a>";
    contextmenuDir = document.createElement("div");
    contextmenuDir.className = 'contextmenu';
    contextmenuDir.innerHTML = a;

    $(map.getDiv()).append(contextmenuDir);

    setMenuXY(caurrentLatLng);

    contextmenuDir.style.visibility = "visible";
    var x;
    x = obj.name;
    alert(x);


    $("#menu1").click(function(){
    alert("haha");
    });

    $("#menu2").click(function(){
    alert("haha");
    });

    $("#menu3").click(function(){
    alert("haha");
    });
    }

    A process_data függvényben megyek végig a tárolt adatokon, kirajzolom a kordináták segítségével a poligonokat és az obj nevű objektumban tárolnám az adataikat.
    A jelenlegi kódommal az a baj, hogy az utoljára kiszedett tömb elem adatai kerülnek csak bele.
    Valakinek van ötlete, hogy hogyan tudom megvalósítani ezzel a módszerrel, hogy később bármelyik polygonra kattintva be tudjam azonosítani, hogy az obj objektumban melyik paraméterek tartoznak hozzá? Sajnos arra nem találtam megoldást, hogy mondjuk adok egy id-t minden poligonnak és az alapján azonosítom az adatait?

    Ha valaki tudna segíteni, hogy ezt hogyan tudnám megoldani, nagyon hálás lennék. :R

  • papa019
    senior tag

    Sziasztok!

    Most kezdtem el folytatni a félév közben félbehagyott munkám a google maps api + jquery kombóval.
    Van egy olyan hiba az alkalmazásban, hogy amikor elmentek egy poligont, akkor ugye eltűnik a jqueryben felugró form, viszont a következő polygon mentésénél azt kétszer adja hozzá az adatbázishoz, a harmadikat háromszor, és így tovább...

    Ezt mi okozhatja, nem tudom mire kellene clear-t hívni, vagy mit kéne törölni.
    Itt ki tudjátok próbálni az oldalt.
    A js fájl ez.

    Sorry a double postért, megtaláltam a megoldást.
    A function_dialogbox-on belül a Mentés! résznél a submit sor helyett bemásoltam a submit függvény tartalmát.

  • papa019
    senior tag

    Sziasztok!

    Most kezdtem el folytatni a félév közben félbehagyott munkám a google maps api + jquery kombóval.
    Van egy olyan hiba az alkalmazásban, hogy amikor elmentek egy poligont, akkor ugye eltűnik a jqueryben felugró form, viszont a következő polygon mentésénél azt kétszer adja hozzá az adatbázishoz, a harmadikat háromszor, és így tovább...

    Ezt mi okozhatja, nem tudom mire kellene clear-t hívni, vagy mit kéne törölni.
    Itt ki tudjátok próbálni az oldalt.
    A js fájl ez.

  • papa019
    senior tag

    Pedig korábban egy eléggé hasonlót kérdeztél itt. :)

    Nagyjából ez alapján csináltam meg egy részét, de azóta kiment a fejemből... :B
    Rájöttem, hogy a php echoval visszaadott javascript kód nem éppen elegáns, pedig oly egyszerű lett volna. :DDD

  • papa019
    senior tag

    A jQuery AJAX függvényei, közöttük a jQuery.get(), a jQuery.getJSON(), esetleg a jQuery.ajax() függvények lesznek segítségedre. (Az utolsó teljesen általános, az előbbi kettő ennek egyszerűbb wrapperei.)

    Az elv pont az, ahogy írod, a PHP ilyen adatot dumpol ki, ezen függvények megfelelőjével indítasz egy XHR-t a háttérben, aztán a callback függvényben azt csinálsz a behozott adattal, ami jól esik.

    :R

  • papa019
    senior tag

    Használhatod a sima $.ajax()-ot vagy a $.get()-et, meg a $.post()-ot is, attól függ, hogyan akarod küldeni az adatokat.
    A dokumentációban nagyon jók a példák:
    [link]
    Itt egy lehetséges példa: [link].

    Olyan kérdésem lenne hozzád/hozzátok, hogy hogyan tudom azt megvalósítani jQery+PHP kombóval, hogy a jQueryvel nem betöltök egy php-t, csak futtatok, és a php visszadob egy json, vagy xml pakkot?

    Jelenleg úgy működik a programom, hogy ahol betölteném az adatbázisom adatait a klienssel, ott meghívom a php fájlt így:
    $("#xyz").load('ajaxLoad.php');
    Majd a php-ben az echo-val visszadobom a Javascriptet, amivel kirajzolom a területeket, de ez nem túl elegáns módszer.

    Azt szeretném megcsinálni, hogy a php egy adatfájlt dobjon vissza és ezt feldolgoznám a JS-el.

  • papa019
    senior tag

    Hát nagyon komoly dolgokat lehet vele csinálni viszonylag egyszerűen, az biztos.
    Amúgy nincs mit, majd szólj itt a topicban, ha valami nem megy!

    Ha lekérni akarok adatokat a PHP-től a jQuery felé, akkor gondolom a get() fv-t kell használnom jQueryben, de hogyan tudok küldeni ennek a függvénynek adatok a php-ből?

  • papa019
    senior tag

    Így van, de itt van is egy példa, a for ciklus a lényeg, ott épp használja a getAt() függvényt:

    function showArrays(event) {

    // Since this Polygon only has one path, we can call getPath()
    // to return the MVCArray of LatLngs
    var vertices = this.getPath();

    var contentString = "<b>Bermuda Triangle Polygon</b><br />";
    contentString += "Clicked Location: <br />" + event.latLng.lat() + "," + event.latLng.lng() + "<br />";

    // Iterate over the vertices.
    for (var i =0; i < vertices.length; i++) {
    var xy = vertices.getAt(i);
    contentString += "<br />" + "Coordinate: " + i + "<br />" + xy.lat() +"," + xy.lng();
    }

    // Replace our Info Window's content and position
    infowindow.setContent(contentString);
    infowindow.setPosition(event.latLng);

    infowindow.open(map);
    }

    A leírás meg szintén ezt mondja:

    "Polygon Arrays

    A polygon specifies its series of coordinates as an array of arrays, where each array is of type MVCArray. Each "leaf" array is an array of LatLng coordinates specifying a single path. To retrieve these coordinates, call the Polygon's getPaths() method. Since the array is an MVCArray you will need to manipulate and inspect it using the following operations:

    » getAt() returns the LatLng at a given zero-based index value.
    » insertAt() inserts a passed LatLng at a given zero-based index value. Note that any existing coordinates at that index value are moved forward.
    » removeAt() removes a LatLng at a given zero-based index value.

    Note: you cannot simply retrieve the ith element of an array by using the syntax mvcArray[I]; you must use mvcArray.getAt(i)."

    =============================

    A PHP-s részre:
    az escape-elésről és PDO-témáról nemrég diskuráltunk: [link], [link]

    ==
    Mondjuk akkor esélyes, hogy ez is új lesz.
    Látom valszeg valami adatbázis-wrappert használsz (bár esélyes, hogy nem használod ki a lehetőségeit), de nem látok bele a működésébe. A PDO használata indokolt lehet.

    Köszönöm, majd ez alapján próbálom javítani a kódom. :R
    Jelenleg ott állok, hogy a poligonok és hozzájuk az információk hozzáadása már működik ezzel az alapvető és egyáltalán nem hibakezelt módszerrel, számomra már ez elég nagy előrelépés...
    Ez a jQuery meg egy csoda. :C

  • papa019
    senior tag

    Ne haragudj, feszült vagyok az utóbbi pár napban, mert domborítani kellene ezzel a progival és mint látod, nem igazán megy... :/

    Van valami ötleted arra a hibára, amit írtam?
    Hogy a Submit előtt a pontok kiszedésében mi lehet a hiba? :B

    Illetve mondtad, hogy escapelni kell, vagy mit, ehhez tudsz valami linket küldeni? Akkor nekiülök és próbálom csinálgatni tovább. :R

    Megtaláltab a hibát:
    Ciklussal nem lehet csak úgy kiszedni az adatokat, mert nem tömbben tárolódnak a pontok.
    Az objektumra meghívott getAt(i) függvény visszaadja az i-edik pontot.

  • papa019
    senior tag

    Nyugalom... :U
    Amúgy én nem "haragszom". :D Hidd el, a Te érdekedben hívtam fel ezekre a figyelmet, nem azért, hogy csak azért is belédkössek. Fontos ezeket az elején megtanulni, hogy az ember később ne kövessen el nagy hibákat ezekből kifolyólag.

    Ebből meg kihagytad az informacio függvényt, kapásból kidobja:
    "Uncaught ReferenceError: informacio is not defined"
    Ehhez kell:

    // Listener a K épület polygonjára való kattintáshoz
    google.maps.event.addListener(k_epulet, 'click', informacio);

    Ne haragudj, feszült vagyok az utóbbi pár napban, mert domborítani kellene ezzel a progival és mint látod, nem igazán megy... :/

    Van valami ötleted arra a hibára, amit írtam?
    Hogy a Submit előtt a pontok kiszedésében mi lehet a hiba? :B

    Illetve mondtad, hogy escapelni kell, vagy mit, ehhez tudsz valami linket küldeni? Akkor nekiülök és próbálom csinálgatni tovább. :R

  • papa019
    senior tag

    "Valamiért js-binen az egész nem megy, pedig nálam minden fut, csak nem tudom menteni a pontokat... :S"
    Őőőő, de remélem most nem várod, hogy a szerveroldali dolgok menjenek jsbinen... :D

    "Igen, igen láttam, de aztán rájöttem, hogy felhasználóbarátabb egy külön gombnyomásra menteni, mint a polygonra kattintással."
    És? Attól még confirm dialógust lehet nyitni jQuery UI Dialoggal is...
    Abba meg olyan gombot raksz bele, amilyet szeretnél.

    Én nem a szerveroldali kódra voltam kíváncsi, hanem hogy hogyan szeded össze, serializálod, és akarod elküldeni szerveroldalra. Ergo a kliensoldal az érdekes.

    Amúgy ha már mellékelted a szerveroldali kódodat: SOHA ne pakolj adatbázis-query-be közvetlenül, escape-elés nélkül alapvetően megbízhatatlan, felhasználótól érkező, általa könnyen módosítható adatot. SOHA.

    Ne haragudj kezdő vagyok, sosem írtam még semmilyen JS, jQuery és PHP kódot.
    Nem vagyok hülye, hogy azt várjam, hogy szerver oldali kód fusson. :W :W :W Én a felugró ablakokra és a funkciókra gondoltam, hogy nekem nem mentek...

    Elképzelésem nincs, hogy mit jelent az escapelés...
    Tutorialok alapján próbálom összeeszkábálni a programot, nem tehetek róla, hogy szar az egész úgy, ahogy van...

    Észre sem vettem, hogy a JSBint nem linkeltem be. [link] :U

  • papa019
    senior tag

    Tedd bele a jsbines kódba, hogy mivel próbálkozol, és mentsd el, majd dobd be ide a linket, ne nekünk kelljen már kitalálni. Ott tudjuk debuggolni is.
    Láttad a jQuery UI Dialogos megoldást? Mert arra nem igazán reagáltál...

    Igen, igen láttam, de aztán rájöttem, hogy felhasználóbarátabb egy külön gombnyomásra menteni, mint a polygonra kattintással.

    Az ajaxPost.php tartalma, bár ez sztem nem szükséges hozzá:

    <?php

    include 'config.php';

    $name = $_POST['name'];
    $description = $_POST['description'];
    $address = $_POST['address'];
    $wikipedia = $_POST['wikipedia'];
    $points = $_POST['points'];

    $DB->Query("INSERT INTO places(name,description,address,wikipedia,points) VALUES('$name','$description','$address','$wikipedia','$points')");

    És annyit szeretnék, hogy a form adatait már serializáltam postolom a php-nak, be is teszem vele az adatbázisba, de a paraméterként kapott polygon-pontokat is ezzel együtt akarom küldeni és sehogysem tudom megoldani... Órák óta keresgélek a neten. Valami az each-el van, amikor ki akarom szedni a points változóból a pontokat... :(

    Valamiért js-binen az egész nem megy, pedig nálam minden fut, csak nem tudom menteni a pontokat... :S

  • papa019
    senior tag

    Mert a jQuery.each függvénynek nem olvastad el az interfészét elég alaposan. A callback első paramétere az index, második helyen jön a tényleges érték.
    function(val) helyett legyen function(idx, val) és láss csodát :)

    Köszönöm. :)
    De ha átírom így:

    $.each(points, function(key,val){
    additionalData += val;
    });

    Akkor meg nem ad vissza értéket ("undefined").

  • papa019
    senior tag

    Persze, hogy elő lehet csalogatni ilyen esetekre a jQuery UI Dialogot.
    Beleraktam a demódba:
    http://jsbin.com/uyevux/5/edit#javascript,html,live
    Lásd az input_data() függvényt.
    Amúgy még annyit csináltam, hogy a lap aljára, a HTML-kódba beleraktam ezt:
    <div id="jquery-ui-dialog" title="Dialog" class="hidden">
    <p></p>
    </div>

    Meg létrehoztam a .hidden class-t, CSS-ből ezt alapból elrejtem.
    Aztán a jQuery UI Dialog inicializálása:

    var $jquery_ui_dialog = $('#jquery-ui-dialog'), dialog_title = "My own map's dialog!";
    $jquery_ui_dialog.dialog({ autoOpen: false });
    $jquery_ui_dialog.dialog( "option", "title", dialog_title );
    $jquery_ui_dialog.html('<p>I don\'t really know what to do with the "polygon_points" variable! :D</p>');

    $jquery_ui_dialog.dialog('open');

    Ha az alábbi függvénnyel hozzáadom a points változóhoz a sarokpontokat:
    function addPoint(e) {
    points = add_place.getPath();
    points.push(e.latLng);
    }

    Akkor az alábbi függvénnyel miért csak a pontok sorszámát adja vissza? (0,1,2,3,4...stb.)

    var additionalData = ' ';
    $.each(points, function(val){
    additionalData += val;
    });

    Hogy tudom kiszedni belőle a lat és lng paramétereket?

  • papa019
    senior tag

    De nem is bonyolult. Az adatok elküldése előtt gyűjtsd össze, majd serializáld az adatokat - most épp én vagyok az új Kazinczy :D -: [.serialize()].

    Szerk.:
    Pl. ha PHP-t választasz, POST metódussal elküldöd, és tömbszerűen megkapod az adatokat szerveroldalon:

    a hivatalos oldalon lévő példával élve:

    <form>
    <div><input type="text" name="a" value="1" id="a" /></div>
    <div><input type="text" name="b" value="2" id="b" /></div>
    <div><input type="hidden" name="c" value="3" id="c" /></div>
    <div>
    <textarea name="d" rows="8" cols="40">4</textarea>
    </div>
    <div><select name="e">
    <option value="5" selected="selected">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    </select></div>
    <div>
    <input type="checkbox" name="f" value="8" id="f" />
    </div>
    <div>
    <input type="submit" name="g" value="Submit" id="g" />
    </div>
    </form>

    Ez a .serialize() után:

    a=1&b=2&c=3&d=4&e=5

    Szerveroldalon PHP-vel pedig így kapod meg őket:

    $_POST['a'] (ez itt épp == 1), $_POST['b'] (==2), stb....

    Olyat lehet valahogy művelni, hogy Javascript function-ből hívok meg jQuery Ui Dialog-ot? :B
    Jelenleg ott állok, hogy megrajzolom a polygont kattintásokkal és amikor belekattintok a közepébe, akkor a click listenert megszünteti > nem rajzolja tovább a polygont, illetve meghív egy függvényt, aminek átadja a polygon pontjait.
    Na most én ebből a függvényből szeretnék meghívni valami felugró Dialogot, amit még te mutattál.
    Ezt hogyan lehet véghezvinni? :)

    Ide bemásoltam a kódot:
    [link]

    (A végén a new_place függvénytől kezdődik a lényeg, amire most rákérdezek.)

  • papa019
    senior tag

    Sok mindenre használhatók, érdemes megtanulni. :)
    Persze még ha mester vagy a szkriptírogatásban, akkor sem fog kitakarítani a script helyetted. :DD
    Egyébként szerkesztettem az előző hsz.-t, hogy egyértelműbbé tegyem a dolgot.

    Hát elég sok dologra jók, meg jó lenne csinálni egy szuper alkalmazást, csak így félév közben elég szar, mert sok a zh, stb, így erre nem nagyon van idő -> várom a nyarat. :DDD
    A legnagyobb baj az, hogy egy olyan irányba mentem el (Wikimapia API), ami használhatatlan és ezt a konzulensem is most próbálta ki, ezért indulunk más irányba.
    (valamiféle Wikimapi klón, csak jobban felépítve :DD ) Csak ezzel elment 5-6 hét... :S

    A sok segítséget pedig köszönöm. :R

  • papa019
    senior tag

    De nem is bonyolult. Az adatok elküldése előtt gyűjtsd össze, majd serializáld az adatokat - most épp én vagyok az új Kazinczy :D -: [.serialize()].

    Szerk.:
    Pl. ha PHP-t választasz, POST metódussal elküldöd, és tömbszerűen megkapod az adatokat szerveroldalon:

    a hivatalos oldalon lévő példával élve:

    <form>
    <div><input type="text" name="a" value="1" id="a" /></div>
    <div><input type="text" name="b" value="2" id="b" /></div>
    <div><input type="hidden" name="c" value="3" id="c" /></div>
    <div>
    <textarea name="d" rows="8" cols="40">4</textarea>
    </div>
    <div><select name="e">
    <option value="5" selected="selected">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    </select></div>
    <div>
    <input type="checkbox" name="f" value="8" id="f" />
    </div>
    <div>
    <input type="submit" name="g" value="Submit" id="g" />
    </div>
    </form>

    Ez a .serialize() után:

    a=1&b=2&c=3&d=4&e=5

    Szerveroldalon PHP-vel pedig így kapod meg őket:

    $_POST['a'] (ez itt épp == 1), $_POST['b'] (==2), stb....

    Köszönöm, sokat segítettél már csak ezekkel is. :)
    Az én fő problémám az, hogy sosem használtam jquery-t, js-t és php-t sem.
    Ez a félév komoly változásokat hoz ezen a területen. :))

  • papa019
    senior tag

    jQuery UI Dialog - Modal form
    Aztán mondjuk Save gomb hatására AJAX-szal elküldöd szerveroldalra, hogy ott aztán el legyen mentve.
    Hogy milyen adatbázist használsz, az teljesen más lapra tartozik, konkrét feladattól is függ, de adatbázisszervernek tökéletesen megfelelhet MySQL is. De ha adatbázisba fel akarod tölteni az adatokat, akkor gondolom az már egyértelmű, hogy ahhoz szerveroldali programozás (pl. PHP-vel vagy mással, szervertől függ) szükséges.

    Tehát dialógus felugrik, felhasználó beírja az adatokat, először kliensoldalon validálsz, majd ha oké, elküldöd az adatokat szerveroldalra, szerveroldalon megint validálsz, feldolgozod az adatokat, majd feltöltöd adatbázisba, kész.

    Az egyértelmű volt, hogy szerver oldali programozás kell.
    Csak gondoltam megkérdezem, hogy mit érdemes használni.

  • papa019
    senior tag

    Hali!

    Most teljesen más irányba kellene elindulnom a helymeghatározós projektben és ehhez szükségem lenne pár infóra.
    Amit szeretnék csinálni/használni:
    - Google Maps API v3
    - Poligonok rajzolása kattintásokkal és gombnyomás vagy enter után lenne egy felugró ablak, amiben az adott poligonhoz lehetne beírni adatokat, majd egy save gomb hatására ezek a lementése egy adatbázisba

    Ehhez mit érdemes használni a JavaScript mellett?
    Milyen adatbázist érdemes használni?
    Tud esetleg valaki ehhez hasznos tutorialt?

    Üdv.: Papa

  • papa019
    senior tag

    1.) Megkukkantottam egy példakódot az Info Windows-ra: [link]
    2.) Globálissá tettem az infowindow és marker változót (lásd az elején).
    3.) Beraktam a megfelelő tartalmat a lista után:

    list_html =
    $('<ul/>', {
    'id' : 'my-location-list',
    'class': 'my-new-list',
    html: items.join('')
    });

    $('#location_data').html(list_html.html());

    infowindow = new google.maps.InfoWindow({
    content: list_html.html()
    });

    infowindow.open(map, marker);

    Nyilván az infowindow rész a lényeg.
    4.) Kész: [link]. Kattints a gombra a teszteléshez, akkor felugrik az infowindow.
    Ugyanez jsFiddle-re felrakva, ott JSLinttel validálva: http://jsfiddle.net/Sk8erPeter/kVFb2/
    Persze nem egy gyönyörű kód, de jó az vidékre. :DD

    Köszönöm.

    Még egy kérdés és remélem már nem keveredek bele.
    Akárhogy próbálok valami for ciklushoz hasonló dolgot összehozni az each segítségével, nem tudok rájönni, hogy miként tudom kiolvasni az API által adott összes pontot és nem csak a 0.-at és az 1.-t.
    Ebben tudnál segíteni?

  • papa019
    senior tag

    Itt már térkép is van:
    http://jsbin.com/igahov/5/edit#html,live
    Nem bírtam ki. :D
    Mondjuk speciel itt azzal nem foglalkoztam, hogy azok a korábbi, jemeni adatok megjelenjenek. :D

    Ha a listát, amit a jQuery-vel előállítasz be akarom tenni mondjuk a k_epuletre kattintáskor felugró buborékba (infowindow), akkor ezt hogyan tudom megcsinálni?
    Elég régóta ezzel szenvedek, de egyszerűen nem jövök rá.

  • papa019
    senior tag

    Már közben megcsináltam, csak térkép nélkül:
    [link]
    (kattints a Renderre, úgy próbáld, ha ebben a nézetben nem jeleníti meg az engedélykérést a helymeghatározáshoz)

    Köszi. :R :R
    Innen megpróbálok egyedül haladni, hogy azért tanuljak is valamit, ne csak másoljak. :U
    Aztán ha elakadok, majd írok. :R

  • papa019
    senior tag

    Most arra gondolsz, hogy a felhasználó pozíciójától függően kérsz le mondjuk a WikiMapia oldaláról címeket, úgy, hogy a felhasználó pozícióját belepasszírozod a címbe?
    Mert természetesen azt is meg lehet csinálni, akár gombnyomásra, pl. így is átadhatod a címbe változóként a különböző számokat:
    var
    user_location = { lat : 17, lon: 49 },
    json_file_path = 'http://api.wikimapia.org/?function=search&key=3C19A732-DE0DF7D4-E31566D8-713BEEA1-FF9550F8-FEAF6EBD-2C9FCAC9-2CE5F4D0&q=town&lat='+user_location.lat+'&lon='+user_location.lon+'&format=json';

    Most még nem néztem meg, hogyan határozod meg a felhasználó pozícióját, de készítettem egy példát, hogyan tudod gombnyomásra lekérni a pozíciókat:
    http://jsbin.com/igahov/3/edit#html,live

    Mindjárt ránézek, hogyan határozod meg a felhasználó helyzetét.

    function location_service(){
    if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(success);
    } else {
    error('A böngésződ nem támogatja a helymeghatározást!');
    }
    }

    var helyzet;

    function success(position) {
    var image = new google.maps.MarkerImage('images/cross.png',
    // This marker is 20 pixels wide by 32 pixels tall.
    new google.maps.Size(40, 40),
    // The origin for this image is 0,0.
    new google.maps.Point(0,0),
    // The anchor for this image is the base of the flagpole at 0,32.
    new google.maps.Point(20, 20));

    helyzet = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

    var marker = new google.maps.Marker({
    position: helyzet,
    map: map,
    icon: image,
    animation: google.maps.Animation.DROP,
    title:"Itt vagy most!"
    });
    map.setCenter(helyzet);
    map.setZoom(12);
    }

  • papa019
    senior tag

    http://jsbin.com/igahov/2/edit#html,live
    Itt láthatod, hogy hogyan hozod össze a HTML-kóddal. Csak ezt a jsbinen szépen el lehet különíteni.

    A második kérdésedet viszont nem értem, mire gondolsz azalatt, hogy a "változót csak simán beleírom". Eleve minden adatot a JSON-fájlból kapsz meg, annak tartalmát egy ciklussal íratom ki itt. Fejtsd ki egy kicsit bővebben. :)

    A kérdésem az, hogy van egy változó az oldalam JS-jében. Ebbe kérem le a felhasználó pozícióját (helymeghatározás).
    És az én JS-emet kellene összehozni a jQuery-vel, mivel a wikimapia lekérdezéshez kell a felhasználó pozíciója.

  • papa019
    senior tag

    Szívesen! :)
    Egy kicsit ismerni kell a jQuery-t ahhoz, hogy így tovább tudd vinni.
    Természetesen sima JavaScripttel is nyugodtan megoldható, de macerásabb, a jQuery nagyon kényelmes eszközöket kínál ehhez (pl. az AJAX-os kommunikáció ezáltal brutálegyszerű).
    Nyugodtan kérdezz, ha elakadtál!

    Azt kérdezném még, hogy ezt a jQuery kódot csak simán beillesztem a html fájlomba a JS mellé vagy kell ehhez nekem még valami? Illetve a JS-ben már meglévő változómat (jelen esetben a helymeghatározás során kapott hely{lon,lat} változót csak simán beleírom?

  • papa019
    senior tag

    Na, ezek szerint már vágod a Google Maps API-t valamennyire, nem?
    Azt hittem, ez új, de akkor valamennyire már belementél, ez jó.

    Az előzőre visszatérve: ha áttekinthetően is meg szeretnéd nézni a JSON-kimenetet, akkor alakítsd átlátható formátumúra, miután ide bemásoltad a tartalmát:
    http://jsbeautifier.org/

    Igazából ez a JSON-kimenet, amit linkeltél, elég jól áttekinthető. Szóval igazából nem rossz ez a WikiMapia. :) Tulajdonképpen az oldalukon ők is Google Maps API-t használnak, szóval én eleinte egy kicsit félreértettem az eredetinek a célját.
    A lényeg: nyugodtan használhatod a WikiMapiát szerintem, így jobban belekukkantva egész könnyű használni, mert igazából innen a lényeg az adatok kiszedése, a megjelenítést meg úgyis Google Maps-szel fogod, szóval visszavonom a korábbiakat, maradhat szerintem ez is nyugodtan, nem kell migrálni.
    Ha segítség kell hozzá, akkor kérdezz nyugodtan.

    Az általad linkelt JSON-fájl alapján egy viszonylag primitív példát készítettem neked jQuery használatával, ebből jól látható, hogyan szedem ki az adatokat (aztán ez továbbvihető, az adatok alapján térkép generálható):
    http://jsbin.com/igahov/edit#javascript,live
    Ha bepipálod a HTML checkboxot is fölül, akkor láthatod, hogy igazából lószart sem raktam a HTML-be a nagyon szükséges dolgokon kívül, az egész HTML-tartalmat jQuery-vel generálom le, abból az adatból kiszedve, amit linkeltél.
    Hátha ez segít elindulni az úton.

    Nagyon köszönöm, hogy ilyen késői időpontban is foglalkozol a kérdésemmel. :R
    Most így hirtelen ránézve nagyon sokat segít már ez a kód is, a holnapi nap folyamán majd megpróbálok elindulni ez alapján és majd mondom, hogy mit sikerült összehozni. :) :R :R

  • papa019
    senior tag

    Nem kell feltétlenül saját adatbázis, én a helyedben inkább migrálnám valami normálisan kezelhető API-ra, pl. a Rolly által korábban linkelt Google Fusion tables-re, vagy valami hasonlóra. A Google nagyon jó dokumentációkat szokott készíteni a cuccaihoz, így szerintem biztos hamarabb eredményre jutnál ezzel és a Google Maps API-val, mint a WikiMapia sz@rával.

    Amúgy mi az a cím, amiről megkapod azt az XML-tartalmat?
    Csak hogy hogy néz ki annak a JSON-változata, azt megkukkantanám. Ha belinkeled az XML-es változatot, az is jó, elvileg átalakítható.
    Akkor ha jól értem, azt a meglévő adatbázist kéne felhasználnod. Egyébként miért pont ezt, ha mindegy volt, milyen adatbázist használsz fel, csak legyen egy készen lévő?

    Ez a 'town' kulcsszóra dob ki eredményeket a 49 szélességi és 17 hosszúsági fok alapján (és a kimenet json): [link]

    Ennek az oldalnak van a legjobb adatbázisa, amit eddig találtam (elképzelésem sincs egyébként, hogy mire keressek, vagy hogyan keressek, hogy ilyen fejlett adatbázist találjak). Nem tudom, hogy miért fontos pont a wikimapiát használnom egyébként, ezt kaptam, mint feladat... Bár ha találok jobbat, akkor gondolom használhatom azt, csak csináljam meg az alkalmazást. Majd megpróbálok keresni olyan adatbázist, amiben ha más nem, akkor az ország városai és Bp. kerületei rajta vannak...

    Egyébként az oldalam, amin jelenleg csak a helymeghatározás működik, illetve az egyetem főépülete van bejelölve, mint példa polinom: [link]

  • papa019
    senior tag

    Hogy érted, hogy az "adatbázishoz kellene"?
    Amúgy eléggé fos a dokumentáció a WikiMapia-hoz ennyi alapján, ezért nem ajánlanám.

    Kell egy már meglévő adatbázis az alkalmazáshoz, amiben területek vannak (városok, települések, kerületek, épületek, stb.). És mivel nekem nincs adatbázisom, és ezt nagyon időigényes felépíteni, ezért kellett keresni valami ilyen szolgáltatást...
    Sajnos tapasztalom, hogy nagyon felületes a dokumentáció, amit nem is értek (bár hozzáteszem, hogy az egész WikiMapia oldallal kapcsolatosan vannak számomra érthetetlen megoldások).
    A témavezetőm ötlete volt az oldal használata (én korábban nem is ismertem), ő mondta, hogy ez alapján csináljuk meg az alkalmazást.
    Igazából egy helymeghatározásból állna az egész, majd a meghatározott pozícióhoz kapcsolódóan olyan információkat jelenítene meg az alkalmazás, hogy melyik országban/városban/kerületben/kerület-részben van a felhasználó.
    Lassan már úgy vagyok vele, hogy jobban járnék, ha saját adatbázist hoznék létre az egészhez, mert ma is több órát elcsesztem a wikimapia api miatt és nem jutottam semmivel előbbre.
    Meg a legnagyobb baj az az egésszel, hogy a félév előtt nem foglalkoztam egyáltalán javascripttel és így azért nem egyszerű nekilátni a dolgoknak.
    Ha esetleg tudtok adni valami tippet, hogy merre induljak el, hol találok ehhez a témához hasznos infókat, akkor nagyon hálás lennék nektek.

  • papa019
    senior tag

    Egyébként szerintem ezerszer jobban járnál a Google Maps API-val, bár nem tudom, mi a cél.

    Egy helyfüggő szolgáltatást szeretnék csinálni (egyetemi önlab téma).
    A wikimapia csak az adatbázishoz kellene, minden mást a maps apival csinálok.

    Egyetlen problémám, hogy nagyon-nagyon kezdő szinten vagyok JS-ben és nem mindenhez sikerül olyan tutorialokat találnom, amik alapján el tudok indulni.

  • papa019
    senior tag

    Sziasztok!

    A WikiMapia API-t próbálom beüzemelni az oldalamon.
    Az a problémám, hogy nem tudom milyen módszerrel tudnám kinyerni az API által generált kódból (XML) a kapott helyek koordinátáit. Valaki tud nekem ebben segíteni?

    Tehát például az API meghívásakor az alábbi listát kapom vissza:
    <?access-control allow="*"?>
    <folder language="en" version="1.0" found="102" page="1" count="5">
    <place id="13839244">
    <name>CBA-&gt;Major-féle bolt</name>
    <url>
    http://wikimapia.org/13839244/CBA-gt-Major-f%C3%A9le-bolt
    </url>
    <location>
    <lon>20.0657692</lon>
    <lat>47.0533979</lat>
    <north>47.0534985</north>
    <south>47.0532974</south>
    <east>20.0659275</east>
    <west>20.065611</west>
    </location>
    <polygon>
    <point x="20.065611" y="47.0533596"/>
    <point x="20.0658309" y="47.0534985"/>
    <point x="20.0659275" y="47.0534327"/>
    <point x="20.0657183" y="47.0532974"/>
    </polygon>
    </place>
    <place id="13839278">
    <name>Tibi-bolt</name>
    <url>http://wikimapia.org/13839278/Tibi-bolt</url>
    <location>
    <lon>20.0703317</lon>
    <lat>47.0513055</lat>
    <north>47.0514005</north>
    <south>47.0512105</south>
    <east>20.0704712</east>
    <west>20.0701922</west>
    </location>
    <polygon>
    <point x="20.0701922" y="47.051342"/>
    <point x="20.0703424" y="47.0512105"/>
    <point x="20.0704712" y="47.0512799"/>
    <point x="20.0703049" y="47.0514005"/>
    </polygon>
    </place>
    </folder>

    Addig oké, hogy gondolom ezt átadom egy változónak.
    De a változóból hogyan tudom kiszedni az értékeket?

    Már az is nagy segítség lenne, ha valaki azt el tudná magyarázni, hogy a mapia apiból hogyan tudok változót kreálni JS-ben. :U

  • papa019
    senior tag

    Sziasztok!

    A WikiMapia API-t próbálom beüzemelni az oldalamon.
    Az a problémám, hogy nem tudom milyen módszerrel tudnám kinyerni az API által generált kódból (XML) a kapott helyek koordinátáit. Valaki tud nekem ebben segíteni?

    Tehát például az API meghívásakor az alábbi listát kapom vissza:
    <?access-control allow="*"?>
    <folder language="en" version="1.0" found="102" page="1" count="5">
    <place id="13839244">
    <name>CBA-&gt;Major-féle bolt</name>
    <url>
    http://wikimapia.org/13839244/CBA-gt-Major-f%C3%A9le-bolt
    </url>
    <location>
    <lon>20.0657692</lon>
    <lat>47.0533979</lat>
    <north>47.0534985</north>
    <south>47.0532974</south>
    <east>20.0659275</east>
    <west>20.065611</west>
    </location>
    <polygon>
    <point x="20.065611" y="47.0533596"/>
    <point x="20.0658309" y="47.0534985"/>
    <point x="20.0659275" y="47.0534327"/>
    <point x="20.0657183" y="47.0532974"/>
    </polygon>
    </place>
    <place id="13839278">
    <name>Tibi-bolt</name>
    <url>http://wikimapia.org/13839278/Tibi-bolt</url>
    <location>
    <lon>20.0703317</lon>
    <lat>47.0513055</lat>
    <north>47.0514005</north>
    <south>47.0512105</south>
    <east>20.0704712</east>
    <west>20.0701922</west>
    </location>
    <polygon>
    <point x="20.0701922" y="47.051342"/>
    <point x="20.0703424" y="47.0512105"/>
    <point x="20.0704712" y="47.0512799"/>
    <point x="20.0703049" y="47.0514005"/>
    </polygon>
    </place>
    </folder>

    Addig oké, hogy gondolom ezt átadom egy változónak.
    De a változóból hogyan tudom kiszedni az értékeket?

  • papa019
    senior tag

    Hmm, hát nem tudom, lehet, hogy a v3-as API-ra való átállásnál történt egy-két galiba, sokan nyavalyognak, hogy a régi Google Maps-es alkalmazásuk az átállás óta nem működik megfelelően (most már nem tudom, hol olvastam, de sztem Drupalnak a Gmap moduljára vonatkozóan magyar és külföldi fórumon is).

    Sziasztok!

    Valaki tudna nekem segíteni?
    A WikiMapia API-t kellene használnom (szükségem van az adatbázisukra), viszont nagyon kezdő vagyok JS témában és nem igazán tudom, hogy miként tudnám használni az APIt.
    Az is elég, ha valaki tutorialt mutat, amiben van hasonló API használatára vonatkozó útmutató.

    Előre is köszi.

Új hozzászólás Aktív témák