JSFiddle - React, Tailwind, and code Playground
by knokit
HTML
<script src="http://maps.google.com/maps/api/js?sensor=false&language=de"></script><div id="map_canvas" style="height:400px"></div>
<b onclick="myclick(0)">Berlin</b>-<b onclick="myclick(1)">Paris</b>-<b onclick="myclick(2)">Rome</b>
CSS
b{padding:6px 2px;cursor:pointer;}
JavaScript
var url = "/echo/json/";
var gmarkers = [];
function initialize() {
var myLatlng = new google.maps.LatLng(0, 0);
var myOptions = {
zoomControl: true,
disableDefaultUI: true,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
downloadUrl(url, function(data) {
console.log(data);
var j = eval('(' + data.responseText + ')');
var jlength = j.data.cities.length;
var bounds = new google.maps.LatLngBounds();
for(i=0; i < jlength; i++) {
var x = parseFloat(j.data.cities[i].lat);
var y = parseFloat(j.data.cities[i].lon);
var ids = parseFloat(j.data.cities[i].id);
var z = new google.maps.LatLng(x,y);
var title = j.data.cities[i].title;
var contentstring = 'text for '+title
var marker = createMarker(ids);
var infowindow = new google.maps.InfoWindow({content: contentstring});
bounds.extend(z);
map.fitBounds(bounds);
};
if (map.getZoom() == 21)
{
map.setZoom(16);
}
if (map.getZoom() < 5)
{
map.setZoom(map.getZoom()+1);
}
this.myclick=function(i) {
google.maps.event.trigger(gmarkers[i], 'click');
};
function createMarker(){
var marker = new google.maps.Marker({
position: z,
map: map,
title: title,
html: contentstring,
icon: 'imagelink'
});
google.maps.event.addListener(marker,'click',function(){
infowindow.setContent(this.html);
infowindow.open(map,marker);
});
//google.maps.event.addListener(marker,'click',function(){
//window.location.href = marker.url;
//});
gmarkers[ids] = marker;
};
function createMarker(){
var marker = new google.maps.Marker({
position: z,
map: map,
title: title,
html:...