Google Maps API v3 jQuery Mobile - PullRequest
       23

Google Maps API v3 jQuery Mobile

0 голосов
/ 18 ноября 2011

Я пытаюсь выяснить, как ограничить количество маркеров, которые могут быть созданы одним. Используя пример кода из файла «other-example.html», пользователь может создать несколько маркеров, и я бы хотел, чтобы пользователь был ограничен одним маркером. Я попробовал оператор «if», такой как «int i; if (i <1) {... i ++;}», вокруг функции addMarker, но безуспешно. Я предполагаю, что это очень просто исправить. </p>

http://jquery -ui-map.googlecode.com / SVN / багажник / демки / прочее-examples.html

Также я пытаюсь найти хороший учебник по использованию gmaps для записи данных местоположения по широте / долготе через PHP / MYSQL в базу данных, которую я уже создал. В частности, как я могу передать информацию о широте / длине недавно созданного маркера в базу данных, а затем получить координаты, которые будут отображаться в нередактируемой карте?

Я буду признателен за любую помощь, которую я могу получить с этими вопросами, я не ожидаю, что на все они будут даны ответы!

1 Ответ

0 голосов
/ 18 ноября 2011

Если вы разрешаете пользователям добавлять маркеры, я бы сказал, что вы затем делаете ajax-вызов на вашу страницу PHP, передавая идентификатор пользователя, широту и долготу (и все, что потребуется вашей БД).

Чтобы пользователи не могли добавлять более 1 маркера, я думаю, вы были на правильном пути. Возможно, я бы сделал это так.

var intMarkers = 0;  // make it global

$('#map_canvas').gmap().bind('init', function(event, map) {
            $(map).click( function(event) {
                intMarkers++;
                if (intMarkers === 0) {
                            $('#map_canvas').gmap('addMarker', {'position': event.latLng, 'draggable': true, 'bounds': false}, function(map, marker) {
                                $('#dialog').append('<form id="dialog'+marker.__gm_id+'" method="get" action="/" style="display:none;"><p><label for="country">Country</label><input id="country'+marker.__gm_id+'" class="txt" name="country" value=""/></p><p><label for="state">State</label><input id="state'+marker.__gm_id+'" class="txt" name="state" value=""/></p><p><label for="address">Address</label><input id="address'+marker.__gm_id+'" class="txt" name="address" value=""/></p><p><label for="comment">Comment</label><textarea id="comment" class="txt" name="comment" cols="40" rows="5"></textarea></p></form>');
                                findLocation(marker.getPosition(), marker);
                            }).dragend( function(event) {
                                var self = this;
                                findLocation(event.latLng, this);
                            }).click( function() {
                                openDialog(this);
                            });

                            // stick in an Ajax call here too
                }
            });
        });

Кроме того, в примере кода используется устаревший API Карт Google 2, я рекомендую использовать вместо него API 3.

...