Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Сент. 2013
Помог: 0 раз(а)
|
Здравствуйте!
Хочу переделать тему ДоскаОбъявлений на wordpress.
В стандарте, когда просматриваешь объявление http://ugg555[dot]ru/?ad_listing=garazh , то справа есть вкладка, в которой есть карта Google (показывает место положение указанные в объявлении : Страна, город, улица, индекс.)
Нашел код отвечающий за эту вкладку:
Контейнер div
Php скрипт извлечения адрес
Ну и сам скрипт.
CODE ( htmlphp):
скопировать код в буфер обмена
<div id="gmap" class="mapblock"> <?php $make_address = get_post_meta($post->ID, 'cp_street', true) . ' ' . get_post_meta($post->ID, 'cp_city', true) . ' ' . get_post_meta($post->ID, 'cp_state', true) . ' ' . get_post_meta($post->ID, 'cp_zipcode', true); $coordinates = cp_get_geocode( $post->ID ); ?> <script type="text/javascript">var address = "<?php echo esc_js($make_address); ?>";</script> <?php cp_google_maps_js( $coordinates ); ?> <!-- google map div --> <div id="map"></div> </div> <?php // Google map on single page function cp_google_maps_js($coordinates) { ?> <script type="text/javascript"> //<![CDATA[ jQuery(document).ready(function($) { var clicked = false; if( $('#priceblock1').is(':visible') ) { map_init(); } else { jQuery('a[href=#priceblock1]').click( function() { if( !clicked ) { map_init(); clicked = true; } }); } }); <?php echo 'var SavedLatLng = new google.maps.LatLng('.$coordinates['lat'].', '.$coordinates['lng'].');'; $location_by = "'latLng':SavedLatLng"; $marker_position = "SavedLatLng"; } else { $location_by = "'address': address"; $marker_position = "results[0].geometry.location"; } ?> //var directionDisplay; //var directionsService = new google.maps.DirectionsService(); var map = null; var geocoder = null; var fromAdd; var toAdd; var redFlag = "<?php echo esc_js( appthemes_locate_template_uri('images/red-flag.png') ); ?>"; var shadow = "<?php echo esc_js( appthemes_locate_template_uri('images/red-flag-shadow.png') ); ?>"; var noLuck = "<?php echo esc_js( appthemes_locate_template_uri('images/gmaps-no-result.gif') ); ?>"; var adTitle = "<?php echo esc_js( get_the_title() ); ?>"; var contentString = '<div id="mcwrap"><span>' + adTitle + '</span><br />' + address + '</div>'; function map_init() { jQuery(document).ready(function($) { $('#map').hide(); load(); $('#map').fadeIn(1000); codeAddress(); }); } function load() { geocoder = new google.maps.Geocoder(); //directionsDisplay = new google.maps.DirectionsRenderer(); var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687); var myOptions = { zoom: 14, center: newyork, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DROPDOWN_MENU } } map = new google.maps.Map(document.getElementById('map'), myOptions); //directionsDisplay.setMap(map); } function codeAddress() { geocoder.geocode( { <?php echo $location_by; ?> }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(); var marker = new google.maps.Marker({ map: map, icon: redFlag, shadow: shadow, //title: title, animation: google.maps.Animation.DROP, position: <?php echo $marker_position; ?> }); var infowindow = new google.maps.InfoWindow({ maxWidth: 270, content: contentString, disableAutoPan: false }); infowindow.open(map, marker); google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); }); } else { (function($) { $('#map').append('<div style="height:400px;background: url(' + noLuck + ') no-repeat center center;"><p style="padding:50px 0;text-align:center;"><?php echo esc_js( __( 'Sorry, the address could not be found.', APP_TD ) ); ?></p></div>'); return false; })(jQuery); } }); } function showAddress(fromAddress, toAddress) { calcRoute(); calcRoute1(); } function calcRoute() { var start = document.getElementById("fromAdd").value; var end = document.getElementById("toAdd").value; var request = { origin: start, travelMode: google.maps.DirectionsTravelMode.DRIVING }; directionsService.route(request, function(response, status) { if (status == google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(response); } }); } //]]> </script> <?php } ?>
Порылся я у яндекса, так не понял как передать скрипту Яндекса адрес.
Может кто встречался с созданием Яндекс карты на своем сайте.... подскажите
Вот примерный набросок кода, что исправить (да и что то я запутался... как форму создать с выпадающим списком, где было бы город, страна, и улица - )
CODE ( htmlphp):
скопировать код в буфер обмена
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Быстрый старт. Размещение интерактивной карты на странице</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU" type="text/javascript"></script> <script type="text/javascript"> ymaps.ready(init); var myMap, myPlacemark; function init(){ myMap = new ymaps.Map("map", { center: [55.76, 37.64], zoom: 7 }); myPlacemark = new ymaps.Placemark([55.76, 37.64], { hintContent: 'Москва!', balloonContent: 'Столица России' }); myMap.geoObjects.add(myPlacemark); } </script> </head> <body> <br> <form name="ab" action="" method="post"> <p><b>Город: </b></p> <input name="A" type="text"> <br> <input name="B" type="text"> <input type="submit" value=" Найти "> <br> <select> <option>Пункт 1</option> <option>Пункт 2</option> </select> </form> <br> <br> <div id="map" style="width: 324px; height: 400px"></div>
Как заставить яндекс брать данные из формы ?
Спасибо!
|