Skip to content

Commit

Permalink
fixes #6826
Browse files Browse the repository at this point in the history
  • Loading branch information
hpinkos committed Jul 24, 2018
1 parent 1f62bd9 commit 8f68821
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 2 deletions.
8 changes: 6 additions & 2 deletions Source/Widgets/Viewer/Viewer.js
Original file line number Diff line number Diff line change
Expand Up @@ -257,7 +257,7 @@ define([
* @param {Boolean} [options.baseLayerPicker=true] If set to false, the BaseLayerPicker widget will not be created.
* @param {Boolean} [options.fullscreenButton=true] If set to false, the FullscreenButton widget will not be created.
* @param {Boolean} [options.vrButton=false] If set to true, the VRButton widget will be created.
* @param {Boolean} [options.geocoder=true] If set to false, the Geocoder widget will not be created.
* @param {Boolean|GeocoderService[]} [options.geocoder=true] If set to false, the Geocoder widget will not be created.
* @param {Boolean} [options.homeButton=true] If set to false, the HomeButton widget will not be created.
* @param {Boolean} [options.infoBox=true] If set to false, the InfoBox widget will not be created.
* @param {Boolean} [options.sceneModePicker=true] If set to false, the SceneModePicker widget will not be created.
Expand Down Expand Up @@ -489,9 +489,13 @@ Either specify options.terrainProvider instead or set options.baseLayerPicker to
var geocoderContainer = document.createElement('div');
geocoderContainer.className = 'cesium-viewer-geocoderContainer';
toolbar.appendChild(geocoderContainer);
var geocoderService;
if (defined(options.geocoder) && typeof options.geocoder !== 'boolean') {
geocoderService = isArray(options.geocoder) ? options.geocoder : [options.geocoder];
}
geocoder = new Geocoder({
container : geocoderContainer,
geocoderServices : defined(options.geocoder) ? (isArray(options.geocoder) ? options.geocoder : [options.geocoder]) : undefined,
geocoderServices : geocoderService,
scene : scene
});
// Subscribe to search so that we can clear the trackedEntity when it is clicked.
Expand Down
30 changes: 30 additions & 0 deletions Specs/Widgets/Viewer/ViewerSpec.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
defineSuite([
'Core/BoundingSphere',
'Core/Cartesian3',
'Core/CartographicGeocoderService',
'Core/Clock',
'Core/ClockRange',
'Core/ClockStep',
Expand Down Expand Up @@ -45,6 +46,7 @@ defineSuite([
], 'Widgets/Viewer/Viewer', function(
BoundingSphere,
Cartesian3,
CartographicGeocoderService,
Clock,
ClockRange,
ClockStep,
Expand Down Expand Up @@ -386,6 +388,34 @@ defineSuite([
viewer.render();
});

it('constructs geocoder', function() {
viewer = createViewer(container, {
geocoder : true
});
expect(viewer.geocoder).toBeDefined();
expect(viewer.geocoder.viewModel._geocoderServices.length).toBe(2);
});

it('constructs geocoder with geocoder service option', function() {
var service = new CartographicGeocoderService();
viewer = createViewer(container, {
geocoder : service
});
expect(viewer.geocoder).toBeDefined();
expect(viewer.geocoder.viewModel._geocoderServices.length).toBe(1);
expect(viewer.geocoder.viewModel._geocoderServices[0]).toBe(service);
});

it('constructs geocoder with geocoder service options', function() {
var service = new CartographicGeocoderService();
viewer = createViewer(container, {
geocoder : [service]
});
expect(viewer.geocoder).toBeDefined();
expect(viewer.geocoder.viewModel._geocoderServices.length).toBe(1);
expect(viewer.geocoder.viewModel._geocoderServices[0]).toBe(service);
});

it('can shut off SelectionIndicator', function() {
viewer = createViewer(container, {
selectionIndicator : false
Expand Down

0 comments on commit 8f68821

Please sign in to comment.