|
|
|
ขอสอบถามเกี่ยวกับการค้นหาสถานที่บน Google map API หน่อยครับ |
|
|
|
|
|
|
|
ลองดูในกระทู้นี้ดูก่อนครับ https://www.thaicreate.com/community/googlemap-v3-from-mysql.html จากนั้นก็ลองส่งเงื่อนไข where เข้าไปดู (ถ้าหากขึ้น marker icon ดับเบ็ลก็ลองหากวิธีเคลียร์ก่อน add marker ใหม่ครับ) แต่ก็ยังไม่เคยทำเหมือนกัน
|
|
|
|
|
Date :
2019-01-16 23:16:18 |
By :
ccjpn |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนนี้เขียนไว้แบบใหนบ้างแล้วครับ แล้วติดปัญหาตรงใหนบ้าง
อยากให้ช่วยต้องระบุปัญหาครับ ไม่ใช่เอา UI คนอื่นที่แคปมาเป็นปัญหาของตัวเอง
ยินดีช่วยเหลือครับ
|
|
|
|
|
Date :
2019-01-17 09:44:15 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับพี่ deawx และคุณ James_037 ตอนนี้ผมทำถึงในส่วนของเลือกจังหวัดแล้วให้แสดงหมุดขึ้นมาแล้วครับ
ตามภาพประกอบนี้ครับ
### แต่ปัญหาของผมตอนนี้คือ ###
1. บนแผนที่มันไม่โฟกัสไปที่กลุ่มหมุดที่เลือกจากจังหวัดครับ มันดันมาโฟกัสที่ กทม.
ตามภาพนี้ครับหลังจากค้นหา แต่หมุดขึ้นมาปกติครับ
2. คลิกที่หมุดแล้วมันไม่ซูมและไม่มีกล่องข้อความรายละเอียดข้อมูลขึ้นมาแสดงครับ
code ที่ผมใช้นะครับ
ส่วนของหน้า index.php
Code (PHP)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>ทดสอบ GoogleMapApi</title>
<!-- Font Awesome -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<!-- Bootstrap core CSS -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- Material Design Bootstrap -->
<link href="css/mdb.min.css" rel="stylesheet">
<!-- Your custom styles (optional) -->
<link href="css/style-font.css" rel="stylesheet">
<link href="css/texthover-effect.css" rel="stylesheet">
<link href="css/herder-ssl.css" rel="stylesheet">
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 90%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 90%;
margin: 0;
padding: 0;
}
.anyClass {
height:300px;
overflow-y: scroll;
}
</style>
<!-- JQuery -->
<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>
<script src="jquery-latest.js"></script>
</head>
<?php
include ('config/mysql_connection_class.php');
include ('config/connect.php');
?>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<img src="img/tab-head3.png" class="d-none d-lg-block mx-auto img-fluid">
<img src="img/we-branchlocations.png" class="d-lg-none mx-auto d-block img-fluid">
</div>
</div>
</div>
<div class="container-fluid" style="background-color:#EBF2FF;">
<form class="form-horizontal" name="f" method="get" action="branchlocations2.php">
<div class="container">
<div class="row">
<div class="col-lg-4 mb-2 mt-3">
<span class="SukhumvitSet" style="font-size: 20px; font-weight: bold; color:dodgerblue;">
กรุณาเลือกจังหวัด :
</span>
</div>
</div>
<div class="row">
<div class="col-lg-4 mb-4">
<select class="form-control" id="PROVINCE_CODE" name="PROVINCE_CODE" style="border-color:deepskyblue;" onChange="pulldata($('#PROVINCE_CODE').val());">
<option value="0">จังหวัด</option>
<?php
$mysqlProvince = new MySQL_Connection("$host", "$user", "$pw", "$dbname");
$mysqlProvince->charset = 'utf8';
$sqlProvince = "SELECT * FROM tbdata_province WHERE tbdata_province.PROVINCE_CODE='46' or
tbdata_province.PROVINCE_CODE='62' or
tbdata_province.PROVINCE_CODE='40' or
tbdata_province.PROVINCE_CODE='18' or
tbdata_province.PROVINCE_CODE='36' or
tbdata_province.PROVINCE_CODE='57' or
tbdata_province.PROVINCE_CODE='50' or
tbdata_province.PROVINCE_CODE='63' or
tbdata_province.PROVINCE_CODE='60' or
tbdata_province.PROVINCE_CODE='55' or
tbdata_province.PROVINCE_CODE='56' or
tbdata_province.PROVINCE_CODE='66' or
tbdata_province.PROVINCE_CODE='65' or
tbdata_province.PROVINCE_CODE='67' or
tbdata_province.PROVINCE_CODE='54' or
tbdata_province.PROVINCE_CODE='44' or
tbdata_province.PROVINCE_CODE='16' or
tbdata_province.PROVINCE_CODE='52' or
tbdata_province.PROVINCE_CODE='51' or
tbdata_province.PROVINCE_CODE='42' or
tbdata_province.PROVINCE_CODE='47' or
tbdata_province.PROVINCE_CODE='17' or
tbdata_province.PROVINCE_CODE='64' or
tbdata_province.PROVINCE_CODE='72' or
tbdata_province.PROVINCE_CODE='39' or
tbdata_province.PROVINCE_CODE='15' or
tbdata_province.PROVINCE_CODE='41' or
tbdata_province.PROVINCE_CODE='53' or
tbdata_province.PROVINCE_CODE='61'
ORDER BY PROVINCE_NAME ASC";
$mysqlProvince->query($sqlProvince);
while($rsProvince = $mysqlProvince->fetch()){?>
<option value="<?=$rsProvince['PROVINCE_CODE']?>"><?=$rsProvince['PROVINCE_NAME']?></option>
<?php }
$conn->close();
?>
</select>
</div>
</div>
<div id="pulldata"></div>
</div>
</form>
</div>
<div id="map" style="width: 100%; height: 500px; overflow: hidden; position: relative;"> </div>
<!-- Grid row -->
<!--Main Layout -->
<!--Footer-->
<!--/Footer-->
<!-- APi Key -->
<script>
function pulldata(PROVINCE_CODE){
$.ajax({url:"pulldata.php",
async:false,
cache:false,
global:false,
type:'POST',
data:'PROVINCE_CODE='+PROVINCE_CODE,
dataType:"html",
success: function(result){
$('#pulldata').html(result);
}
});
}
function initMap() {
var mapOptions = {
center: {lat: 17.62635386361127, lng: 100.09231567382812},
zoom: 14,
}
var maps = new google.maps.Map(document.getElementById("map"),mapOptions);
var marker, info;
$.getJSON( "json.php", function( jsonObj ) {
//*** loop
$.each(jsonObj, function(i, item){
marker = new google.maps.Marker({
position: new google.maps.LatLng(item.lat, item.lng),
map: maps,
title: item.branch_name
});
//alert(item.lat+"-"+item.lng)
info = new google.maps.InfoWindow({
//content: contentString,
maxWidth: 300
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
var contentString =
'<table><thead>'+
' <tr>'+
' <th colspan="2"><b>'+item.branch_name+'</b></th>'+
' </tr>'+
'</thead>'+
'<tbody>'+
' <tr>'+
' <td width="125" valign="top"><b>ที่อยู่:</b></td>'+
' <td>xxxx</td>'+
' </tr>'+
' <tr>'+
' <td valign="top"><b>สถานที่ใกล้เคียง</b></td>'+
' <td>xxxx</td>'+
' </tr>'+
' <tr>'+
' <td><b>โทรศัพท์:</b></td>'+
' <td>xxxx</td>'+
' </tr>'+
'</tbody>'+
'</table>';
return function() {
info.setContent(contentString);
info.open(maps, marker);
}
})(marker, i));
}); // loop
});
}
$(document).ready(function () {
$('#PROVINCE_CODE').change(function () {
//alert($('#PROVINCE_CODE').val());
if($('#PROVINCE_CODE').val()!="0" && $('#PROVINCE_CODE').val()!=""){
alert('เข้ามาส่วนนี้แล้ว');
// var array = $('#PROVINCE_CODE').val().split('|');
// //alert(array[0]);
// //alert(array[1]);
// if(array[0]!="" && array[1]!=""){
var mapOptions = {
center: {lat: 13.847860, lng: 100.604274},
zoom: 14,
}
var maps = new google.maps.Map(document.getElementById("map"),mapOptions);
var marker, info;
$.getJSON( "json.php?PROVINCE_CODE="+$('#PROVINCE_CODE').val(), function( jsonObj ) {
//*** loop
$.each(jsonObj, function(i, item){
marker = new google.maps.Marker({
position: new google.maps.LatLng(item.lat, item.lng),
map: maps,
title: item.branch_name
});
//alert(item.branch_name)
google.maps.event.addListener(marker, 'click', (function(marker, i) {
var contentString =
'<table><thead>'+
' <tr>'+
' <th colspan="2"><b>'+item.branch_name+'</b></th>'+
' </tr>'+
'</thead>'+
'<tbody>'+
' <tr>'+
' <td width="125" valign="top"><b>ที่อยู่:</b></td>'+
' <td>xxxx</td>'+
' </tr>'+
' <tr>'+
' <td valign="top"><b>สถานที่ใกล้เคียง</b></td>'+
' <td>xxxx</td>'+
' </tr>'+
' <tr>'+
' <td><b>โทรศัพท์:</b></td>'+
' <td>xxxx</td>'+
' </tr>'+
'</tbody>'+
'</table>';
return function() {
info.setContent(contentString);
info.open(maps, marker);
}
})(marker, i));
});
});
}else{
alert("กรุณาเลือกจังหวัด!!");
return false
}
});
});
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=FORYOU=initMap"
type="text/javascript"></script>
<!-- Bootstrap tooltips -->
<script type="text/javascript" src="js/popper.min.js"></script>
<!-- Bootstrap core JavaScript -->
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<!-- MDB core JavaScript -->
<script type="text/javascript" src="js/mdb.min.js"></script>
</body>
</html>
ส่วนของ Ajax ดึงรายการข้อมูลมาแสดง
Code (PHP)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Record</title>
</head>
<body>
<?php
$x = $_POST["PROVINCE_CODE"];
include ('config/mysql_connection_class.php');
include ('config/connect.php');
$mysqlbranch = new MySQL_Connection("$host","$user","$pw","$dbname");
$mysqlbranch->charset = 'utf8';
$sqlbranch = "SELECT * FROM ssl_branch INNER JOIN tbdata_province ON tbdata_province.PROVINCE_CODE = ssl_branch.PROVINCE_CODE Where ssl_branch.branch_id > '000001' and ssl_branch.PROVINCE_CODE like '%$x%' ";
$mysqlbranch->query($sqlbranch);
$n =$mysqlbranch->numRows;
$rsbranch = $mysqlbranch->fetch();
if($n>'0'){
?>
<div class="row">
<div class="col-lg-6 mt-1">
<span class="SukhumvitSet" style="font-size: 20px; font-weight: bold; color:dodgerblue;">
ผลการค้นหา "จังหวัด<?php echo $rsbranch['PROVINCE_NAME'];?>" มีทั้งหมด <?php echo $n;?> สาขา
</span>
</div>
</div>
<div class="row">
<div class="col-md-12 mt-2 mb-4">
<div class="col-md-12 anyClass bg-white">
<?php
while($rsbranch = $mysqlbranch->fetch()){
?>
<div class="row mt-3 mb-3">
<div class="col-md-2">
<a href="#"><span class="SukhumvitSet" style="font-size:16px;font-weight: bold; color:dodgerblue;"><i class="fa fa-map-marker" aria-hidden="true"></i> สาขา<?php echo $rsbranch['branch_name'];?></span></a>
</div>
<div class="col-md-3">
<span class="SukhumvitSet" style="font-size:16px;font-weight: bold;"><?php echo $rsbranch['branch_detail'];?></span>
</div>
<div class="col-md-4">
<span class="SukhumvitSet" style="font-size:16px;font-weight: bold;"><?php echo $rsbranch['branch_address'];?> <?php $branch_street=$rsbranch['branch_street']; if($branch_street!='-'){?>ถนน<?php echo $rsbranch['branch_street']; }?> ต.<?php echo $rsbranch['DISTRICT_NAME'];?> อ.<?php echo $rsbranch['AMPHUR_NAME'];?> จ.<?php echo $rsbranch['PROVINCE_NAME'];?> <?php echo $rsbranch['zipcode'];?></span>
</div>
<div class="col-md-3">
<span class="SukhumvitSet" style="font-size:16px;font-weight: bold;"><a href="<?php echo $rsbranch['branch_tel'];?>"><i class="fa fa-phone" aria-hidden="true"></i> <?php
// จัดให้อยู่ในรูปแบบนี้ ### - #### - ###
$mobile = $rsbranch['branch_tel'];
// กำหนดเครื่องหมาย
$minus_sign = "-" ;
// เริ่มจากซ้ายตัวที่ 1 ( 0 ) ตัดทิ้งขวาทิ้ง 7 ตัวอักษร ได้ 085
$part1 = substr ( $mobile , 0 , -6 ) ;
// เริ่มจากซ้าย ตัวที่ 4 (9) ตัดทิ้งขวาทิ้ง 3 ตัวอักษร ได้ 9490
$part2 = substr( $mobile , 3 , -2 ) ;
// เริ่มจากซ้าย ตัวที่ 8 (8) ไม่ตัดขวาทิ้ง ได้ 862
$part3 = substr( $mobile , 7 ) ;
echo $part1. $minus_sign . $part2 . $part3 ;?></a><?php $branch_tel2=$rsbranch['branch_tel2'];
if($branch_tel2!=''){
?>
, <a href="<?php echo $rsbranch['branch_tel2'];?>"><i class="fa fa-mobile-phone" aria-hidden="true"></i> <?php
// จัดให้อยู่ในรูปแบบนี้ ### - #### - ###
$mobile = $rsbranch['branch_tel2'];
// กำหนดเครื่องหมาย
$minus_sign = "-" ;
// เริ่มจากซ้ายตัวที่ 1 ( 0 ) ตัดทิ้งขวาทิ้ง 7 ตัวอักษร ได้ 085
$part1 = substr ( $mobile , 0 , -7 ) ;
// เริ่มจากซ้าย ตัวที่ 4 (9) ตัดทิ้งขวาทิ้ง 3 ตัวอักษร ได้ 9490
$part2 = substr( $mobile , 3 , -3 ) ;
// เริ่มจากซ้าย ตัวที่ 8 (8) ไม่ตัดขวาทิ้ง ได้ 862
$part3 = substr( $mobile , 7 ) ;
echo $part1. $minus_sign . $part2 . $part3 ;
?></a></span>
<?php }?>
</div>
</div>
<hr class="hr-stylish-color">
<?php }?>
</div>
</div>
</div>
<?php }?>
</body>
</html>
ส่วนของ json where ดึงข้อมูลมาแสดงบนแผนที่ครับ
Code (PHP)
<?php
include ('config/mysql_connection_class.php');
include ('config/connect.php');
header('Content-Type: application/json');
$mysqllocation = new MySQL_Connection("$host", "$user", "$pw", "$dbname");
$mysqllocation->charset = 'utf8';
$x = $_GET["PROVINCE_CODE"];
$sqllocation = "SELECT * FROM ssl_branch" ;
if($x!=null && $x!=""){
$sqllocation .= " where PROVINCE_CODE='".$x."'";
}
//echo $sqllocation;
$mysqllocation->query($sqllocation);
$resultArray = array();
while($rslocation = $mysqllocation->fetch()){
array_push($resultArray,$rslocation);
}
$conn->close();
echo json_encode($resultArray);
?>
code หลักๆที่ผมใช่อยู่ตอนนี้นะครับ ปัญหาก็ตามที่ผมบอกเลยครับ ดันมากตอนนี้ ข้อมูลบางส่วนผมอาจจะเปิดเผยได้ไม่มากนะครับ
|
|
|
|
|
Date :
2019-01-17 12:02:42 |
By :
tomsmile05 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ maps.setCenter(latLng);
แต่ดูแล้ว เก็บ latLng ไว้หลายที่ งั้นต้องเลือกว่าจะ maps.setCenter(latLng); ที่ไหน หรือไม่ก็กำหนดจุด maps.setCenter(latLng); มาอีกจุดตามแต่ละจังหวัด
ใส่ maps.setCenter(latLng); หลัง $.getJSON({ ...... }); maps.setCenter(latLng);
|
|
|
|
|
Date :
2019-01-18 14:11:58 |
By :
55555 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|