Local Insights

Note

Bing Maps Local Insights API retirement

The Bing Maps Local Insights API is deprecated and will be retired on 9/30/2024. To avoid service disruptions, all implementations using Bing Maps Local Insights API will need to be updated to use Azure Maps by 9/30/2024.

Azure Maps is Microsoft's next-generation maps and geospatial services for developers. Azure Maps has many of the same features as Bing Maps for Enterprise, and more. To get started with Azure Maps, create a free Azure subscription and an Azure Maps account. For more information about azure Maps, see Azure Maps Documentation. For migration guidance, see Bing Maps Migration Overview.

The Bing Maps Local Insights API returns a list of local entities within the specified maximum driving time or distance traveled from a specified point on Earth. The API returns different types of entities as specified by the string type IDs; these types can be found on the Type Identifiers page. In each response, a maximum of 200 total entities is returned. Presently, the Local Insights API is only available in the US.

API Templates

Note

The Local Insights API supports both synchronous and asynchronous requests. If using Local Insights with traffic information, we strongly recommended that asynchronous requests are used.

Synchronous Requests

Successful synchronous Local Insights API calls return a LocalInsights Response in either JSON or XML format.

Get Local Insights By Travel Time

Get a list of local insights at a waypoint – specified either as a coordinate or an address query – with a maximal traveling time radius specified by the maxTime parameter. Specify the kind of entities returned with a comma separated list of type IDs with the type parameter. The time unit is specified with timeUnit as either minute or second and the only permitted value of optimize is time.

http://dev.virtualearth.net/REST/v1/Routes/LocalInsights?waypoint={coordinate_or_query}&maxTime={MaxTime}&timeUnit={second_or_minute}&type={type_string_ids}&key={BingMapsKey}

Get Local Insights By Travel Distance

Get a list of local insights at a waypoint – specified either as a coordinate pair or an address query – with a maximal traveling distance radius specified by the maxDistance parameter. Specify the kind of entities returned with a comma separated list of type IDs with the type parameter. The distance unit is specified with distanceUnit as either mile or kilometer and the only permitted value of optimize is distance.

http://dev.virtualearth.net/REST/v1/Routes/LocalInsights?waypoint={coordinate_or_query}& maxDistance={MaxDistance}&distanceUnit={mile_or_kilometer}&type={type_string_ids}&key={BingMapsKey}

Note

Traffic information is currently not used to optimize distance traveled.

Asynchronous Requests

The URL templates for asynchronous requests are almost identical to the respective synchronous URL requests. Unlike with the synchronous URL requests, asynchronous URL requests return a RouteProxyAsyncResult response.

If successful, this response contains a field called requestID which is a unique ID for the asynchronous request and a field called callbackURL which contains a URL to check if the response is finished. The callbackURL can also be created from the requestID value, as shown below in the Get Status of Asynchronous Request by RequestID template below.

The response of the callback URL is a RouteProxyAsyncResult response. If the asynchronous request if finished, then the field isCompleted in the response will be true and the response will contain the field resultURL. The result URL will return a LocalInsights Response with a list of local insights.

See the Asynchronous Requests documentation for more information about how to make asynchronous requests.

Asynchronous Get Local Insights by Time

Asynchronous GET Local Insights call by time.

http://dev.virtualearth.net/REST/v1/Routes/LocalInsightsAsync?waypoint={coordinate_or_query}& maxTime={MaxTime}&timeUnit={second_or_minute}&type={type_string_ids}&key={BingMapsKey}

Asynchronous Get Local Insights by Distance

Asynchronous GET Local Insights call by distance.

http://dev.virtualearth.net/REST/v1/Routes/LocalInsightsAsync?waypoint={coordinate_or_query}& maxDistance={MaxDistance}&distanceUnit={mile_or_kilometer}&type={type_string_ids}&key={BingMapsKey}

Get Status of Asynchronous Request by RequestID

Get a RouteProxyAsyncResult response containing the status of an asynchronous URL request by specifying the requestID.

http://dev.virtualearth.net/REST/v1/Routes/LocalInsightsAsyncCallback?requestId={request_id}&key={BingMapsKey}

Note

Use the Distance Matrix API to calculate distances between returned entities.

