cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
bags999
Frequent Visitor

View maps in sharepoint/powerapps

I have a sharepoint list that contains job site locations. I want to create a screen in powerapps where I can view all locations in the list on one google map.

 

Also, is it possible to customize the markers to display additional information when clicked. For instance, if I clicked on a marker, the powerapp would take me to a screen which displayed additional information contained in the sharepoint list. Also, is it possible for the markers to show additional data in the map itself without moving to a different screen? 

 

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions

Hi @Rebeccak ,

Yip, still works for me.

If I copy and paste that URL into the Image property of an image, adding the prefix HTTPS: and using my bing maps key, I get this;

forumGPS.JPG

Https://dev.virtualearth.net/REST/v1/Imagery/Map/Road/?mapSize=500,500&pp=32.626733,-96.905955;27;Duncanville&pp=30.222313,-97.838358;27;S Austin&pp=33.056851,-96.694623;27;E Plano&pp=32.943257,-97.110539;27;Southlake&pp=30.395586,-97.750611;27;Austin&pp=33.425686,-96.565431;27;Lewisville&pp=33.027707,-96.829514;27;W Plano&pp=29.575272,-98.596324;27;NW San Antonio&pp=29.61048,-98.476703;27;Sonterra Park&pp=29.584395,-98.305846;27;Selma&key=YOURDEVKEYHERE

Kind regards,

RT

View solution in original post

18 REPLIES 18
RusselThomas
Community Champion
Community Champion

Hi bags999,

 

You would need to get yourself a developer key for a map API service, be it Bing or Google or one of the others.

The keys are free, but you're usually limited to x-number of calls per app per day.

 

I've found the static map method to be useful, but you will need to play around with the properties and layers that each service provides to determine what level of detail suits you.

 

Then, in PowerApps, it's a simple matter of inserting a normal media image, and specifying the URL of the mapping service along with the methods and properties you want returned - this blog by @pratapladhani has a great write-up about it.

 

Hope this helps,

 

RT

This does not help with viewing all data in the list. Could you point me to any solutions?

Hi bags999,

 

I've used this method to display multiple elements on a map from list data, including locations and location labels which were provided by the data.  Using the POST method you can get up to 100 pins on the map.

 

About the only limitation I can see is having the markers click-through to another page on the app itself - as the image and the markers are generated by Bing maps, not PowerApps.  Here I've just added 2 markers as an example;

 

map.jpeg

 

https://dev.virtualearth.net/REST/v1/Imagery/Map/Road/47.619048,-122.35384/15?mapSize=500,500&pp=47....]

 

Perhaps I misunderstood - I thought you wanted to see job locations on the map?

 

Kind regards,

 

RT

Hello RT, 

 

This most certainly helps, however; I have a list of job locations (lat/long) in a sharepoint list. I want the map to automatically update when a list item is added/deleted. The map should also map all the job locations in one map (placing multiple markers). Also, I want the map to have different colored markers based on contractors. 

 

Thanks!

 

bags999

If you read up on the Static Map input parameters for the URL, you can pretty much do all of that, except you may be limited in terms of marker customisations - I know with google maps you could use your own markers, but as it seems they've changed their billing model, I haven't used it in a while.  You should be able to find a similar reference for google maps.

 

 

 

Hope this helps,

 

RT

Hello RT, 

 

I read through and was unable to figure out how to make it happen. Could you please provide me some assistance...

 

Thanks!

Hi there,

 

It's just a matter of inserting your data as variables into the URL string.

Let's say you have varLat and varLong as latitude and longitude location data, varLabel as a description and varIcon as a specific icon mapped to a job type.

If you take the URL I posted and break it up, you can see the parameters in the URL;

 

Syntax:

https://dev.virtualearth.net/REST/v1/Imagery/Map/imagerySet/centerPoint/zoomLevel?mapSize=mapSize&pu...

 

Example:

https://dev.virtualearth.net/REST/v1/Imagery/Map/Road/47.619048,-122.35384/15?mapSize=500,500&pp=47.620495,-122.34931;21;Job1&pp=47.619385,-122.351485;21;Job2&pp=47.616295,-122.3556;22&key=[yourmapkeyhere]

 

each iteration of &pp= is a placepoint marker in the following syntax;

pushpin=latitude,longitude;iconStyle;label

 

You can see the syntax as well as the different icons here

 

In Powerapps you can prepare the URL string by setting it as a varaible itself and insert your data where needed.  Using the link above, you can pre-determine your icon style against your jobs.

