Leveraging the power of jVectorMap

Currently, I am implementing jVectormap for a project involving offices located in the USA, Netherlands, and Singapore. Is there a way to display only these specific countries on the map, while still being able to place markers indicating the office locations? Additionally, is it possible to make these marker locations clickable with links leading to another page?

Answer №1

If you want to display only 3 countries, there are two methods you can try out.

  1. First option is to update the jvectormap-world-mill file by including only the countries of your interest. This way, jvector will show only those specific countries. You can still utilize markers with this method.
  2. Alternatively, you can use a standard world map and distinguish the 3 countries you want to highlight by giving them a contrasting color while coloring the rest in white or light grey.

The default color setting is as follows:

regionStyle: {
 initial: {
  //Default color for countries (light grey)
  fill: '#E5E5E5',
 }
}

To specify colors for your chosen countries, use this code:

   series: {
    regions: [{
     //Color for Dark countries
     scale: ['#bac0c6', '#9f2742'],
     normalizeFunction: 'linear',
     values: regions.reduce(function(p, c){
      p[c.name] = c.status;
      return p;
     },{}
    ),
   }]
  }

The regions data is defined like so:

var regions = [
 {name: 'AT', status: 0, link:'disable'},

On my blog at , I have implemented the second approach. Feel free to explore the code if you need clarification. I am using multiple colors to represent countries, hence the use of the reduce function. However, you can opt for simpler assignment of values if needed.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Effortless Numerical Calculation for Trio Input Fields

I am in the process of setting up three numeric input fields that will automatically calculate and display results on the side. I am struggling with this task as I am not familiar with using ajax. Can someone assist me in implementing this functionality us ...

Is there a way for me to collaborate on a footer control with a different website?

Is it possible to seamlessly incorporate a footer from one website into another? Ideally, I want the footer HTML (and styles) to be dynamically inserted into different web pages. The common workaround is using an iframe, but this causes navigation issues ...

Having issues with retrieving latitude and longitude data from the Geocoding API in Node.js when using the OpenWeather API

I attempted to create a program in node.js that utilizes the openweather API. The idea was for the user to input a city name, then use the Geocoding API to extract the latitude and longitude coordinates, and finally retrieve weather data from the current w ...

Fetch Timeout Issue in React Native

I am currently using fetch to retrieve data from a server. Unfortunately, I am facing issues with setting a timeout for the fetch request in case the server does not respond. This is my global fetchData class: fetchGetResp(url, token) { return fetch( ...

creating a fresh window using AJAX in Ext JS

While I know there may be similar questions out there, the details of my situation are unique. I'm facing an issue with building a new window using ExtJS, starting from a pre-existing grid. The goal is to populate this new window with references to el ...

What is the best way to incorporate currency formatting into a table using sumtr and datatables?

I have a table where I am utilizing sumtr for the table footer, and displaying all the information within datatables. My requirement is to show all the values as currency. However, I am unable to modify the values after sumtr because it won't be able ...

Concealing a button once the collapse feature is toggled in Bootstrap

The following code snippet from the bootstrap website demonstrates how to use collapse functionality: <a class="btn btn-primary" data-toggle="collapse" href="#collapseExample" aria-expanded="false" aria-controls="collapseExample"> Link with href & ...

Why does updating state lead to a re-rendering loop while setting state does not encounter the same issue?

Essentially, I have developed a REST Api that retrieves a list of components (sections) from a CMS along with their associated data. Each section in the UI is assigned a number to indicate its position, but certain sections are excluded from counting, such ...

What is the best way to verify values in Vuejs based on their length?

<button type="submit" :disabled="(user.password && !$v.user.password.valid) || (user.confirmPassword && !$v.user.confirmPassword.sameAsPassword)">sda </button> By implementing a method based on character len ...

Utilize Bootstrap modal to input information into the DataTables library

I am trying to use a bootstrap modal to insert data, but I am encountering an error on the action index. As a result, the button that I added is not functioning correctly. Can someone please review my code to see if there are any mistakes? User Action Con ...

Do you have an index.d.ts file available for canonical-json?

I am currently working on creating an index.d.ts file specifically for canonical-json. Below is my attempted code: declare module 'canonical-json' { export function stringify(s: any): string; } I have also experimented with the following sn ...

Having difficulties updating a value in Angular through a function written in HTML- it refuses to update

<select ng-model="currentTimeStartHour" style="width: 33%" ng-change="UpdateTime(this)"> <option ng-repeat="hour in choices" value="{{hour.id}}">{{hour.name}}</option> </select> Somewhere else on the page... {{totalHours}} Whe ...

Tips for utilizing the Apollo cache consistently during page transitions in NextJs

In the official examples repository of NextJS, I found this apolloClient.js file: import { ApolloClient, HttpLink, InMemoryCache } from '@apollo/client' import { concatPagination } from '@apollo/client/utilities' import merge from &apos ...

Tips for Avoiding Database Overflow Due to Excessive AJAX Spam Requests

Let's consider a simple scenario: A create album button is used to input album data into the database. I disable the button while the request is being processed, then re-enable it upon completion. Once the processing is finished, ...

Choose an element by its specific data attribute

I have come across this html code and I am attempting to assign a new class to it using the data attribute: <p class="form-row form-row-wide" data-child-field="child_has_jacket"> </p> Even after trying with jQuery : jQuery( ...

Below are the steps to handle incorrect input after receiving only one letter:

H-I This is my input .centered-name { width: 80%; margin: auto; } .group { width: 100%; overflow: hidden; position: relative; } .label { position: absolute; top: 40px; color: #666666; font: 400 26px Roboto; cursor: text; transit ...

What is the best way to determine the size of the URLs for images stored in an array using JavaScript?

I am working on a project where I need to surround an image with a specific sized 'div' based on the image's dimensions. The images that will be used are stored in an array and I need to extract the height and width of each image before disp ...

Utilizing square brackets in Node.js for working with URLs

While working in express.js, I encountered an issue when trying to add a router for the URL /xxx/xxx/items[5] that contains square brackets. The router functions correctly without square brackets but fails to work when they are included in the URL. Has a ...

I am struggling with sending post requests in Node.js

I am currently facing a challenge with handling form data from a webpage using Node.js and writing that data to a file. It seems like there might be an issue with how Node.js is processing my POST request, or perhaps the way I am sending the request from t ...

Implementing user-driven filtering in a React table

When a user clicks on the submit button, data will be loaded. If no filter is applied, all data will be displayed. const submit = async (e: SyntheticEvent) => { e.preventDefault(); const param = { ...(certificateNo && ...