API Parameters

Parameter Alias Description Values
waypoint wp Required. The query or coordinates for a location around which the isochrone is created. Either a point or an address query.

Examples:

- waypoint = 47.5,-122
- waypoint = 1%20Microsoft%20Way%20Redmond%20WA
maxTime Required, if optimize is Time or TimeWithTraffic. The longest possible travel time used to generate the isochrone.
Note: Cannot be used when maxDistance is specified.
Any positive integer less than or equal to the maximum time, which is 60 minutes.
Note: The unit of time is specified with the timeUnit parameter.

Example: maxTime = 30
timeUnit tu Optional. The unit of time for the parameter maxTime. A string: either second or minute.

Default: second
maxDistance maxDist Required, if travelMode is Driving or Walking. The longest possible distance used define the geographic region in which to search for local entities.

Note: Distance-based Local Insight API calls are unavailable for transit.

Note: Cannot be used when maxTime is specified.
Any positive integer less than or equal to 50 miles.

Example: maxDistance = 40
distanceUnit du Optional. The unit of distance for the maxDistance parameter. Possible values:

- mile or mi
- kilometer or km

Default: kilometer
type Required. A comma separated list of type IDs. A comma separated list of string type IDs. See the Type IDs for the complete list of possible type ID values.
Example: type = MovieTheaters,Parks
dateTime dt Optional, available only if travelModel is Driving. The datetime parameter identifies the desired departure time used to return the list of local entities within the specified maximum driving time as specified using the maxTime parameter. A string that contains the date and time formatted as a DateTime value. For information about the string representation options for DateTime values, see DateTime.Parse Method (String).
Examples:
- dateTime = 03/01/2011 05:42:00
- dateTime = 05:42:00 [assumes the current day]
- dateTime=03/01/2011 [assumes the current time]
optimize optmz Optional. Specifies what parameters to use to optimize the isochrone route. One of the following values:
- distance: The route is calculated to minimize the distance. Traffic information is not used. Use with maxDistance.
- time: The route is calculated to minimize the time. Traffic information is not used. Use with maxTime.

Default: time

Example: optimize = time.
travelMode mode Optional. Indicates the which routing profile to snap the points to. Possible values:

- driving
- walking
- transit

Default: driving
Example: travelMode = walking.

Response

See Local Insights Data.

Examples

Get Local Insights by Driving Time by Query

This example gets a list of local insights that are either Movie Theaters or Department Stores within a thirty minute drive of the Redmond Microsoft Campus. Two string types are used: DepartmentStores and MovieTheaters.

http://dev.virtualearth.net/REST/V1/Routes/LocalInsights?Waypoint=1%20Microsoft%20Way,Redmond,WA&TravelMode=Driving&Optimize=time&MaxTime=30&TimeUnit=Minute&type=DepartmentStores,MovieTheaters&key={BingMapsKey}

Here is the successful JSON response.

