Skip to Content

Part II can be found here: Topic 7: Geo Maps Part II – Zoom, Zoom, Zoom!



Introduction

One of the exciting and long awaited new features introduced in Design Studio 1.5 is the Geo Map component.  After having tried it out I thought I’d share my experiences.  I must say that for a first version, I think it’s pretty impressive in terms of capabilities and also quite easy to use.  It has certainly exceeded the standard mapping capabilities in Xcelsius.

Scenario

I’ll be describing the Geo Map features in the context of a BW BEx example related to US airline on-time performance data including airport locations and statistics such as % Weather Delay and % Delayed Flights.

Configuration

The Geo Map component allows interactive maps to be included in an application, consisting of shapes and markers overlaid onto a base map.  I’ll describe the process in terms of my scenario.  After designing the application, my workspace looks like this:

DS_Workspace.png



Standard Properties


The most important standard property is the Basemap URL.  The Geo Map component defaults to the open source OpenStreetMap tile provider as shown below.  You are free to use your own tile provider but I found OpenStreetMap quite sufficient for my purposes.  Other properties include the basemap credit and legend visibility.  You can also trigger interactivity based on the “On Select” event of the map.


GeoProperties.png



Additional Properties:


This is the fun part!  In the additional properties you define the layers for your map.  There are 3 types of Geo Layers:


  • Shapes Layers for overlaying shapes based on GeoJSON files
  • Points Layers for overlaying markers for specific geo locations
  • Charts Layers for overlaying bubbles based on a specific measure


Each layer must be assigned a data source.  Data sources can be re-used across layers.  In my example, I managed with just two data sources as shown below:


The first data source includes a geo dimension with latitude and longitude attributes as well as measures.  It is used in Points layers and Charts layers.

GeoDS1.png

Each data source must contain only one geo dimension in the rows section of the Initial View.  For Points and Charts layers, the geo dimension should ideally include the standard BW latitude and longitude attributes, otherwise they need to be defined as measures in the columns section of the Initial View.  In my example, I preferred to use the standard BW attributes as shown below:


Geo_Attributes.png

LatitudeAttribute.png

LongitudeAttribute.png


The second data source is used for Shapes layers to assign US FIPS (Federal Information Processing Standards) state codes to the corresponding polygon representing the state in the GeoJSON file.  Longitude and latitude attributes are not required.

GeoDS2.png



To illustrate the different use cases for the Geo Map features I have defined 5 different layers as follows:



1. US Airport Location Marker

GeoLayer5.png

This layer is of type Marker.  Therefore it requires latitude and longitude geo dimension attributes.  You will notice that there is no field to explicitly reference the geo dimension here because only one can be defined in the data source Initial View.  For this example, the geo dimension on data source DS_1 is the Origin Airport which will be plotted with a marker based on the longitude and latitude coordinates.  Finally, a marker colour must be selected.

2. US Airport Location Bubble

GeoLayer1.png

This layer is of type Chart.  At the moment, the only geo chart type available is a bubble chart.  The size of a bubble is proportional to the value of the selected measure, which in this case is the % Weather Delay.  The bubbles are centred on the geo location of the airport based on the assigned latitude and longitude indata source DS_1.  In this case a GeoJSON file is not specified because we just want to display bubbles at the geo locations without the need for superimposing them on shapes.  Therefore the Mapping Property and Mapping Type are not relevant either.



3. US State Bubble

GeoLayer2.png

This layer is also of type Chart, like the previous one.  An important difference however is that latitude and longitude is not referenced.  Instead, a custom GeoJSON file is specified to define shapes (polygons) that correspond to US states.  Each state polygon in the GeoJSON file includes properties, one of which can be linked via the Mapping Property and Mapping Type to support interactivity via the “On Select” event of the Geo Map component.  The dimension linked to the state shape is automatically derived from data source DS_2 since it includes only one geo dimension.


It is worth noting here that when the latitude and longitude are not specified, the bubble will be centred inside its corresponding shape, in this case the state.

4. US State Choropleth

GeoLayer3.png

This layer is of type Shape.  In the example, the specified GeoJSON file defines the US states (as before) with the corresponding data association via the Mapping Property and Mapping Type.  Additionally, in this case, the Start Color and End Color properties have been defined so that the resulting output is in the form of a choropleth map, with the colour gradient being based on the chosen measure, % Weather Delay from data source DS_2.



