通过存储在数据库中的lat和lang加载地图

时间:2015-03-10 11:19:29

标签: javascript php google-maps

我将谷歌地图嵌入到一个页面中,其中包含一个包含多个城市的下拉列表。我已将这些城市的lat和lang值存储在数据库中。用户将选择一个城市,并且在单击提交按钮时,地图将加载相应的lat和lang值。请注意,我不想要地理编码技术。这是我努力的一小部分。



var map;
var cntr;
var zm;
    
<?php  
    if(!empty($position['lat']) && !empty($position['lang'])){ ?>
      
        var latValue = <?php $position['lat']; ?> ;
        var langValue = <?php $position['lang']; ?> ;  
        
        cntr = {lat: latValue , lng: langValue };
        zm = 8;
                                                              
<?php} else{ ?>
  
        cntr = {lat: 30, lng: 70};
        zm = 7;
            
 <?php } ?>   
   
 function initialize() {
     var mapOptions = {
         center: cntr,
         zoom: zm
      };
   
   //And the rest of the code for markers and infowindows etc.
&#13;
&#13;
&#13;

这不起作用。它甚至会停止其余的代码工作,当我删除此部分并将默认值分配给var cntr时,这完全有效。 (我正在使用MVC组织,$ position是控制器中lat和lang城市的关联arrray。查询工作正常。)

4 个答案:

答案 0 :(得分:1)

默认情况下,您无法在.js文件中使用php。您必须相应地更改.htaccess。 这是一个快速谷歌搜索网站,如何做到这一点。 https://css-tricks.com/snippets/htaccess/use-php-inside-javascript/

答案 1 :(得分:0)

cntr = {lat: latValue , lang: langValue };

应该说lng而不是lang

我不确定如何在控制台中报告;它可能会在API代码中引发错误。

答案 2 :(得分:0)

if(!empty($position['lat'] && !empty($position['lang'])))

不应该是:

if(!empty($position['lat']) && !empty($position['lang']))

答案 3 :(得分:-1)

您提供的代码中有两个错误。首先,你必须说

<?php echo $position['lat']; ?>

<?php $position['lat']; ?>

其次,不是在php循环中取latlng的默认值,而是在声明它们时初始化变量。所以你需要的代码看起来像:

&#13;
&#13;
 var map;
   var cntr = {lat: 30, lng: 70};
   var zm = 7;

   <?php if(!empty($position['lat']) && !empty($position['lang'])){ ?>
      
        var latValue = <?php echo $position['lat']; ?> ;
        var langValue = <?php echo $position['lang']; ?> ;  
     
        cntr = {lat: latValue, lng: langValue};
        zm = 8;
                                              
   <?php } ?>
     
   function initialize() {
       var mapOptions = {
            center: cntr,
            zoom: zm
       };
     
     //rest of the code
&#13;
&#13;
&#13;

希望这会对你有所帮助。