Google Maps API v3-在一页上创建带有标记的多张地图

焓值

我正在尝试创建一个包含3张幻灯片的滑块,每张幻灯片都包含一个带有指向特定位置的标记的迷你地图。我设法创建了一张幻灯片,但是每次尝试在此页面上创建多个幻灯片都会导致失败。到目前为止,这是我的代码:

HTML + PHP

<?php if (have_rows('job_offers')): ?>
  <?php
    $rows = get_field('job_offers');
    $row_count = count($rows);
      for ($i = 0; $i <= 2; $i++) {
  ?>
  <li>
  <div id='googleMap<?php echo $i; ?>' style="position:absolute;top:0;right:0;width:180px;height:100%;"></div>    
  </li>
  <?php } ?>
<?php endif; ?>    

和jQuery

var geocoder = new google.maps.Geocoder();
var map;
var locations = ["London",'Paris','Barcelona'];
var pos;

function initialize()
{
    google.maps.visualRefresh = true;
    getGeoCode();
}

function getGeoCode()
{
    for (var i=0; i<3 ; i++) {
    geocoder.geocode({'address': locations[i]}, function(results, status) {
        if (status === google.maps.GeocoderStatus.OK)
        {

            pos[i] = results[0].geometry.location;
            var mapOptions = {
                zoom: 8,
                center: pos[i],
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                disableDefaultUI: true,
                styles: [
                    { stylers: [{hue:'#C4268C'},{lightness:-60},{saturation:100}]}
                ]
            };
            map[i] = new google.maps.Map(document.getElementById("googleMap" + i), mapOptions);
            var image = '<?php echo get_template_directory_uri(); ?>/images/marker.png';
            var marker = new google.maps.Marker({
                position: pos[i],
                icon:image
            });

            marker.setMap(map[i]);

        }
        else
        {
            alert("Not found");
        }
    });
}
}
google.maps.event.addDomListener(window, 'load', initialize);

当我不尝试使用数组时,一切都很好。如有任何提示,我将不胜感激。干杯,E。

地理编码

下面的代码解决了函数关闭的问题(它们的makeMap函数将对地理编码器回调运行时使用的“ i”值保持关闭状态):

var geocoder = new google.maps.Geocoder();
var map = [];
var locations = ["London",'Paris','Barcelona'];
var pos = [];
var infowindow = new google.maps.InfoWindow({});

function initialize()
{
    google.maps.visualRefresh = true;
    getGeoCode();
}

function makeMap(i) {
    geocoder.geocode({'address': locations[i]}, function(results, status) {
        if (status === google.maps.GeocoderStatus.OK)
        {

            pos[i] = results[0].geometry.location;
            var mapOptions = {
                zoom: 8,
                center: pos[i],
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                disableDefaultUI: true,
                styles: [
                    { stylers: [{hue:'#C4268C'},{lightness:-60},{saturation:100}]}
                ]
            };
            map[i] = new google.maps.Map(document.getElementById("googleMap" + i), mapOptions);
            // var image = '<?php echo get_template_directory_uri(); ?>/images/marker.png';
            var marker = new google.maps.Marker({
                position: pos[i],
                // icon:image
            });

            marker.setMap(map[i]);

        }
        else
        {
            alert("Not found");
        }
    });
}
function getGeoCode()
{
    for (var i=0; i<3 ; i++) {
        makeMap(i);
}
}
google.maps.event.addDomListener(window, 'load', initialize);

工作小提琴

代码段:

var geocoder = new google.maps.Geocoder();
var map = [];
var locations = ["London", 'Paris', 'Barcelona'];
var pos = [];
var infowindow = new google.maps.InfoWindow({});

function initialize() {
  google.maps.visualRefresh = true;
  getGeoCode();
}

function makeMap(i) {
  geocoder.geocode({
    'address': locations[i]
  }, function(results, status) {
    if (status === google.maps.GeocoderStatus.OK) {

      pos[i] = results[0].geometry.location;
      var mapOptions = {
        zoom: 8,
        center: pos[i],
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        disableDefaultUI: true,
        styles: [{
          stylers: [{
            hue: '#C4268C'
          }, {
            lightness: -60
          }, {
            saturation: 100
          }]
        }]
      };
      map[i] = new google.maps.Map(document.getElementById("googleMap" + i), mapOptions);
      // var image = '<?php echo get_template_directory_uri(); ?>/images/marker.png';
      var marker = new google.maps.Marker({
        position: pos[i],
        // icon:image
      });

      marker.setMap(map[i]);

    } else {
      alert("Not found");
    }
  });
}

