Вот быстрый взлом. Я рекомендую этот плагин https://github.com/domoritz/leaflet-locatecontrol
var loadMap = function (id) {
var HELSINKI = [60.1708, 24.9375];
var map = L.map(id);
var tile_url = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png';
var layer = L.tileLayer(tile_url, {
attribution: 'OSM'
});
map.addLayer(layer);
map.setView(HELSINKI, 19);
map.locate({setView: true, watch: true}) /* This will return map so you can do chaining */
.on('locationfound', function(e){
var marker = L.marker([e.latitude, e.longitude]).bindPopup('Your are here :)');
var circle = L.circle([e.latitude, e.longitude], e.accuracy/2, {
weight: 1,
color: 'blue',
fillColor: '#cacaca',
fillOpacity: 0.2
});
map.addLayer(marker);
map.addLayer(circle);
})
.on('locationerror', function(e){
console.log(e);
alert("Location access denied.");
});
};
loadMap('map');
Прежде чем я отвечу, позвольте мне сказать, что это не сработает по всей вероятности. Подобное сопоставление имен чревато проблемами, если только вы не знаете, что данные канонически структурированы.
Вы можете сделать это несколькими способами. Идея в том, что вам нужны функции в предложении on
. Например:
select . . .
from addresstable a join
namestable n
on n.last_name = substring_index(owner_name, ',', 1);
Это предполагает, что фамилия в owner_name
перед первой запятой.
Я рекомендую использовать REGEXP
здесь:
SELECT at.*
FROM AddressTable at
INNER JOIN NamesTable nt
ON at.Owner_Name REGEXP CONCAT('^', nt.Last_Name, ',');
Как упоминалось в предыдущих комментариях, указанная фамилия само по себе не может быть уникальным. Мы можем изменить приведенный выше запрос так, чтобы он также проверял имя, предполагая, что таблица имен также содержит это:
SELECT at.*
FROM AddressTable at
INNER JOIN NamesTable nt
ON at.Owner_Name REGEXP CONCAT('^', nt.Last_Name, ',') AND
at.Owner_Name REGEXP CONCAT(' ', nt.First_Name, ' Но даже у этого могут быть проблемы, потому что иногда люди имеют имя или фамилию, состоящую из два (или более) слова. Также возможна такая вещь, как отчество.
Для лучшего решения вы можете разбить имя, отчество и фамилию на отдельные столбцы, прежде чем переносить данные в базу данных.
);
Но даже у этого могут быть проблемы, потому что иногда люди имеют имя или фамилию, состоящую из два (или более) слова. Также возможна такая вещь, как отчество.
Для лучшего решения вы можете разбить имя, отчество и фамилию на отдельные столбцы, прежде чем переносить данные в базу данных.