{
  "authenticationResultCode": "ValidCredentials",
  "brandLogoUri": "http://dev.virtualearth.net/Branding/logo_powered_by.png",
  "copyright": "Copyright © 2018 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.",
  "resourceSets": [
    {
      "estimatedTotal": 1,
      "resources": [
        {
          "__type": "LocalInsightsResponse:http://schemas.microsoft.com/search/local/ws/rest/v1",
          "typeResults": [
            {
              "typeName": "Department Stores",
              "typeSummary": "20 Department Stores in 30 Minutes by Driving",
              "entities": [
                {
                  "entityName": "Sears Stores",
                  "latitude": 47.630211,
                  "longitude": -122.141318
                },
                {
                  "entityName": "Fred Meyer",
                  "latitude": 47.62886852137511,
                  "longitude": -122.14475288604169
                },
                {
                  "entityName": "Daiso Japan",
                  "latitude": 47.620109,
                  "longitude": -122.130684
                },
                {
                  "entityName": "Ben Franklin Crafts",
                  "latitude": 47.6745642853546,
                  "longitude": -122.129096602237
                },
                {
                  "entityName": "HomeGoods",
                  "latitude": 47.61322,
                  "longitude": -122.18475
                },
                {
                  "entityName": "Costco Wholesale",
                  "latitude": 47.68118,
                  "longitude": -122.1815
                },
                {
                  "entityName": "Costco Wholesale Kirkland Warehouse",
                  "latitude": 47.68073998682604,
                  "longitude": -122.18175410738384
                },
                {
                  "entityName": "Revolve Consignment",
                  "latitude": 47.53507,
                  "longitude": -122.03667
                },
                {
                  "entityName": "Shoprite",
                  "latitude": 47.6224741119901,
                  "longitude": -122.312563286076
                },
                {
                  "entityName": "Daiso",
                  "latitude": 47.59634,
                  "longitude": -122.32614
                },
                {
                  "entityName": "Zara",
                  "latitude": 47.61188,
                  "longitude": -122.33729
                },
                {
                  "entityName": "Bargain Plaza",
                  "latitude": 47.50071935713182,
                  "longitude": -122.17796977901406
                },
                {
                  "entityName": "Fjallraven",
                  "latitude": 47.628875696097,
                  "longitude": -122.358053052728
                },
                {
                  "entityName": "Rama Deli and Market",
                  "latitude": 47.61655,
                  "longitude": -122.35243
                },
                {
                  "entityName": "USA Laptops Sreens Inc",
                  "latitude": 47.72458,
                  "longitude": -122.34086
                },
                {
                  "entityName": "Westfield Southcenter Mall",
                  "latitude": 47.458834,
                  "longitude": -122.258126
                },
                {
                  "entityName": "Westfield Southcenter",
                  "latitude": 47.45813,
                  "longitude": -122.25599
                },
                {
                  "entityName": "Quilts Etc",
                  "latitude": 47.45813,
                  "longitude": -122.25599
                },
                {
                  "entityName": "India Plaza",
                  "latitude": 47.46574,
                  "longitude": -122.28955
                },
                {
                  "entityName": "Eddie Bauer",
                  "latitude": 47.490105,
                  "longitude": -121.796338
                }
              ]
            },
            {
              "typeName": "Movie Theaters",
              "typeSummary": "2 Movie Theaters in 30 Minutes by Driving",
              "entities": [
                {
                  "entityName": "SecondStory Repertory",
                  "latitude": 47.66998,
                  "longitude": -122.11959
                },
                {
                  "entityName": "AMC Kent Station 14",
                  "latitude": 47.384842653844814,
                  "longitude": -122.23544404894568
                }
              ]
            }
          ],
          "origin": {
            "latitude": 47.640068,
            "longitude": -122.129858
          }
        }
      ]
    }
  ],
  "statusCode": 200,
  "statusDescription": "OK",
  "traceId": "40b9d0d37c344ce99e75a80d62e5112a|DAPZHU-DEV|7.7.0.0|Ref A: 814E90439D604CA5A5995AA54709F5EC Ref B: CO1EDGE0420 Ref C: 2018-10-15T21:44:55Z"
}

Get Local Insights by Driving Time by Point

This example returns local entities at a point in Edmonds, Washington State, 47.811091,-122.369512, within twenty minutes driving time. In this example, the local entities are parks and parking lots, using the Type IDs Parks and Parking.

https://dev.virtualearth.net/REST/V1/Routes/LocalInsights?key={BingMapsKey}&waypoint=47.811091,-122.369512&travelMode=Driving&optimize=time&MaxTime=20&TimeUnit=Minute&type=parks,parking&o=xml

And the XML response:

