0

我在我的 rails 应用程序中使用 Gmaps4Rails gem,所以我只是想知道是否可以搜索一个地方(例如,我不想传递坐标而是国家名称),所以我需要如下图所示: 在此处输入图像描述

4

1 回答 1

1

请参阅文档:https ://github.com/apneadiving/Google-Maps-for-Rails/wiki/Model-Customization

如果您正在执行基于模型的查找,您的地址会出现在诸如 gmaps4rails_address 之类的字段中。在你的情况下,这只是国家。

您可以有一个名为 gmaps 的布尔字段并将其设置为 false,表示该地址(国家/地区)尚未进行地理编码。地理编码后,经纬度将自动存储在适当的模型字段中,并且 gmaps 布尔值将自动设置为 true,以便地址不再进行地理编码。

更新1:

针对您的评论,您的问题具有误导性。您说您想传递一个国家/地区的名称,我的解决方案就是这样做的(例如,gmaps4rails_address 字段可能包含“德国”)。但听起来你正在寻找的是一张概述该国家边界的地图,这意味着你不能使用谷歌地图 API(它不这样做)。所以这个宝石(或任何谷歌地图宝石)不会帮助你。

您需要使用 Google Geomap javascript api 之类的东西。这不能与常规的谷歌地图结合使用。Geomap api 将为您提供包含国家轮廓的闪存地图。

从文档(https://developers.google.com/chart/interactive/docs/gallery/geomap):

<script type='text/javascript' src='https://www.google.com/jsapi'></script>
  <script type='text/javascript'>
   google.load('visualization', '1', {'packages': ['geomap']});
   google.setOnLoadCallback(drawMap);

    function drawMap() {
      var data = google.visualization.arrayToDataTable([
        ['Country', 'Popularity'],
        ['Germany', 200],
        ['United States', 300],
        ['Brazil', 400],
        ['Canada', 500],
        ['France', 600],
        ['RU', 700]
      ]);

      var options = {};
      options['dataMode'] = 'regions';

      var container = document.getElementById('map_canvas');
      var geomap = new google.visualization.GeoMap(container);
      geomap.draw(data, options);
  };
  </script>
</head>

<body>
  <div id='map_canvas'></div>
</body>
于 2013-10-04T03:33:02.483 回答