Получение координат местоположения из Dynamo Db и отображение нескольких маркеров на Google Maps - PullRequest
0 голосов
/ 03 апреля 2019

Я новичок в JavaScript.Так что это может быть очень простой вещью для многих из вас.Я хочу получить значения в формате lat-long, хранящиеся в таблице DB Dynamo, и показать маркеры на соответствующих выбранных позициях. До сих пор я могу получить значения из таблицы, используя следующий код:

AWS.config.update({
  region: "us-east-1",
  accessKeyId: "myAccessKeyId",
  secretAccessKey: "MySecretAccessKey"
});

var docClient = new AWS.DynamoDB.DocumentClient();

function scanData() {
    document.getElementById('textarea').innerHTML += "Scanning for locations..." + "\n";

var params = {
    TableName: "tablename"
};

docClient.scan(params, onScan);

function onScan(err, data) {
    if (err) {
        document.getElementById('textarea').innerHTML += "Unable to scan the table: " + "\n" + JSON.stringify(err, undefined, 2);
    } else {
        // Print all the locations
        document.getElementById('textarea').innerHTML += "Scan succeeded. " + "\n";
        data.Items.forEach(function(location) {
            document.getElementById('textarea').innerHTML += "Vehicle ID:" + location.Vehicle_Id + "Latitude:" + location.Latitude + "Longitude:" + location.Longitude + "\t";
        });
  }
}}

ипоказывая вывод вышеуказанного кода в текстовой области. Я получил следующие результаты:

Scanning for locations...
Scan succeeded. 
Vehicle ID:2Latitude:28.435434Longitude:77.874484   Vehicle ID:393956852Latitude:28.61218600999564Longitude:77.36407527700066   Vehicle ID:1607489221Latitude:28.542737625539303Longitude:77.29848839342594 Vehicle ID:573664824Latitude:28.4175018Longitude:77.0268963 Vehicle ID:1Latitude:28.254454Longitude:77.884343   Vehicle ID:1056285462Latitude:28.373128333333337Longitude:77.93735  Vehicle ID:354381973Latitude:28.182219999999997Longitude:77.97383833333333

Итак, теперь, пожалуйста, скажите мне, как использовать эти местоположения для отображения нескольких маркеров на карте.Я достиг этого в Java с помощью использования List.Но я не знаю, как это сделать в JavaScript.Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 09 апреля 2019

Итак, в конце концов я выполнил вышеуказанную задачу следующим образом:

var docClient = new AWS.DynamoDB.DocumentClient();
var markers= [];
function initMap() {
var params = {
    TableName: "tablename"
};

docClient.scan(params, onScan);

var noida = {lat: 28.475, lng: 77.601};
// The map, centered at Noida
var map = new google.maps.Map(
    document.getElementById('map'), {zoom: 10 , center: noida});
function onScan(err, data) {
    if (err) {
    alert("Ooops!! Some error occurred");
    } else {
        // Show markers at fetched locations
        data.Items.forEach(function(location) {
            var lati = location.Latitude;
            var longi = location.Longitude;
            var v_id  = location.Vehicle_Id;
            var latlng= new google.maps.LatLng(lati, longi);
            var iconimg = "https://img.icons8.com/ios/25/000000/sedan-filled.png"
        markers.push(new google.maps.Marker({position:latlng,map: map, title:"Vehicle No. "+ v_id.toString(), icon: iconimg}));
        });        
    }
}

}

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