Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Google地图URL将地图加载到ExtJS GMapPanel_Javascript_Google Maps_Url_Extjs - Fatal编程技术网

Javascript 从Google地图URL将地图加载到ExtJS GMapPanel

Javascript 从Google地图URL将地图加载到ExtJS GMapPanel,javascript,google-maps,url,extjs,Javascript,Google Maps,Url,Extjs,我正在搜索从URL(例如)加载映射到GMapPanel ExtJS控件的解决方案。此链接是在网站中创建的。尽管进行了大量的研究,但这似乎是不可能的 你知道如何用这种方式(从URL)加载地图吗?你知道实现这个解决方案的其他方法吗?我不知道谷歌是如何通过URL中的@符号来实现这一点的 但我可以用标签来做 <div id="map"></div> <a target="_blank" href="index.php#48.86100157399595,2.335

我正在搜索从URL(例如)加载映射到GMapPanel ExtJS控件的解决方案。此链接是在网站中创建的。尽管进行了大量的研究,但这似乎是不可能的


你知道如何用这种方式(从URL)加载地图吗?你知道实现这个解决方案的其他方法吗?

我不知道谷歌是如何通过URL中的@符号来实现这一点的

但我可以用标签来做

    <div id="map"></div>

<a target="_blank" href="index.php#48.86100157399595,2.335891842842086,7">Paris</a>
<a target="_blank" href="index.php#52.52147002033347,13.413565278053268,9">Berlin</a>
<a target="_blank" href="index.php#50.847982072140276,4.350390947438103,12">Brussels</a>

<style>
#map {
  height: 400px;
}
</style>
<script src="https://maps.googleapis.com/maps/api/js"></script>
<script>
var map;

// reads the url, sets the map according to these values
function optionsFromUrl() {
  var settings = getLatLngZoom();
  if (settings) {
    map.setCenter( new google.maps.LatLng(settings[0], settings[1]) );
    map.setZoom( settings[2] );
  }
}
// reads the url, returns an array of values.  These values are separated by kommas in the url
function getLatLngZoom() {
  var vars = window.location.hash.substr(1).split(',');
  if (vars[0] && vars[1]) {
    return [
      Number(vars[0]),
      Number(vars[1]),
      Number(vars[2]) || 7  // this is a default zoom, in case it is missing in the URL.  Feel free to pick another value
    ];
  }
  return null;
}

function initialize() {
  var paris = new google.maps.LatLng(48.86100157399595,2.335891842842086);
  var mapOptions = {
    zoom: 7,
    center: paris
  }
  map = new google.maps.Map(document.getElementById("map"), mapOptions);

  optionsFromUrl();
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>

#地图{
高度:400px;
}
var映射;
//读取url,根据这些值设置映射
函数选项fromURL(){
var settings=getLatLngZoom();
如果(设置){
map.setCenter(新的google.maps.LatLng(设置[0],设置[1]);
map.setZoom(设置[2]);
}
}
//读取url,返回一个值数组。这些值在url中由kommas分隔
函数getLatLngZoom(){
var vars=window.location.hash.substr(1.split(',');
if(变量[0]&变量[1]){
返回[
数量(变量[0]),
数量(变量[1]),
数字(vars[2])| | 7//这是默认的缩放,以防在URL中丢失。请随意选择其他值
];
}
返回null;
}
函数初始化(){
var paris=new google.maps.LatLng(48.86100157399595,2.335891842842086);
变量映射选项={
缩放:7,
中心:巴黎
}
map=new google.maps.map(document.getElementById(“map”)、mapOptions);
选项fromURL();
}
google.maps.event.addDomListener(窗口“加载”,初始化);