PSČ v našeptávači

Diskuse k nové verzi mapového API. Napište nám, co se vám na novém API libí či nelíbí a přispějte svými komentáři a připomínkami k jeho zdokonalení.
skl...@...
Příspěvky: 2
Windows NT 64 bits Firefox 53.0 64 bits

PSČ v našeptávači

odesláno v 10 čer 2017 14:31

Dobrý den,
chtěl bych se zeptat, zda a jak se dá vytáhnout PSČ v našeptávači. API od google nemá ČP a tady jsem zase nenašel toto...

zkoušel jsem suggestData.data["secondRow"], ale tam PSČ není...

Díky Honza

rom...@...
Příspěvky: 10
Windows NT 64 bits Google Chrome 58.0.302

Re: PSČ v našeptávači

odesláno v 12 čer 2017 08:57

Zdravím,
bohužel data ohledně PSČ v datech našeptávače nechodí, byla by potřeba dalšího XHR requestu, který by stáhnul dodatečné informace.
Měl byste zájem o tohle řešení? Poté bych mohl udělat příklad na jsfiddle a poslat ho sem.
Pokud byste chtěl zobrazovat PSČ u všech položek našeptávače, tak by se to muselo upravit takto:
- každý našeptávač se skládá ze 3 částí - hlavní část, položka pro vykreslení (item), získávání dat (provider)
- u provideru by se musel po stáhnutí dat poslat další request obsahující PSČ, data pak o tohle obohatit, a teprve až poté je vykreslit
S pozdravem Roman Makudera

skl...@...
Příspěvky: 2
Windows NT 64 bits Firefox 53.0 64 bits

Re: PSČ v našeptávači

odesláno v 12 čer 2017 18:59

Dobrý den,
díky moc za odpověď.
Pokud byste byl tak laskavý a udělal příklad, bylo by to úžasné.
Chtěl jsem použít api pro zadání adresy do eshopu, ale chybějící PSČ bylo trošku zklamání, obzvláště poté co jsem po pár hodinách práce zjistil problém s číslem popisným API od Google :) Myslel jsem že bych ty dvě zkombinoval, ale takto to snad bude jednodušší.

Díky

Honza

rom...@...
Příspěvky: 10
Linux 64 bits Google Chrome 59.0.307

Re: PSČ v našeptávači

odesláno v 13 čer 2017 06:47

Zdravím,
tak mám novější informace. V těch datech našeptávače chodí klíč "zipCode" jako PSČ, ale momentálně nic nevrací. Bavil jsem s kolegou a měli tam chybu, která se opravila a tento týden by se mohla nasadit.
Problém je ale ten, že pokud našeptáváte města - Brno, Praha, tak tam se v datech PSČ nevrací, protože takovéto město obsahuje 1+ PSČ adres.
Pokud zadáte takový dotaz - přesná adresa, město s 1 PSČ, tak by se pak po té opravě v těch datech mělo vrátit.
Záleží teda na co našeptávač budete používat.
Po té opravě bych pak viděl následující postup:
- hlavní objekt našeptávače - druhý volitelný parametr je objekt, tomu předáte { provider: new MujProvider() }
- vytvoříte si vlastní provider

Kód: Vybrat vše
MujProvider = JAK.ClassMaker.makeClass({
   NAME: "MujProvider,
   VERSION: "1.0",
   EXTEND: SMap.SuggestProvider
});


poté je potřeba modifikovat metodu, která slouží k tomu zpracovaní dat

Kód: Vybrat vše
MujProvider,prototype._processData = function() {
var _this2 = this;

if (!this._responseData) return;

var rawData = JSON.parse(this._responseData.data);

if (rawData.result && Array.isArray(rawData.result)) {
   var resultsItems = rawData.result.map(function (item) {
      var poiTypeId = item.userData.poiTypeId || 0;
      var firstRow = (item.userData.suggestFirstRow || "").trim();

      return {
         longitude: parseFloat(item.userData.longitude),
         latitude: parseFloat(item.userData.latitude),
         source: item.userData.source,
         id: item.userData.id,
         title: firstRow,
         secondRow: (item.userData.suggestSecondRow || "").trim(),
         thirdRow: (item.userData.suggestThirdRow || "").trim(),
         phrase: firstRow || item.sentence,
         iconType: item.userData.iconType || "",
         iconUrl: _this2._getIconUrl(poiTypeId),
         poiTypeId: poiTypeId,
                        psc: item.userData.zipCode
      };
   });

   this._promise.fulfill(resultsItems);
}

this._promise = null;
this._request = null;
}


- když se podíváte na ten kód v tom souboru, tak vás hlavně zajímá obsah mapovací funkce, je tam velký return, kde jsem přidal to PSČ.
- obsah té funkce není moc hezký, protože vznikl po transpilaci ES6 -> ES5
S pozdravem Roman Makudera

Zpět na Mapy API v4.0