链接到传单地图上的特定点

时间:2017-06-26 10:37:46

标签: javascript html leaflet raphael

我有网站,在主页上有一些链接到我所在城市的特定区域,我想将它们链接到第二页,其中有一个传单js地图。因此,链接应重定向到地图页面并缩放到地图上的特定点。

所以喜欢: index.html - >点击链接"曼哈顿" - > map.html - >放大到曼哈顿

其他链接应该打开相同的html页面,但是不同的缩放点。

所以基本上只需做类似的事情:

map.panTo(new L.LatLng(40.737, -73.923));

但问题是在index.html上没有初始化传单映射,因此在加载map.html之前无法执行此javascript命令。所以map.html页面需要知道它必须缩放到曼哈顿。

当链接不像<a href=""></a>但是在这样的区域地图中时,它是否也有可能:Link并且不同的区域在raphael JS中只有一个href属性。

感谢大家!

1 个答案:

答案 0 :(得分:1)

您不能在index.html中使用传单,但只能使用map.html

在index.html中插入指向map.html的链接,其中包含lat lng和zoom作为参数。例如:

<a href="/map.html?lat=10.123&lng=20.567&zoom=13">link</a>

在map.html中读取此参数以使地图居中。例如:

<script>
  function getQueryStringValue (key) {  
    return decodeURIComponent(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURIComponent(key).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1"));  
  } 
  var lat = getQueryStringValue("lat"));
  var lng = getQueryStringValue("lng"));
  var zoom = getQueryStringValue("zoom"));

  var mymap = L.map('mapid').setView([lat, lng], zoom);
</script>