12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- /**
- * @fileoverview cartodb viz.json 解析
- * @author Song.Huang
- * @version 1.0.0
- */
- define(function() {
- var cartodbParse = function() {
- /**
- * [getVizInfo description]
- * @param {[type]} options [description]
- * @param {[type]} callbackFunc [description]
- * options.vizUrl = 'http://imhuangsong.carto.com/api/v2/viz/81a3f750-f60f-11e5-8817-0e3ff518bd15/viz.json'
- */
- this.getVizInfo = function(options, callbackFunc) {
- ONEMAP.V.loading.load();
- $.ajax({
- url: options.vizUrl,
- type: 'GET',
- dataType: 'jsonp'
- })
- .done(function(data) {
- ONEMAP.V.loading.loaded();
- ONEMAP.V.loading.load();
- var domainParse = options.vizUrl.split('/');
- var dPort = domainParse[2].split(':');
- var ajaxUrl = domainParse[0]+'//'+dPort[0]+'/'+
- domainParse[3]+'/'+domainParse[4]+'/'+domainParse[5]+
- '/v1/map/named/'+data['layers'][1]['options']['named_map']['name']+'/jsonp'
- $.ajax({
- url: ajaxUrl,
- type: 'GET',
- dataType: 'jsonp',
- data: {
- stat_tag:data['layers'][1]['options']['named_map']['stat_tag'],
- config:JSON.stringify(data['layers'][1]['options']['named_map']['params'])
- },
- })
- .done(function(tdata) {
- ONEMAP.V.loading.loaded();
- var layers = [];
- tdata.utfgridUrl = {};
- $.each(tdata['metadata']['layers'],function(index, el) {
- if(el['type'] == 'mapnik'){
- layers.push(index);
- tdata.utfgridUrl[index] = domainParse[0]+'//'+dPort[0]+'/'+
- domainParse[3]+'/'+domainParse[4]+'/'+domainParse[5] + '/v1/map/' + tdata.layergroupid + '/'+index+'/{z}/{x}/{y}.grid.json';
- }
- });
-
- tdata.serverApiUrl = domainParse[0]+'//'+dPort[0]+'/'+
- domainParse[3]+'/'+domainParse[4]+'/'+domainParse[5];
- tdata.templateUrl = domainParse[0]+'//'+dPort[0]+'/'+
- domainParse[3]+'/'+domainParse[4]+'/'+domainParse[5] + '/v1/map/' + tdata.layergroupid + '/'+layers.join(',')+'/{z}/{x}/{y}.png';
- callbackFunc(tdata);
- });
-
- })
- }
- };
- return cartodbParse;
- })
|