GoogleMap에서 도로네 다이어그램(마키노우동편)
16211 단어 자바스크립트GoogleMapsAPI
※마키노우동 : 후쿠오카를 대표하는 우동가게. 인쇄도 있고 자신은 가장 맛있는 우동이라고 생각합니다.
양은 많다. 국수는 부드럽다.
이런 느낌입니다.
서랍 그림이란?
각 삼각형의 외접원이 다른 점을 내부에 포함하지 않는 삼각형 분할이며, 평면에서 최소 각 최대, 일반 차원에서도 최대 최소 포함 원 최소 등 최적화 기준을 만족한다. 같다.
자세한 내용은 위키피디아에서 확인하십시오.
정책
1. 검색 단어 ( "목의 우동")의 좌표를 가져옵니다.
2. 좌표에서 서랍 그림을 만듭니다.
3. 서랍 그림을 그립니다.
소스 코드
makinoDelaunay.js
var map;
function initMap() {
map = new google.maps.Map(
document.getElementById('map'),
{center: {lat: 33.576653, lng: 130.412336}, //福岡らへん
zoom: 12}
);
//牧のうどんの座標を取得
getLatLng("牧のうどん");
}
//座標を取得し描画 参考:http://www.nanchatte.com/map/getLatLngByAddress.html
function getLatLng(place) {
var pt = [];
var vertex = []
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: place,
region: 'jp'
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var bounds = new google.maps.LatLngBounds();
for (var r in results) {
if (results[r].geometry) {
var latlng = results[r].geometry.location;
bounds.extend(latlng);
//マーカーを描画
new google.maps.Marker({
position: latlng,
map: map
});
pt.push(latlng);
vertex.push([results[r].geometry.location.lat(), results[r].geometry.location.lng()]);
}
}
//ドロネー図を作成 参考:https://github.com/ironwallaby/delaunay
var triangles = Delaunay.triangulate(vertex);
//ドロネー図の描画
var delaunayPath;
for (var t in triangles){
t = parseInt(t);
var pathArray = [];
if(t%3==0 && t < triangles.length-2){
pathArray.push(pt[triangles[t+2]]);
pathArray.push(pt[triangles[t+1]]);
pathArray.push(pt[triangles[t]]);
pathArray.push(pt[triangles[t+2]]);
delaunayPath = new google.maps.Polyline({
path: pathArray, //ポリラインの配列
strokeColor: '#FF0000', //色(#RRGGBB形式)
strokeOpacity: 1.0, //透明度 0.0~1.0(デフォルト)
strokeWeight: 1 //太さ(単位ピクセル)
});
delaunayPath.setMap(map);
}
}
}
});
}
1. 좌표 획득
geocoder.geocode
에서 결과에 검색 결과를 저장합니다.
result에 대해서는 여기 에 상세가 있습니다.
위키피디아 과 점포수가 맞지 않네요.
2.드로네 다이어그램의 작성
var triangles = Delaunay.triangulate(vertex);
서랍 그림 작성 소스는 여기에서 빌려 왔습니다. 좌표의 배열을 입력하면, 패스를 돌려주는 블랙 박스입니다.
3. 도로네 다이어그램 그리기
var delaunayPath;
for (var t in triangles){
t = parseInt(t);
var pathArray = [];
if(t%3==0 && t < triangles.length-2){
pathArray.push(pt[triangles[t+2]]);
pathArray.push(pt[triangles[t+1]]);
pathArray.push(pt[triangles[t]]);
pathArray.push(pt[triangles[t+2]]);
delaunayPath = new google.maps.Polyline({
path: pathArray, //ポリラインの配列
strokeColor: '#FF0000', //色(#RRGGBB形式)
strokeOpacity: 1.0, //透明度 0.0~1.0(デフォルト)
strokeWeight: 1 //太さ(単位ピクセル)
});
delaunayPath.setMap(map);
}
}
triangles에서 세 점씩 꺼내 삼각형을 그립니다.
덤
자씨 우동도 만들어 보았습니다.
점포가 많은 쪽이 외형이 재미있고 좋네요.
우동은 마키 쪽이 맛있다고 생각합니다만.
참고
다음을 참고했습니다.
1. 검색 단어 ( "목의 우동")의 좌표를 가져옵니다.
2. 좌표에서 서랍 그림을 만듭니다.
3. 서랍 그림을 그립니다.
소스 코드
makinoDelaunay.js
var map;
function initMap() {
map = new google.maps.Map(
document.getElementById('map'),
{center: {lat: 33.576653, lng: 130.412336}, //福岡らへん
zoom: 12}
);
//牧のうどんの座標を取得
getLatLng("牧のうどん");
}
//座標を取得し描画 参考:http://www.nanchatte.com/map/getLatLngByAddress.html
function getLatLng(place) {
var pt = [];
var vertex = []
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: place,
region: 'jp'
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var bounds = new google.maps.LatLngBounds();
for (var r in results) {
if (results[r].geometry) {
var latlng = results[r].geometry.location;
bounds.extend(latlng);
//マーカーを描画
new google.maps.Marker({
position: latlng,
map: map
});
pt.push(latlng);
vertex.push([results[r].geometry.location.lat(), results[r].geometry.location.lng()]);
}
}
//ドロネー図を作成 参考:https://github.com/ironwallaby/delaunay
var triangles = Delaunay.triangulate(vertex);
//ドロネー図の描画
var delaunayPath;
for (var t in triangles){
t = parseInt(t);
var pathArray = [];
if(t%3==0 && t < triangles.length-2){
pathArray.push(pt[triangles[t+2]]);
pathArray.push(pt[triangles[t+1]]);
pathArray.push(pt[triangles[t]]);
pathArray.push(pt[triangles[t+2]]);
delaunayPath = new google.maps.Polyline({
path: pathArray, //ポリラインの配列
strokeColor: '#FF0000', //色(#RRGGBB形式)
strokeOpacity: 1.0, //透明度 0.0~1.0(デフォルト)
strokeWeight: 1 //太さ(単位ピクセル)
});
delaunayPath.setMap(map);
}
}
}
});
}
1. 좌표 획득
geocoder.geocode
에서 결과에 검색 결과를 저장합니다.
result에 대해서는 여기 에 상세가 있습니다.
위키피디아 과 점포수가 맞지 않네요.
2.드로네 다이어그램의 작성
var triangles = Delaunay.triangulate(vertex);
서랍 그림 작성 소스는 여기에서 빌려 왔습니다. 좌표의 배열을 입력하면, 패스를 돌려주는 블랙 박스입니다.
3. 도로네 다이어그램 그리기
var delaunayPath;
for (var t in triangles){
t = parseInt(t);
var pathArray = [];
if(t%3==0 && t < triangles.length-2){
pathArray.push(pt[triangles[t+2]]);
pathArray.push(pt[triangles[t+1]]);
pathArray.push(pt[triangles[t]]);
pathArray.push(pt[triangles[t+2]]);
delaunayPath = new google.maps.Polyline({
path: pathArray, //ポリラインの配列
strokeColor: '#FF0000', //色(#RRGGBB形式)
strokeOpacity: 1.0, //透明度 0.0~1.0(デフォルト)
strokeWeight: 1 //太さ(単位ピクセル)
});
delaunayPath.setMap(map);
}
}
triangles에서 세 점씩 꺼내 삼각형을 그립니다.
덤
자씨 우동도 만들어 보았습니다.
점포가 많은 쪽이 외형이 재미있고 좋네요.
우동은 마키 쪽이 맛있다고 생각합니다만.
참고
다음을 참고했습니다.
var map;
function initMap() {
map = new google.maps.Map(
document.getElementById('map'),
{center: {lat: 33.576653, lng: 130.412336}, //福岡らへん
zoom: 12}
);
//牧のうどんの座標を取得
getLatLng("牧のうどん");
}
//座標を取得し描画 参考:http://www.nanchatte.com/map/getLatLngByAddress.html
function getLatLng(place) {
var pt = [];
var vertex = []
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: place,
region: 'jp'
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var bounds = new google.maps.LatLngBounds();
for (var r in results) {
if (results[r].geometry) {
var latlng = results[r].geometry.location;
bounds.extend(latlng);
//マーカーを描画
new google.maps.Marker({
position: latlng,
map: map
});
pt.push(latlng);
vertex.push([results[r].geometry.location.lat(), results[r].geometry.location.lng()]);
}
}
//ドロネー図を作成 参考:https://github.com/ironwallaby/delaunay
var triangles = Delaunay.triangulate(vertex);
//ドロネー図の描画
var delaunayPath;
for (var t in triangles){
t = parseInt(t);
var pathArray = [];
if(t%3==0 && t < triangles.length-2){
pathArray.push(pt[triangles[t+2]]);
pathArray.push(pt[triangles[t+1]]);
pathArray.push(pt[triangles[t]]);
pathArray.push(pt[triangles[t+2]]);
delaunayPath = new google.maps.Polyline({
path: pathArray, //ポリラインの配列
strokeColor: '#FF0000', //色(#RRGGBB形式)
strokeOpacity: 1.0, //透明度 0.0~1.0(デフォルト)
strokeWeight: 1 //太さ(単位ピクセル)
});
delaunayPath.setMap(map);
}
}
}
});
}
geocoder.geocode
var triangles = Delaunay.triangulate(vertex);
var delaunayPath;
for (var t in triangles){
t = parseInt(t);
var pathArray = [];
if(t%3==0 && t < triangles.length-2){
pathArray.push(pt[triangles[t+2]]);
pathArray.push(pt[triangles[t+1]]);
pathArray.push(pt[triangles[t]]);
pathArray.push(pt[triangles[t+2]]);
delaunayPath = new google.maps.Polyline({
path: pathArray, //ポリラインの配列
strokeColor: '#FF0000', //色(#RRGGBB形式)
strokeOpacity: 1.0, //透明度 0.0~1.0(デフォルト)
strokeWeight: 1 //太さ(単位ピクセル)
});
delaunayPath.setMap(map);
}
}
자씨 우동도 만들어 보았습니다.
점포가 많은 쪽이 외형이 재미있고 좋네요.
우동은 마키 쪽이 맛있다고 생각합니다만.
참고
다음을 참고했습니다.
Reference
이 문제에 관하여(GoogleMap에서 도로네 다이어그램(마키노우동편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KSako/items/8e7ca87a712c0f9f3ad2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)