在googlemap api v3

时间:2017-05-31 09:52:01

标签: javascript jquery google-maps-api-3

当我搜索带有邮政编码的位置时,我将googlemap与邮政编码对齐,然后添加标记。当我进行新搜索时,我会删除旧标记。

     $('body').on('blur', '#CodePostalA', function(){

        var zipcode = $('#CodePostalA').val();
        var $this = $(this);
        var geocoder = new google.maps.Geocoder;

            geocoder.geocode({'address': zipcode}, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    map.setZoom(20);

                }

                if ($('#adresse').length > 0) {
                    newMarker = new google.maps.Marker({
                        position: results[0].geometry.location,
                        map: map,
                        icon: new google.maps.MarkerImage(
                            'images/marker-new.png',
                            null,
                            null,
                            null,
                            new google.maps.Size(36, 36)
                        ),
                        draggable: true,

                        animation: google.maps.Animation.DROP,
                    });



                    google.maps.event.addListener(newMarker, "mouseup", function(event) {
                        var latitude = this.position.lat();
                        var longitude = this.position.lng();


                        geocoder.geocode({'location': this.position}, function(results, status) {
                            if (status === google.maps.GeocoderStatus.OK) {
                                if (results[1]) {
                                    $('#adresse').val(results[0].formatted_address);
                                } else {
                                    console.log('Aucun résulat trouvé');
                                }
                            } else {
                                console.log('Echec géolocation: ' + status);
                            }
                        });
                    });

                }




            });



    });



    addMarkers(props, map);
}, 300);

1 个答案:

答案 0 :(得分:0)

使用变量跟踪您的标记,当需要删除它时,请使用marker.setMap(null)将其从地图中删除。

删除所有引用后,旧的标记对象将在后台进行垃圾回收。

您还可以考虑重复使用标记对象,而不是每次都使用新标记对象。