Skip to content

Commit deae35d

Browse files
fix demo
1 parent 07ce374 commit deae35d

File tree

4 files changed

+114
-90
lines changed

4 files changed

+114
-90
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,4 +294,6 @@ __pycache__/
294294
*.btp.cs
295295
*.btm.cs
296296
*.odx.cs
297-
*.xsd.cs
297+
*.xsd.cs
298+
.vscode/launch.json
299+
.DS_Store

jQuery/index.html

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,38 @@
11
<!DOCTYPE html>
2-
<html>
3-
2+
<html lang="en" >
43
<head>
5-
<meta charset="utf-8">
6-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
7-
<meta name="viewport" content="width=device-width, initial-scale=1">
8-
9-
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.js"></script>
10-
<link rel="stylesheet" href="https://cdn3.devexpress.com/jslib/18.1.11/css/dx.common.css">
11-
<link rel="stylesheet" href="https://cdn3.devexpress.com/jslib/18.1.11/css/dx.light.css">
12-
<script type="text/javascript" src="https://cdn3.devexpress.com/jslib/18.1.11/js/dx.all.js"></script>
13-
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=geometry,places"></script>
14-
<script type="text/javascript" src="script.js"></script>
4+
<meta charset="UTF-8">
5+
<title>DevExtreme Demo</title>
6+
7+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
8+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9+
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
10+
<link rel='stylesheet' href='https://cdn3.devexpress.com/jslib/23.1.5/css/dx.material.blue.light.css'>
11+
<link rel='stylesheet' href='./style.css'>
12+
<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js'></script>
13+
<script src='https://cdn3.devexpress.com/jslib/23.1.5/js/dx.all.js'></script>
14+
<script src='https://maps.googleapis.com/maps/api/js?key=YOUR-API-KEY&amp;libraries=places'></script>
15+
<script src="./script.js"></script>
1516
</head>
1617

1718
<body class="dx-viewport">
18-
<input id="pac-input" class="controls" type="text" placeholder="Enter a location">
19-
<div id="type-selector" class="controls">
20-
<input type="radio" name="type" id="changetype-all" checked="checked">
21-
<label for="changetype-all">All</label>
19+
<div class="demo-container">
20+
<input id="pac-input" class="controls" type="text" placeholder="Enter a location">
21+
<div id="type-selector" class="controls" style="background-color: lightseagreen;">
22+
<input type="radio" name="type" id="changetype-all" checked="checked">
23+
<label for="changetype-all">All</label>
2224

23-
<input type="radio" name="type" id="changetype-establishment">
24-
<label for="changetype-establishment">Establishments</label>
25+
<input type="radio" name="type" id="changetype-establishment">
26+
<label for="changetype-establishment">Establishments</label>
2527

26-
<input type="radio" name="type" id="changetype-address">
27-
<label for="changetype-address">Addresses</label>
28+
<input type="radio" name="type" id="changetype-address">
29+
<label for="changetype-address">Addresses</label>
2830

29-
<input type="radio" name="type" id="changetype-geocode">
30-
<label for="changetype-geocode">Geocodes</label>
31+
<input type="radio" name="type" id="changetype-geocode">
32+
<label for="changetype-geocode">Geocodes</label>
3133
</div>
3234
<div id="map"></div>
35+
</div>
3336
</body>
3437

3538
</html>

jQuery/script.js

