-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
Speeedfire
félisten
válasz
Speeedfire #2499 üzenetére
Ha bemásolom a saját fájlomba, akkor ott már nem megy. Azt írja az utolsó sorra, hogy:
Uncaught SyntaxError: Unexpected token ILLEGAL -
v2izzy
tag
válasz
Speeedfire #2497 üzenetére
Így gondoltad? Tehát, hogy egy markert leteszel és ha azt mozgatod, akkor változik a pozíció? Vagy több markert letenni (ha így akarod akkor már tömbbel kell)?
-
Speeedfire
félisten
válasz
Speeedfire #2488 üzenetére
Valaki ránézne erre?
Az első pontot még beírja, de utána már nem. Érdekes, hogy ha később miután mozgattam a pontot, akkor már azt mondja, hogy a marker nem létezik... -
SektorFlop
aktív tag
válasz
Sk8erPeter #2495 üzenetére
legalább 20 Alert ablak:
ReferenceError:
phoneNumbers is not defined.hibát kiküszöböltem, az li tagek létre jönnek, de semmi tartalom nincs utána
lassan meg lesz
-
Sk8erPeter
nagyúr
válasz
SektorFlop #2494 üzenetére
Hmm, akkor esélyes, hogy tényleg valahol dob egy el nem kapott exceptiont, ezért áll le a ciklus, és ezért nem írja ki a neveket, de nyomozzuk ki, próbáld meg a try-catch blokkal, hátha azzal előrébb jutunk.
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2493 üzenetére
akkor oldjuk meg a problémát
a contacts.length-re ha jól emlékszem 83-at írt, kicsit később lesz egy kis időm és neki állok. Már raktam egy android környezetet is a gépre, hogy több helyen is tudjam tesztelni, mivel úgy lenne igazi hogy minden eszközön ugyan úgy reagál a dolog. -
Sk8erPeter
nagyúr
válasz
SektorFlop #2492 üzenetére
Nincs mit!
De azért oldjuk meg ezt a problémát, már engem is zavar.
A contacts.length-re mennyit ír?Lehet amúgy, hogy az egész for ciklus belsejét egy try-catch blokkba kellene tenni, így legalább elkap minden esetlegesen keletkező kivételt (ilyenekre gondolok, hogy mondjuk nem létezik a contacts[index].name.formatted kulcs, csak a .name-ig, vagy ilyesmi), tehát próbáld átalakítani így a for ciklusodat (a korábbiak megmaradhatnak, még az isset() függvény felhasználása is):
for (var index = 0; index < contacts.length; index++) {
try {
var name = contacts[index].name.formatted,
li = document.createElement('li'),
phoneNumbers, phoneNumber_first;
try {
if (isset(contacts[index].phoneNumbers)) {
phoneNumbers = contacts[index].phoneNumbers;
}
if (isset(phoneNumbers[0].value)) {
phoneNumber_first = phoneNumbers[0].value;
}
} catch (e) {
alert('problem with phoneNumber...');
}
if (isset(phoneNumber_first)) {
li.innerHTML = "<a href=\"tell://" + phoneNumber + "\>name: " + name + ", name in other form: " + contacts[index].name + " displayName: " + contacts[index].displayName + ";</a>, ";
} else {
li.innerHTML = "name: " + name + ", name in other form: " + contacts[index].name + " displayName: " + contacts[index].displayName + ";";
}
ul.appendChild(li);
} catch (e) {
alert(e);
}
}Most itt annyit változtattam, hogy belepakoltam egy try-catch blokkba.
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2473 üzenetére
Nem jött össze
Odáig fut le a dolog, hogy kiírja mennyi elem van a tömbben.... De egyenlőre hanyagolom a Concats dolgokat... még később azért próbálkozom vele, nem hagyom ennyibe. Minden esetre köszönöm a segítségedet.
-
Coconut's
csendes tag
válasz
Peter Kiss #2490 üzenetére
Köszi! Meg is van.
-
Coconut's
csendes tag
Sziasztok!
Egy rövid segítséget szeretnék kérni, JS-ben képeket váltogatok, gombnyomásra. getElementById - val csinálom. Esetleg tudok arra megoldást, hogy a képek id -ja így van megadva pl.: 10_4, és azt szeretném elérni, hogy a document.getElementById() zárójelei közt két változó segítségével lehessen megadni az id-t. Tehát így:
s1, s2 segédváltozók
s1 = 10;
s2 = 4;document.getElementById(s1'_'s2)
Ezzel kéne ezt látnia a böngészőnek a zárójelek között: (10_4)
De ez sajnos így nem működik. A böngésző hibakonzolja annyit ír hogy is NULL.
Nagyon köszi előre is!
-
Speeedfire
félisten
Már majdnem jó, csak most valami miatt a map-ből nem olvassa ki a pozíciót.
Lassan meglesz. -
Speeedfire
félisten
válasz
Sk8erPeter #2480 üzenetére
Ha egy pontot leszúrtam, akkor azt lehet valahogy mozgatni? Mert most okés, hogy ledobja, de nem lehet mozgatni és minden kattintásnál új pont jön létre. [link]
-
Jim-Y
veterán
válasz
Sk8erPeter #2482 üzenetére
És nem hiszed el de ez volt a probléma
manifest version 2 volt a json fileomban, és nem engedte az inline scripteket... de ha tudnátok, hogy mennyire ideges voltam végig, hogy miért nem megy xD
Egyébként ezt a választ a stackowerflow-on csak most láttam meg én is, de bejött, köszi azért a szándékért, rendes tőled^^
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2483 üzenetére
Szívesen!
Szerk.: most észrevettem egy apró szintaktikai hibát:
$new_content_div = $('<div/>', {
'class': 'menu-content hidden loading',
});
helyette:
$new_content_div = $('<div/>', {
'class': 'menu-content hidden loading'
});egy plusz vessző volt a hiba.
Itt a jó változat:
http://jsbin.com/ekesul/11/edit#javascript,html,live -
[pod]Diablo
őstag
válasz
Sk8erPeter #2476 üzenetére
Huh koszi szepen tokeletesen mukodik.orok hala
-
Speeedfire
félisten
válasz
Sk8erPeter #2480 üzenetére
Ezt átnézem, elég részletesnek tűnik.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #2479 üzenetére
Pont korábban térképmegjelenítésről beszélgettünk: [link].
A "Resource interpreted as" jellegűekkel meg annyira ne foglalkozz, az csak warning. Magában a kódban elvileg hibát nem okoz.
(#2478) Jim-Y : OK, majd megpróbálok ránézni, csak sajnos az extension teszteléséhez nem elég az, hogy bedobom jsbinre vagy jsfiddle-re, így kicsit melósabb.
-
Speeedfire
félisten
Egy egyszerű google maps app-ot akarok összehozni, de nem akar menni. A térképen egy marker lenne és egy kordináta amit használni szeretnék. A térkép megy, de se pont, se kordináta, illetve localhoston, tele van szemetelve a console.
Resource interpreted as Image but transferred with MIME type text/html: "http://maps.googleapis.com/maps/gen_204?ev=api_viewport&cad=src:apiv3".
Resource interpreted as Image but transferred with MIME type text/html: "http://maps.googleapis.com/maps/gen_204?imp=smimps%3DFN1ozIBqK9L%26z%3D12&cad=client:apiv3". -
Jim-Y
veterán
válasz
Sk8erPeter #2477 üzenetére
Nem, igazából nem írtak megoldást, csak, hogy jól includoltam-e a jquery-t, meg, hogy jó helyen van-e a script /script tagem... szv még mindig patt helyzetben vagyok
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2474 üzenetére
Na, átalakítottam végre ezt a kódot kicsit "szebbé", annyiban, hogy nincs minden egyes elemnél ott, hogy "onclick", mert az elég csúf megoldás.
Tehát így néz ki most, inkább próbáld ezt alkalmazni:http://jsbin.com/ekesul/9/edit#javascript,html,live
Ebből kiindulva pedig a betöltésre megoldás: .load()
Az lenne a legegyszerűbb, ha minden betöltendő fájlod neve megegyezne az id-k nevével.
Tehát ha a kattintott menü azonosítója "xhome", akkor pl. "xhome.html", ha "xprog", akkor "xprog.html" lenne a fájl neve, és így tovább, ezt tárolhatod pl. a "contents" nevű könyvtáron belül (most a példakódot így mutatom).
Ehhez a kódhoz teljes mértékben átalakítottam az eddigit, de így egyszerűbb is lett talán, szerintem elég alaposan felkommenteztem, hogy értsd, mi történik:
http://jsbin.com/ekesul/10/edit#javascript,html,live===
(#2475) SektorFlop :
ez így van, így sokat lehet tanulni.
Majd mondd el, mire jutottál, kíváncsi vagyok! -
SektorFlop
aktív tag
válasz
Sk8erPeter #2473 üzenetére
Még ezt megpróbálom aztán azt hiszem túllépem ezt a fejezettet, szeretek így leragadni részeknél mert ha elakadok rengeteget tanul vele az ember.
-
[pod]Diablo
őstag
Udv!
valaki tud egy megoldast arra hogy js-el mondjuk show effectel betoltsek egy html oldalt egy adott divbe?
Peldaul ittvan ez a korabban elkeszitett kod.Es az lenne a celom hogy ha a menupontokra kattintok akkor a divekbe egy kulso html file tartalmat toltse be.Csak jobb hogyha minden menupont tartalma kulon html oldalba van berakva,mintha mindent az index.html-be zsufolnek bele.
Elore is koszonom a segitseget!
-
Sk8erPeter
nagyúr
válasz
SektorFlop #2471 üzenetére
Pont kérdezni akartam, milyen készüléked van, mert [írják], hogy pl. BlackBerry-n csak részleges a támogatása. Ez más készüléken is igaz lehet.
Ezért érdemes ellenőrizni, hogy mondjuk létezik-e egyáltalán phoneNumbers, mert ha nem, és azt próbálod felhasználni, akkor könnyen kaphatsz egy exceptiont, és onnantól nem csoda, hogy nem működik az egész.
Próbáld meg a következőképp:
Az onSuccess-t módosítsd az alábbi módon, és egészítsd ki az isset() függvénnyel, ahogy alább látható, a többi kód maradhat ugyanúgy:function isset () {
// !No description available for isset. @php.js developers: Please update the function summary text file.
//
// version: 1109.2015
// discuss at: http://phpjs.org/functions/isset
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// + improved by: FremyCompany
// + improved by: Onno Marsman
// + improved by: Rafał Kukawski
// * example 1: isset( undefined, true);
// * returns 1: false
// * example 2: isset( 'Kevin van Zonneveld' );
// * returns 2: true
var a = arguments,
l = a.length,
i = 0,
undef;
if (l === 0) {
throw new Error('Empty isset');
}
while (i !== l) {
if (a[i] === undef || a[i] === null) {
return false;
}
i++;
}
return true;
}
function onSuccess(contacts) {
var ul = document.getElementById("list");
alert('length of contacts: '+contacts.length);
for (var index = 0; index < contacts.length; index++) {
var name = contacts[index].name.formatted,
li = document.createElement('li'),
phoneNumbers,
phoneNumber_first;
try{
if(isset(contacts[index].phoneNumbers)){
phoneNumbers = contacts[index].phoneNumbers;
}
if(isset(phoneNumbers[0].value)){
phoneNumber_first = phoneNumbers[0].value;
}
} catch(e){
alert('problem with phoneNumber...');
}
if(isset(phoneNumber_first)){
li.innerHTML = "<a href=\"tell://" + phoneNumber + "\>name: " + name + ", name in other form: " + contacts[index].name + " displayName: " + contacts[index].displayName + ";</a>, ";
}
else{
li.innerHTML = "name: " + name + ", name in other form: " + contacts[index].name + " displayName: " + contacts[index].displayName + ";";
}
ul.appendChild(li);
}
} -
SektorFlop
aktív tag
válasz
Sk8erPeter #2468 üzenetére
vicc az egész másik készüléken működik
-
SektorFlop
aktív tag
válasz
SektorFlop #2470 üzenetére
soronként beraktam egy alert-et
itt áll le a ciklus második körbe:
var phoneNumber = contacts.phoneNumbers[0].value;
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2468 üzenetére
Közbe próbáltam keresni a hibát alert ablakokkal, hogy nem-e áll meg a ciklus valahol.
Szóval a ciklus elejére elhelyeztem ezt: alert("belépet");
A végére pedig ezt: alert(i);Elsőre sikeresen belép a ciklusba, le létrehozza az li tag-et elhelyezi benne a nevet, aztán belép másodszorra is a cikluba kiírja ismét alertbe hogy belépet, de onnantól nem történik semmi. Nem lehet hogy nem az li létrehozásával van valami gubanc?
-
Sk8erPeter
nagyúr
válasz
SektorFlop #2460 üzenetére
Rájöttem, hogy a kettő között mi a különbség.
A kódban, amit Te mutattál, ez van:options.filter="";
var fields = ["phoneNumbers", "name"];a példakódban ez:
filter = ["displayName"]; // return contact.displayName field
Itt mondjuk elcseszték, filter helyett itt fields akart szerintem lenni az elnevezés, de mindegy, nem is ez a lényeg.
Tehát ott displayName-et használnak, nálad a sima name van. Lehet, hogy a name valamiért üres (ezért nem jelenik meg nálad), a displayName viszont nem.Ezért az itt lévő kódodat közelítsük meg másképpen, próbáld átírni így a JavaScript-kódot:
function onDeviceReady() {
var options = new ContactFindOptions();
options.filter = "";
var fields = ["displayName", "phoneNumbers", "name"];
navigator.contacts.find(fields, onSuccess, onError, options);
}
function onSuccess(contacts) {
var ul = document.getElementById("list");
for (var index = 0; index < contacts.length; index++) {
var name = contacts[index].name.formatted;
var phoneNumber = contacts[index].phoneNumbers[0].value;
var li = document.createElement('li');
li.innerHTML = "<a href=\"tell://" + phoneNumber + "\>name: " + name + ", name in other form: " + contacts[index].name + " displayName: " + contacts[index].displayName + ";</a>, ";
ul.appendChild(li);
}
}
function onError(error) {
alert('hiba!');
}
function init() {
document.addEventListener("deviceready", onDeviceReady, false);
}===
(#2466) SektorFlop : az entries tömb hosszát adja meg.
-
Sk8erPeter
nagyúr
válasz
papa019 #2465 üzenetére
Itt már térkép is van:
http://jsbin.com/igahov/5/edit#html,live
Nem bírtam ki.
Mondjuk speciel itt azzal nem foglalkoztam, hogy azok a korábbi, jemeni adatok megjelenjenek. -
SektorFlop
aktív tag
valaki megtudná mondani hogy mi a szerepe ennek: entries.length
hosszabb keresgélés után se találtam semmit róla.
-
papa019
senior tag
válasz
Sk8erPeter #2464 üzenetére
Köszi.
Innen megpróbálok egyedül haladni, hogy azért tanuljak is valamit, ne csak másoljak.
Aztán ha elakadok, majd írok. -
papa019
senior tag
válasz
Sk8erPeter #2462 üzenetére
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);
} -
Sk8erPeter
nagyúr
válasz
papa019 #2459 üzenetére
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,liveMindjárt ránézek, hogyan határozod meg a felhasználó helyzetét.
-
Jim-Y
veterán
Akkor ide is, a problémám nem írom le, ide is feltettem. üdv és köszi
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2456 üzenetére
Ahha az alert ablak többször is felvillant nevekkel, bár egy-kettő üres volt, de ott már biztos a telefon oldalán van a hiba.
Nem tudod esetleg listázással mi lehet a baj?
-
papa019
senior tag
válasz
Sk8erPeter #2458 üzenetére
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. -
Sk8erPeter
nagyúr
válasz
papa019 #2457 üzenetére
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.
-
papa019
senior tag
válasz
Sk8erPeter #2454 üzenetére
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?
-
Sk8erPeter
nagyúr
válasz
SektorFlop #2455 üzenetére
Hát most így nem látok bele, alapból úgy gondolnám, ha beállítod, hogy ne csak egyet adjon vissza, akkor nem is csak egy lesz benne, és tömbként működik, különben stringként... ezt viszont cáfolja az utána lévő példa, ha tudnám próbálgatni, könnyebben meg tudnám mondani, de nálad van az eszköz.
És ha pontosan úgy csinálod, ahogy ebben a példában van, tehát alerttel megpróbálod mindegyiket kiíratni?
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2442 üzenetére
Szintén csak a legelső nevet listázza ki, bár nem értem hogy mi szükség a for ciklusra ha alapértelmezett ként csak egy nevet add vissza?
-
Sk8erPeter
nagyúr
válasz
papa019 #2453 üzenetére
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! -
papa019
senior tag
válasz
Sk8erPeter #2452 üzenetére
Nagyon köszönöm, hogy ilyen késői időpontban is foglalkozol a kérdésemmel.
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. -
Sk8erPeter
nagyúr
válasz
papa019 #2451 üzenetére
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. -
papa019
senior tag
válasz
Sk8erPeter #2450 üzenetére
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]
-
Sk8erPeter
nagyúr
válasz
papa019 #2449 üzenetére
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ő? -
papa019
senior tag
válasz
Sk8erPeter #2448 üzenetére
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
válasz
Sk8erPeter #2446 üzenetére
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.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #2445 üzenetére
Egyébként szerintem ezerszer jobban járnál a Google Maps API-val, bár nem tudom, mi a cél.
-
Sk8erPeter
nagyúr
válasz
papa019 #2443 üzenetére
Itt a dokumentációja.
Először is ha már JS-ben akarod használni, akkor a JSON-formátumot kérd le, elvileg a format paraméterrel meg tudod adni ezt is: [link]. Ahogy itt a címben hozzácsapja: [link].
A többit nem tudom, nem használtam még a WikiMapia API-t. -
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->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? -
Sk8erPeter
nagyúr
válasz
SektorFlop #2441 üzenetére
Gyors keresgélés után megtaláltam a ContactFindOptions-t: [link].
Ez alapján pedig ez a baj:
Propertiesfilter: The search string used to find contacts. (DOMString) (Default: "")
multiple: Determines if the find operation should return multiple contacts. (Boolean) (Default: false)A félkövérített rész azt mondja meg, hogy alapértelmezettként nem sok emberkét ad vissza, hanem egyet a felvett kapcsolatok közül.
Ezért a megoldás az, hogy egészítsd ki a kódodat, az
options.filter="";
sor ALÁ rakd még be ezt is:
options.multiple=true; // return multiple resultsRemélem így már sikerül, majd írd meg, mi a helyzet.
-
SektorFlop
aktív tag
válasz
Sk8erPeter #2440 üzenetére
Most tanulom a dolgot példa programok alapján próbálom összedobni. Angol könyvből tanulom sajnos így nehézkesen megy.
Egy android alkalmazásról lenne szó ami csak kilistáza a neveket és ha valamelyikre rábökünk a tárcsázóba bemásolja a számát, igazából az onSuccess függvény első fele nem világos nekem. Ha jól értettem a könyv szerint a contacts tömb tartalma a telefonon lévő névjegyzékek. Remélem nem írok nagy hülyeségeket.
Ugyan ezzel a módszerrel sikerült kilistáznom az sd kártya tartalmát, de névjegyzékek esetén csak az első nevet írja ki. Gondolkoztam azon hogy esetleg a telefon oldalán lehet a probléma.
A témával kapcsolatban nem találtam topicit, ezért merészkedtem ide írni, mivel az egész js ugyan úgy.
teljes dokumentum:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Kapcsolatok</title>
<script type="text/javascript" src="phonegap-1.1.0.js"></script>
<script type="text/javascript">
function onDeviceReady(){
var options = new ContactFindOptions();
options.filter="";
var fields = ["phoneNumbers", "name"];
navigator.contacts.find(fields, onSuccess, onError, options);
}
function onSuccess(contacts) {
var ul = document.getElementById("list");
for(var index=0;index<contacts.length;index++){
var name = contacts[index].name.formatted;
var phoneNumber = contacts[index].phoneNumbers[0].value;
var li = document.createElement('li');
li.innerHTML = "<a href=\"tell://"+phoneNumber+"\>"+name+";</a>";
ul.appendChild(li);
}
}
function onError(error) {
alert('hiba!');
}
function init(){
document.addEventListener("deviceready", onDeviceReady, false);
}
</script>
</head>
<body onLoad="init()">
<h1 align="center">Névjegyek</h1>
<ul id="list"></ul>
</body>
</html> -
Sk8erPeter
nagyúr
válasz
SektorFlop #2439 üzenetére
És szerinted honnan találjuk ki, hogy mi van a contacts tömbödben?
Az sem igazán világos, a nevek kilistázására szolgáló függvénynek hogyan adhattál ennyire nem találó nevet, mint az onSuccess.Minden függvény lehetőleg kapjon olyan nevet, amire való.
Szóval ha szeretnél segítséget, teljes kódra lenne szükség, vagy legalább olyanra, amiből kiderül, egyáltalán mit csinálsz korábban.
Példakódot is felrakhatnál jsbin-re: [link]. -
SektorFlop
aktív tag
Valaki ha esetleg tud segítsen!
Névjegyzéket szeretnék kilistázni, de csak az első nevet írja ki.
function onDeviceReady(){
var options = new ContactFindOptions();
options.filter="";
var fields = ["phoneNumbers", "name"];
navigator.contacts.find(fields, onSuccess, onError, options);
}
function onSuccess(contacts) {
var ul = document.getElementById("list");
for(var index=0;index<contacts.length;index++){
var name = contacts[index].name.formatted;
var phoneNumber = contacts[index].phoneNumbers[0].value;
var li = document.createElement('li');
li.innerHTML = ""+name+", "+phoneNumber+"";
ul.appendChild(li);
}
}
function init(){
document.addEventListener("deviceready", onDeviceReady, false);
} -
[pod]Diablo
őstag
válasz
Sk8erPeter #2437 üzenetére
egy ujabb problema megoldva
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2436 üzenetére
Az lesz a gond, hogy nincs betöltve a jQuery UI.
Itt a korábban elkészített kódban próbáld ki, hogy kikommentezed a jQuery UI elérési útját (<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js"></script>), majd nyitsz egy konzolt Chrome-ban az F12-vel (Console fül), és kattints valamelyik menüpontra, ugyanez lesz a hiba. -
[pod]Diablo
őstag
válasz
Sk8erPeter #2435 üzenetére
Koszi szepen,sikerult: )
Hala egnek egy ujabb problemaba utkoztem
.van egy ilyen programkodom:$("#nav").hide("slide", { direction: "left" }, 1000); es melle egy ilyen hibauzenet:Uncaught TypeError: Property '#<Object>' of object #<Object> is not a function
Hogyha kiveszem belole a slide-ot,meg a direction,es csak a speed-et hagyom benne,akkor mukodik.Ez igy miert nem tetszhet a bongeszonek?Elore is koszonom a segitseget!
-
Sk8erPeter
nagyúr
válasz
[pod]Diablo #2434 üzenetére
Az eredeti kódod egyáltalán nem működik itt jsFiddle-ön, csak ha így átírom: [link] (lásd addEventListener).
Úgy tudnád leginkább "együvé tartozóvá" alakítani a kódodat (tehát hogy az adott személyekhez adott életkor tartozzon), hogy objektumokból építed fel a listádat, ami így egy objektumokat tartalmazó tömb lesz. Az objektumok pedig valahogy így nézzenek ki gyors példával (látszik benne egyből az értékek felhasználása is):
var Persons = [],
persons_output = '',
i = 0;
Persons.push({
name: 'Pista',
age: 123
});
Persons.push({
name: 'Józsi',
age: 65
});
for (i = 0; i < Persons.length; i++) {
persons_output += "name: " + Persons[i].name + ", age: " + Persons[i].age + "\n";
}
alert(persons_output); -
[pod]Diablo
őstag
Udv!
Valaki tudna nekem segiteni hogy ebbe a kodba hogy tudnam azt megcsinalni hogy ha pl nevszerint rendezek,akkor pl a zolival egyutt a mellette levo kor is lejebb keruljon,es ugyan igy a szamoknal?
Elore is koszonom a segitseget!
-
papa019
senior tag
válasz
Sk8erPeter #2431 üzenetére
-
papa019
senior tag
válasz
Sk8erPeter #2429 üzenetére
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.
-
Sk8erPeter
nagyúr
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).
-
válasz
Sk8erPeter #2427 üzenetére
nálam is 11-nél ált meg és én sem értem ha programozó csinálta akkor 2-hatványai -1 lenne az értelmes
ha marketinges akkor meg 10 vagy 50 vagy 100
persze lehet magyar és 1 tucat már nem megy
de régen működött aztán egyszer csak elromlott
-
-
válasz
Sk8erPeter #2423 üzenetére
Nem feltétlenül gond, hogy publikus a tábla, ha php-ból jsbe generálod a markereket akkor megint csak ott lesz a 11-es limit
... tehát ha 11-nél több marker kell akkor js-ből kell behúzni az adatokat...
-
Sk8erPeter
nagyúr
Tudom, hogy tudnak fogadni belőle adatot...
Eddig is erről beszéltünk.
De nem értem, miért ne működhetne a PHP-s API felhasználásával az adatok JS-kódba íratása, úgy, hogy nem feltétlenül egy megadott Fusion táblához csatlakozol, hanem mondjuk a Gmap modullal rajzoltatod ki a markereket.VAGY ha mégis, akkor miért baj, hogy publikus a tábla? Ez volt a lényegi kérdés igazából...
-
válasz
Sk8erPeter #2421 üzenetére
a php-s kiszedés / kirakás nagy mennyiségű adatnél (pl nálam poi) ugyanugy nem menne mint eddig, a google cuccok (draw, maps) meg tudnak fusionból fogadni adatot...
-
Sk8erPeter
nagyúr
Hogy érted, hogy view-t? Hol, mivel?
Amúgy ha PHP-vel csatlakozol, majd lekéred a megfelelő adatokat, azt kiíratod JS-kódba, akkor végül is nem kell, hogy bárki hozzáférhessen JS-sel.Amúgy őszintén szólva nem értem, miért baj, ha maga a lista publikus. Gondolom update-elni csak felhasználónévvel és jelszóval lehet. A többi adatot meg úgyis látja mindenki a honlapodon, tök mindegy, hogy most az honnan származik... Nem?
-
válasz
Sk8erPeter #2419 üzenetére
ha JS-ből akarod elérni pl draw vagy maps alól akkor publikusnak kell lennie
.. de elvileg lehet viewt csinálni hozzá és elég az, ha publikus ...
legalábbis a példát amit én láttam abban így volt.
-
Sk8erPeter
nagyúr
Hogyhogy teljesen publikusak?
Nem néztem utána, de itt a példában úgy tűnik, felhasználónevet, jelszót is meg kell adni:
//get token
$token = ClientLogin::getAuthToken('username', 'password');
$ftclient = new FTClientLogin($token);
.... -
válasz
Sk8erPeter #2417 üzenetére
a php-s dolgokat közben megtaláltam 1 bajom van vele, hogy tök publikusak ezek a táblák (mármint ha weboldalon használni akarod)
-
válasz
Sk8erPeter #2415 üzenetére
fusion távlát használok és a googleből ki lehet rakni mind js-sel mind iframmel az adatokat ...
viszont majd a partnerek bekerülését és törlését meg kell oldani ebből az "adatbázisból is
, mert eddig a belső rendszerből jött"
-
válasz
Sk8erPeter #2413 üzenetére
Oké tudom
, csak egy ideig ment aztán egyszer csak 11 markernél nem rak ki többet vagy hibát ad a gmaps... viszont megjelent egy fusion table google cucc amiből meg korlátlan markert ki lehet rakni így most ezzel próbálkozom ...
-
Sk8erPeter
nagyúr
Bocs, de korrigálnom kell magam, mert hülyeségeket beszéltem.
A v3-as verzióhoz valóban nem kell API-kulcs, én azt feltételeztem, a saját térképek helyes működéséhez kell, de kiderült, hogy csak a monitorozáshoz van extra haszna - na meg mondjuk az is tény, hogy pl. a Drupalnál vannak modulok, amikhez követelmény a Google v3-as API-kulcsa.
Még saját testreszabott térképek megjelenítését nem próbáltam API-kulcs nélkül, hogy úgy működik-e (az infók szerint kellene nekik).[link]
"Google Maps JavaScript API v3The Google Maps JavaScript API v3 does not require an API key to function correctly. However, we strongly encourage you to load the Maps API using an APIs Console key which allows you to monitor your application's Maps API usage. Learn how to use an APIs Console key."
A plugin honlapján egyébként ezt írják:
jQuery gMap:
"You need to use the Maps API V3 Javascript from Google, you can set the sensor parameter to true or false to detect the user's location, there's no need to generate an API key:"
De itt most csak arról beszél, hogy ahhoz nincs szükség API-kulcsra, hogy a felhasználó tartózkodási helyét tudd detektálni - az engedélyére viszont szükség lesz. Operában amúgy ez nem is működik.Na, de a lényegre térve: itt van egy elég jónak tűnő tutorial + demo: [link].
Meg itt v2-es API-t használva: [link].
DE a Gmap honlapján elég érthetők a példák, lásd a markers részt az options-ön belül: [link]options =
{
latitude: 47.58969,
longitude: 9.473413,
zoom: 10,
markers: [{latitude: 47.670553, longitude: 9.588479, html: "Tettnang, Germany"},
{latitude: 47.65197522925437, longitude: 9.47845458984375, html: "Friedrichshafen, Germany"}],
controls: ["GSmallMapControl", "GMapTypeControl"],
scrollwheel: false,
maptype: G_NORMAL_MAP,
html_prepend: '<div class="gmap_marker">',
html_append: '</div>',
icon:
{
image: "images/gmap_pin.png",
shadow: false,
iconsize: [19, 21],
shadowsize: false,
iconanchor: [4, 19],
infowindowanchor: [8, 2]
}
};Vagy másik példa: [link]
$("#map4").gMap({ markers: [{ latitude: 47.651968,
longitude: 9.478485,
html: "_latlng" },
{ address: "Tettnang, Germany",
html: "The place I live" },
{ address: "Langenargen, Germany",
html: "_address" }],
address: "Braitenrain, Germany",
zoom: 10 });Még bővebben:
$("#map4").gMap({ controls: false,
scrollwheel: false,
markers: [{ latitude: 47.670553,
longitude: 9.588479,
icon: { image: "images/gmap_pin_orange.png",
iconsize: [26, 46],
iconanchor: [12,46],
infowindowanchor: [12, 0] } },
{ latitude: 47.65197522925437,
longitude: 9.47845458984375 },
{ latitude: 47.594996,
longitude: 9.600708,
icon: { image: "images/gmap_pin_grey.png",
iconsize: [26, 46],
iconanchor: [12,46],
infowindowanchor: [12, 0] } }],
icon: { image: "images/gmap_pin.png",
iconsize: [26, 46],
iconanchor: [12, 46],
infowindowanchor: [12, 0] },
latitude: 47.58969,
longitude: 9.473413,
zoom: 10 }); -
válasz
Sk8erPeter #2411 üzenetére
Sajnos még mindig nem ok ... mostmár 3-as api van
, de most meg ha több mint 11 poit rakok ki akkor d is null hibát kapok (ff-ben) a térkép megjelenik, de a poik nem
-
Sk8erPeter
nagyúr
Hát akkor rosszul tudod. DE, kell. Mondjuk ezt könnyű lett volna kideríteni:
Google Maps JavaScript API v3 - Obtaining an API Key -
válasz
Sk8erPeter #2409 üzenetére
De én úgy tudom, hogy 3-ashoz nem kell apikulcs?vagy kell? ha igen honnanlehetszerezni? :$
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #2408 üzenetére
Kipróbáltam az oldalt, amit linkeltél priviben, és jól tippeltem, az API-kulccsal van gond, úgy tűnik, a régiek helyett újat kell igényelni (most a v2 API-t deprecatednek minősítették, és a v3 használata preferált).
Amikor azt használom, ezt az üzenetet dobja alert() formájában:"A weboldalhoz másik Google Térkép API-kulcs szükséges. Új kulcs a(z)
http://code.google.com/apis/maps/documentation/javascript/v2/introduction.html#Obtaining_Key
címen generálható."Ezt úgy tudod Te is kipróbálni, hogy előveszel egy Chrome-ot, nyomsz egy F12-t, és a Console fülön egy az egyben bedobod a következőt, majd Enter:
function injectJavaScript( js_filename, id_of_script_tag ){
// include JS file
var headID = document.getElementsByTagName("head")[0];
var newScriptNode = document.createElement('script');
newScriptNode.type = 'text/javascript';
if(id_of_script_tag){
newScriptNode.id = id_of_script_tag;
}
newScriptNode.src = js_filename;
headID.appendChild(newScriptNode);
}
injectJavaScript('http://maps.google.com/maps?file=api&v=2&sensor=false&key=AIzaSyC06zy6NbowHE_GDOufLnWfWMdsjbOc-6E');Ebben benne van az az API-kulcs, amit a linkelt oldalon használsz.
-
Sk8erPeter
nagyúr
Ha új API-kulcsot igényelsz, ami a Google Maps JavaScript API v3-at használja?
-
olyan problémám van, hogy van egy google maps-em amin meg kellene jeleníteni kb 200 pontot, s egy ideig müködöt is, viszont egy ideje csak 10-11 pont jelenik meg? mit lehet tennem?
-
fulton
addikt
válasz
Sk8erPeter #2404 üzenetére
Így van, csak szineződés nélkül és képzeld úgy el mintha a gomb amire kattintok(lenne a belépés az oldalra gomb) a szöveg (oldal) közepén lenne és a mögött lenne a szöveg, (meg még képek is...) és azokon lenne ez a Blur effekt. De még mielőtt rákattintanék a gombra, majd miután rákattintottam eltünne a blur effekt (a háttérről).
Így képzeltem el.
-
fulton
addikt
válasz
Sk8erPeter #2402 üzenetére
innen töltöttem le
Nem, azt szeretném elérni hogy ahogy jelenleg is bejöjjön az oldal, de a háttér elmosott legyen (blur). Mint mikor a lightbox-al megnyitod a képet és a háttér elfeketedik (átlátszóan). Na nekem is szeretném a háttér ilyen lenne csak "elmosottan".
-
Sk8erPeter
nagyúr
Ember legyen a talpán, aki ennyiből tud neked érdemben segíteni. Milyen blur effektről beszélsz, hol lehet megtalálni ezt a plugint, van rá valahol demo?
Itt vannak pl. effektek, ezek elég jófélék.
Mondjuk én őszintén szólva a leírásod alapján nem igazán tudtam kivenni, mi is a célod.
Hiába másolod be a kódod egy részét ide, ha ki se tudjuk próbálni, hogy is működik az, így segíteni sem egyszerű.Valami olyasmit akarsz kicsit érthetőbben megfogalmazva, hogy mondjuk egy modális dialógusablakban felpattan egy belépést elősegítő űrlap, és addig a háttérben az oldal legyen egy sötétített vászonszerűség előtt?
A modális dialógusablakokra bőven vannak példák, pl. ez: [link]. -
fulton
addikt
Sziasztok
Van egy blur effekt Js em, és ezt rá szeretném tenni az egész oldalra. jelenleg úgy nézz ki az oldal, mikor megnyitod bejön egy "bleépés" gomb, de ugyanakkor a háttérben látszik maga az oldal is. (csak a menük nem). És azt szeretném hogy ekkor még Blur effekt legyen a hátteren, vagyis az oldalon (kivéve a belépés gombot), majd mikor rákattintok visszaváltson normál módra. Ezt miként tudom kivitelezni?ha mondjuk "blur_effect.js maga a megírt javasript"
Ez a kód jó pl képekre:
<script type="text/javascript" src="./blur_effect.packed.js" ></script>
<script type="text/javascript">
//blur image
var imgel = document.getElementById("image");
var img_pos = imgel.getBoundingClientRect();
var img = new blur(imgel);
</script>Ez szövegre:
<div id='blured'>
<p>Lalalalalalalalallalaa.</p>
</div>
<script type="text/javascript" src="./blur_effect.packed.js" ></script>
<script type="text/javascript">
var bl = new blur("blured");
</script>De hogy lehetne kivitelezni a fent irottakat?
Valamiféle (maszk kéne rá tenni az oldalra vagy nem tom..) nem nagyon értek ehhez sajnos.
Új hozzászólás Aktív témák
Hirdetés
- LG 48GQ900-B - 48" OLED - 4K 3840x2160 - 138Hz & 0.1ms - G-Sync - FreeSync - HDMI 2.1
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
- Bomba ár! Fujitsu LifeBook U757 - i3-7GEN I 16GB I 256SSD I 15,6" FHD I HDMI I Cam I W11 I Garancia!
- ALIENWARE Area-51 R6 Threadripper Edition 1920X
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest