Citat:
Originalno napisao mslavko
Ali @Branko koliko sam ja citao upravo ova funckcija vraca tacke sa kojima moze da se konstuise bilo SVG bilo Polygon pomocu google mapa:
Kôd:
// converts polygons to SVG path string
function polys2path (poly, scale) {
var path = "", i, j;
if (!scale) scale = 1;
for(i = 0; i < poly.length; i++) {
for(j = 0; j < poly[i].length; j++){
if (!j) path += "M";
else path += "L";
path += (poly[i][j].X / scale) + ", " + (poly[i][j].Y / scale);
}
path += "Z";
}
return path;
}
Sta bi ovde trebalo izmenjati?
Osim toga malopre sam probao da pozovem funckciju draw(primer) i time sam dobio kao rezultat tacke sa kojima mogu konstruisati poligon...
Kakva je razlika izmedju konstuisanja SVG i google map poligona?
|
U jednoj od prethodnih poruka citirao sam tekst iz dokumentacije šta je potrebno za crtanje poligona na mapi (paths osobina PolygonOptions objekta), a šta vraća polys2path funkcija.
Citat:
Originalno napisao mslavko
Takodje, uradio sam i ovo da vidim kako funcionise...
Kôd:
rezultat = offsetted_polygon;
console.log(rezultat);
i dobio ovo:
Kôd:
[Array[341]]
0: Array[341]
[0 … 99]
0: ClipperLib.IntPoint
X: 4180.769
Y: -6264.402000000002
__proto__: Object
1: ClipperLib.IntPoint
X: 4162
Y: -6265
__proto__: Object
Znaci li ovo upravo to da ova biblioteka pravi offseted polygon koji sadrzi tacke poligona
|
Da, koliko sam pročitao na brzinu iz dokumentacije, to radi.
Citat:
Originalno napisao mslavko
i da mi funkcija polys2path uopste nije potrebna?
|
Zavisi šta ćeš dalje raditi sa podacima koje dobiješ iz biblioteke. Pogledaj podatke koje dobijaš iz iste i da li te podatke jednostavno možeš proslediti funkcijama za crtanje gmaps Polygona ili SVG elementa. Zato u ovom trenutnom obliku funkcija postoji da bi se rezultati formatirali/konvertovali u oblik potreban za crtanje SVG elementa. Zatim ti isto imaš i funkcije reverse_copy i scaleup da bi prilagodio podatke biblioteci.
Citat:
Originalno napisao mslavko
Takodje da li bi bilo dobro resenje da se kao na pocetku napravi SVG elemenat a da se ondak jednostavno postavi izmedju tacaka A i B sa google map_overlay i dobilo bi se to isto bez kreiranja poligona kao sto sam i pokusao...
|
Nikada nisam isprobavao da crtam SVG elemente na mapi, pogledaj
https://developers.google.com/maps/d...customoverlays
Mislim da nećeš moći ovako, moraćeš da konvertuješ LatLng podatke u pixel-e. Pokušaj.
Npr. nešto kako bi izgledala poly2path funkcija za konvertovanje podataka za crtanje google maps polygon-a:
Kôd:
function polys2path (poly, scale) {
var path = [];
for(i = 0; i < poly.length; i++) {
for(j = 0; j < poly[i].length; j++){
path.push(new google.maps.LatLng((poly[i][j].X / scale), (poly[i][j].Y / scale)));
}
}
return path;
}