Search problem with Bing Maps API and setLang=fi

For more details please contact vesal@jyu.fi.

Problem

Using Ping Maps API with setLang=fi breaks Microsoft.Maps.Search.SearchManager. If searched for example Mattilanniemi 2, Jyväskylä it finds Jyväskylä center, not the right place.

When setLang=en it finds the correct place. The error happens also if there is no setLang but browser defaults to fi.

But if in fi-version for example London (must be negative longitude and latitude more than 39 deg) is first searched and then Mattilanniemi 2, Jyväskylä, it works. But not in all cases, for some addresses it still gives mess. In API this "correction" can be done by adding a bounds parameter for example with values:

new Microsoft.Maps.LocationRect(new Microsoft.Maps.Location(39.0, -0.12555), 0.05, 0.05);

The exactly same problem is with https://www.bing.com/maps, if browser defaults to fi. That is a bit more difficult to observe, because changing the browsers default language is a bit tricky. And same problem is also with directions API and Bing Maps.

Examples

The following examples are just copy from https://mapapi.org/open.php?file=example21&h=4, The only changes is the setLang in line

src='https://www.bing.com/api/maps/mapcontrol?setLang=fi&callback=GetMap&key=???'

ViewOptions parameter:

center: new Microsoft.Maps.Location(62.23232,25.73731),

and the other search line for London. Also no automatic search is done when loading the page.

Reproduce the problem

To observer the problem do the following steps in all three examples below:

  1. Search Mattilanniemi 2, Jyväskylä
  2. Search London
  3. Search Mattilanniemi 2, Jyväskylä

In 2. setLang=en -version you should get the right result already in step 1. In fi-version you get the wrong result on step 1, but right on step 3. In default version you get right or wrong result on step 1 depending the browser settings.

The behaviour should be the same with all browsers.

1. setLang=fi

2. setLang=en

3. setLang default