Google Maps for Rails搜索地点

时间:2013-10-03 14:11:01

标签: ruby-on-rails ruby google-maps gmaps4rails

我在我的rails应用程序中使用Gmaps4Rails gem,所以我只是想知道它是否可以搜索一个地方(我不想传递坐标但是例如国家名称),所以我需要smth如下图所示: enter image description here

1 个答案:

答案 0 :(得分:1)

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

如果您正在进行基于模型的查找,则可以在gmaps4rails_address等字段中输入您的地址。在你的情况下,这将只是国家。

你可以有一个名为gmaps的布尔字段并将其设置为false,表示地址(国家/地区)尚未进行地理编码。一旦进行了地理编码,就会对其进行地理编码。 long将自动存储在相应的模型字段中,并且gmaps布尔值将自动设置为true,以便不再对地址进行地理编码。

更新1:

在回复您的评论时,您的问题会产生误导。你说你想传递一个国家的名字,我的解决方案就是这个名称(例如gmaps4rails_address字段可以包含'德国')。但听起来你正在寻找的是一张地图,勾勒出该国家的边界​​,这意味着你无法使用谷歌地图api(它不会这样做)。所以这个宝石(或任何谷歌地图宝石)不会帮助你。

您需要使用类似Google Geomap javascript api的内容。这不能与常规谷歌地图结合使用。 Geomap api将为您提供包含国家大纲的flash地图。

从文档(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>