如何根据传递的数据动态突出显示标记到谷歌地图

时间:2017-06-07 10:19:41

标签: javascript jquery html5 google-maps google-maps-api-3

如何根据$sql = " CREATE TABLE users1 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(24) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL ); CREATE TABLE users2 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(24) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL ); CREATE TABLE users3 ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(24) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL ); "; try { $stmt = $db->prepare($sql); $stmt->execute(); } catch (PDOException $e) { echo $e->getMessage(); die(); } {!this.state.isLoading && applicants.findIndex(obj => obj.is_new) === 1 && <div>is new</div> {applicants.map((obj,index) => { if(obj.is_new){ return this.renderApplicantsList(obj, index) } })} } 的滚动突出显示marker,如下所示

我的Html DOM

div

我的javascript

div

这是工作代码示例:http://jsfiddle.net/pdzTW/212/

正如您在上面的代码中注意到<div data-value="data 1"></div> <div data-value="data 2"></div> <div data-value="data 3"></div> <div data-value="data 4"></div> ,我想通过var cutoff = $(window).scrollTop() + 200; $('div').each(function(){ if($(this).offset().top + $(this).height() > cutoff){ $('div').removeClass('current'); $(this).addClass('current'); console.log($(this).data('value')); //callGoogleMapHere(data..); return false; // stops the iteration after the first one on } }); 传递来callGoogleMapHere(data..);,以便google map data Highlight在地图上。

这是我的地图代码链接(感谢geocodezip):http://jsfiddle.net/2gz7h123/64/

问题:我想在此Marker

marker Google map data上动态突出显示callGoogleMapHere(data..);

请提前帮助我!

1 个答案:

答案 0 :(得分:0)

我感谢你被困住并需要帮助。但是,这不是一个让人们为你工作的网站。

看起来你缺乏你想要达到的目标的知识,只是想完成工作。因此,我有一个妥协,鉴于你所进行的研究,你应该能够获得一个合理的解决方案。

给出一组div

 <div data-value="0" class="notmap"></div>
 <div data-value="1" class="notmap"></div>
 <div data-value="2" class="notmap"></div>
 <div data-value="3" class="notmap"></div>
 <div data-value="4" class="notmap"></div>

我们希望能够在悬停时调用某些功能。在您的解决方案中,相同的内容将应用于滚动。

使用:

$(document).ready(function() {
  alert('please scroll output window and check the console');
  $(".notmap").hover(function() {
    highlightMarker($(this).data('value'));
  }, function() {
    stopHighlightMarker($(this).data('value'));
  });
});

当您停止悬停在div上时,这将在悬停时调用highlightMarker函数并调用stopHighlightMarker

突出显示标记执行以下操作:

function highlightMarker(i) {
  if (markers[i].getAnimation() !== null) {
    markers[i].setAnimation(null);
  } else {
    markers[i].setAnimation(google.maps.Animation.BOUNCE);
  }
}

基本上我添加了一个标记数组,它通过传递markers[i]数字来获取data-value元素。它很便宜,但嘿嘿。

然后简单地为图标设置动画,使其可见并通过上下弹跳突出显示。

我很欣赏这不是真的你问题的答案,但我提供的信息应该足以让你的问题得到解决。

JSFIDDLE: http://jsfiddle.net/2gz7h123/68/