Карты Google, показывающие местоположение посетителя путем захвата его IP-адреса - PullRequest
1 голос
/ 10 июня 2009

Я пытаюсь воспроизвести следующий пример:

http://www.leigeber.com/2008/04/map-your-users-using-the-google-maps-api-and-php/

Как интегрировать этот исходный код PHP со следующим сценарием Java (замена lat / lgt на $ latitude / $ longitude выше ??? Выглядит просто, но я немного растерялся, смешивая PHP и Javascript вместе!; - (

<script type="text/javascript"> 
    function initialize() {
      var map;
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));

        var zoomlevel = 9;
        var lat= 50.62829913465776;
        var lgt= 4.650295972824097;
        map.setCenter(new GLatLng(lat, lgt), zoomlevel);

        // add a marker
        map.openInfoWindow(map.getCenter(), document.createTextNode ("Center of the map at (lat - lgt)= ("+lat+" - "+lgt+") ! "));

        // Large Map Default UI   
        map.setUIToDefault();

        // Map type
        map.setMapType(G_PHYSICAL_MAP);     
      }
    }
    </script>

<body onload="initialize()" onunload="GUnload()">       
        <div id="map_canvas" style="width: 1000px; height: 600px"></div> 
</body> 

Заранее спасибо за помощь.

Hub

ps: это лучший способ сделать это? это хорошо использовать hostip.info или я должен использовать другой ??

Ответы [ 2 ]

0 голосов
/ 12 июля 2014

Согласно этому посту http://www.techsirius.com/2014/07/visitor-realtime-geo-location-in-google-map.html кажется, что это возможно.

В основном это выборка записи базы данных для страны, штата и города на основе заданного IP. Кажется, что запись IP базы данных хранится в формате IPlong, поэтому в одной базе данных можно хранить столько записей IP.

После этого все зависело от API геокодирования Google и API Карт Google JS v3.

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=true&key=<?=$google_api_key?>"></script>
<script type="text/javascript">
$(document).ready(function(){
 var option = {
center: new google.maps.LatLng(<?=$lat?>, <?=$lng?>),
   zoom: 5
 };
 var map = new google.maps.Map(document.getElementById("visitor_map"), option);
 var marker = new google.maps.Marker({
    position: new google.maps.LatLng(<?=$lat?>, <?=$lng?>),
    map: map
 });
});
</script>
0 голосов
/ 10 июня 2009

Должно быть довольно легко. После того, как вы получили значения $ latitude и $ longitude согласно связанному примеру, вы можете использовать PHP для вывода этих значений в ваш код Javascript.

<script type="text/javascript"> 
function initialize() {
  var map;
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));

    var zoomlevel = 9;
    var lat= <?php echo $latitude ?>;
    var lgt= <?php echo $longitude ?>;
    map.setCenter(new GLatLng(lat, lgt), zoomlevel);
    .........
    ...............
</script>

Это должно помочь вам начать смешивать скрипты. Помните, что вы должны использовать PHP, чтобы получить широту / долготу ДО , когда вы пытаетесь вывести значения в JS.

В ответ на ваши запросы вот общий поток кода (скажем, в файле index.php):

<?php
// Code from the blog
$ip = $_SERVER['REMOTE_ADDR'];
.....
.......
$latitude = $res[2];
$longitude = $res[3];
?>
<html>
    <head>
        <script type="text/javascript"> 
        function initialize() {
          var map;
          if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("map_canvas"));

            var zoomlevel = 9;
            var lat= <?php echo $latitude ?>;
            var lgt= <?php echo $longitude ?>;
            map.setCenter(new GLatLng(lat, lgt), zoomlevel);
            .........
            ...............
        }
        </script>
    </head>
    <body onload="initialize()" onunload="GUnload()">
    ......
    </body>
</html>

Посмотрите, поможет ли это вам:)

Cheers, м ^ е

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