5. US State Analytic

GeoLayer4.png

This layer is the same as the previous one but a single colour is specified instead so that the output is in the form of an “analytic map” (like those in Xcelsius).  In this case it may be appropriate to hide the legend.  Since there is no colour gradient, the selected measure is arbitrary. 



Interactivity via Scripting


To demonstrate the different types of effects that can be achieved, I have included a configuration sidebar that allows the visibility of the basemap to be toggled and different combinations of layers to be selected, as shown below:


ConfigurationOptions.png


The “On Select” event script of the basemap visibility radio group has been defined as follows:



var baseMapVisibility = me.getSelectedValue();
if (baseMapVisibility == "showBasemap") {
GEO_MAP.setMapUrl(basemapURL);
}
else {GEO_MAP.setMapUrl("");}
















Here the setMapUrl() method shows the basemap by setting the map URL to the default URL (in this case OpenStreetMap), or hides the basemap by specifying a null URL.



The “On Select” event script of the layer selection checkbox group has been defined as follows to control the display of the layers:



var selectedMapLayers = me.getSelectedValues();
var allMapLayers = mapLayers.split(","); // Convert map layer string to array
// Hide all map layers
allMapLayers.forEach(function(mapLayerID, index) {
GEO_MAP.setLayerVisible(mapLayerID, false);
});
// Display selected map layers
selectedMapLayers.forEach(function(mapLayerID, index) {
  GEO_MAP.setLayerVisible(mapLayerID, true);
});















Furthermore, to demonstrate an example of drilling down to additional information based on selection of an area of the map, the script below displays a chart ranking the airports within the chosen state:



var selectedLayerID = GEO_MAP.getSelectedLayer();
var selectedState= GEO_MAP.getSelectedMember("ZOSTFIPS");
var selectedStateKey = selectedState.internalKey;
var selectedStateText = selectedState.text;
if (selectedLayerID == "US_STATE_BUBBLE" || selectedLayerID =="US_STATE_ANALYTIC" || selectedLayerID == "US_STATE_CHOROPLETH") {
  DS_1.setFilter("ZOSTFIPS", selectedStateKey);
  DS_1.sortByMeasure("006EIC2OSTY2YB663A5R7IE8Y", false);
  FIORIAPPHEADER_PAGE_2.setTitle(selectedStateText + " % Delayed Flights ranked by Airport");
  PAGEBOOK_GEOMAP.setSelectedPageByName("CHART_PAGE");
}













It is recommended to execute the getSelectedLayer() and getSelectedMember() methods together for best results.  In the above example, the member returned is the state key based on the layer’s GeoJSON Mapping Property.



Custom GeoJSON


GeoJSON shape files are usually used to overlay regions.  They are readily available on the internet.  For this example, I obtained a US State file from the link GeoJSON and KML Data for the United States (gz_2010_us_040_00_500k.json).  Alternatively, they can be created from other sources such as Natural Earth using tools such as the following:



Like CSS files, GeoJSON files must be placed in the application repository folder to be accessible when developing in local mode.



Screenshots


The screenshots below illustrated the capabilities of the new Geo Map component:


The default tile provider OpenStreetMap is quite suitable for many use cases in my opinion.

GeoMaps_I_01.png

GeoMaps_I_02.png

GeoMaps_I_03.png

GeoMaps_I_21.png

GeoMaps_I_22.png

GeoMaps_I_06.png

GeoMaps_I_07.png

GeoMaps_I_08.png

GeoMaps_I_09.png

GeoMaps_I_11.png

GeoMaps_I_12.png

GeoMaps_I_15.png

GeoMaps_I_17.png

GeoMaps_I_16.png

GeoMaps_I_24.png

GeoMaps_I_25.png

GeoMaps_I_18.png

Conclusion

Hopefully this blog has provided a useful overview of the main features available with the new Geo Map component.  I think it’s a comprehensive addition to Design Studio that can meet the requirements of many typical use cases.  It’s certainly a very solid debut for geo mapping.

I plan to follow this up with Part II, which will explore the use of layers for implementing drilldown functionality through different levels of maps.