You might set your variables based on the current row of data selected out of a Gallery as follows;

 

UpdateContext({varLat: ThisItem.LatitudeColumn, varLong: ThisItem.LongitudeColumn, varIcon: Switch({ThisItem.Description, "Permanent Job", 21, "Temp Job", 22, "FTC" 23, 20}))

or something like that anyway 🙂

You can then construct the URL you will use for the image by inserting your variables into their proper places according to the URL syntax;

 

 

UpdateContext({myMapImageURL: "https://dev.virtualearth.net/REST/v1/Imagery/Map/Road/47.619048,-122.35384/15?mapSize=500,500&pp=" & varLat & "," & varLong & ";" & varIcon & ";" & varLabel & "&pp=47.619385,-122.351485;21;Job2&pp=47.616295,-122.3556;22&key=[yourmapkeyhere]"})

 

If you have too many entries for the HTTP GET you can use the HTTP POST method for up to 100 markers - but that would be a different post entirely.

If you can post some data and some screenshots I can perhaps help you with your specific example, but this should be enough to get you going at least 🙂

 

Hope this helps,


RT

 

Hello, 

 

Thanks for all your help! This is my sharepoint list:list in sharepoint.PNG 

 

There are more than 18 values and so I will need some help with the post method...

 

For the single map, I have done this: 2.PNG

 

The image field has this value: http://dev.virtualearth.net/REST/v1/Imagery/Map/Road/?pushpin="& ThisItem.Latitude & "," &ThisItem.Longitude &";5;A"& "&key=[bing key hidden]"

 

Basically, I want to have a separate screen, which I have already made... and all the lat/long should be mapped (pushpins) and colored based on the contractor from the Sharepoint list (if possible). It would also be helpful if there are labels. 

Hi there,


There are a couple of ways you can achieve this, so my way is not necessarily the only way or the best way.

That said, this is how I do it;

 

[EDIT:

I changed the URL format to allow Bing to auto-centre and auto-zoom to show all points

This allows Bing to autocentre and autozoom for you]

 

If you consider the map URL, there are three parts - a fixed beginning (or prefix), a variable body with the pins and then a fixed ending (or suffix).

 

URL example:

https://dev.virtualearth.net/REST/v1/Imagery/Map/Road?mapSize=500,500&pp=47.63156378,-122.20375238;26;Label&pp=47.61031576,-122.19883025;26;Label&key=[yourAPIkey]

  

The fixed prefix is 

"https://dev.virtualearth.net/REST/v1/Imagery/Map/Road?mapSize=500,500"

 

The variable body is each pushpin, which may have one or multiple of the following;

"&pp=latitude,longitude;icon;label"

"&pp=latitude,longitude;icon;label"

"&pp=latitude,longitude;icon;label"

...

 

And the fixed suffix is your key at the end of the URL

"&key=[yourAPIkey]"

 

So to dynamically build this from data, the idea would be to build the string piece by piece, iterating the middle piece for your data, and then put the pieces together into one URL at the end.

 

For this example, I'm going to assume you've allocated an icon to each user manually and placed that data into your table - how you choose to do this may vary, I just collect the data into a collectIcons collection and added an "icon" column where I arbitrarily decided Kevin would get one icon (26) and Dave another (27). 

ClearCollect(collectIcons, AddColumns(Source, "icon", If(name="Kevin", 26, name="Dave", 27, "false")))

You could also build an If(name="Kevin", 26, name="Dave", 27) logic directly into your formula, but to keep it simple I'm going to assume you've put it into your table.

 

Next, contruct the prefix:

UpdateContext({strPrefix: "https://dev.virtualearth.net/REST/v1/Imagery/Map/Road?mapSize=500,500"})

[Edit: I've changed the URL to exclude a static centre point and zoom level, so you don't have to do anything else, Bing will auto-centre and auto-zoom for you.]  

 

Then the variable body of pushpins - here I create a concatenated variable based on the rows of the table as follows;

UpdateContext({strPoints: Concat(collectIcons, "&pp=" & latitude & "," & longitude & ";" & icon & ";" & name)})

latitude, longitude, icon and name are all columns in my collectIcons collection.  The Concat function let's me add rows of data together into one long string and place the result conveniently into a variable.   my strPoints variable now looks like this;

 

&pp=47.63156378,-122.20375238;26;Kevin&pp=47.61031576,-122.19883025;26;Kevin&pp=47.79679871,-122.01410675;26;Kevin&pp=47.56910516,-122.11846989;26;Kevin&pp=47.56875563,-122.11540806;26;Kevin&pp=47.53805161,-122.39715576;27;Dave&pp=47.72306,-122.35329;27;Dave&pp=47.60911213,-122.28940197;27;Dave&pp=47.57616,-122.22172;27;Dave&pp=47.6665352,-122.30149344;27;Dave

 

Then you construct the suffix, which is easily enough just your bing maps Key;

UpdateContext({strSuffix: "&key=[yourAPIkey]"})

Lastly, you pull it all together into the URL string you will use for your image;

UpdateContext({imageURL: Concatenate(strPrefix, strPoints, strSuffix)})

so my imageURL variable now looks like this;

https://dev.virtualearth.net/REST/v1/Imagery/Map/Road?mapSize=500,500&pp=47.63156378,-122.20375238;26;Kevin&pp=47.61031576,-122.19883025;26;Kevin&pp=47.79679871,-122.01410675;26;Kevin&pp=47.56910516,-122.11846989;26;Kevin&pp=47.56875563,-122.11540806;26;Kevin&pp=47.53805161,-122.39715576;27;Dave&pp=47.72306,-122.35329;27;Dave&pp=47.60911213,-122.28940197;27;Dave&pp=47.57616,-122.22172;27;Dave&pp=47.6665352,-122.30149344;27;Dave&key=[yourAPIkey]

Unfortunately I have to wrap it in the codeblock for this post, otherwise it get's treated like a hyperlink and gets cut off.

 

You can then set the Image property of your image to imageURL.  I edited my reply to change the URL from a fixed zoom and centrepoint to a BING-defined one - to show the difference between the two I've include both images below;

OLD IMAGE WITH MANUAL STATIC CENTREPOINTOLD IMAGE WITH MANUAL STATIC CENTREPOINT

 

NEW IMAGE WITH AUTO-ZOOM AND CENTRENEW IMAGE WITH AUTO-ZOOM AND CENTRE

 

Hope this helps 🙂

 

Kind regards,

 

RT

Helpful resources

Announcements

Community will be READ ONLY July 16th, 5p PDT -July 22nd

Dear Community Members,   We'd like to let you know of an upcoming change to the community platform: starting July 16th, the platform will transition to a READ ONLY mode until July 22nd.   During this period, members will not be able to Kudo, Comment, or Reply to any posts.   On July 22nd, please be on the lookout for a message sent to the email address registered on your community profile. This email is crucial as it will contain your unique code and link to register for the new platform encompassing all of the communities.   What to Expect in the New Community: A more unified experience where all products, including Power Apps, Power Automate, Copilot Studio, and Power Pages, will be accessible from one community.Community Blogs that you can syndicate and link to for automatic updates. We appreciate your understanding and cooperation during this transition. Stay tuned for the exciting new features and a seamless community experience ahead!

Summer of Solutions | Week 4 Results | Winners will be posted on July 24th

We are excited to announce the Summer of Solutions Challenge!   This challenge is kicking off on Monday, June 17th and will run for (4) weeks.  The challenge is open to all Power Platform (Power Apps, Power Automate, Copilot Studio & Power Pages) community members. We invite you to participate in a quest to provide solutions in the Forums to as many questions as you can. Answers can be provided in all the communities.    Entry Period: This Challenge will consist of four weekly Entry Periods as follows (each an “Entry Period”)   - 12:00 a.m. PT on June 17, 2024 – 11:59 p.m. PT on June 23, 2024 - 12:00 a.m. PT on June 24, 2024 – 11:59 p.m. PT on June 30, 2024 - 12:00 a.m. PT on July 1, 2024 – 11:59 p.m. PT on July 7, 2024 - 12:00 a.m. PT on July 8, 2024 – 11:59 p.m. PT on July 14, 2024   Entries will be eligible for the Entry Period in which they are received and will not carryover to subsequent weekly entry periods.  You must enter into each weekly Entry Period separately.   How to Enter: We invite you to participate in a quest to provide "Accepted Solutions" to as many questions as you can. Answers can be provided in all the communities. Users must provide a solution which can be an “Accepted Solution” in the Forums in all of the communities and there are no limits to the number of “Accepted Solutions” that a member can provide for entries in this challenge, but each entry must be substantially unique and different.    Winner Selection and Prizes: At the end of each week, we will list the top ten (10) Community users which will consist of: 5 Community Members & 5 Super Users and they will advance to the final drawing. We will post each week in the News & Announcements the top 10 Solution providers.  At the end of the challenge, we will add all of the top 10 weekly names and enter them into a random drawing.  Then we will randomly select ten (10) winners (5 Community Members & 5 Super Users) from among all eligible entrants received across all weekly Entry Periods to receive the prize listed below. If a winner declines, we will draw again at random for the next winner.  A user will only be able to win once overall. If they are drawn multiple times, another user will be drawn at random.  Individuals will be contacted before the announcement with the opportunity to claim or deny the prize.  Once all of the winners have been notified, we will post in the News & Announcements of each community with the list of winners.   Each winner will receive one (1) Pass to the Power Platform Conference in Las Vegas, Sep. 18-20, 2024 ($1800 value). NOTE: Prize is for conference attendance only and any other costs such as airfare, lodging, transportation, and food are the sole responsibility of the winner. Tickets are not transferable to any other party or to next year’s event.   ** PLEASE SEE THE ATTACHED RULES for this CHALLENGE**   Week 1 Results: Congratulations to the Week 1 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersNumber of SolutionsSuper UsersNumber of Solutions @anandm08  23 @WarrenBelz  31 @DBO_DV  10 @Amik  19 AmínAA 6 @mmbr1606  12 @rzuber  4 @happyume  7 @Giraldoj  3@ANB 6 (tie)   @SpongYe  6 (tie)     Week 2 Results: Congratulations to the Week 2 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge. Community MembersSolutionsSuper UsersSolutions @anandm08  10@WarrenBelz 25 @DBO_DV  6@mmbr1606 14 @AmínAA 4 @Amik  12 @royg  3 @ANB  10 @AllanDeCastro  2 @SunilPashikanti  5 @Michaelfp  2 @FLMike  5 @eduardo_izzo  2   Meekou 2   @rzuber  2   @Velegandla  2     @PowerPlatform-P  2   @Micaiah  2     Week 3 Results: Congratulations to the Week 3 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 3:Community MembersSolutionsSuper UsersSolutionsPower Apps anandm0861WarrenBelz86DBO_DV25Amik66Michaelfp13mmbr160647Giraldoj13FLMike31AmínAA13SpongYe27     Week 4 Results: Congratulations to the Week 4 qualifiers, you are being entered in the random drawing that will take place at the end of the challenge.   Week 4:Community MembersSolutionsSuper UsersSolutionsPower Apps DBO-DV21WarranBelz26Giraldoj7mmbr160618Muzammmil_0695067Amik14samfawzi_acml6FLMike12tzuber6ANB8   SunilPashikanti8

Check Out | 2024 Release Wave 2 Plans for Microsoft Dynamics 365 and Microsoft Power Platform

On July 16, 2024, we published the 2024 release wave 2 plans for Microsoft Dynamics 365 and Microsoft Power Platform. These plans are a compilation of the new capabilities planned to be released between October 2024 to March 2025. This release introduces a wealth of new features designed to enhance customer understanding and improve overall user experience, showcasing our dedication to driving digital transformation for our customers and partners.    The upcoming wave is centered around utilizing advanced AI and Microsoft Copilot technologies to enhance user productivity and streamline operations across diverse business applications. These enhancements include intelligent automation, AI-powered insights, and immersive user experiences that are designed to break down barriers between data, insights, and individuals. Watch a summary of the release highlights.    Discover the latest features that empower organizations to operate more efficiently and adaptively. From AI-driven sales insights and customer service enhancements to predictive analytics in supply chain management and autonomous financial processes, the new capabilities enable businesses to proactively address challenges and capitalize on opportunities.    

Updates to Transitions in the Power Platform Communities

We're embarking on a journey to enhance your experience by transitioning to a new community platform. Our team has been diligently working to create a fresh community site, leveraging the very Dynamics 365 and Power Platform tools our community advocates for.  We started this journey with transitioning Copilot Studio forums and blogs in June. The move marks the beginning of a new chapter, and we're eager for you to be a part of it. The rest of the Power Platform product sites will be moving over this summer.   Stay tuned for more updates as we get closer to the launch. We can't wait to welcome you to our new community space, designed with you in mind. Let's connect, learn, and grow together.   Here's to new beginnings and endless possibilities!   If you have any questions, observations or concerns throughout this process please go to https://aka.ms/PPCommSupport.   To stay up to date on the latest details of this migration and other important Community updates subscribe to our News and Announcements forums: Copilot Studio, Power Apps, Power Automate, Power Pages