function getGeoCode() {
  for (var i = 0; i < 3; i++) {
    makeMap(i);
  }
}
google.maps.event.addDomListener(window, 'load', initialize);
#googleMap0,
#googleMap1,
#googleMap2,
#googleMap3 {
  width: 500px;
  height: 500px;
}
<script src="http://maps.google.com/maps/api/js"></script>
<table border="1">
  <tr>
    <td>
      <div id="googleMap0"></div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="googleMap1"></div>
    </td>
  </tr>
  <tr>
    <td>
      <div id="googleMap2"></div>
    </td>
  </tr>
</table>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google Maps API v3-在一页上创建带有标记的多张地图

来自分类Dev

使地图在Google Maps API v3上运行的问题

来自分类Dev

Google Maps API v3唯一标记JS

来自分类Dev

带有Rhomobile的Google Maps Javascript V3 API

来自分类Dev

Google Maps Javascript API V3中的旋转标记

来自分类Dev

动画化不同的标记API V3 Google Maps

来自分类Dev

标记位置未获取-Google Maps API v3

来自分类Dev

标记拖动事件Google Maps API V3

来自分类Dev

Google Maps API v3标记问题

来自分类Dev

Google Maps Javascript API v3的标记

来自分类Dev

Google Maps JS api v3延迟拖拽标记

来自分类Dev

Google Maps Javascript API V3中的旋转标记

来自分类Dev

带有信息窗口和图钉的 Google Maps API v3 多个标记

来自分类Dev

在maps.google.com上缩放比在Google Maps API v3上平滑

来自分类Dev

Google Maps API v3:为什么Google Maps API V3和Google Maps的搜索结果不一致?

来自分类Dev

Google Maps v3 API标记无效,并留空白页

来自分类Dev

地图标记无法呈现-Phonegap中的Google Maps Javascript API v3

来自分类Dev

如何创建直接链接以访问特定的Google Maps API V3标记?

来自分类Dev

Google Maps API v3上的标记超出范围

来自分类Dev

使用MVC模型在Google Maps API v3上显示标记

来自分类Dev

Google Maps Api v3标记。Google未定义

来自分类Dev

Google Maps Javascript API V3:标记具有相同的标题

来自分类Dev

响应式 Google Maps API v3 - 在小屏幕上自动显示所有标记

来自分类Dev

带有jQuery自动完成插件的Google Maps Api v3位置搜索

来自分类Dev

带有GeoJson多边形层的google maps v3 API鼠标悬停

来自分类Dev

当光标靠近Google Maps API V3中的地图边缘时,移动地图

来自分类Dev

更改Google Maps JavaScript API v3以外的地图不透明度

来自分类Dev

Google Maps API v3绑定事件到多个地图

来自分类Dev

更改Google Maps JavaScript API v3以外的地图不透明度

Related 相关文章

  1. 1

    Google Maps API v3-在一页上创建带有标记的多张地图

  2. 2

    使地图在Google Maps API v3上运行的问题

  3. 3

    Google Maps API v3唯一标记JS

  4. 4

    带有Rhomobile的Google Maps Javascript V3 API

  5. 5

    Google Maps Javascript API V3中的旋转标记

  6. 6

    动画化不同的标记API V3 Google Maps

  7. 7

    标记位置未获取-Google Maps API v3

  8. 8

    标记拖动事件Google Maps API V3

  9. 9

    Google Maps API v3标记问题

  10. 10

    Google Maps Javascript API v3的标记

  11. 11

    Google Maps JS api v3延迟拖拽标记

  12. 12

    Google Maps Javascript API V3中的旋转标记

  13. 13

    带有信息窗口和图钉的 Google Maps API v3 多个标记

  14. 14

    在maps.google.com上缩放比在Google Maps API v3上平滑

  15. 15

    Google Maps API v3:为什么Google Maps API V3和Google Maps的搜索结果不一致?

  16. 16

    Google Maps v3 API标记无效,并留空白页

  17. 17

    地图标记无法呈现-Phonegap中的Google Maps Javascript API v3

  18. 18

    如何创建直接链接以访问特定的Google Maps API V3标记?

  19. 19

    Google Maps API v3上的标记超出范围

  20. 20

    使用MVC模型在Google Maps API v3上显示标记

  21. 21

    Google Maps Api v3标记。Google未定义

  22. 22

    Google Maps Javascript API V3:标记具有相同的标题

  23. 23

    响应式 Google Maps API v3 - 在小屏幕上自动显示所有标记

  24. 24

    带有jQuery自动完成插件的Google Maps Api v3位置搜索

  25. 25

    带有GeoJson多边形层的google maps v3 API鼠标悬停

  26. 26

    当光标靠近Google Maps API V3中的地图边缘时,移动地图

  27. 27

    更改Google Maps JavaScript API v3以外的地图不透明度

  28. 28

    Google Maps API v3绑定事件到多个地图

  29. 29

    更改Google Maps JavaScript API v3以外的地图不透明度

热门标签

归档