将纬度,经度转换为iframe链接

时间:2016-12-30 05:50:56

标签: javascript angularjs google-maps iframe location

我目前正在开展一个项目,要求我提取用户的当前位置&将其保存在DB中。稍后将其显示在GoogleMap中

我正在使用纬度和经度保存用户位置。 我可以创建一个使用此数据重定向到地图的链接,但我无法使用它来生成iframe链接。

例如: LAT 13.033419 LNG 77.563976

以这种方式建立链接(可以在btn上使用它):

http://maps.google.com/?q=13.033419,77.563976

希望使用此LAT&要生成此LNG数据:

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3887.035379846286!2d77.56178731437602!3d13.03341899081541!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0x0!2zMTPCsDAyJzAwLjMiTiA3N8KwMzMnNTAuMyJF!5e0!3m2!1sen!2sin!4v1483076445133" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>

这一点准确: 的 PB =!1m18!1m12!1立方米!1d3887.035379846286!2d77.56178731437602!3d13.03341899081541!2立方米!1F0!2f0的!3f0!3平方米!1i1024!2i768!4f13.1!3立方米!1平方米!1s0x0%3A0x0! 2zMTPCsDAyJzAwLjMiTiA3N8KwMzMnNTAuMyJF!5e0!3平方米!1sen!2sin!4v1483076445133

请知道我们是否有办法实现这一点 如果有的话,甚至可以采用另一种方法来做同样的事情。

2 个答案:

答案 0 :(得分:1)

我认为这应该可以解决您的问题

<!DOCTYPE html>
<html>

  <head>
    <script data-require="angularjs@1.5.7" data-semver="1.5.7" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-app="app">
    <div ng-controller="googleControllerTest">
      <iframe ng-src="{{url}}" width="600" height="450" frameborder="0" style="border:0" allowfullscreen=""></iframe>
    </div>
    <h1>Hello Plunker!</h1>
  </body>

</html>

--- Code
angular.module('app', [

  ]).controller('googleControllerTest', function($scope, $sce, $interpolate){

    $scope.data = {
      lat: 13.033419,
      long: 77.563976
    }
    $scope.value = $interpolate("https://maps.google.com/maps?q={{lat}},{{long}}&hl=es;z=14&output=embed")($scope.data);
    $scope.url = $sce.trustAsResourceUrl($scope.value)
  })

Plunkr https://plnkr.co/edit/2o7WPnBbJZpk17bsyRyG?p=preview

答案 1 :(得分:1)

您不必使用iframe来显示用户位置。

最好使用Google Map API,因为您可以对iframe(example)进行更多控制

var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: 13.033419, lng: 77.563976},
    zoom: 8
  });
}
#map {
  height: 100%;
}

html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}
<div id="map"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" async defer></script>