将 lat/long 坐标推送到 Google 地图的数组
Push lat/long coordinates to an array for Google maps
我正在尝试根据一组 div 的数据属性为 Google 地图生成地图标记。我需要数组最终看起来像这样:
var markers = [
[51.503454,-0.119562],
[51.499633,-0.124755]
];
这是我目前尝试过的方法:
var markers = [];
$(function() {
$('.location').each(function() {
var lat = $(this).attr('data-lat'),
lng = $(this).attr('data-lng');
markers.push(lat,lng);
});
console.log(markers);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="location" data-lat="51.503454" data-lng="-0.119562"></div>
<div class="location" data-lat="51.499633" data-lng="-0.124755"></div>
如何获取成对的 lat/lng 坐标而不是 4 个单独的值?
您可以使用 map
方法和 return 数组,每个元素具有 lat
、lng
值。
const markers = $('.location').map(function() {
return [[$(this).data('lat'), $(this).data('lng')]]
}).get();
console.log(markers)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="location" data-lat="51.503454" data-lng="-0.119562"></div>
<div class="location" data-lat="51.499633" data-lng="-0.124755"></div>
像那样?
var markers = [];
$(function() {
$('.location').each(function() {
var lat = $(this).attr('data-lat'),
lng = $(this).attr('data-lng');
markers.push([+lat,+lng]);
});
console.log(markers);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="location" data-lat="51.503454" data-lng="-0.119562"></div>
<div class="location" data-lat="51.499633" data-lng="-0.124755"></div>
我正在尝试根据一组 div 的数据属性为 Google 地图生成地图标记。我需要数组最终看起来像这样:
var markers = [
[51.503454,-0.119562],
[51.499633,-0.124755]
];
这是我目前尝试过的方法:
var markers = [];
$(function() {
$('.location').each(function() {
var lat = $(this).attr('data-lat'),
lng = $(this).attr('data-lng');
markers.push(lat,lng);
});
console.log(markers);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="location" data-lat="51.503454" data-lng="-0.119562"></div>
<div class="location" data-lat="51.499633" data-lng="-0.124755"></div>
如何获取成对的 lat/lng 坐标而不是 4 个单独的值?
您可以使用 map
方法和 return 数组,每个元素具有 lat
、lng
值。
const markers = $('.location').map(function() {
return [[$(this).data('lat'), $(this).data('lng')]]
}).get();
console.log(markers)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="location" data-lat="51.503454" data-lng="-0.119562"></div>
<div class="location" data-lat="51.499633" data-lng="-0.124755"></div>
像那样?
var markers = [];
$(function() {
$('.location').each(function() {
var lat = $(this).attr('data-lat'),
lng = $(this).attr('data-lng');
markers.push([+lat,+lng]);
});
console.log(markers);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="location" data-lat="51.503454" data-lng="-0.119562"></div>
<div class="location" data-lat="51.499633" data-lng="-0.124755"></div>