Геокодер API Карт Google получает правильные значения длины и ширины, но ставит неправильный маркер - PullRequest
0 голосов
/ 29 декабря 2018

Ниже приведен мой код, позволяющий взять нужный адрес и разместить его на карте с помощью API Карт Google.Каждый раз, когда я запускаю страницу, он помещает маркер и центрирует карту над океаном к югу от Ганы, даже если я улавливаю журнал длинных и длинных, который он получает по адресу, который является правильными координатами для Белфаста, Северная Ирландия.

google.maps.event.addDomListener(window, 'load', init);

function init() {

    var latNo = null;
    var lngNo = null;

    var postcode = $(".postcode-var").text();
    var address = "Belfast, Northern Ireland";

    var geocoder = new google.maps.Geocoder();

    geocoder.geocode( { 'address': address}, function(results, status) {

        if (status == google.maps.GeocoderStatus.OK) {
            latNo = results[0].geometry.location.lat();
            lngNo = results[0].geometry.location.lng();
            console.log(latNo + "" + lngNo);
        } else {
            console.log("Cannot find address");
        }

    });

    var mapOptions = {
        zoom: 14,
        disableDefaultUI: true,
        center: new google.maps.LatLng(latNo, lngNo),
        styles: [{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#444444"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#6863CE"},{"visibility":"on"}]}]
    };

    var mapElement = document.getElementById('map');

    var map = new google.maps.Map(mapElement, mapOptions);

    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(latNo, lngNo),
        map: map
    });

    }

1 Ответ

0 голосов
/ 29 декабря 2018

попробуйте не перемаркировать var, где вы присваиваете latNo и lngNo

geocoder.geocode( { 'address': address}, function(results, status) {

    if (status == google.maps.GeocoderStatus.OK) {
        latNo = results[0].geometry.location.lat();
        lngNo = results[0].geometry.location.lng();
        console.log(latNo + "" + lngNo);
    } else {
        console.log("Cannot find address");
    }

});

переделкарируйте var для latNo и lngN, вы затеняете содержимое в if content

Или попробуйте назначить координатына существующий маркер

google.maps.event.addDomListener(window, 'load', init);

function init() {

    var latNo = null;
    var lngNo = null;
    var mapOptions = {
        zoom: 14,
        disableDefaultUI: true,
        center: new google.maps.LatLng(latNo, lngNo),
        styles: [{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#444444"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#6863CE"},{"visibility":"on"}]}]
    };

    var mapElement = document.getElementById('map');

    var map = new google.maps.Map(mapElement, mapOptions);

    var marker = new google.maps.Marker({
        position: myLatLng,
        map: null
    });

    var postcode = $(".postcode-var").text();
    var address = "Belfast, Northern Ireland";

    var geocoder = new google.maps.Geocoder();

    var myLatLng = geocoder.geocode( { 'address': address}, function(results, status) {

        if (status == google.maps.GeocoderStatus.OK) {
            latNo = results[0].geometry.location.lat();
            lngNo = results[0].geometry.location.lng();
            console.log(latNo + "" + lngNo);
            map.setCenter(results[0].geometry.location);
            marker.setPosition(results[0].geometry.location);
            marker.setMap(map);

        } else {
            console.log("Cannot find address");
        }

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...