In the meantime, I’d be interested in your thoughts about the Geo Map component and examples of use cases you’d like to address for your own business requirements.  Comments and questions are most welcome.

Part II: Topic 7: Geo Maps Part II – Zoom, Zoom, Zoom!

Blog Series Index:  Design Studio Innovation Series – Welcome

To report this post you need to login first.

80 Comments

You must be Logged on to comment or reply to a post.

  1. Mike Howles

    Great overview showcasing all of the mapping capabilities in 1.5, Mustafa.  I must agree that SAP exceeded my expectations when it came to mapping.  Not only are they supporting open-ended tile providers (OSM, Mapbox, Stamen, Mapbox, MapQuest, etc) but also multiple layers based on GeoJSON, they’ve covered probably nearly everything of what most customers would be looking for for a baseline map.

    My one wishlist item is for latitude and longitude to be supportable as a Dimension rather than a Measure/Attribute.  I’m puzzled why it was excluded but nevertheless, this is quite minor.

    Also, to reinforce map tile variety, below is an example showing 2 MapBox tile set, and a Stamen tile set on the bottom:

    EDIT: Looks like it won’t let me upload pics in comments for some reason…

    (0) 
  2. Brent Kastor

    Looks great!  I am new to SAP, but have 17 years experience in GIS using primarily Esri products.  Do you know of any Esri integrations with SAP Design Studio?  Thanks!

    Also, we have multiple types of shapes we would like to display within the map – points, lines, and polygons – do you know if these are supported – I see points and polygons being supported?  I would suppose with the support of GeoJSON, the GeoMap would be able to display line type data as well?

    (0) 
    1. Mike Howles

      Brent,

      ESRI support seems limited to their slippy map tiles.

      Shapes are limited to data-driven plot markers, bubbles, and GeoJSON shape overlays that are shaded based on a linear color scale based on Measure values.

      I’ve not seen an ability to plot lines such as between Departure and Arrival destinations, etc.

      (0) 
    2. Vincent Dechandon

      Hi Brent.

      The company I work for (I can’t put the name right there for SAP SCN rules reasons, click on my profile to see the company name) has already released a Location Analytics Component that fit your needs. It’s compatible with Esri Server/Online v10.0 or more, as well as GeoJSON and TopoJSON.

      Still on my profile, you’ll be able to find a complete blog I made about the extension I’m talking about.

      If you are interested, feel free to send me a private message and I will be able to provide you the link to download the extension.

      Br,

      Vincent

      (0) 
    3. Mustafa Bensan Post author

      Hi Brent,

      Apart from the ESRI tile provider that Mike mentioned, I don’t believe there is a Design Studio add-on like there is for the Dashboards (Xcelsius) product.

      Also, as Mike has pointed out, I would expect any kind of shapes in GeoJSON format to be supported but there isn’t a mechanism to dynamically plot shapes other than location markers.  In my example data set, I have Departure and Arrival location information.  I would think that it should be technically feasible to introduce a new layer type, “line”, which accepted two geo dimensions instead of one for such a purpose.  Perhaps we may see this as an enhancement in a future version of the Geo Map component.  Alternatively you could consider evaluating a more specialised 3rd-party maps add-on for Design Studio.

      You mentioned that you’re new to SAP.  I’d be interested to know about the potential use cases for geo maps that you have in mind for Design Studio if you’re able to share them.

      Regards,

      Mustafa.

      (0) 
    1. Mustafa Bensan Post author

      Thanks for your feedback, Jeroen.


      If you are able to share,  I’d be interested to know what type of demand and use cases for geo maps you are seeing from customers and your opinion of the extent to which such use cases could be met with the standard functionality of the new Geo Map component in Design Studio?  Also, what enhancements to this component do you think are needed to fully address geo mapping requirements from customers?


      Regards,


      Mustafa.

      (0) 
  3. Roland Weygold

    Hi Mustafa,

    Thanks for the clear introduction!

    One question:
    is it possible to determine the value ranges and associated colors in the choropleth maps, rather than having a default scale from lowest to highest value?

    Thanks,

    Roland

    (0) 
    1. Mustafa Bensan Post author

      Hi Roland,

      Glad it was helpful.  Unfortunately, it doesn’t look like there’s any option to define custom value ranges for the colours in a choropleth map.  If so, I would have expected to see this in the Layer definition of the Additional Properties Sheet but it’s not there.  You could suggest it in the Design Studio Idea Place.

      Regards,

      Mustafa.

      (0) 
        1. Mustafa Bensan Post author

          Hi Roland,

          Yes, definitely check out Mike HowlesChoropleth Map component as mentioned by Ryan, which had slipped my mind.  It has quite comprehensive configuration options so is likely to address your requirement for custom colours.

          Regards,

          Mustafa.

          (0) 
  4. Alexander Croll

    Hi Mustafa,

    thanks for your blog, helped me out a great deal of understanding this new component!

    I haven’t worked much with maps yet, but I would like to have a basemap of Europe which I can then overlay with a corresponding geojson (choropleth) of Europe’s countries.

    I have the geojson file, but no idea how to get the map to only show Europe upon startup.

    > Can I set the zoom somehow?

    > How / where exactly can I get a basemap url to replace the default one? (I have searched for this but couldn’t figure it out by myself so far)

    Thanks a lot!

    Cheers

    Alex

    (0) 
    1. Mustafa Bensan Post author

      Hi Alex,

      I’m glad you found the blog helpful.

      You ask a very good question and it’s one I’ve been looking into for my follow-up blog post.  One approach would be to dynamically set the parameters of the default basemap to zoom to the US.  A custom basemap URL can be set with the setMapURL() method.

      The default OpenStreetMap basemap URL for the Geo Map component is as follows:


      http://otile1.mqcdn.com/tiles/1.0.0/map/{LOD}/{X}/{Y}.png

      We need to derive the basemap tile name at the appropriate zoom level (for the US in your case).  However, it turns out it’s not as simple as just setting the zoom level, latitude and longitude.  There’s an interesting mathematical calculation to determine the tile name.

      An alternative could be to find a US-only basemap provider (as you’ve suggested).  One example I’ve come across is The National Map from the USGS (US Geological Survey).

      If you can wait a little I plan to post a blog on the subject with my findings this week.

      Regards,

      Mustafa.

      (0) 
      1. Jack Hu

        Hi Mustafa,

        The default OpenStreeMap basemap URL for the Geo Map component is free, customers who buy DS product don’t need to pay for it anymore, right? My concern is that whether the map service behind the default basemap URL is stable for utilizing in DS app.

        I also wonder is it possible to customize the basemap like the zoom level, the center map, etc. and how to customize it, thanks!

        (0) 
      2. karthik kumar

        Hello Mustafa,

        I am currently using open street map.

        With BW as backend i am able to plot every country using 0country dimension and also used mapping property for the countries(ISO Type) which are unable to generate data.

        My real concern came in the form of Great Britain as country name , default property of map has been put to United Kingdom but my BW data in 0country is Great Britain.

        How can i change the text of Great britain into United Kingdom and plot the data into the map.

        Kindly suggest. 😕

        Thanking you in advance

        Regards

        Karthik

        (0) 
    2. Anthony Patterson

      Hi Alex,

      Have you tried using the centerMap() scripting function? This will zoom in on an area in the map. E.g. if you have only European countries in LAYER_1, you could call this method on startup and it would zoom in on Europe.

      Anthony

      (0) 
        1. Anthony Patterson

          Hi Mustafa,

          Centring on the whole US may be difficult because the Aleutian Islands extend onto the right-hand side of the map. Europe should work better, especially if you can find shapes that exclude overseas possessions.

          It should be ok with US States too, if you exclude Alaska.

          Anthony

          (0) 
          1. Alexander Croll

            Hi Anthony, Mustafa,

            thanks for your replies!

            I did try the centerMap() method and it actually does the trick, but not as easily as one may wish. It seems to center the map based on the given values from my Layer. So for example if I have values for France, Spain and Germany, the map will be centered based on these countries and not entire Europe (scandinavian countries are only half-visible, Eastern-European countries also less-visible). Excluding overseas-territories does also help!

            However, the method causes error (same as the one Mustafa described) when trying to zoom into countries that are close to the edge of the basemap. This happens particularly for North America, because Alaska and Canada are so close to the edge of the map.

            South America, Africa or Asia (not sure about NZ / OZ) works fine, because you have the ‘buffer’ of the Antarctis…

            Do you guys know of a basemap that has larger edges (i.e. North America not so close to the edge of the basemap)?

            Thanks!

            Alex

            (0) 
            1. Mustafa Bensan Post author

              Hi Alex,

              If my understanding of world basemaps is correct, I suspect that all tile providers will have the same/similar edges simply because the spacing is based on the actual geographic data. 

              Regarding the intermittent zooming error with centerMap() (which also occurs with normal map navigation when not using centerMap() by the way), I’m inclined to think that this is a bug with the Geo Map component itself.  As I understand it, the GeoMap component populates the three basemap URL paramaters dynamically for centerMap() and normal zooming.  It seems to me that the error occurs because the Geo Map component does not always correctly calculate the parameters.

              Regards,

              Mustafa.

              (0) 
              1. Mike Howles

                It’s almost like as a workaround, you create a layer that has on GeoJSON feature that is a single simple box that represents the bounds of your intended zoomed viewport, and use that as the layer to do your centerMap zooming, and reserve the other layer(s) for the actual visualizations.  Maybe it would work, I’ll have to try it later.

                (0) 
                1. Mustafa Bensan Post author

                  That’s a good suggestion which certainly sounds logical.  Otherwise you’d have to try to get fancy by dynamically setting the three parameters of the basemap URL, which I’ve been meaning to experiment with but I’m sure that will have its own challenges as well.

                  (0) 
  5. Jeroen van der A

    another thought:

    since HANA SP9 has all the GEO functionalities. Will we be able to directly connect to HANA views that hold the GEO data?

    Jeroen

    (0) 
    1. Anthony Patterson

      With some limitations. E.g. I’ve been able to create a spatial join in a calculation view and see the results in Design Studio, but returning the special spatial datatypes (e.g. ST_Geometry) doesn’t work well.

      (0) 
  6. Ryan Goodman

    Awesome article Mustafa. Have you tried throwing a bunch of data points at it to see what kind of performance can be squeezed out in browser and mobile?

    (0) 
    1. Mustafa Bensan Post author

      Thanks Ryan.  In my example I have 300 data points which performs well on the desktop browser.  I haven’t tried on mobile yet but will do so.

      (0) 
  7. Giulia Sogaro

    Great Article, thank you for sharing. I noticed a different behaviour in different layer type.

    The null values are not display in the first layer type, but in the third type the geomap show all the values. What do you think about it?

    Have a nice day.

    (0) 
    1. Mustafa Bensan Post author

      Thanks Giulia.  Can you post screenshots of the Additional Properties sheet showing the two layers you have configured so I can provide feedback accordingly?

      (0) 
      1. Giulia Sogaro

        This is my situation:

                             Sold

        Italy               120

        France          Null

        I see Italy and France in the geo map using this layer

        http://i.imgur.com/c5G99i9.png

        I see only Italy using this layer

        http://i.imgur.com/dNAV4KQ.png

        Thank you

        (0) 
        1. Mustafa Bensan Post author

          So if I understand correctly:

          • the data source is the same for both layers
          • there is a dimension for country which maps to the iso_a2 geoJSON property in both cases
          • the LAYER_BUBBLE layer displays both countries but no bubble for France
          • the LAYER_COUNTRY layer displays Italy only

          In that case, I agree that the behaviour seems to be inconsistent between the layers.  I would say it’s either a bug or the layers have been designed differently for some reason.

          (0) 
  8. Bruno Candido

    Is it possible using set  Brazil map ? Because I’m trying to include Brazilian States ( region) , But It was not possible using default map,  the default map just setted for Countries and US States , Does anyone knows how can I do that ?

    Thanks In advanced

    (0) 
    1. Giulia Sogaro

      Hi,

      From the third layer:

      An important difference however is that latitude and longitude is not referenced.  Instead, a custom GeoJSON file is specified to define shapes (polygons) that correspond to US states.  Each state polygon in the GeoJSON file includes properties, one of which can be linked via the Mapping Property and Mapping Type to support interactivity via the “On Select” event of the Geo Map component.  The dimension linked to the state shape is automatically derived from data source DS_2 since it includes only one geo dimension.


      So, you should add a costum GeoJSON file to define shapes that correspond to Brazilian Region.

      (0) 
      1. Bruno Candido

        Yes I have tried this Brazil map geoJson from this site, but does not works yet, maybe I am doing something wrong. I appreciate your help, thank you.

        (0) 
          1. Mustafa Bensan Post author

            Hi Laurens,

            This site is a very useful suggestion.  When attempting to import the .dbf files to mapshaper I encounter the following error message: 

            Unable to auto-detect the DBF file’s text encoding. You can specify an encoding using the “encoding” import option. Run the “encodings” command to view supported encodings.

            Do you know which encoding should be specified when uploading the .dbf files?

            Thanks,

            Mustafa.

            (0) 
            1. Laurens Geraedts

              Hi Mustafa,

              As far as I experienced it works for some, but not for all. I haven’t found out the root-cause of that. One way of looking at the separate .dbf-file is by using Excel. Wouldn’t be surprised if it has something to with countries/languages involved.

              Best regards,

              Laurens.

              (0) 
        1. Anthony Patterson

          Hi Bruno,

          The problem has to do with the coordinate reference system. The Highmaps data is using units of metres, whereas the GeoMap component expects degrees of latitude and longitude.

          Anthony

          (0) 
          1. Mustafa Bensan Post author

            Hi Anthony,

            Thanks for clarifying the cause of the issue.  So does this mean that the Highmaps GeoJSON files apply a non-standard coordinate reference system (in metres) compared to a generally accepted reference based on latitude and longitude?

            Regards,

            Mustafa.

            (0) 
            1. Anthony Patterson

              Hi Mustafa,

              I wouldn’t say non-standard; the reference system used by Highmaps is perfectly valid, and described with standard metadata within the file. It’s just that Design Studio made the decision initially to only support a very commonly-used reference system based on latitude and longitude.

              There are many tools available which should be able to convert these files. I often use a command-line tool called ‘ogr2ogr’, but QGIS or ArcGIS should work too.

              Anthony

              (0) 
  9. Sravan Aravelly

    Hi Mustafa,

    Does Design Studio installation come with any default GeoJSON file ( eg: for countries etc. ) If yes, is there a specific location other than the below location where I need to look for :

    C:\Users\<username>\Analysis-workspace\com.sap.ip.bi.zen\repository\<my_app>\shapes.geojson.

    Moreover, I am trying to implement the scenario at GLOBAL LEVEL [ 11 COUNTRIES ( including USA ) and Various States & Cities within a Country ( Ex: USA ). We do not have County Level Data. Just Country Level, State Level & City Level ].

    Do you recommend using a single GEOJSON file for all countries or multiple GEOJSON files ?

    Moreover, Is there a specific website that I can use to download the latitudes & longitudes information for cities across the world.

    Thanks,

    Sravan.

    (0) 
    1. Mustafa Bensan Post author

      Hi Sravan,

      Yes, the Design Studio Geo Map component does include a built-in default GeoJSON file representing a map of world countries.  I don’t think it includes the states and cities though.  It is “activated” if you simply leave the GeoJSON file property in the layer definition blank.

      Alternatively, to obtain state and city level information you could look at Laurens Geraedts suggestion above.

      You can try to assemble a single GeoJSON file first, as per the example I’ve given in my follow-up Part II blog.  If you find that it’s too large even after simplifying with mapshaper, you can then consider separate layers/files for each country.

      Regards,

      Mustafa.

      (0) 
  10. Harald Wetzel

    Hi Mustafa,

    great article, thx!

    I’ve tried to rebuild the described scenario, but I’m already struggling with the basemap URL, doesn’t seem to exist anymore. Is there any alternative URL?

    Regards,

    Harald

    (0) 
  11. Martin Chambers

    Hi Mustafa,

    Thanks for this great blog.
    I’ve tried to create a very simple map – and failed!

    I’ve kept as close as possible to your example, but have only one layer, only one datasource. My layer uses shapes, US States.

    When I execute the DS application, the OpenStreetMap Basemap is displayed and I can zoom in on it. But my shapes are not displayed, only the legend.
    At the moment, I am at loss where to look, as I don’t get any error messages.

    Perhaps you could give me some pointers?

    SETTINGS –
    1) JSON file copied from http://eric.clst.org/Stuff/USGeoJSON for US States low resolution.

    2) BEx Query includes InfoObject 0REGION (displays text)in row and NET_SALES in column.

    3) Setting for LAYER_1
        Show Layer = X
        Data Source = DS_1
        Custom GeoJSON File = gz_2010_us_040_00_20m.json
        GeoJSON Mapping Property: NAME
        GeoJSON Mapping Type:     Text

    4) GEO_MAP_1
        Visible = true
        Events OnSelect  No script

    Regards,

    Martin

    (0) 
    1. Martin Chambers

      Hi,

      I have found my error, or rather errors.

      1. The InfoObject 0REGION in the BEx query was displaying the text BUT DS wants the key,

          e.g. the query displayed Arizona but DS wanted the key AZ.
          Unfortunately, my JSON file didn’t contain the AZ, only Arizona.
          Fortunately, the JSON file contained a feature “LSAD” with an empty property,

          so I added all the keys, AZ for Arizona, CA for California, etc.

      2. 0REGION is compounded with 0COUNTRY.
          I created a new InfoObject REGION without 0COUNTRY.

          That worked.

      I still have a question, how should I code the key for 0REGION compounded with 0COUNTRY?

      US/AZ ?

      US\AZ ?

      USAZ ?

      something else ?

      Regards,

      Martin

      (0) 
  12. madhusudan pareek

    Hi,

    I am working on electric vehicle charging system, wherein i am trying to plot the transformer on the map using latitude and longitude coming from HANA along with transformer_id and Status(Normal or Overloaded). I would like to show transformer_id & Status on hovering over the transformer along with color as Red for overloaded transformer.

    Thanks & Regards

    Madhusudan

    (0) 
    1. Mustafa Bensan Post author

      Hi Madhusudan,

      In order to get better visibility and a broader response from the community, please post your query as a separate question in the Design Studio space.

      Thanks,

      Mustafa.

      (0) 
  13. Praveen Kishen Pandian R

    Hi ,


    I am working with Universe as  a Data Source for Design Studio and planning to integrate Geo map.

    Will the above  steps works for Universe as  Data Source as well ? Please advise.

    Thanks,

    Praveen

    (0) 
    1. Mustafa Bensan Post author

      Hi Praveen,

      Yes, the above steps should work for Universes.  You should define your Latitude and Longitude coordinates as measures.

      Regards,

      Mustafa.

      (0) 
  14. Corne Buys

    HI Mustafa,

    This helped me a lot. The problem we face is that the colour selection for each layer does not change with the selection of the check box. It displays all the points, in the layers but it does not show the markers int the colours selected on the layer.

    We have 3 Data Sources representing different departments with X and Y for incidents created. ( This is a direct connection on HANA SQL view)So each Layer is a department with incidents markers showing on the same map in different colours.

    The problem is that the on selection the markers are all the same colour, which is the colour of the last layer. Doesn`t matter what department you select, the layer markers change but not the layer colour?

    Have you got any Idea? tried to add some photos but no luck.

    Corne

    (0) 
  15. Elisabeth Staudinger

    Hi Mustafa,

    thanks for sharing your knowledge .

    One Question: I use shapes and points layers in my application and I would like to see the values of a point on Mouse over as I can see the values of a shape.

    There is no possibility to select a measure for points in the additional information area. Do you have any idea?

    Regards,

    Elisabeth

    (0) 
    1. Mustafa Bensan Post author

      Hi Elisabeth,

      As you have observed, since a measure cannot be assigned to a marker layer, I don’t see a practical approach for implementing your requirement with the standard GeoMap component.  However, you may wish to consider using the Design Studio SDK Development Community Leaflet Map component, whereby you can achieve your requirement as follows:

      1)  Create a map layer of layer type Marker; 

      2)  Assign a Color Scale Measure to the marker layer;

      3)  Define a Tooltip Template to display the information you need, including the measure value.

      Regards,


      Mustafa.

      (0) 
  16. Mr Pynk

    Dear Mustafa,

    nice post!

    Do you know whether its possible to hide the quick tips of a layer?

    I want to display countries just in green or red wheter a KPI is negative or not –> so I define

    a calculated KPI in BEX Query which returns 0 and 1 –> in that way I achieve that the countries are only red or green. But if you move the mouse over one country OF COURSE you see the KPI value 0 or 1 –> is there any way to surpress this?

    Thanks in advance

    Marian

    (0) 
  17. David Desmonds

    Dear Mustafa,

    Thanks for your presentation which is really clear.
    In case we do not have latitude and longitude information in the source system but the complete adress : street, postcode, city.
    Is it possible to use these 3 customers attributes instead of the latitude and longitude ?

    Thanks & Regards
    Elie

    (0) 
    1. Mustafa Bensan Post author

      Hi Elie,

      With the standard geo map component, it is not possible to derive latitude and longitude based on the address attribute information.  You would need to consider a 3rd-party solution such as CMaps Analytics or Galigeo.

      If however all you need is to display postcode or city as regions, then you can create your own geoJSON files and map the city or postcode attribute values accordingly.

      Regards,

      Mustafa.

      (0) 
      1. Rolf Hoven

        You wrote:
        If however all you need is to display postcode or city as regions, then you can create your own geoJSON files and map the city or postcode attribute values accordingly.

        I’m using SAP Web IDE with the “Geomap” controller. ( sap.ui.vbm )
        I manage to show “Spot’s, using BING map:
        “url”: “http://ecn.t0.tiles.virtualearth.net/tiles/r{QUAD}?g=685&mkt=de-de&lbl=l1&stl=h&shading=hill&n=z”

        How can I add a layer showing regions ?

        (0) 
        1. Mustafa Bensan Post author

          Hi Rolf,

          This blog relates to the use of the geo map component in the SAP BusinessObjects Design Studio tool.  It is not related to the UI5 “Geomap” controller you have mentioned.  You should post your question in the SAPUI5 Community for an answer to your question.

          Regards,

          Mustafa.

          (0) 
  18. David Desmonds

    Thanks Mustafa,
    May you clarify me on global topic related to the differences between Design Studio vs. WebI ?

    • Will design studio be the future tool for all BI reports available on website ?
    • For which problematic should we continue to develop new report on WebI rather than on Design Studio ?
    • What are currently the problematics which can only be managed by WebI and not by Design Studio ?

    Thanks
    Elie

    (0) 
  19. Igor Santos

    Hi, Mustafa.

    I have an Infoobject with EASTING and NORTHING coordinates filled, but I can see that only can be used latitude and longitude. Do you know another way or a function to convert this in Latitude and Longitude?

    Thank U!
    Igor

    (0) 
    1. Mustafa Bensan Post author

      Hi Igor,

      The standard Design Studio Geo Map component does not support EASTING/NORTHING coordinates.  You may consider the following options:

      1)  Add Latitude and Longitude attributes to the InfoObject and load the corresponding coordinate values; or

      2)  Check the SAP Analytics Extensions Directory to see if there is a custom SDK Geo Map component available that supports the Easting/Northing coordinate system.

      Regards,

      Mustafa.

      (0) 
  20. Luis Vila

    Hi Mustafa,

    Great article. Thanks for sharing

     

    I would like to ask you a question, is it possible in DS to filter out values for the Geo Map component to not map address values (with Lon/Lat)  where measure = 0. In my view layout I have dimension Address and several measures across to be used as geo map layers but I need to filter out values where the specific measure <> 0. In the example below one layer will be for External Cond and another for Temp Park. If I use points it displays all values but I need to filter out values = 0.

    Thanks,

    LV

    (0) 
    1. Mustafa Bensan Post author

      Hi Luis,

      It is best to apply such filtering in the backed as there is no way to filter the data source directly on measures at the moment with standard functionality.  So for example, if your data source is a BW BEx Query, you could define a Condition to exclude measures equal to zero.

      Regards,

      Mustafa.

       

      (0) 
  21. Luis Vila

    Hi Mustafa,

    I have one more question, what is the best way to select data for geo map component points when you have a large dataset to display in the map. Is there a way to select the data dynamically using scripting and passing it to the geo map layer or a expression in the select data screen for each layer? In the example below I have 200 points and when selecting the data I would like to avoid selecting each entry the select data option.

    Any advice is much appreciated.

    (0) 
    1. Mustafa Bensan Post author

      Hi Luis,

      Please post your question as an SCN question to get better visibility and response from the community.

      Regards,

      Mustafa.

      (0) 

Leave a Reply