Lines changed: 72 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,87 @@
1-
$(function () {
1+
$(() => {
2+
const map = $('#map').dxMap({
3+
zoom: 14,
4+
height: 440,
5+
width: '100%',
6+
center: "Los Angeles, CA",
7+
provider: 'google',
8+
apiKey: {
9+
google: 'YOUR-API-KEY',
10+
},
11+
onReady: function(s){
12+
var map = s.originalMap;
213

3-
$("#map").dxMap({
4-
zoom: 3,
5-
width: "100%",
6-
height: "100%",
7-
onReady: function (s) {
8-
var map = s.originalMap;
14+
var input = /** @type {!HTMLInputElement} */(
15+
document.getElementById('pac-input'));
916

10-
var input = /** @type {!HTMLInputElement} */(
11-
document.getElementById('pac-input'));
17+
var types = document.getElementById('type-selector');
18+
map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);
19+
map.controls[google.maps.ControlPosition.TOP_LEFT].push(types);
1220

13-
var types = document.getElementById('type-selector');
14-
map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);
15-
map.controls[google.maps.ControlPosition.TOP_LEFT].push(types);
21+
var autocomplete = new google.maps.places.Autocomplete(input);
22+
autocomplete.bindTo('bounds', map);
1623

17-
var autocomplete = new google.maps.places.Autocomplete(input);
18-
autocomplete.bindTo('bounds', map);
24+
var infowindow = new google.maps.InfoWindow();
25+
var marker = new google.maps.Marker({
26+
map: map,
27+
anchorPoint: new google.maps.Point(0, -29)
28+
});
1929

20-
var infowindow = new google.maps.InfoWindow();
21-
var marker = new google.maps.Marker({
22-
map: map,
23-
anchorPoint: new google.maps.Point(0, -29)
24-
});
30+
autocomplete.addListener('place_changed', function () {
31+
infowindow.close();
32+
marker.setVisible(false);
33+
var place = autocomplete.getPlace();
34+
if (!place.geometry) {
35+
window.alert("Autocomplete's returned place contains no geometry");
36+
return;
37+
}
2538

26-
autocomplete.addListener('place_changed', function () {
27-
infowindow.close();
28-
marker.setVisible(false);
29-
var place = autocomplete.getPlace();
30-
if (!place.geometry) {
31-
window.alert("Autocomplete's returned place contains no geometry");
32-
return;
33-
}
39+
// If the place has a geometry, then present it on a map.
40+
if (place.geometry.viewport) {
41+
map.fitBounds(place.geometry.viewport);
42+
} else {
43+
map.setCenter(place.geometry.location);
44+
map.setZoom(17); // Why 17? Because it looks good.
45+
}
46+
marker.setIcon(/** @type {google.maps.Icon} */({
47+
url: place.icon,
48+
size: new google.maps.Size(71, 71),
49+
origin: new google.maps.Point(0, 0),
50+
anchor: new google.maps.Point(17, 34),
51+
scaledSize: new google.maps.Size(35, 35)
52+
}));
53+
marker.setPosition(place.geometry.location);
54+
marker.setVisible(true);
3455

35-
// If the place has a geometry, then present it on a map.
36-
if (place.geometry.viewport) {
37-
map.fitBounds(place.geometry.viewport);
38-
} else {
39-
map.setCenter(place.geometry.location);
40-
map.setZoom(17); // Why 17? Because it looks good.
41-
}
42-
marker.setIcon(/** @type {google.maps.Icon} */({
43-
url: place.icon,
44-
size: new google.maps.Size(71, 71),
45-
origin: new google.maps.Point(0, 0),
46-
anchor: new google.maps.Point(17, 34),
47-
scaledSize: new google.maps.Size(35, 35)
48-
}));
49-
marker.setPosition(place.geometry.location);
50-
marker.setVisible(true);
56+
var address = '';
57+
if (place.address_components) {
58+
address = [
59+
(place.address_components[0] && place.address_components[0].short_name || ''),
60+
(place.address_components[1] && place.address_components[1].short_name || ''),
61+
(place.address_components[2] && place.address_components[2].short_name || '')
62+
].join(' ');
63+
}
5164

52-
var address = '';
53-
if (place.address_components) {
54-
address = [
55-
(place.address_components[0] && place.address_components[0].short_name || ''),
56-
(place.address_components[1] && place.address_components[1].short_name || ''),
57-
(place.address_components[2] && place.address_components[2].short_name || '')
58-
].join(' ');
59-
}
65+
infowindow.setContent('<div><strong>' + place.name + '</strong><br>' + address);
66+
infowindow.open(map, marker);
67+
});
6068

61-
infowindow.setContent('<div><strong>' + place.name + '</strong><br>' + address);
62-
infowindow.open(map, marker);
69+
// Sets a listener on a radio button to change the filter type on Places
70+
// Autocomplete.
71+
function setupClickListener(id, types) {
72+
var radioButton = document.getElementById(id);
73+
radioButton.addEventListener('click', function () {
74+
autocomplete.setTypes(types);
6375
});
76+
}
6477

65-
// Sets a listener on a radio button to change the filter type on Places
66-
// Autocomplete.
67-
function setupClickListener(id, types) {
68-
var radioButton = document.getElementById(id);
69-
radioButton.addEventListener('click', function () {
70-
autocomplete.setTypes(types);
71-
});
72-
}
78+
setupClickListener('changetype-all', []);
79+
setupClickListener('changetype-address', ['address']);
80+
setupClickListener('changetype-establishment', ['establishment']);
81+
setupClickListener('changetype-geocode', ['geocode']);
7382

74-
setupClickListener('changetype-all', []);
75-
setupClickListener('changetype-address', ['address']);
76-
setupClickListener('changetype-establishment', ['establishment']);
77-
setupClickListener('changetype-geocode', ['geocode']);
83+
}
7884

79-
}
8085
});
81-
86+
8287
});

jQuery/style.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#pac-input.controls {
2+
border: 1px solid #ccc;
3+
padding: 5px;
4+
border-radius: 4px;
5+
font-size: 14px;
6+
}
7+
8+
#type-selector.controls label {
9+
display: inline-block;
10+
padding: 5px 10px;
11+
cursor: pointer;
12+
font-size: 14px;
13+
margin-right: 5px;
14+
}

0 commit comments

Comments
 (0)