Skip to content

Commit

Permalink
MapQuest now requires a key
Browse files Browse the repository at this point in the history
  • Loading branch information
jonataswalker committed Sep 16, 2015
1 parent ae5dcb2 commit 202ad2a
Show file tree
Hide file tree
Showing 7 changed files with 153 additions and 95 deletions.
38 changes: 0 additions & 38 deletions build

This file was deleted.

46 changes: 46 additions & 0 deletions build.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
module.paths.push('/usr/local/lib/node_modules');
var
fs = require('fs'),
path = require('path'),
UglifyJS = require('uglify-js'),
read = function(f) {
return fs.readFileSync(f).toString();
},
log = function(t){console.log(t)},
js_str = '',
src_dir = __dirname + '/src/',
js_files = [
'base.js',
'nominatim.js',
'utils.js'
],

out_dir = __dirname + '/',
out_js_file_combined = out_dir + 'ol3-geocoder-debug.js',
out_js_file_min = out_dir + 'ol3-geocoder.js',
i = -1
;


//JS
while(++i < js_files.length){
js_str += read(src_dir + js_files[i]);
}
var wrapper = read(fs.realpathSync(src_dir + 'wrapper.js'));
var js_str_combined = wrapper.replace('{CODE_HERE}', js_str);

fs.writeFile(out_js_file_combined, js_str_combined, function(error) {
if (error) {
log('JS:' + error);
} else {
var result_js = UglifyJS.minify(out_js_file_combined);

fs.writeFile(out_js_file_min, result_js.code, function(error) {
if (error) {
log('JS MIN:' + error);
} else {
log('JS written');
}
});
}
});
2 changes: 2 additions & 0 deletions examples/control-nominatim.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
//Instantiate with some options and add the Control
var geocoder = new Geocoder('nominatim', {
provider: 'mapquest',
key: '5wLaMQ9Z56pVgIKqxhD2UaM2BetlR6Vz', //please, get yours at
// https://developer.mapquest.com/
lang: 'pt-BR',
limit: 5,
keepOpen: true
Expand Down
80 changes: 52 additions & 28 deletions ol3-geocoder-debug.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Geocoder.prototype.getSource = function(){
source: new ol.source.Vector()
});
var defaults = {
provider: 'mapquest',
provider: 'osm',
keepOpen: false
};

Expand All @@ -48,7 +48,6 @@ Geocoder.prototype.getSource = function(){
var container = this.createControl();
this.els = Geocoder.Nominatim.elements;


this.setListeners();
return this;
};
Expand Down Expand Up @@ -91,7 +90,9 @@ Geocoder.prototype.getSource = function(){
utils.removeClass(this.els.input_search, 'ol-geocoder-loading');
utils.addClass(this.els.control, this.constants.expanded_class);
var input = this.els.input_search;
window.setTimeout(function(){input.focus()}, 100);
window.setTimeout(function(){
input.focus();
}, 100);
},
collapse: function(){
this.els.input_search.value = "";
Expand All @@ -108,12 +109,15 @@ Geocoder.prototype.getSource = function(){
var
this_ = this,
input = this.els.input_search,
provider = this.getProvider(
this.options.provider,
query,
this.options.lang,
this.options.limit
);
providers_names = Geocoder.Nominatim.providers.names,
provider = this.getProvider({
provider: this.options.provider,
key: this.options.key,
query: query,
lang: this.options.lang,
limit: this.options.limit
})
;

this.clearResults();
utils.addClass(input, 'ol-geocoder-loading');
Expand All @@ -124,14 +128,16 @@ Geocoder.prototype.getSource = function(){
var response;

switch (this_.options.provider) {
case 'osm':
case 'mapquest':
response = this.response.length > 0 ? this.response : undefined;
case providers_names.OSM:
case providers_names.MAPQUEST:
response = this.response.length > 0
? this.response
: undefined;
break;
case 'photon':
case providers_names.PHOTON:
response = this.response.features.length > 0
? this_.photonResponse(this.response.features)
: undefined;
? this_.photonResponse(this.response.features)
: undefined;
break;
}
if(response){
Expand Down Expand Up @@ -287,20 +293,30 @@ Geocoder.prototype.getSource = function(){
map.addLayer(this.layer);
}
},
getProvider: function(key, query, lang, limit){
var provider = Geocoder.Nominatim.providers[key];
provider.params.q = query;
provider.params.limit = limit || provider.params.limit;
getProvider: function(options){
var
provider = Geocoder.Nominatim.providers[options.provider],
providers_names = Geocoder.Nominatim.providers.names,
langs_photon = ['de', 'it', 'fr', 'en']
;
provider.params.q = options.query;
provider.params.limit = options.limit || provider.params.limit;

//defining key
if(options.provider == providers_names.MAPQUEST){
provider.params.key = options.key;
}

if(key == 'photon'){
lang = lang.toLowerCase();
var accepted = ['de', 'it', 'fr', 'en'];
(accepted.indexOf(lang) > -1)
? provider.params.lang = lang
//defining language
if(options.provider == providers_names.PHOTON){
options.lang = options.lang.toLowerCase();

provider.params.lang = (langs_photon.indexOf(options.lang) > -1)
? options.lang
: provider.params.lang;
} else {
provider.params['accept-language'] =
lang || provider.params['accept-language'];
options.lang || provider.params['accept-language'];
}

return provider;
Expand All @@ -309,6 +325,11 @@ Geocoder.prototype.getSource = function(){

Geocoder.Nominatim.elements = {};
Geocoder.Nominatim.providers = {
names: {
OSM: 'osm',
MAPQUEST: 'mapquest',
PHOTON: 'photon'
},
osm: {
url: 'http://nominatim.openstreetmap.org/search/',
params: {
Expand All @@ -322,6 +343,7 @@ Geocoder.prototype.getSource = function(){
mapquest: {
url: 'http://open.mapquestapi.com/nominatim/v1/search.php',
params: {
key: '',
format: 'json',
q: '',
addressdetails: 1,
Expand All @@ -345,14 +367,16 @@ Geocoder.prototype.getSource = function(){
anchor: [0.5, 1],
src: '//cdn.rawgit.com/jonataswalker/'
+ 'map-utils/master/images/marker.png'
}), zIndex: 5
}),
zIndex: 5
}),
new ol.style.Style({
image: new ol.style.Circle({
fill: new ol.style.Fill({ color: [235, 235, 235, 1]}),
stroke: new ol.style.Stroke({ color: [0, 0, 0, 1]}),
radius: 5
}), zIndex: 4
}),
zIndex: 4
})
];
Geocoder.Nominatim.html = [
Expand Down Expand Up @@ -606,4 +630,4 @@ Geocoder.prototype.getSource = function(){
log = function(m){console.info(m)},
utils = Geocoder.Utils
;
}).call(this, window, document);
}).call(this, window, document);
2 changes: 1 addition & 1 deletion ol3-geocoder.js

Large diffs are not rendered by default.

Loading

0 comments on commit 202ad2a

Please sign in to comment.