获取位置的经度和经度并添加到循环的最佳方法

时间:2017-10-25 10:23:49

标签: php json google-maps google-maps-api-3

我有一个包含街道名称和地名的json对象。

像这样:

[{"id":"10","title":"P. Vis B.V.","introtext":"
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquet interdum enim vel volutpat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ullamcorper neque a porttitor malesuada. Etiam pharetra eget nisl sit amet pharetra. Etiam a mi eget justo rutrum euismod. Praesent ligula lorem, consequat in suscipit sit amet, fermentum eu risus. Quisque sed lorem porttitor, rutrum arcu ut, cursus est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris iaculis nisl non gravida dapibus. Nulla at tellus eleifend, vehicula lorem at, lacinia ex. Nam a volutpat dolor, non accumsan lectus. Praesent porta, purus eu consequat pharetra, eros nulla dignissim ipsum, a euismod justo metus in orci.<\/p>\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel aliquam nulla, ut elementum urna. Pellentesque posuere eros vitae neque auctor semper. Quisque elit leo, congue non posuere nec, pharetra a velit. Morbi quam lacus, consequat vel euismod a, ullamcorper vitae augue. Integer in nulla euismod diam ornare tempor. Donec ut rutrum urna. Morbi vel efficitur lorem. Sed porttitor risus et urna facilisis, vel pellentesque nisi fermentum. Nam tempus tortor a venenatis auctor.<\/p>","ordering":"0","state":"1","item_id":"10","plaats":"Heenvliet","straat":"Drie\u00ebndijk 1a"},{"id":"3","title":"CijferAdvies Nissewaard","introtext":"

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquet interdum enim vel volutpat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ullamcorper neque a porttitor malesuada. Etiam pharetra eget nisl sit amet pharetra. Etiam a mi eget justo rutrum euismod. Praesent ligula lorem, consequat in suscipit sit amet, fermentum eu risus. Quisque sed lorem porttitor, rutrum arcu ut, cursus est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris iaculis nisl non gravida dapibus. Nulla at tellus eleifend, vehicula lorem at, lacinia ex. Nam a volutpat dolor, non accumsan lectus. Praesent porta, purus eu consequat pharetra, eros nulla dignissim ipsum, a euismod justo metus in orci.<\/p>\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel aliquam nulla, ut elementum urna. Pellentesque posuere eros vitae neque auctor semper. Quisque elit leo, congue non posuere nec, pharetra a velit. Morbi quam lacus, consequat vel euismod a, ullamcorper vitae augue. Integer in nulla euismod diam ornare tempor. Donec ut rutrum urna. Morbi vel efficitur lorem. Sed porttitor risus et urna facilisis, vel pellentesque nisi fermentum. Nam tempus tortor a venenatis auctor.<\/p>","ordering":"1","state":"1","item_id":"3","plaats":"Heenvliet","straat":"Ridderstraat 5"},{"id":"4","title":"\u201cHet Huidhuys\u201d Afslank- en schoonheidsinstituut","introtext":"

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquet interdum enim vel volutpat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ullamcorper neque a porttitor malesuada. Etiam pharetra eget nisl sit amet pharetra. Etiam a mi eget justo rutrum euismod. Praesent ligula lorem, consequat in suscipit sit amet, fermentum eu risus. Quisque sed lorem porttitor, rutrum arcu ut, cursus est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris iaculis nisl non gravida dapibus. Nulla at tellus eleifend, vehicula lorem at, lacinia ex. Nam a volutpat dolor, non accumsan lectus. Praesent porta, purus eu consequat pharetra, eros nulla dignissim ipsum, a euismod justo metus in orci.<\/p>\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel aliquam nulla, ut elementum urna. Pellentesque posuere eros vitae neque auctor semper. Quisque elit leo, congue non posuere nec, pharetra a velit. Morbi quam lacus, consequat vel euismod a, ullamcorper vitae augue. Integer in nulla euismod diam ornare tempor. Donec ut rutrum urna. Morbi vel efficitur lorem. Sed porttitor risus et urna facilisis, vel pellentesque nisi fermentum. Nam tempus tortor a venenatis auctor.<\/p>","ordering":"0","state":"1","item_id":"4","plaats":"Zuidland","straat":"Breedstraat 2"},{"id":"5","title":"Bouwbedrijf van de Water","introtext":"

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquet interdum enim vel volutpat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ullamcorper neque a porttitor malesuada. Etiam pharetra eget nisl sit amet pharetra. Etiam a mi eget justo rutrum euismod. Praesent ligula lorem, consequat in suscipit sit amet, fermentum eu risus. Quisque sed lorem porttitor, rutrum arcu ut, cursus est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris iaculis nisl non gravida dapibus. Nulla at tellus eleifend, vehicula lorem at, lacinia ex. Nam a volutpat dolor, non accumsan lectus. Praesent porta, purus eu consequat pharetra, eros nulla dignissim ipsum, a euismod justo metus in orci.<\/p>\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel aliquam nulla, ut elementum urna. Pellentesque posuere eros vitae neque auctor semper. Quisque elit leo, congue non posuere nec, pharetra a velit. Morbi quam lacus, consequat vel euismod a, ullamcorper vitae augue. Integer in nulla euismod diam ornare tempor. Donec ut rutrum urna. Morbi vel efficitur lorem. Sed porttitor risus et urna facilisis, vel pellentesque nisi fermentum. Nam tempus tortor a venenatis auctor.<\/p>","ordering":"0","state":"1","item_id":"5","plaats":"Heevliet","straat":"Polyanderweg 2"},{"id":"6","title":"Studio NewMedia B.V.","introtext":"

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquet interdum enim vel volutpat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ullamcorper neque a porttitor malesuada. Etiam pharetra eget nisl sit amet pharetra. Etiam a mi eget justo rutrum euismod. Praesent ligula lorem, consequat in suscipit sit amet, fermentum eu risus. Quisque sed lorem porttitor, rutrum arcu ut, cursus est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris iaculis nisl non gravida dapibus. Nulla at tellus eleifend, vehicula lorem at, lacinia ex. Nam a volutpat dolor, non accumsan lectus. Praesent porta, purus eu consequat pharetra, eros nulla dignissim ipsum, a euismod justo metus in orci.<\/p>\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel aliquam nulla, ut elementum urna. Pellentesque posuere eros vitae neque auctor semper. Quisque elit leo, congue non posuere nec, pharetra a velit. Morbi quam lacus, consequat vel euismod a, ullamcorper vitae augue. Integer in nulla euismod diam ornare tempor. Donec ut rutrum urna. Morbi vel efficitur lorem. Sed porttitor risus et urna facilisis, vel pellentesque nisi fermentum. Nam tempus tortor a venenatis auctor.<\/p>","ordering":"0","state":"1","item_id":"6","plaats":"Spijkenisse","straat":"Goudenregenplein 1 - Unit 38"},{"id":"7","title":"Taxi Overgaauw","introtext":"

<\/a>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquet interdum enim vel volutpat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ullamcorper neque a porttitor malesuada. Etiam pharetra eget nisl sit amet pharetra. Etiam a mi eget justo rutrum euismod. Praesent ligula lorem, consequat in suscipit sit amet, fermentum eu risus. Quisque sed lorem porttitor, rutrum arcu ut, cursus est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris iaculis nisl non gravida dapibus. Nulla at tellus eleifend, vehicula lorem at, lacinia ex. Nam a volutpat dolor, non accumsan lectus. Praesent porta, purus eu consequat pharetra, eros nulla dignissim ipsum, a euismod justo metus in orci.<\/a><\/p>\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel aliquam nulla, ut elementum urna. Pellentesque posuere eros vitae neque auctor semper. Quisque elit leo, congue non posuere nec, pharetra a velit. Morbi quam lacus, consequat vel euismod a, ullamcorper vitae augue. Integer in nulla euismod diam ornare tempor. Donec ut rutrum urna. Morbi vel efficitur lorem. Sed porttitor risus et urna facilisis, vel pellentesque nisi fermentum. Nam tempus tortor a venenatis auctor.<\/a><\/p>\r\n

 <\/p>","ordering":"0","state":"1","item_id":"7","plaats":"Zuidland","straat":"Langeweg 2b"},{"id":"8","title":"Moree","introtext":"

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquet interdum enim vel volutpat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ullamcorper neque a porttitor malesuada. Etiam pharetra eget nisl sit amet pharetra. Etiam a mi eget justo rutrum euismod. Praesent ligula lorem, consequat in suscipit sit amet, fermentum eu risus. Quisque sed lorem porttitor, rutrum arcu ut, cursus est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris iaculis nisl non gravida dapibus. Nulla at tellus eleifend, vehicula lorem at, lacinia ex. Nam a volutpat dolor, non accumsan lectus. Praesent porta, purus eu consequat pharetra, eros nulla dignissim ipsum, a euismod justo metus in orci.<\/p>\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel aliquam nulla, ut elementum urna. Pellentesque posuere eros vitae neque auctor semper. Quisque elit leo, congue non posuere nec, pharetra a velit. Morbi quam lacus, consequat vel euismod a, ullamcorper vitae augue. Integer in nulla euismod diam ornare tempor. Donec ut rutrum urna. Morbi vel efficitur lorem. Sed porttitor risus et urna facilisis, vel pellentesque nisi fermentum. Nam tempus tortor a venenatis auctor.<\/p>","ordering":"0","state":"1","item_id":"8","plaats":"Simonshaven","straat":"Ring 2"},{"id":"9","title":"Molengraaf Makelaardij","introtext":"

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquet interdum enim vel volutpat. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ullamcorper neque a porttitor malesuada. Etiam pharetra eget nisl sit amet pharetra. Etiam a mi eget justo rutrum euismod. Praesent ligula lorem, consequat in suscipit sit amet, fermentum eu risus. Quisque sed lorem porttitor, rutrum arcu ut, cursus est. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Mauris iaculis nisl non gravida dapibus. Nulla at tellus eleifend, vehicula lorem at, lacinia ex. Nam a volutpat dolor, non accumsan lectus. Praesent porta, purus eu consequat pharetra, eros nulla dignissim ipsum, a euismod justo metus in orci.<\/p>\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis vel aliquam nulla, ut elementum urna. Pellentesque posuere eros vitae neque auctor semper. Quisque elit leo, congue non posuere nec, pharetra a velit. Morbi quam lacus, consequat vel euismod a, ullamcorper vitae augue. Integer in nulla euismod diam ornare tempor. Donec ut rutrum urna. Morbi vel efficitur lorem. Sed porttitor risus et urna facilisis, vel pellentesque nisi fermentum. Nam tempus tortor a venenatis auctor.<\/p>","ordering":"0","state":"1","item_id":"9","plaats":"Zuidland","straat":"Mr. P.J. Oudweg 56"}]

值为plaatsstraat,现在我的问题是:我知道我可以使用google geocoding

检索某个位置的纬度和经度

我需要发送straatplaats并获取我添加到json对象的纬度和经度。

这意味着我会对每个循环项目提出请求,这对我来说听起来不是很好的做法。

还有更好的方法吗?

这就是我创建json对象的方式:

$bedrijven            = "
select
  cnt.id, cnt.title, cnt.introtext, cnt.ordering, cnt.state, f.item_id,
  max(case when f.field_id = 3 then f.value end) as plaats,
  max(case when f.field_id = 1 then f.value end) as straat
from snm_fields_values f
join snm_content cnt
on cnt.id = f.item_id
where cnt.state = 1
group by f.item_id
order by f.item_id, plaats, straat";
$bedrijvencon       = $conn->query($bedrijven);
$bedrijvenarray = [];
while($bedrijven    = $bedrijvencon->fetch_assoc()){
   array_push($bedrijvenarray, $bedrijven);
}
$jsonobject = json_encode($bedrijvenarray);

1 个答案:

答案 0 :(得分:0)

我没有回答你的整个问题,但我建议你最好的方法来获得用户位置的经纬度。

<script type="text/javascript">
        var x = document.getElementById("lat");
        var y = document.getElementById("lon");
        /*****************************function to get Location******************************/
        function getLocation() {
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(showPosition);
            } else { 
                x.innerHTML = "Geolocation is not supported by this browser.";
            }
        }
        //print value
        function showPosition(position) 
        {
            document.getElementById('lat').value = position.coords.latitude;
            document.getElementById('lon').value = position.coords.longitude;
        }

        //call function
        getLocation();
    </script>