Qlik and Google Map API

Автор Staniiislav, 21 ноября 2015, 12:56:49

« назад - далее »

Staniiislav

Доброго времени суток Уважаемые форумчане.
Пытаюсь восстановить(изучить) знания по QlikView.
Столкнулся с проблемой, Google Map API. По ссылке:
https://www.youtube.com/watch?v=pIks3URdQpQ
есть материка как сделать карты, все сделал, и все работает, а вот как быть с русскоязычными названиями городов, не как не могу понять что нужно изменить или дописать...
Кто-то сталкивался с такой проблемой? Может подсказать что делать?

admin

Привет, гугл возвращает карту по языку браузера. Клик представляется англоязычным, отсюда и результат.
Честно говоря, не напрягает.

Staniiislav

#2
Спасибо за ответ. Так что, нужно адреса писать только на английском?
Русского языка нет? Допустим только Moscow?

bibis

#3
Добрый день при инициализации карты допишите:
&language=ru
в конец url

Staniiislav

Спасибо за ответ!
Я это уже сделал, карта отображается на русском, а вот координаты не рисуются если город Москва написан на русском языке.. Может подправите меня, вот код загрузки:

CustomerTable:
LOAD Quantity as QuantityMap,
     Customer as CustomerMap,
     City as CityMap
FROM
[D:\MEGA\Qlikview\Map Google QlikView\Customer_info.xls]
(biff, embedded labels, table is Sheet1$);

//loads the data.
let noRows = NoOfRows('CustomerTable')-1;

for i=0 to $(noRows)

let a=peek('CustomerMap',$(i),'CustomerTable');
    let b=peek('CityMap',$(i),'CustomerTable');
    let c=peek('QuantityMap',$(i),'CustomerTable');
       

GeocodeResponse:
LOAD
'$(a)' as CustomerName,
'$(b)' as CustomerCity,
'$(c)' as CustomerQuantity,
([result/geometry/location/lat]) AS latitude,
([result/geometry/location/lng]) AS longitude
FROM [http://maps.googleapis.com/maps/api/geocode/xml?address=$(b)&sensor=false&language=ru&region=ru] (XmlSimple, Table is [GeocodeResponse]);

next 



// Google Maps in QlikView
// V0.85.2 - October 1st 2008  © Copyright QlikTech International AB 2008 / AES

// Google Maps Key
// get a key here http://code.google.com/apis/maps/signup.html
//gmap_key = 'xx'
gmap_key = '';
max_zoom_level = 14; //maximum value 17
def_zoom_Level =7;
def_map_size = 400;

// Variables required for calculating map
// No need to change these
var_pi180= '=pi()/180';
var_lat_offset= '0';
var_mc2= '=256*pow(2,$(var_zoom))';
var_mc1= '=256*pow(2,($(var_zoom)-1))';
var_mid_lat= '=median(latitude)';
var_mid_long= '=median(longitude)';
var_zoom= '=max(aggr(if(max( round(256*pow(2,(_zoom_level -1)))+( longitude  *((256*pow(2,_zoom_level ))/360)) )-min( round(256*pow(2,(_zoom_level -1)))+( longitude  *((256*pow(2,_zoom_level ))/360)) ) <map_size_x AND max((256*pow(2,(_zoom_level-1)))+((0.5*log((1+(sin((latitude)*pi()/180)))/(1-(sin((latitude)*pi()/180)))))*((-256*pow(2,_zoom_level))/(2*pi()))))-min((256*pow(2,(_zoom_level-1)))+((0.5*log((1+(sin((latitude)*pi()/180)))/(1-(sin((latitude)*pi()/180)))))*((-256*pow(2,_zoom_level))/(2*pi()))))<map_size_y,_zoom_level,1),_zoom_level))';
var_maptype= '=if(isnull(only(maptype)),fieldvalue( '&chr(39)&'maptype'&chr(39)&', 1 ),maptype)';
//map_size_x=     '400';
//map_size_y=     '400';

SET HidePrefix='_' ;
// Field required for calcualting best zoom level
_zoom_level:
Load RecNo( ) as _zoom_level autogenerate(max_zoom_level);

maptype:
LOAD * INLINE [
    maptype
    roadmap
mobile
satellite
terrain
hybrid
];



а вот код динамического рисунка, то что на карте:

='http://maps.googleapis.com/maps/api/staticmap?center='
&var_mid_lat
&','
&var_mid_long&'
&zoom=$(var_zoom)'&'
&maptype='&var_maptype&'
&size='&def_map_size&'x'&def_map_size&'
&sensor=false'&'
&language=ru'&'
&region=ru'


Спасибо за помощь


bibis

Добрый день. К сожалению не сразу понял, каким образом вы подгружаете карту (ютуб заблокирован).

У нас сделано через экстеншн, как во вложении, используется 3я версия api  и проблем с русскими названиями нет.

Staniiislav

Добрый вечер.
Спасибо bibis, я качал данный экстеншн, но не как не мог понять как координаты автоматом получить если название городов написано на русском языке...
Сюда из примера координаты должны быть подготовлены изначально (в доп документе).
Сейчас макрос нарисую в экселе, для автоматического получения координат по адресам.
Отпишусь как сделаю.
Спасибо

Staniiislav

#7
Доброго времени суток Уважаемые форумчане.
Итак, обещал отписаться о проделанной работе  ;D
Направление выбрано и работает как хотелось (по только в примерах)...
1) Customer_info.xls : данные с координатами для QlikView
2) GoogleMaps - Cluster.qar : экстеншн
3) GoogleMapsAPI.qvw : сам фаил с примером Google Maps API QlikView
4) GoogleMapsAPI.xls (http://excelvba.ru/programmes/GoogleMapsCoordinates)  : эксель фаил для получения координат.

В данном примере две Google Maps, одна  GoogleMaps - Cluster.qar экстеншн, другая (даже не знаю как назвать правильно) скриптом.

Отдельное спасибо bibis, за примеры, с ними процесс изучения данной темы пошел гораздо быстрее!

Яндекс.Метрика