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

Javascript 链接到传单地图上的特定点,javascript,html,leaflet,raphael,Javascript,Html,Leaflet,Raphael,我有一个网站,在主页上有一些到我所在城市特定地区的链接,我想把它们链接到第二页,那里有一张js地图传单。因此,链接应该重定向到地图页面并缩放到地图上的特定点 就像: index.html->点击链接“曼哈顿”->map.html->缩放到曼哈顿 其他链接应打开相同的html页面,但缩放点不同 所以它基本上只需要做这样的事情: map.panTo(new L.LatLng(40.737, -73.923)); 但问题是传单映射没有在index.html上初始化,因此在加载map.html之前无法

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

就像: index.html->点击链接“曼哈顿”->map.html->缩放到曼哈顿

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

所以它基本上只需要做这样的事情:

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

当链接不是像
而是在这样一个District地图中时也有可能:并且不同的地区在raphael JS中只有一个href属性


谢谢大家

您不能在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>
<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>

然后在map.html中读取这些参数以使地图居中。例如:

<a href="/map.html?lat=10.123&lng=20.567&zoom=13">link</a>
<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>

函数getQueryStringValue(键){
返回decodeURIComponent(window.location.search.replace)(新的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);