【问题标题】:adding marker on google map when i click button当我点击按钮时在谷歌地图上添加标记
【发布时间】:2016-10-23 02:51:29
【问题描述】:

我想在谷歌地图上添加标记,通过我的 ng-click 传递具有纬度和经度的对象,以便它将标记放在地图上.....请帮助

示例代码 HTML

<a class="button icon icon-right  ion-location"  href="location.html"  ng-click="search_item(item)">

调用函数

$scope.search_item = function (item){
lat = item.lat;
lng = item.lng
}

标记代码

var myLatlng = new google.maps.LatLng(lat, long);
 var mapOptions = {
  zoom: 15,
  center: myLatlng
 }
 var map = new google.maps.Map(document.getElementById("map"), mapOptions);

 var marker = new google.maps.Marker({
    position: myLatlng,
    title:"Hello World!"
 });

【问题讨论】:

  • 考虑创建一个 jsFiddle (jsfiddle.net) 并重现问题。首先,您这样做时可能会有一个灵光乍现的时刻,其次,它使其他人很容易帮助您。当您尝试使用您的代码时,了解正在发生的事情也会有所帮助。

标签: javascript jquery angularjs google-maps


【解决方案1】:

什么不起作用尚不清楚,但是...

假设已加载地图:

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBX0ekQbrOinf8Vf_camYnoJe-acx2GxkQ&callback=initMap&libraries=&v=weekly"
        async></script>
<script>

注意 async 和 callback=initMap,在顶部放一个 var map 方便以后使用

//add global variable for map
var map;

// Initialize and add the map mon callback when goole.map api loaded
function initMap() {
    // The location of Uluru
    const uluru = { lat: -25.344, lng: 131.036 };
       
    // Create the map and store in global variable
    map = new google.maps.Map(document.getElementById("map"), {
        zoom: 4,
        center: uluru,
    });
}

然后,当从按钮调用函数时,它使用映射变量而不是尝试创建一个新的 on

function placeMarker(myLatlng){
    var marker = new google.maps.Marker({
        position: myLatlng,
        title:"Hello World!",
     });
 });

然后你的函数调用代码在按钮点击。

$scope.search_item = function (item){
    lat = item.lat;
    lng = item.lng
    latLng = new google.maps.LatLng(lat, lng);
    placeMarker(latLng);
}

【讨论】:

    【解决方案2】:

    这个问题似乎已经回答了here,并且可以在谷歌文档here中找到一个示例

    google.maps.event.addListener(map, 'click', function(event) {
       placeMarker(event.latLng);
    });
    
    function placeMarker(location) {
        var marker = new google.maps.Marker({
            position: location, 
            map: map
        });
    }
    

    【讨论】:

    • 看来你没有把地图传给它,所以你需要给它,否则它无处可去。
    • 所有我想要的,当我点击 UI 上的按钮时,地图会根据我的对象 latlng 打开到特定位置并放置一个标记
    猜你喜欢
    • 2011-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2016-06-12
    • 1970-01-01
    • 2016-11-19
    • 2012-09-27
    相关资源
    最近更新 更多