Skip to content

Commit c5a0a4d

Browse files
v6: fix usage of feature address info properties
1 parent 63ec2e7 commit c5a0a4d

File tree

3 files changed

+39
-54
lines changed

3 files changed

+39
-54
lines changed

debug/index.js

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -86,23 +86,7 @@ var geocoder = new MapboxGeocoder({
8686
}
8787
},
8888
mapboxgl: mapboxgl,
89-
searchType: 'structured',
90-
queryCoordinates: {longitude: 40.76490756883251, latitude: -74.0437572064368},
91-
address_line1: 'address_line1',
92-
address_number: 'address_number',
93-
street: 'street',
94-
place: 'place',
95-
region: 'region',
96-
countries: 'US',
97-
postcode: 'postcode',
98-
locality: 'locality',
99-
100-
version: 'v6',
101-
types: "address",
102-
mode: 'mapbox.places-permanent',
103-
reverseGeocode: true,
104-
flipCoordinates: true,
105-
permanent: true
89+
version: 'v5',
10690
});
10791

10892
map.addControl(geocoder)

lib/index.js

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,36 @@ function getFooterNode() {
3232
return div;
3333
}
3434

35+
function getItemValue(item) {
36+
return item.place_name
37+
}
38+
39+
function render(item) {
40+
var placeName = item.place_name.split(',');
41+
return '<div class="mapboxgl-ctrl-geocoder--suggestion"><div class="mapboxgl-ctrl-geocoder--suggestion-title">' + placeName[0]+ '</div><div class="mapboxgl-ctrl-geocoder--suggestion-address">' + placeName.splice(1, placeName.length).join(',') + '</div></div>';
42+
}
43+
44+
function getItemValueV6(item) {
45+
const { name, place_formatted } = item.properties;
46+
return name + (place_formatted ? `, ${place_formatted}` : "");
47+
}
48+
49+
function renderV6(item) {
50+
const { name, place_formatted } = item.properties;
51+
return `<div class="mapboxgl-ctrl-geocoder--suggestion">
52+
${
53+
name
54+
? `<div class="mapboxgl-ctrl-geocoder--suggestion-title">${name}</div>`
55+
: ""
56+
}
57+
${
58+
place_formatted
59+
? `<div class="mapboxgl-ctrl-geocoder--suggestion-address">${place_formatted}</div>`
60+
: ""
61+
}
62+
</div>`;
63+
}
64+
3565
/**
3666
* A geocoder component using the [Mapbox Geocoding API](https://docs.mapbox.com/api/search/#geocoding)
3767
* @class MapboxGeocoder
@@ -85,36 +115,6 @@ function getFooterNode() {
85115
*
86116
*/
87117

88-
function getItemValue(item) {
89-
return item.place_name
90-
}
91-
92-
function render(item) {
93-
var placeName = item.place_name.split(',');
94-
return '<div class="mapboxgl-ctrl-geocoder--suggestion"><div class="mapboxgl-ctrl-geocoder--suggestion-title">' + placeName[0]+ '</div><div class="mapboxgl-ctrl-geocoder--suggestion-address">' + placeName.splice(1, placeName.length).join(',') + '</div></div>';
95-
}
96-
97-
function getItemValueV6(item) {
98-
const { name, place_formatted } = item.properties;
99-
return name + (place_formatted ? `, ${place_formatted}` : "");
100-
}
101-
102-
function renderV6(item) {
103-
const { name, place_formatted } = item.properties;
104-
return `<div class="mapboxgl-ctrl-geocoder--suggestion">
105-
${
106-
name
107-
? `<div class="mapboxgl-ctrl-geocoder--suggestion-title">${name}</div>`
108-
: ""
109-
}
110-
${
111-
place_formatted
112-
? `<div class="mapboxgl-ctrl-geocoder--suggestion-address">${place_formatted}</div>`
113-
: ""
114-
}
115-
</div>`;
116-
}
117-
118118
function MapboxGeocoder(options) {
119119
this._eventEmitter = new EventEmitter();
120120
this.options = extend({}, this.options, {
@@ -695,14 +695,15 @@ MapboxGeocoder.prototype = {
695695
if (reverseGeocodeCoordRgx.test(trimmedSearch)) {
696696
search = search.replace(/,/g, ' ');
697697
}
698-
if(this.options.version === 'v6' && config.mode) {
699-
config.permanent = config.mode === 'mapbox.places-permanent';
700-
delete config.mode;
701-
}
702698
config = extend(config, { query: search });
703699
} break;
704700
}
705701

702+
if(this.options.version === 'v6' && config.mode) {
703+
config.permanent = config.mode === 'mapbox.places-permanent';
704+
delete config.mode;
705+
}
706+
706707
// Remove config options not supported by the reverseGeocoder and v5 keys if v6 mode chosen
707708
const unsupportedKeys = [
708709
...(requestType === GEOCODE_REQUEST_TYPE.REVERSE ? ['proximity', 'autocomplete', 'fuzzyMatch', 'bbox'] : []),

lib/utils.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ function getAddressInfo(feature) {
7474
function getV6AddressInfo(feature) {
7575
const houseNumber = feature.address_number || "";
7676
const street = feature.street || "";
77-
const placeName = feature.place_formatted || "";
78-
const address = placeName.split(",")[0];
77+
const placeName = feature.name + (feature.place_formatted ? `, ${feature.place_formatted}` : "");
78+
const address = feature.name;
7979

8080
const addrInfo = {
8181
address: address,
@@ -87,7 +87,7 @@ function getV6AddressInfo(feature) {
8787
for (const contextProp in feature.context) {
8888
if (contextProp) {
8989
const layer = contextProp.id.split(".")[0];
90-
addrInfo[layer] = contextProp.text;
90+
addrInfo[layer] = contextProp.name;
9191
}
9292
}
9393

0 commit comments

Comments
 (0)