本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

将纬度和经度作为 url 参数传递

发布于2024-10-31 15:34     阅读(784)     评论(0)     点赞(25)     收藏(5)


我开始使用 API 工具,我的地图需要通过传递 URL 参数来动态更改,这是我的 URL,下面是不起作用的代码。检索参数的 PHP 部分有效,但将这些参数传输到 JS 变量中无效,“mylat”是不起作用的示例

希望有人能帮助我,谢谢

http://www.beleuramyhome.org.au/myvillaloc.php?urllat=-38.22173&urllong=145.0732905&urlvilla=177

<script type="text/javascript">

  var map;

  var mylat   = <?php echo json_encode($urllat); ?>; //-38.22173;
  var mylong  = 145.0732905;
  var myvilla = '177'; 

  function initMap() 
  {
    var myLatLng = {lat: mylat, lng: mylong};
    map = new google.maps.Map(document.getElementById('map'), {
      center: myLatLng,
      zoom: 18,mapTypeId: 'satellite'
    });

========================== 已解决 ==== 使用 PHP+Javascript

<?php
      $file_handle = fopen("villaloc.csv", "r");
      $villa = $_GET['villa'];

      // if visitor wants to start from their current location
      $mylat   = $_GET['mylat'];
      $mylong  = $_GET['mylong'];
      $start   = $_GET['start'];
      $walk    = $_GET['walk'];

      $foundrecord = 0;
      while (!feof($file_handle) ) 
      {
        $line_of_text = fgetcsv($file_handle, 128);

        if ($line_of_text[0] == $villa) 
        {
            $foundrecord = 1;
            break;
        }       
      }
      fclose($file_handle);

      if($foundrecord == 0)
      {
        /* Redirect browser */
        header("Location: https://squadron-125.org.il/villanotfound.html");

        /* Make sure that code below does not get executed when we redirect. */
        exit;  
      }       
    ?>

    <script>

      var loricket = 0;

      var VillaNo = parseFloat(<?php echo $line_of_text[0] ?>);
      var mylat   = parseFloat(<?php echo $line_of_text[1] ?>); 
      var mylong  = parseFloat(<?php echo $line_of_text[2] ?>);
          loricket = parseInt(<?php echo $line_of_text[3] ?>); 

解决方案


使用$_GET从查询字符串获取值

此外,您的纬度和经度是字符串,因为它来自 URL 查询字符串,尝试将其转换为浮点数,如下所示

 var map;

  var mylat   = parseFloat(<?php echo $_GET['urllat'] ?>); //-38.22173;
  var mylong  = parseFloat(<?php echo $_GET['urllong'] ?>);
  var myvilla = '177'; 

  function initMap() 
  {
    var myLatLng = {lat: mylat, lng: mylong};
    map = new google.maps.Map(document.getElementById('map'), {
      center: myLatLng,
      zoom: 18,mapTypeId: 'satellite'
    });


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/554223/ef3bfa82eb55c4f91b60/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

25 0
收藏该文
已收藏

评论内容:(最多支持255个字符)