<Response>
    <Copyright>Copyright © 2018 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.</Copyright>
    <BrandLogoUri>https://dev.virtualearth.net/Branding/logo_powered_by.png</BrandLogoUri>
    <StatusCode>200</StatusCode>
    <StatusDescription>OK</StatusDescription>
    <AuthenticationResultCode>ValidCredentials</AuthenticationResultCode>
    <TraceId>f003e095ab82470e88e3cbc5983b0d5e|MW10000A84|7.7.0.0</TraceId>
    <ResourceSets>
        <ResourceSet>
            <EstimatedTotal>1</EstimatedTotal>
            <Resources>
                <Resource xsi:type="LocalInsightsResponse">
                    <Origin>
                        <Latitude>47.811091</Latitude>
                        <Longitude>-122.369512</Longitude>
                    </Origin>
                    <CategoryTypeResults>
                        <CategoryTypeResult>
                            <CategoryName>Parks</CategoryName>
                            <CategorySummary>5 Parks in 20 Minutes by Driving</CategorySummary>
                            <Entities>
                                <LocalInsightsEntity>
                                    <EntityName>Richmond Beach Center Park</EntityName>
                                    <Latitude>47.77205339744016</Latitude>
                                    <Longitude>-122.38522949061662</Longitude>
                                </LocalInsightsEntity>
                                <LocalInsightsEntity>
                                    <EntityName>Meadowdale Playfields</EntityName>
                                    <Latitude>47.847783158175339</Latitude>
                                    <Longitude>-122.32521969622377</Longitude>
                                </LocalInsightsEntity>
                                <LocalInsightsEntity>
                                    <EntityName>Drug Rehab Lake Forest Park</EntityName>
                                    <Latitude>47.7546081542969</Latitude>
                                    <Longitude>-122.277923583984</Longitude>
                                </LocalInsightsEntity>
                                <LocalInsightsEntity>
                                    <EntityName>Lake Forest Park City Hall</EntityName>
                                    <Latitude>47.753910811869261</Latitude>
                                    <Longitude>-122.27754771953607</Longitude>
                                </LocalInsightsEntity>
                                <LocalInsightsEntity>
                                    <EntityName>Dogwood Play Park</EntityName>
                                    <Latitude>47.72104</Latitude>
                                    <Longitude>-122.29211</Longitude>
                                </LocalInsightsEntity>
                            </Entities>
                        </CategoryTypeResult>
                        <CategoryTypeResult>
                            <CategoryName>Parking</CategoryName>
                            <CategorySummary>0 Parking in 20 Minutes by Driving</CategorySummary>
                            <Entities/>
                        </CategoryTypeResult>
                    </CategoryTypeResults>
                </Resource>
            </Resources>
        </ResourceSet>
    </ResourceSets>
</Response>

Get Local Insights by Driving Distance by Point

This example uses the same point in Edmonds as in the last example, but instead search for parks and parking entities by driving distance. In this example, the response returns entities within 10 miles of the specified point.

https://dev.virtualearth.net/REST/V1/Routes/LocalInsights?key={BingMapsKey}&waypoint=47.811091,-122.369512&travelMode=Driving&optimize=time&MaxTime=20&TimeUnit=Minute&type=parks,parking

Here is the JSON response:

{
  "authenticationResultCode": "ValidCredentials",
  "brandLogoUri": "https://dev.virtualearth.net/Branding/logo_powered_by.png",
  "copyright": "Copyright © 2018 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.",
  "resourceSets": [
    {
      "estimatedTotal": 1,
      "resources": [
        {
          "__type": "LocalInsightsResponse:http://schemas.microsoft.com/search/local/ws/rest/v1",
          "categoryTypeResults": [
            {
              "categoryTypeName": "Parks",
              "categoryTypeSummary": "5 Parks in 10 Miles by Driving",
              "entities": [
                {
                  "entityName": "Richmond Beach Center Park",
                  "latitude": 47.77205339744016,
                  "longitude": -122.38522949061662
                },
                {
                  "entityName": "Meadowdale Playfields",
                  "latitude": 47.84778315817534,
                  "longitude": -122.32521969622377
                },
                {
                  "entityName": "Drug Rehab Lake Forest Park",
                  "latitude": 47.7546081542969,
                  "longitude": -122.277923583984
                },
                {
                  "entityName": "Lake Forest Park City Hall",
                  "latitude": 47.75391081186926,
                  "longitude": -122.27754771953607
                },
                {
                  "entityName": "Dogwood Play Park",
                  "latitude": 47.72104,
                  "longitude": -122.29211
                }
              ]
            },
            {
              "categoryTypeName": "Parking",
              "categoryTypeSummary": "0 Parking in 10 Miles by Driving",
              "entities": []
            }
          ],
          "origin": {
            "latitude": 47.811091,
            "longitude": -122.369512
          }
        }
      ]
    }
  ],
  "statusCode": 200,
  "statusDescription": "OK",
  "traceId": "7125b438817b4a7bb68470a1fb06a1a1|MW10000A85|7.7.0.0"
}