Hirdetés

Keresés

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

  • 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

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