google-maps - payant - google maps pricing



Pays cliquables utilisant l'API Google Maps (1)

Je viens de commencer à utiliser l'API Google Maps, mais je suis déjà coincé. Je cherche un moyen de recréer ce type de carte avec google maps. Je devrais enlever toutes les étiquettes, obtenir un fond blanc (j'ai essayé d'utiliser un style de carte, mais cela n'a pas fonctionné pour moi, exemple de code ci-dessous) et éclairer les pays pendant que je les survole.

Y a-t-il des tutoriels que j'ai l'air d'avoir manqués dans ma recherche et qui pourraient m'aider ou quelqu'un peut-il me pointer dans la bonne direction? :)

var _mapstyle = [
  {
    featureType: "all",
    elementType: "labels",
    stylers: [
      { visibility: "off" }
    ]
  }
];

function create_map()
{
    _map = new google.maps.Map(document.getElementById("eyewebz-map"), 
    {
        zoom: 2,
        center: new google.maps.LatLng(20, 0), 
        navigationControl: true,
        navigationControlOptions: {
            style: google.maps.NavigationControlStyle.DEFAULT
        },
        mapTypeControl: true,
        mapTypeControlOptions: {
            style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
        },
        scaleControl: true, 
        mapTypeIds: ['_mapstyle']
    });

    _display.setMap(_map);
    _display.setPanel(document.getElementById("NavigationText"));
}

EDIT Voici à quoi servirait la carte: J'ai voyagé un peu dans ma vie et je m'attends à en faire beaucoup plus. Depuis mon premier grand voyage, j'ai tenu un blog. J'ai maintenant développé un nouveau blog et je voudrais rendre les pays que j'ai visités cliquables et suivre une URL une fois qu'ils ont été cliqués. La situation idéale serait que lorsque je clique sur un pays, il m'amène à une page où seul ce pays spécifique est représenté sur une carte avec des marqueurs (lieux à visiter). Une fois que vous cliquez sur ces marqueurs, il devrait afficher un message spécifique / certaines informations.


Quelque chose comme ça serait ok? Copiez et collez dans un corps de page HTML ( JSFiddler ici ).

<style type="text/css">
  #map-canvas {
    height: 600px;
    width: 800px;
  }
</style>

<script type="text/javascript"
    src="https://maps.google.com/maps/api/js?sensor=false"></script>

<script type="text/javascript">
  // the map
  var map;

  function initialize() {
    var myOptions = {
      zoom: 2,
      center: new google.maps.LatLng(10, 0),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    // initialize the map
    map = new google.maps.Map(document.getElementById('map-canvas'),
        myOptions);

    // these are the map styles
    var styles = [
        {
          stylers: [
            { hue: "#00ffe6" },
            { saturation: -20 }
          ]
        },
        {
          featureType: "landscape",
          stylers: [
            { hue: "#ffff66" },
            { saturation: 100 }
          ]
        },{
          featureType: "road",
          stylers: [
            { visibility: "off" }
          ]
        },{
          featureType: "administrative.land_parcel",
          stylers: [
            { visibility: "off" }
          ]
        },{
          featureType: "administrative.locality",
          stylers: [
            { visibility: "off" }
          ]
        },{
          featureType: "administrative.neighborhood",
          stylers: [
            { visibility: "off" }
          ]
        },{
          featureType: "administrative.province",
          stylers: [
            { visibility: "off" }
          ]
        },{
          featureType: "landscape.man_made",
          stylers: [
            { visibility: "off" }
          ]
        },{
          featureType: "landscape.natural",
          stylers: [
            { visibility: "off" }
          ]
        },{
          featureType: "poi",
          stylers: [
            { visibility: "off" }
          ]
        },{
          featureType: "transit",
          stylers: [
            { visibility: "off" }
          ]
        }
      ];

    map.setOptions({styles: styles});

    // Initialize JSONP request
    var script = document.createElement('script');
    var url = ['https://www.googleapis.com/fusiontables/v1/query?'];
    url.push('sql=');
    var query = 'SELECT name, kml_4326 FROM ' +
        '1foc3xO9DyfSIF6ofvN0kp2bxSfSeKog5FbdWdQ';
    var encodedQuery = encodeURIComponent(query);
    url.push(encodedQuery);
    url.push('&callback=drawMap');
    url.push('&key=AIzaSyAm9yWCV7JPCTHCJut8whOjARd7pwROFDQ');
    script.src = url.join('');
    var body = document.getElementsByTagName('body')[0];
    body.appendChild(script);
  }

  function drawMap(data) {
    var rows = data['rows'];
    for (var i in rows) {
      if (rows[i][0] != 'Antarctica') {
        var newCoordinates = [];
        var geometries = rows[i][1]['geometries'];
        if (geometries) {
          for (var j in geometries) {
            newCoordinates.push(constructNewCoordinates(geometries[j]));
          }
        } else {
          newCoordinates = constructNewCoordinates(rows[i][1]['geometry']);
        }
        var country = new google.maps.Polygon({
          paths: newCoordinates,
          strokeColor: '#ff9900',
          strokeOpacity: 1,
          strokeWeight: 0.3,
          fillColor: '#ffff66',
          fillOpacity: 0,
          name: rows[i][0]
        });
        google.maps.event.addListener(country, 'mouseover', function() {
          this.setOptions({fillOpacity: 0.4});
        });
        google.maps.event.addListener(country, 'mouseout', function() {
          this.setOptions({fillOpacity: 0});
        });
        google.maps.event.addListener(country, 'click', function() {
          alert(this.name);
        });

        country.setMap(map);
      }
    }
  }

  function constructNewCoordinates(polygon) {
    var newCoordinates = [];
    var coordinates = polygon['coordinates'][0];
    for (var i in coordinates) {
      newCoordinates.push(
          new google.maps.LatLng(coordinates[i][1], coordinates[i][0]));
    }
    return newCoordinates;
  }

  google.maps.event.addDomListener(window, 'load', initialize);
</script>

<div id="map-canvas"></div>

Ceci est une version modifiée de cet exemple de fusion de calques de tables: Mouseover Map Styles .

Vous devriez également jeter un oeil à Cartes stylisées .

Une autre chose qui pourrait vous intéresser est Natural Earth Data . Ceci dans le cas où vous avez besoin d'une source de données polygonale. Et voici un exemple d'utilisation de l' API GViz Exemple: Fusion Tables Data Source .





google-maps-api-3