Obtaining the Plugin
The plugin can be found in the C:\Program Files\MicroStrategy\GISConnectors folder, along with the ESRI connector that shipped with 9.0.2. In that folder you'll find two Google Map folders, one for an ASP installation and one for a JSP installation. Open the folder appropriate for your environment, and copy the folder to your WebASPx\plugins folder.
Obtaining a Google API License Key
Here's the gotcha. Google provides two options for using their Maps API:
A free to use Standard license key:http://code.google.com/apis/maps/signup.html No longer an option. This now requires a premier key to be purchased.- A Premier license key that requires you to contact their sales department to obtain a quote: http://www.google.com/enterprise/earthmaps/maps.html
Technically, the biggest difference between the two is the amount of GeoCoding you can do. This is a Google service that allows you to obtain the location on the map for a text based location search, such as a Zip Code, City, State, etc. Think of that as when you use the Google Maps website normally. You can do a limited number of these with the Standard license key, but not enough to support any kind of Analytics.
The MicroStrategy plugin doesn't support GeoCoding yet anyway, so you have to provide your own pre-GeoCoded Latitude and Longitudes, which will work fine using the Standard license key. However, upon closer inspection of Google's License Agreements, usage of Maps in an Intranet Business Intelligence environment requires a Premier license. It seems that this was an oversight in the original release with 9.2, because 9.2.1 enforces the requirement of a Premier license, and the 9.2 version of the plugin does not work with 9.2.1.
So, if you're currently enjoying free use of the Google Maps plugin with MicroStrategy 9.2, you may want to add it's loss or potential costs to your upgrade considerations.
One more quick note, when you're getting your API key, it asks you to provide the domain that you'll be using it on. This domain is cross checked by the key, so make sure that you enter the one you'll actually be using. If you're using an internal domain, like http://svr-loc-1/microstrategy/asp, then register http://svr-loc-1 with the Google Map API, even though that's your internal machine name.
Configuration
Once you've obtained the key, browse to the plugin folder that you've copied to your WebASPx\plugins folder, and drill down into the WEB-INF\xml\config\google folder. Edit the googleConfig.xml file and put your key between the <mk> tags. In the 9.2.1 version of the plugin, you'll notice the isPremier="true" flag. Setting this flag to false or removing it will disable the plugin, which means you'll get a blank map. Leaving it true but providing a Standard license key will result in the map loading but then closing, and a message from Google saying that your key isn't authorized and instructions for upgrading.
Also in this file, you'll see 3 more GUIDs under the <pjs> tag. Inside the <pj> tag, put the Project ID that you'll be using this in. Create multiple <pj> tag entries to support multiple projects. In the <at> tags, enter the Attribute GUID for the Latitude and Longitude that you'll be using for the report. If they are Attribute Forms instead of separate Attributes, simply put the same GUID for both.
Restart your Web Server and you're done with the configuration.
Configure the Report
- Create a report with Latitude and Longitude on it and whatever metrics you want.
- Make sure that the Row Merged setting is disabled.
- Run the report, and under the Tools menu, select "Custom Visualizations". If you don't have that option, you can enable it in the Project Preferences under Project Defaults -> General. There's a check box to enable it.
- Check the box at the top to Enable Visualizations for this report, and scroll to the bottom under AJAX and choose Google Map (9.2) or Map (9.2.1+). It was renamed between versions.
- Click Visualization Properties and define how your Latitude and Longitude are created, either by separate Attributes or Attribute Forms.
Conclusion
Now you're finished and this report will load up using the Google Map Widget!
Geodash offers an all inclusive deal, live geocoding, and shape data heat mapping. You can learn more about the differences between Geodash and the MicroStrategy widget here: http://www.bigdatalabs.com/product/what-is-geodash/#geodash-vs-mstr.
ReplyDeleteCheers.
not able to locate google map or map in Jax section, is there some thing which i am missing. Have copied the plugin and made necessary changes.
ReplyDeleteplease help. Urgent
steps i performed to add google map:-
Tools Menu –> Custom Visualizations –> Custom Visualizations Editor
Enable this report to use Custom visualizations
select AJAX — MAP (move to the right side)
Make sure you restart your web service for the plugin to take effect.
ReplyDeletehi yes we had restarted our webserver.
ReplyDeleteoptions we get under ajax are
Time line, USA MAP , Store Layout, Google graph, Line chart..
just to add .. we dont use IIS we have tomcat server.
Make sure you grabbed the correct plugin folder, I think you want to move the subfolders in ConnectorForGoogleMap, not the top level one. They have the same name. I'm not sure if you need the src folder or not, I haven't worked with plugins on tomcat.
ReplyDeletethanks Bryan, we did copy the parent connectorForGoogleMap folder[which included all subfolders] to our webserver and made the changed in XML.
ReplyDeleteI thought only the folder path would differ in tomcat and IIS and others steps should be same. Please correct me if my understanding is wrong.
I can't verify because I'm not familiar with tomcat, but I believe it's just which folder you pick. There are two in the GISConnectors folder, one for IIS and one for Tomcat.
ReplyDeleteyup we did select the folder specific for non iis server. Have to dig in why we are not able to see the option.
ReplyDeleteHey Bryan great document! I helped me a lot!
ReplyDeleteIs microstrategy capable of consuming Yahoo Maps or Bing Maps as well??
Not out of the box like this one yet, but if they have APIs, you could implement it yourself with the MicroStrategy SDK.
ReplyDeleteBryan, first of all, congrats, this is a great blog.
ReplyDeleteI need to do a dashboard using the USA Map widget.
I would need to know how to bind the data and what should I expect from the widget. Should I have name of the cities? or latitud and longitude?
Any help would be appreciated.
Regards,
Santiago
Funny you mention that. Modifying the SDK Map Widget was the first Widget I ever built. I've modified it off and on and was actually working on a post discussing the improvements I made to it and I scrapped it just this morning (most of it was junky as I was still learning Flex). Since the widget is now out of the Box (called Area Mashup) and with easy 3rd party integration available for Google Maps and ESRI Maps, I didn't think it was necessary any longer. However, maybe I will continue work on it and at the very least it'll serve as a full lifecycle example of building/customizing a Flash widget. In the meantime, refer to https://resource.microstrategy.com/MSDZ/MSDL/921/docs/mergedProjects/vissdk/topics/VI_Samples_Area_Mashup.htm for documentation on customizing your own Map Widget.
ReplyDeleteHi Bryan,
ReplyDeleteI have successfully made the configuration (on ASP) but when I select the AJAX view, nothing appears
grid view
http://i165.photobucket.com/albums/u62/esalayon/gridview.jpg
ajax view (map view)
http://i165.photobucket.com/albums/u62/esalayon/ajaxviewmap.jpg
I think that means something is wrong with your Google API Key setup. I think I encountered the same thing when trying to use a personal (free) key inside MicroStrategy which requires an Enterprise Key (paid).
ReplyDeleteYes, I used the free standard license of google map. I thought I could use it if I registered. Can I use other map api with this plugin? thanks.
ReplyDeleteNope, it won't work with the Free Key, because per Google's licensing, you need the Premier Key in order to use Google Maps with a BI tool. Your options are to either purchase the Premier Key, try ESRI Maps (also not totally free, but you can do some basic things for free. I think that one is ugly though), or you can try GeoDash which comes with a free trial. GeoDash is built on top of Google Maps and provides additional features.
ReplyDeleteIs there any other way of making a simple report/dashboard with map in MicroStrategy out of the box?
ReplyDeleteYou can use the Area Mashup widget out of the box, which is an image map of the US. You feed it a data set with an attribute called State with State Names, and then whatever metrics you want. The first metric will be the color coding, and additional metrics will be on the tooltips of the States. Google and ESRI are 3rd party tools that carry their own licensing fees.
ReplyDeleteBut that's for US only? Many thanks for accomodating my questions Bryan!
ReplyDeleteHi Bryan,
ReplyDeleteDoes the domain needed to be a fully qualified domain name, like www.eric.com when registering for the google api?
Hi Bryan,
ReplyDeleteI have installed MSTR 9.2.1 but didn't found GISConnectors directory MSTR installation path(C:\Program Files\MicroStrategy\).Did I miss something while installation?
I found one plugin on path "C:\Program Files\MicroStrategy\SDK\docs\ReferenceFiles\com\microstrategy\plugins\google\transforms"
is this plugin will help for google map integration with document.
It is a separate install option. During installation, it's under MicroStrategy Web\GIS Connectors. I *think* it's tied to the SDK license.
ReplyDeleteB, you said someone could "implement" Bing Maps with the MSTR SDK themselves. Can you elaborate on that please? How would you get between MSTR and the map rendering?
ReplyDeleteYeah, before the MicroStrategy version of the Google Maps widget came out, I implemented it myself. Assuming Microsoft offers a Flash Bing Maps SDK (like Google does), then it's just the same as building any other Flash widget. You can find details on getting started building your own Flash widgets in my VisSDK posts. Alternatively, if they offer an HTML based mapping SDK, you can build an HTML widget as well, though I haven't been successful yet in wiring MicroStrategy data to HTML controls. It's no where near as easy as with Flash.
ReplyDeleteYeah done the flash thing, it is clunky and let's face it "flash is dead." Do you know of any good examples of MSTR -> HTML controls, maybe I'll take a look see. Thanks!
ReplyDeleteIt's really difficult, and there's no good resources for it. I actually did a live meeting with a senior MicroStrategy SDK engineer (APS) and we couldn't get it to work. I'm hoping to get some time to play with it more soon to try to figure it out, because I felt we were close. Basically, when you add your HTML Widget over the Grid/Report, the data is removed in the underlying HTML since it's not being displayed, which means you don't have a way to access it now. The proper way to do it is to build your own ReportTransform using the JavaSDK which will be able to feed the data up from MicroStrategy into the final HTML that your widget could consume. There's about 6 steps in that process and we go lost through there. There weren't any good options in the SDK docs that illustrated the process clearly.
ReplyDeleteHey Bryan,
ReplyDeleteI want to know whether we can use google map in Microstrategy ver9.0.1 or not?
Thanks
This is for you Eric Salayon!
ReplyDeleteCopyPasete--->> I received a confirmation from MSTR support that there is a defect with Google Maps free API key with AJAX mode in MicroStrategy Web 9.2.1.
Resource: https://resource.microstrategy.com/forum/replylistpage.aspx?id=13772
I am unable to locate this folder
ReplyDeleteC:\Program Files\MicroStrategy\GISConnectors folder
kindly help me out ?
The MicroStrategy Widget only supports 9.2+, but you could develop your own for earlier versions using the Google Maps SDK. It's actually pretty straight forward, and it's how I got started in Flex Development.
ReplyDeleteThe GISConnectors folder must be installed, so if you don't see it, re-run the MicroStrategy setup program and be sure to choose it.
It works by giving longitude and latitude ..... but what if i want to show location using ZIP_CODE or Name of Place like New York whether it is possible or not.
ReplyDeleteThanks
That's Google's GeoCoding service, which the current version of the MicroStrategy plugin doesn't support. Perhaps in a future version they'll add this feature, you'll have to contact MicroStrategy Technical Support to submit that Enhancement Request.
ReplyDeleteIf that's a feature you're interested in, you may want to check out Big Data Lab's map offering which goes above and beyond Google's Geocoding. There's more information about their product in the top comment on this post.
Hi folks, you may want to check out a company called visual crossing (www.visualcrossing.com) as well. They have a very comprehensive MSTR map widget for serious mapping applications (i.e., multiple attributes w point and polygon support, ability to aggregate lower level polys like zips into higher level polys like district/regions/etc., international point+poly support)
ReplyDeleteGoogle is not giving more free api keys, I wonder if maybe exists a workaround to practice some test on dashboards and google maps?
ReplyDeleteNot that I'm aware of, since MicroStrategy enforces it without regard of it being Dev or Prod.
DeleteHi Bryan,
DeleteI have my microstrategy 9.2.1a on Linux i dont see folder "WebASP" to copy over ConnectorForESRIMap can you please help with this.
WebASPx will be a folder on the Web Server, not the IServer. If you're running a Linux Web server, then I think the folder is called JSP, but I could be wrong. It's been a very, very long time since I've used a non-Windows Web Server for MicroStrategy, and I can't remember the directory structures. It's basically whatever the root folder of your web application is.
DeleteHi B,
ReplyDeleteWe have an API keys' problem. We're working with the Standard license key and, as you said, when we set "isPremier" flag to false (otherwise it results the Google unauthorizated message) nothing appears, not even a blank map.
Really do we need a Premier license? Is it not possible to visualize the Google map report with a free key?
Thx!
I'm not aware of any workarounds for development purposes. Unfortunately, you're stuck without first purchasing a Premier license.
DeleteHi Bryan,
ReplyDeleteI'm running into the same issue with 9.2.1m. It's nice to finally hear someone say the Premier key is needed. Is this true starting with 9.2.1? I've heard others say they are using Google Maps with the Standard (Free) key. Either it doesn't work in 9.2.1 versions without the Premier key or I'm not following, what seems to be pretty straight forward, instructions to get Google Maps to work. :)
Thanks!
You have to have the Premier Key with 9.2.1+. Anyone who says they're using it with the Standard Key (which you can't get anymore anyway), is using 9.2.0.
DeleteBy providing a Standard license key will result in the map loading but then closing, and a message from Google saying that your key isn't authorized and instructions for upgrading.
ReplyDeleteWhts the solution for this
Hi Apoorva,
ReplyDeleteand what value did you supply to isPremier? What version of MSTRY are you using?
isPremier is true but the map is loading and then closing giving a message:
ReplyDelete"Google has disabled use of the Maps API for this application. This site is not authorized to use the Google Maps client id provided. If you are the owner of this application, you can learn more about registering URLs here: https://developers.google.com/maps/documentation/business/guide#URLs"
so can't we use Standard API key for deployment?
version for MSTR-9.2.1
No, you can't use the Standard Key.
DeleteSorry, maybe out of topic..
ReplyDeleteDo anyone know how much need to pay for Google Map API key?..
$10,000 per year !! That was what I was quoted a few weeks ago. Sad that MSTR does not provide other "Free-er" options... especially after we spend vast amounts of money on the MSTR product. Kind of feel ripped of and deceived.. They really need to provide a better "solution"
DeleteHi there Bryan. Currently i'm stuck with the affinity line for the map widget. Currently i have one dataset that is the primary dataset that containts (id, name, latitude, longitude). I use the "Use Attribute" to select my latitude and longitude from the dataset. So if i want to use the affinity line, should i use the same dataset and just create another 2 metrics for the line thickness and color? And should the second dataset contains all attributes from the first dataset. Hope you can help me out, thank you :)
ReplyDeleteWe are currently running into performance issues when rendering over 2000 Latitude and Longitudes records into Google Maps Widget. It takes about 20 minutes to render in Interactive mode with the Standard License Key. Anyone have any helpful hints on how to speed up rendering of the Google Map Widget?
ReplyDeleteHi Bryan
ReplyDeleteWhen I load the map is there a way of changing the default zoom level and centering?
Thanks
Aneesh
I haven't used this widget in MicroStrategy since it was first introduced, but back then there wasn't. If the option did exist it would be in one of four places: 1) right click the widget and see if there is a properties menu that you can set, then save the report, 2) zoom to where you want and save the report and maybe it'll save it, 3) go to widget properties from the grid properties menu, where you first chose the google map widget and see if it's there, 4) check for the option in the googlemap xml file where you entered the apikey and other configuration info. If it's in none of those places, then you can't do it.
DeleteHi Bryan,
ReplyDeleteI'm french and use MSTR 9.2.1 in my office. I would like to create a geocoding with french customers zipcode and not longitude/latitude. Is it possible ?
Thanks for your response.
Regards
The current Google Maps widget only supports Lat/Long. Geocoding requires an additional service layer that MicroStrategy currently doesn't support. You'll have to turn to a 3rd party for that, GeoDash and Visual Crossing are the two popular ones.
DeleteThanks for your response.
DeleteI've created a example with 4000 customers (using http://www.batchgeocodeur.mapjmz.com/). For an industrial way, I 'll ask to my company to buy a geocoding service.
Just a problem for me : despite to use MSTR 9.2.1 with hotfix 10, I could not use the API with my free key (however, I had read that it was possible). So I'll ask a premium licence and after, work on this google api to know if it's possible to drill up/down on a point of the map and view details or consolidation.
This comment has been removed by the author.
ReplyDeleteHi Bryan, I bought a Premier API Key from Google, I used with Android and works fine, but when I try to use it on MSTR Web, I still getting the API error, I've already configured the google xml file but it doesn't work.
ReplyDeleteDo you have any suggestions?
Make sure you restart your Web server. Otherwise, you'll have to contact tech support for that issue.
DeleteHi Bryan
ReplyDeleteI am using the Google Maps widget to display all our retail stores on a dashboard I have created.
I use a selector to change the store data shown on the dashboard and would also like to use this to highlight the chosen store on my map whilst still displaying all other stores.
Could you recommend anything?
I haven't used the Google Map Widget in a long time, but I don't believe it has this ability.
DeleteHi Bryan
ReplyDeleteI need to put the name above each point on the map, in order to identify it ,how could I do it?
Maybe using SDK??
Hi folks,
ReplyDeleteGreat thread. There are many options. A great cost effective option is GeoDash which includes Geocoding and Google API key and starts at $6,250. You can find it at www.pxlabs.ca.
I know it is a bit self-serving, but we are really proud of what we have done and the functionality it provides.
Hey Brian,
ReplyDeleteGreat blog post. I am having issue getting the paid Premier API plugin to even appear on MSTR 9.2.1 hotfix 2 with a J2EE environment. Specifically on AIX 6.1 and the Web Application Server is IBM WebSphere 6.1.
Just a shot in the dark since you use a MicroSoft server, but do you have any decent guess as to what would be the equivalent of the "WebASPx\plugins" in a J2EE environment? Here is a list of everything with "plugins" directory in my environment.
/WebSphere/AppServer/deploytool/itp/plugins
/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.websphere.v61_6.1.201/plugins
/WebSphere/AppServer/plugins
//WebSphere/AppServer/systemApps/isclite.ear/WIMPortlet.war/help/plugins
/WebSphere/AppServer/systemApps/isclite.ear/iehs.war/WEB-INF/lib/eclipse/plugins
/WebSphere/AppServer/systemApps/isclite.ear/isclite.war/help/plugins
/WebSphere/HTTPServer/Plugins/plugins
/WebSphere/MicroStrategy/HealthCenter/plugins
/WebSphere/MicroStrategy/HealthCenter/plugins/com/microstrategy/tools/mcdgnstc/plugins
/WebSphere/MicroStrategy/install/portlets/plugins
I've never run a WebSphere environment, but none of those look right to me. Most of the first ones all look like they're specific to the service itself. It should be /WebSphere/MicroStrategy/plugins I think, or at the very least somewhere below that.
DeleteHi there.
ReplyDeleteMy IServer is a Linux box. I don't have the WebASPx\plugins directory anywhere that I've been able to find.
Is this a WINDOWS-ONLY thing? Or has anyone here done this on a LINUX web server running Tomcat?
- Thanks,
Todd
Hi there,
ReplyDeleteI would like to add X-Axis on top of the this application. This X-Axis will have the list of locations. When the user clicks on any of the axis, the map will be zoomed in to that particular location and data will be displayed on top of the location. Is this possible with MSTR (in both web and mobile)?
Example:
Initially, the X-Axis may contain list of continents. When user clicks on the continent "North America", the map will be zoomed in to the "North America" and X-Axis will have list of "North America" countries.
No, not out of the box. You'd have to build this yourself in Flex and deploy it as a custom visualization.
DeleteBryan,
ReplyDeleteI want to visualize a report using google maps. I followed all the steps using a standard API key. The report displays correctly for merely 1 second and then a pop-up message says "Google has disabled use of the Maps API for this application. This site is not authorized to use the Google Maps client ID provided".
I read the previous comments and I am aware of the necessity of the premier key but I have two concerns:
- firstly you mention that it should be fine even for standard key, and I also found other cases on the internet for whom it worked.
- secondly the map with the corresponding points(from the report) displays for a second and then this message appears.
Is there any workaround or if I want to use this API i should obtain a premier key?
Thank you very much for your support,
Your blog is one of my first sources for mstr,
Best,
B.
The standard key works in 9.2, but not in 9.2.1+. I think the reason you see it flash for a second is that it's the map itself doing the api check to google. If you were to try to hack it so that it couldn't call home, my guess is it would still unload itself on a failed check too. In this case, buying a premier key is your only option, unfortunately.
DeleteHi Bryan, we are integrating Google Maps with our Reports and Dashboards, we did setup accordingly as specified by you, but the AJAX option is not popping out to the Right window in Tools->customization, we are using ASP, and we dont have columns of both Lat/Long, and we have around 15 dimension tables and 1 Fact and the schema is snowflake....
ReplyDeleteIt's not clear what AJAX option you're missing. If you don't see Custom Visualizations as an option, then you have to enable it (and restart) as noted in the post. If you do see it but your map widget isn't there, then the plugin may not have been properly installed (also documented above).
DeleteThank You Bryan
DeleteI also found out that to get the Location, we can use Zipcode of the same, kindly specify,
ReplyDeleteThank You
The out of the box widget doesn't support geocoding (converting zip codes to lat/long) out of the box, which is why you have to provide the data directly to do that. Other 3rd party solutions perform it for you (they're mentioned in these comments), but otherwise there isn't currently a way to get that otherwise.
DeleteThank You Bryan
DeleteHi Bryan,
ReplyDeleteWe are trying to bring the "Get Direction" functionality i.e., providing routes between two places in the MSTR widget(same as Google Maps).
Is it possible to achieve the same using SDK ?
Please let me know if you have ever tried implementing the same.
Thanks !
I've implemented my own Google Map widget once (before MicroStrategy released there's) and adding such features was actually pretty easy. I was using the Flash SDK, which I think Google doesn't support any more. Either way, it's just a matter of building your own Google Map widget. I don't think MicroStrategy opens their code for modification.
DeleteHi Bryan,
DeleteThanks for replying!
If I am getting it correct I can achieve Routing in MSTR by creating my own Google Map widget and I was planning to refer your earlier post to develop the same (https://resource.microstrategy.com/forum/ReplyListPage.aspx?id=11619)
In addition to the above can you please confirm that the solution will work on iPhone too because we are trying develop the widget for iPhone and iPads. I am little worried because after iOS 6 the apple products are not supporting Google maps any more and have shifted to Apple maps.
Thanks for your guidance !