Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.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 允许选择国家和地区;仅放大到国家/地区级别_Javascript_Html_Google Maps_Maps - Fatal编程技术网

Javascript 允许选择国家和地区;仅放大到国家/地区级别

Javascript 允许选择国家和地区;仅放大到国家/地区级别,javascript,html,google-maps,maps,Javascript,Html,Google Maps,Maps,我想使用谷歌地图,但只在国家一级,也就是说,我想在一个窗口中显示整个世界的地图,用户应该能够选择任何国家点击该国,我也应该能够显示一些弹出窗口。我还想得到从JS选择的国家的值。请在这方面指导我。我在谷歌上搜索过,但没有完整的信息。结合以下两个例子: var-map=null; var-geocoder=null; var kmlLayer=null; var infoWindow=new google.maps.infoWindow();//信息窗 函数openIW(layerEvt){

我想使用谷歌地图,但只在国家一级,也就是说,我想在一个窗口中显示整个世界的地图,用户应该能够选择任何国家点击该国,我也应该能够显示一些弹出窗口。我还想得到从JS选择的国家的值。请在这方面指导我。我在谷歌上搜索过,但没有完整的信息。

结合以下两个例子:

  • var-map=null;
    var-geocoder=null;
    var kmlLayer=null;
    var infoWindow=new google.maps.infoWindow();//信息窗
    函数openIW(layerEvt){
    如果(layerEvt.row){
    var content=layerEvt.row['admin'].value;
    }else if(layerEvt.featureData){
    var content=layerEvt.featureData.name;
    }
    document.getElementById('info').innerHTML=“您单击:
    ”+内容; findAddress(内容); } 函数初始化(){ geocoder=新的google.maps.geocoder(); var chicago=new google.maps.LatLng(36.4278,-15.9); 变量myOptions={ 缩放:2, 中心:芝加哥, mapTypeId:google.maps.mapTypeId.ROADMAP } map=new google.maps.map(document.getElementById(“map_canvas”),myOptions); google.maps.event.addListener(映射,“单击”,函数(){ document.getElementById('info').innerHTML=“”; }); kmlLayer=new google.maps.kmlLayer('http://www.geocodezip.com/geoxml3_test/world_countries_kml.xml“,{preserveViewport:true,suppressInfoWindows:true}); kmlLayer.setMap(map); google.maps.event.addListener(kmlLayer,'click',openIW); } 功能findAddress(地址){ 如果((地址!='')和地理编码器){ geocoder.geocode({'address':address},函数(结果,状态){ if(status==google.maps.GeocoderStatus.OK){ if(结果和结果[0]&&results[0]。几何图形和结果[0]。几何图形。视口) map.fitBounds(结果[0].geometry.viewport); }否则{ 警报(“未发现结果”); } }否则{ 警报(“地理编码因以下原因未成功:“+状态”); } }); } }
    -感谢您的输入Zooom to country示例的问题是我们需要从下拉列表中选择国家/地区用户放置鼠标并选择,highlight无法真正“选择并突出显示”。你可以结合这两个例子,点击一个国家,然后缩放到地理编码器返回的边界。有多选的选项吗?我们可以只做高亮显示吗?有多选的选项吗?当然有。你只需要定义功能并对其进行编码。合法地从谷歌地图创建图像的唯一方法是使用(阅读或咨询你的律师以确定,IANAL),如果我是付费客户,那么可以使用IINAL(我不是律师),我不知道,这是你(或你的律师)的责任来确定。
    var map=null;
    var geocoder = null;
    var kmlLayer = null;
    var infoWindow = new google.maps.InfoWindow(); // InfoWindow
    
    function openIW(layerEvt) {
      if (layerEvt.row) {
        var content = layerEvt.row['admin'].value;
      } else if (layerEvt.featureData) {
        var content = layerEvt.featureData.name;
      }
      document.getElementById('info').innerHTML = "you clicked on:<br>"+content;
      findAddress(content);
    }
    
    function initialize() {
      geocoder = new google.maps.Geocoder();
      var chicago = new google.maps.LatLng(36.4278,-15.9);
      var myOptions = {
        zoom: 2,
        center: chicago,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }
    
      map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    
      google.maps.event.addListener(map, "click", function() {
        document.getElementById('info').innerHTML = "";
      });
    
    
      kmlLayer = new google.maps.KmlLayer('http://www.geocodezip.com/geoxml3_test/world_countries_kml.xml', {preserveViewport: true, suppressInfoWindows: true} );
      kmlLayer.setMap(map);
    
      google.maps.event.addListener(kmlLayer, 'click', openIW);
    
    }    
    
    function findAddress(address) {
      if ((address != '') && geocoder) {
        geocoder.geocode( { 'address': address}, function(results, status) {
          if (status == google.maps.GeocoderStatus.OK) {
             if (results && results[0] && results[0].geometry && results[0].geometry.viewport) 
               map.fitBounds(results[0].geometry.viewport);
             } else {
               alert("No results found");
             }
          } else {
            alert("Geocode was not successful for the following reason: " + status);
          }
        });
      }
    }