Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var poisSCAMI2 = function(lat,long,radius,callback){
- var tretas = {};
- QueryOverpass('way[~"^(amenity|maxspeed|shop|leisure|highway)$"~"."](around:'+ radius + ',' +lat+','+long+');(._;>;);out;',function(err,data1){
- var features = [];
- if(data1.features != undefined) features = features.concat(data1.features);
- QueryOverpass('node[~"^(amenity|shop|leisure|maxspeed|highway)$"~"."](around:'+ radius + ',' +lat+','+long+');out;',function(err,data){
- var amenities = {};
- if(err){
- console.log("ERROR");
- return callback(err,amenities);
- }
- features = features.concat(data.features);
- //for(var i = 0; i < features.length; i++){
- console.log(features.length);
- var forCycle = function(features,i){
- if(i < features.length){
- var feature = features[i];
- var amenity = feature.properties.tags.amenity;
- var shop = feature.properties.tags.shop;
- var leisure = feature.properties.tags.leisure;
- var maxspeed = feature.properties.tags.maxspeed;
- var highway = feature.properties.tags.highway;
- /*
- if(shop != undefined) console.log("THIS IS A SHOP");
- if(amenity != undefined) console.log("THIS IS AN AMENITY");
- if(leisure != undefined) console.log("THIS IS A LEISURE");
- if(maxspeed != undefined) console.log("THIS IS A MAXSPEED");
- if(highway != undefined) console.log("THIS IS A HIGHWAY TO HELL");
- console.log("-----------------------------------------");*/
- var indicador = null;
- var indicadores = [];
- if(amenity != undefined){
- switch(amenity){
- // I1 - CRECHE OU JARDIM DE INFANCIA
- case 'kindergarten':
- case 'prep_school':
- case 'preschool':
- case 'childcare':
- indicador = 'i1';
- break;
- //I2 - ESCOLA ENSINO BASICO
- case 'school_primary_education':
- indicador = 'i2';
- break;
- //I3 - ESCOLA SECUNDARIA
- case 'high_school':
- case 'school':
- indicador = 'i3';
- break;
- //I4 - ENSINO SUPERIOR
- case 'college':
- case 'university':
- indicador = 'i4';
- break;
- //I5 - CENTRO SAUDE
- case 'health_center':
- case 'health-center':
- case 'clinic':
- case 'doctors':
- indicador = 'i5';
- break;
- //I6 - HOSPITAL
- case 'hospital':
- case 'district_hospital':
- indicador = 'i6';
- break;
- //I7 - MATERNIDADE
- case 'maternity':
- case 'maternity_care':
- case 'maternity_hospital':
- case 'maternity_clinic':
- indicador = 'i7';
- break;
- //I8 - FARMACIA
- case 'pharmacy':
- case 'pharmacy_hospital':
- indicador = 'i8';
- break;
- //I9 - GINASIO, HEALTHCLUB, FISIOTERAPIA
- case 'gym':
- case 'gymnasium':
- case 'fitness_club':
- case 'health_club':
- case 'outdoor_gym':
- case 'fitness_center':
- case 'fitness-center':
- case 'clinic':
- indicador = 'i9';
- break;
- //I10 - EMERGENCIA MEDICA
- case 'emergency_service':
- case 'emergency_station':
- indicador = 'i10';
- break;
- //I11 - PARQUE INFANTIL
- case 'playground':
- case 'school_playground':
- indicador = 'i11';
- break;
- //I12 - ESPAÇOS VERDES
- case 'greenfield':
- case 'open_green_area':
- case 'social_centre':
- indicador = 'i12';
- break;
- //I13 - TEATRO OU CINEMA
- case 'cinema':
- case 'theatre':
- case 'theatre_stage':
- indicador = 'i13';
- break;
- //I14 - BAR OU DISCO
- case 'bar':
- case 'pub':
- case 'stripclub': //uiui
- case 'wine_bar':
- case 'nightclub':
- indicador = 'i14';
- break;
- //I15 - CAFE , PADARIA OU PASTELARIA
- case 'cafe':
- case 'bakery':
- case 'cafeteria':
- indicador = 'i15';
- break;
- //I16 - MINI MERCADO / SUPER MERCADO
- case 'marketplace':
- case 'supermarket':
- case 'market':
- indicador = 'i16';
- break;
- //I17 - RESTAURANTE / TAKEAWAY
- case 'restaurant':
- case 'fast_food':
- indicador = 'i17';
- break;
- //I18 - SHOPPING
- case 'shopping':
- case 'shopping_centre':
- indicador = 'i18';
- break;
- //I19 - PAPELARIA / TABACARIA
- case 'stationary_shop':
- indicador = 'i19';
- break;
- //I20 - BANCO / MB
- case 'bank':
- case 'atm':
- case 'money_transfer':
- indicador = 'i20';
- break;
- //I21 - CTT
- case 'post_office':
- case 'post_box':
- indicador = 'i21';
- break;
- //I22 - LOJA CIDADAO / SEVIÇOS PUBLICOS
- case 'payment_centre':
- case 'townhall':
- case 'courthouse':
- indicador = 'i22';
- break;
- //I23 - PROTECÇAO CIVIL
- case 'fire_station':
- case 'police':
- case 'police_station':
- indicador = 'i23';
- break;
- //I25 - BICICLETA
- case 'bicycle_rental':
- case 'bicycle_parking':
- indicador = 'i25';
- break;
- //I27 - CARRO
- case 'fuel':
- case 'parking':
- case 'parking_entrance':
- case 'car_sharing':
- indicador = 'i27';
- break;
- //I28 - PONTO CARREGAMENTO ELETRICO
- case 'charging_station':
- indicador = 'i28';
- break;
- //I29 - ESTAÇAO FERROVIARIA
- case 'train_station':
- indicador = 'i29';
- break;
- //I30 - AEROPORTO
- case 'airport':
- indicador = 'i30';
- break;
- }//END OF SWITCH
- if(indicador != null) indicadores.push(indicador);
- else console.log("AMENITY - " + amenity);
- }//END OF IF
- if(shop != undefined){
- indicador = null;
- switch(shop){
- //I8 - FARMACIA
- case 'medical_supply':
- indicador = 'i8';
- break;
- //I15 - CAFE , PADARIA OU PASTELARIA
- case 'bakery':
- case 'confectionery':
- case 'pastry':
- indicador = 'i15';
- break;
- //I16 - MINI MERCADO / SUPER MERCADO
- case 'deli':
- case 'variety_store':
- case 'supermarket':
- case 'general':
- case 'department_store':
- case 'convenience':
- indicador = 'i16';
- break;
- //I18 - SHOPPING
- case 'mall':
- case 'boutique':
- case 'clothes':
- case 'fashion':
- case 'shoes':
- indicador = 'i18';
- break;
- //I19 - PAPELARIA / TABACARIA
- case 'kiosk':
- case 'stationery':
- case 'newsagent':
- case 'lottery':
- case 'tobacco':
- indicador = 'i19';
- break;
- }//END OF SWITCH
- if(indicador != null) indicadores.push(indicador);
- else console.log("SHOP - " + shop);
- }
- if(leisure != undefined ){
- indicador = null;
- switch(leisure){
- //I9 - GINASIO, HEALTHCLUB, FISIOTERAPIA
- case 'fitness_centre':
- indicador = 'i9';
- break;
- //I11 - PARQUE INFANTIL
- case 'playground':
- indicador = 'i11';
- break;
- //I12 - ESPAÇOS VERDES
- case 'bird_hide':
- case 'dog_park':
- case 'firepit':
- case 'fishing':
- case 'garden':
- case 'nature_reserve':
- case 'park':
- case 'picnic_table':
- case 'summer_camp':
- case 'wildlife_hide':
- indicador = 'i12';
- break;
- //I14 - BAR OU DISCO
- case 'dance':
- case 'bandstand':
- indicador = 'i14';
- break;
- }//END OF SWITCH
- if(indicador != null) indicadores.push(indicador);
- else console.log("LEISURE - " + leisure);
- }//END OF ELSE IF
- if(maxspeed != undefined ){
- indicador = null;
- switch(maxspeed){
- case '50':
- case '20':
- case '30':
- indicador = 'i25';
- break;
- case '100':
- case '120':
- case '110':
- indicador = 'i27';
- break;
- }
- if(indicador != null) indicadores.push(indicador);
- else console.log("MAXSPEED - " + maxspeed);
- }
- if(highway != undefined ){
- indicador = null;
- switch(highway){
- case 'cycleway':
- indicador = 'i25';
- break;
- }
- if(indicador != null) indicadores.push(indicador);
- else console.log("HIGHWAY - " + highway);
- }
- /*
- if(indicador != null){
- if(tretas[indicador] == undefined) tretas[indicador] = 1;
- else tretas[indicador] += 1;
- }
- else{
- //console.log(amenity);
- //console.log(shop);
- //console.log('------------');
- }
- */
- if(indicadores.length == 0){
- forCycle(features,i+1);
- }
- else{
- var coordinates = null;
- if(feature.properties.type == 'way'){
- if(feature.geometry.type == 'LineString')
- coordinates = feature.geometry.coordinates[0];
- else coordinates = feature.geometry.coordinates[0][0];
- }
- else coordinates = feature.geometry.coordinates;
- Distance.get(
- {
- origin: lat + "," + long,
- destination: coordinates[1] + "," + coordinates[0],
- mode: 'walking',
- units: 'metric'
- }, function(err,data){
- if(err){
- console.log("ERROR " + err);
- console.log(coordinates);
- console.log(feature);
- forCycle(features,i+1);
- }
- else{
- feature.distPe = data.distanceValue;
- for(var j = 0; j < indicadores.length; j++){
- var indicador = indicadores[j];
- if(indicador == 'i25'){
- if(feature.properties.tags.amenity == 'bicycle_rental' ){// && feature.distPe <= 400){
- if(amenities[indicador] == undefined){
- amenities[indicador] = {
- "bikesharing": 1
- }
- }else if(amenities[indicador]["bikesharing"] == undefined){
- amenities[indicador]["bikesharing"] = 1;
- }
- } else if(feature.properties.tags.highway == "cycleway" ){ //&& feature.distPe <= 400){
- if(amenities[indicador] == undefined){
- amenities[indicador] = {
- "ciclovia": 1
- }
- }else if(amenities[indicador]["ciclovia"] == undefined){
- amenities[indicador]["ciclovia"] = 1;
- }
- } else if(feature.properties.tags.amenity == 'bicycle_parking') {// && feature.distPe <= 180){
- if(amenities[indicador] == undefined){
- amenities[indicador] = {
- "parking": 1
- }
- }else if(amenities[indicador]["parking"] == undefined){
- amenities[indicador]["parking"] = 1;
- }
- } else if("20,10,30,40,50".indexOf(feature.properties.tags.maxspeed) != 1 ) { //&& feature.distPe <= 800){
- if(amenities[indicador] == undefined){
- amenities[indicador] = {
- "50": 1
- }
- }else if(amenities[indicador]["50"] == undefined){
- amenities[indicador]["50"] = 1;
- }
- }
- }
- else if(indicador == 'i27'){
- if(feature.properties.tags.amenity == "car_sharing") { // && feature.distPe <= 800){
- if(amenities[indicador] == undefined){
- amenities[indicador] = {
- "carsharing": 1
- }
- }else if(amenities[indicador]["carsharing"] == undefined){
- amenities[indicador]["carsharing"] = 1;
- }
- } else if ("parking,parking_entrance".indexOf(feature.properties.tags.amenity) != -1 ){//&& feature.distPe <= 100){
- if(amenities[indicador] == undefined){
- amenities[indicador] = {
- "parking": 1
- }
- }else if(amenities[indicador]["parking"] == undefined){
- amenities[indicador]["parking"] = 1;
- }
- } else if(feature.properties.tags.amenity == "fuel"){
- if(amenities[indicador] == undefined){
- amenities[indicador] = {
- "fuel": 1
- }
- }else if(amenities[indicador]["fuel"] == undefined){
- amenities[indicador]["fuel"] = 1;
- }
- } else if("100,110,120".indexOf(feature.properties.tags.maxspeed) != -1){
- if(amenities[indicador] == undefined){
- amenities[indicador] = {
- "100": 1
- }
- }else if(amenities[indicador]["100"] == undefined){
- amenities[indicador]["100"] = 1;
- }
- }
- }
- else{
- if(amenities[indicador] == undefined){
- amenities[indicador] = [feature];
- }
- else{
- amenities[indicador].push(feature);
- }
- }
- }
- forCycle(features,i+1);
- }
- });
- };
- }else{
- callback(null,amenities);
- }
- }
- forCycle(features,0);
- });
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement